關於CD4021這顆ic的用法?? |
缺席
|
cls9215
一般會員 發表:18 回覆:28 積分:9 註冊:2004-12-21 發送簡訊給我 |
各位前輩先進大家好: 小弟目前想利用cd4021這顆8bit並/串入串出的移位暫存器來讀取8個按鍵開關的狀態,並利用串列傳輸的方式將這8個按鍵的狀態讀入,並顯示於p1.0~p1.7上,小第已經依據CD4021的DATA SHHET來撰寫51的程式(如下程式),目前若加上"tt ajmp tt"這行指令的話....當電源開啟時被按下的開關狀態可以顯示在p1.0~p1.7上,但是當刪掉"tt ajmp tt"這行指令的話,程式執行時....p1.0~p1.7的led會全亮.....但是我覺得我的程式邏輯應該是沒問題的....不知道為何會這樣!!??請教有用過這顆ic的前輩們....我的程式是哪裡出了問題....或是觀念上的錯誤??
clk reg p2.0 ;4021 clock輸出 ps reg p2.1 ;4021 並/串列輸入設定 data reg p2.2 ;輸出資料 outdata equ 20h org 0000h mov p2,#00000100b ;p2.2設為輸入 mov a,#00h ;a累加器初始值 setb c ;c=1 ajmp main org 000bh mov th0,#3ch mov tl0,#0b0h setb ps ;ps=1並列資訊讀入 clr clk nop nop clr ps ;轉成串列資料模式 nop nop mov c,data ;傳送第一個bit資料 rlc a mov r0,#7 ;傳送其餘7bit資料 loop setb clk nop nop nop clr clk nop mov c,data rlc a djnz r0,loop mov outdata,a mov p1,outdata tt ajmp tt reti main mov tmod,#00000001b ;計時器參數設定 mov th0,#3ch mov tl0,#0b0h setb ea setb et0 ;計時中斷 setb tr0 pause setb ps ajmp pause end |
cls9215
一般會員 發表:18 回覆:28 積分:9 註冊:2004-12-21 發送簡訊給我 |
|
sounyung
一般會員 發表:8 回覆:8 積分:3 註冊:2005-05-14 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |