❶ 用8051單片機編寫一個鬧鍾程序,先設置時間,然後中斷開始計數,如果時間到了,則報警,但是程序有問題
通過了,自己對照看看問題出在哪裡。
ORG 00H
LJMP MAIN
ORG 0003H
LJMP EINT0
ORG 0013H
LJMP EINT1
ORG 1BH
LJMP TIMER1
ORG 0100H
MAIN:SETB EA;開所有中斷
SETB PX0;使int0為高級中斷,start(int0高於1)
SETB PX1;使int1為高級中斷,pause
SETB IT0;int0負邊沿觸發
SETB IT1;int1負邊沿觸發
MOV SP,#60H;給指針設置初始地址
MOV R0,#00H;初始化R0
MOV R1,#00H
READY:MOV A,#00000011B;開始輸入數值,並使用P1.0和P1.1
MOV P1,A
MOV A,P1;讀鍵盤狀態
JB ACC.0,L1;若ACC.0為1,跳轉至L1,否則個位鍵按下執行下條指令
LCALL PROM0;若個位鍵按下,則跳轉RPOM0,並返回R0
L1:JB ACC.1,L2;若ACC.1為1,跳轉至L2,否則個位鍵按下執行下條指令
LCALL PROM1;若十位鍵按下,則跳轉RPOM1,並返回R1
L2:MOV DPTR,#DTAB;數據表格起始地址送DPTR
MOV A,R0;把R0里的數給A,用於查表偏移量
MOVC A,@A+DPTR;查表後相應數值給A
MOV P0,A;送P0口顯示
MOV A,R1;把R1里的數給A,用於查表偏移量
MOVC A,@A+DPTR;查表後相應數值給A
MOV P2,A;送P2口顯示
LCALL READY;跳轉回READY檢查是否有按鍵再次按下
DTAB:DB 3FH,06H,5BH,4FH,66H;共陰極數碼管從0~9表
DB 6DH,7DH,07H,7FH,6FH
PROM0:LCALL DY12MS;防抖動
INC R0;若個位鍵按下,則使R0+1
CJNE R0,#0AH,CTN;如果R0=10,則執行下一條指令,否則跳轉
MOV R0,#00H;給R0重置0
CTN:RET
PROM1:LCALL DY12MS
INC R1;若個位鍵按下,則使R1+1
CJNE R1,#06H,CNT;如果R1=6,則執行下一條指令,否則跳轉
MOV R1,#00H;給R1重置0
CNT:RET
DY12MS:MOV R7,#18H;延時12MS子程序
DYMS1:MOV R6,#0FFH
DYMS2:DJNZ R6,DYMS2
DJNZ R7,DYMS1
RET
EINT0:PUSH ACC
PUSH PSW
CLR TR1
POP PSW
POP ACC
SETB EX0
RETI
EINT1:ANL TMOD,#0FH;計數器置為方式1,定時器模式,與INT0有關
ORL TMOD,#90H
MOV TH1,#3CH;裝入時間常數,0.05S
MOV TL1,#0AFH
MOV B,#0AH;
MOV A,R1;
MUL AB;把十位分乘十
ADD A,R0;
MOV B,#120;0.05s*2*60
MOV R3,A
MOV R4,B
SETB TR1;啟T1計數
LOOP:CJNE R4,#00H,LOOP;每當過1分鍾後,才進入R3
CJNE R3,#00H,L3;
SETB P3.0;讓P3.0口為1,輸出高電壓給蜂鳴器
LCALL DY2S;讓蜂鳴器鳴叫2S
RETI
L3:CLR P3.0;輸出低電平,使蜂鳴器不工作
SJMP LOOP
TIMER1:CLR TR1;關計數控制位
DEC R4;
CJNE R4,#00H,L4;R4不為零,則R3不減
DEC R3;
L4:MOV TL1,#0AFH;裝入時間常數
MOV TH1,#3CH;
SETB TR1;開計數控制位
RETI
DY2S:MOV R7,#200;延時2S子程序
DY2S1:MOV R6,#20
DY2S2:MOV R5,#124
DY2S3:DJNZ R5,DY2S3
DJNZ R6,DY2S2
DJNZ R7,DY2S1
RET
END
❷ 兩單片機串列通信問題
模擬的時候沒有問題,基本上就是硬體上沒搞好了.
重點檢查EA腳 有沒接+
晶振是否正常? 單片機,8255復位是否正確?
還有低級錯誤:線有沒連錯?短路?供電正常 不?....
❸ keil 單片機程序求糾錯!!!undefined identified!!!!
未定義的標識符,一般都是拼寫錯了。注意大小寫,數字0與字母o,數字1與字母l。
❹ [急!]我用proteus模擬單片機通過鎖存器控制數碼管進行動態顯示,但數碼管卻沒任何反應。程序在實驗板已驗
親,你用的P0口,上電是高阻態,要接上拉電阻,就是再放一個排阻respack,其中的1接電源,其它八個管腳分別接到P0口的管腳上
❺ 網上的 匯編16*32點陣程序不知道74HC154接單片機哪幾個腳
應該是74HC164吧,程序中好像看不到你有用到164的管腳哦,其實如果程序中有定義到164的輸入的話,只需要為164的兩個輸入信號定義單片機的其中兩個管腳就行了(但最好不要用P0口,P0口要加上上拉電阻的),例如定義P1.0,P1.1,然後硬體上把這兩個管腳跟164的對應輸入口接上就行了。
❻ dtab d-01h移動能用嗎
當解碼器選中8255晶元的片選後,8255的地址線A1和A0將作為晶元內部4個埠的選擇。
A1A0=00 CPU選擇8255的PA口,當A1A0=01 CPU選擇8255的PB口,當A1A0=10 CPU選擇8255的PC口;當A1A0=11 CPU選擇8255的控制埠; 結論:無論單片機用哪2個的低位地。
❼ 一,在word2003中,用按鍵方法選定列文本塊的操作是同時按()鍵和方向鍵 A,Ctrl;B,shift;C,alt;Dtab,
在word2003中,用按鍵方法選定列文本塊的操作是同時按Ctrl鍵和方向鍵;因此答案選擇A;
Word2003中提供了許多易於使用的文檔創建工具,同時也提供了豐富的功能集供創建復雜的文檔使用。哪怕只使用 Word 應用一點文本格式化操作或圖片處理,也可以使簡單的文檔變得比只使用純文本更具吸引力。
(7)單片機中dtab是多少擴展閱讀:
Microsoft Word在當前使用中是佔有巨大優勢的文字處理器,這使得Word專用的檔案格式Word 文件(.doc)成為事實上最通用的標准。Word文件格式的詳細資料並不對外公開。Word文件格式不只一種,因為隨Word軟體本身的更新,文件格式也會或多或少的改版;
新版的格式不一定能被舊版的程序讀取(大致上是因為舊版並未內建支援新版格式的能力)。微軟已經詳細公布Word 97的DOC格式,但是較新的版本資料仍未公開,只有公司內部、政府與研究機構能夠獲知。業界傳聞說某些Word文件格式的特性甚至連微軟自己都不清楚。
其他與Word競爭的辦公室作業軟體,都必須支援事實上最通用的Word專用的檔案格式。因為Word文件格式的詳細資料並不對外公開,通常這種兼容性是藉由逆向工程來達成。許多文字處理器都有匯出、匯入Word檔案專用的轉換工具,譬如AbiWord或OpenOffice。
❽ 單片機字母顯示
從DISP知道,這是一個顯示子程序
從SJMP DISP知道,這個是一個死循環,不停的在顯示
那麼顯示在哪裡
從P1可知,應該是P1口接了數碼管。
那麼顯示了什麼?
從#3CH可知,接了共陰極數碼管
顯示的是字母「b」且小數點不亮(可查閱段選碼)
然後為什麼這里是一個死循環?
應該是程序中有中斷,一直在等待中斷跳出。
SJMP DISP 跳到DISP:MOV P1,#3CH 這句,DISP是一個標號。也就是如果沒有中斷產生
那就一直在執行
DISP:MOV P1,#3C
-----SJMP DISP
可以看到你的程序是有中斷的
MOV IE,#85H中斷開放
-----SETB PX1
-----SETB IT0
-----SETB IT1