版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 長江大學(xué)電信學(xué)院單片機課程設(shè)計</p><p><b> 實例一</b></p><p> COM EQU 50H ; 指令寄存器</p><p> DAT EQU 51H ; 數(shù)據(jù)寄存器</p><p> RS EQU P2.1 ; LCD寄存器選擇信號</p><p&
2、gt; RW EQU P2.2 ; LCD讀/寫選擇信號</p><p> E EQU P2.3 ; LCD使能信號</p><p><b> ORG 0000H</b></p><p> LJMP MAIN ;主程序入口</p><p><b> ORG 000BH</b>
3、</p><p> LJMP BT0 ;T0中斷入口</p><p><b> ORG 0003H</b></p><p> LJMP BINT0</p><p> ORG 0030H ;主程序,初始化</p><p> MAIN: MOV SP,#60H &l
4、t;/p><p><b> CLR P1.0</b></p><p> MOV R4,#00H ;默認(rèn)通道0</p><p> LCALL INT ;調(diào)LCD間接控制方式下的初始化子程序</p><p> LCALL MZ ;調(diào)用字符庫</p><p> MOV
5、30H,#30H ;8051片內(nèi)30H-35H為顯示緩沖區(qū),用于存放A/D轉(zhuǎn)換數(shù)據(jù)</p><p> MOV 31H,#0A5H ;初始數(shù)據(jù)設(shè)為0.000v</p><p> MOV 32H,#30H </p><p> MOV 33H,#30H </p><p> MOV 34H,#30H </p>
6、<p> MOV 35H,#76H </p><p> MOV R7,#30H</p><p> LCALL N1 ;顯示 Voltage </p><p> ;******************第二行顯示控制*******************************************</p>&
7、lt;p> MOV COM,#0CDH ;設(shè)置DDRAM地址 </p><p><b> LCALL PR1</b></p><p> MOV DPTR,#ZIFU</p><p><b> MOV R1,#4</b></p><p> LCALL LOOP7</p>
8、<p> SJMP LOOP</p><p> ZIFU:DB 00H,01H,02H,20H</p><p> ;******************************************************************************</p><p> ;*************************
9、 定時器初始化程序 **********************************</p><p> LOOP:MOV TMOD,#0</p><p> MOV TH0,#63H ;定時5ms</p><p> MOV TL0,#18H</p><p><b> SETB EA</b></p
10、><p><b> SETB ET0</b></p><p><b> SETB EX0</b></p><p><b> SETB IT0</b></p><p><b> SETB TR0</b></p><p> ;**
11、*************************************************************************** </p><p> LP:MOV R7,#30H ;顯示緩沖區(qū)首地址</p><p> LCALL LED ;報警</p><p>
12、LCALL KEY;查詢按鍵</p><p> LCALL DISPLY </p><p> SJMP LP ;循環(huán)顯示</p><p> ;**************************按鍵處理*********************************************</p><p&
13、gt; KEY: JB 20H.0,KEY0</p><p> JB 20H.1,KEY1</p><p> JB 20H.2,KEY2</p><p><b> SJMP ST</b></p><p> KEY0: MOV R4,#02H</p><p><b> SJMP
14、 ST</b></p><p> KEY1: MOV R4,#01H</p><p><b> SJMP ST</b></p><p> KEY2: MOV R4,#00H</p><p><b> ST: RET</b></p><p> ;****
15、**************************************************************************</p><p> ;******************************* 定時器中斷服務(wù)程序 ************************</p><p> BT0:PUSH ACC</p><p>
16、; MOV DPTR,#0F6FFH ;0809地址,不選中液晶</p><p> MOV A,R4 ;選擇通道0</p><p> MOVX @DPTR,A ;啟動0809</p><p> JB P3.3,$ ;判斷是否轉(zhuǎn)換完成</p><p> MOVX A,@DPTR ;讀出數(shù)據(jù)</p&
17、gt;<p> ;**************************顯示數(shù)字量處理**************************************</p><p> MOV B,#51 </p><p><b> DIV AB</b></p><p> ADD A,#30H</p>&l
18、t;p><b> MOV 30H,A</b></p><p> LCALL TURN</p><p><b> MOV 32H,A</b></p><p><b> MOV A,71H</b></p><p><b> ADD A,70H</b&
19、gt;</p><p><b> MOV B,A</b></p><p> LCALL TURN</p><p><b> MOV 33H,A</b></p><p><b> MOV A,71H</b></p><p><b> A
20、DD A,70H</b></p><p><b> MOV B,A</b></p><p> LCALL TURN</p><p><b> MOV 34H,A</b></p><p> ;*********************************************
21、*********************************</p><p> MOV TH0,#63H ;重裝定時器初值</p><p> MOV TL0,#18H</p><p><b> POP ACC</b></p><p><b> RETI</b></p&g
22、t;<p> ;******************************************************************************</p><p> ;***************************外部中斷0服務(wù)程序**********************************</p><p> BINT0:JNB
23、 P1.1,LL1</p><p><b> SJMP L1</b></p><p> LL1: MOV 20H,#00H</p><p> SETB 20H.0</p><p><b> SJMP RT</b></p><p> L1:JNB P1.3,LL2&l
24、t;/p><p><b> SJMP L2</b></p><p> LL2: MOV 20H,#00H</p><p> SETB 20H.1</p><p><b> SJMP RT</b></p><p> L2: JNB P1.5,LL3</p>
25、<p><b> SJMP RT</b></p><p> LL3: MOV 20H,#00H</p><p> SETB 20H.2</p><p><b> RT: RETI</b></p><p> ;***********************************
26、*******************************************</p><p> ;******************************************二進制轉(zhuǎn)換十進制********************</p><p> TURN: MOV A,#10</p><p><b> MUL AB</b&
27、gt;</p><p><b> MOV 70H,B</b></p><p><b> MOV B,#51</b></p><p><b> DIV AB</b></p><p><b> MOV 72H,A</b></p><
28、p><b> MOV 71H,B</b></p><p><b> MOV A,#5</b></p><p><b> MOV B,70H</b></p><p><b> MUL AB</b></p><p><b> ADD
29、A,72H</b></p><p> ADD A,#30H</p><p><b> RET</b></p><p> ;********************************************************************************</p><p>
30、;*********************************報警(設(shè)置大于4.8v則二極管亮)*******************************************</p><p><b> LED:</b></p><p><b> MOV A,30H</b></p><p> CJNE A
31、,#34H,LOOP1;判斷是否等于4</p><p> SJMP LOOP2</p><p> LOOP1:JNC LOOP4</p><p><b> CLR P1.0</b></p><p> SJMP LOOP5</p><p> LOOP2: MOV A,32H</p&
32、gt;<p> CJNE A,#38H,LOOP3 ;判斷是否等于8</p><p> SJMP LOOP4</p><p> LOOP3: JNC LOOP4</p><p><b> CLR P1.0</b></p><p> SJMP LOOP5</p><p>
33、 LOOP4: SETB P1.0</p><p> LOOP5: RET</p><p> ;***********************************************************************************</p><p> ;***********************************LCD顯
34、示子程序***********************************</p><p> DISPLY: </p><p> MOV COM,#8AH;LCD寫數(shù)據(jù)地址</p><p><b> LCALL PR1</b></p><p> MOV R1,#06H </p
35、><p> MOV R0,#30H</p><p> L: MOV DAT,@R0;顯示0.000v</p><p><b> LCALL PR2</b></p><p><b> INC R0</b></p><p><b> DJNZ R1,L<
36、/b></p><p><b> RET</b></p><p> ;*************************************************************************************</p><p> ;***************************** 逐字依次輸入
37、顯示字符程序*****************************</p><p> N1:MOV COM,#01H ;清屏</p><p><b> LCALL PR1</b></p><p> MOV COM,#06H ; 設(shè)置輸入方式</p><p><b> LCALL PR1&
38、lt;/b></p><p> MOV COM,#080H ;LCD寫數(shù)據(jù)首地址</p><p><b> LCALL PR1</b></p><p> MOV DPTR,#TAB</p><p> MOV R2,#10</p><p> MOV R3,#00H</p>
39、;<p><b> WRIN:</b></p><p><b> MOV A,R3</b></p><p> MOVC A,@A+DPTR ;顯示Voltage =</p><p><b> MOV DAT,A</b></p><p><b>
40、 LCALL PR2</b></p><p><b> INC R3</b></p><p> DJNZ R2,WRIN</p><p><b> RET </b></p><p> TAB: DB "Voltage = "</p><p
41、> ;***************************************************************************************</p><p> ;************************************自定義字符庫***************************************</p><p>
42、 MZ:MOV COM,#40H ;;CGRAM首地址</p><p><b> LCALL PR1</b></p><p> MOV R1,#24</p><p> MOV DPTR,#TABLE </p><p> LOOP7:CLR A</p><p> MOVC A,@A+
43、DPTR</p><p><b> MOV DAT,A</b></p><p><b> LCALL PR2</b></p><p><b> INC DPTR</b></p><p> DJNZ R1,LOOP7</p><p><b&g
44、t; RET</b></p><p> TABLE: DB 00H,1FH,04H,04H,1FH,04H,1FH,00H</p><p> DB 1EH,0AH,0FH,01H,0FH,03H,01H,00H</p><p> DB 0CH,1FH,0DH,0BH,09H,08H,0FH,00H</p><p> ;*
45、**************************************************************************************</p><p> ;*********************** LCD初始化子程序************************************************</p><p><b>
46、; INT:</b></p><p> LCALL DELAY ; 調(diào)延時子程序</p><p> MOV COM,#38H ; 設(shè)置工作方式 </p><p><b> LCALL PR1</b></p><p> MOV COM,#01H ; 清屏</p><p><
47、;b> LCALL PR1</b></p><p> MOV COM,#06H ; 設(shè)置輸入方式</p><p><b> LCALL PR1</b></p><p> MOV COM,#0CH ; 設(shè)置顯示方式</p><p><b> LCALL PR1</b><
48、;/p><p><b> RET</b></p><p> DELAY:MOV R6,#0FH ; 延時子程序</p><p> MOV R7,#00H</p><p> DELAY1: NOP</p><p> DJNZ R7,DELAY1</p><p> DJ
49、NZ R6,DELAY1</p><p><b> RET</b></p><p> ;****************************************************************************************</p><p> ;*******************LCD寫指令代碼
50、子程序*************************************************</p><p> PR1: PUSH ACC</p><p> CLR RS ; RS=0</p><p> SETB RW ; R/W=1</p><p> PR11:MOV P0,#0FFH; P0置位, 準(zhǔn)備讀&l
51、t;/p><p> SETB E ; E=1</p><p> LCALL DELAY</p><p><b> NOP</b></p><p> MOV A,P0 ;讀p0口狀態(tài)</p><p><b> CLR E</b></p><p>
52、 JB ACC.7,PR11;讀忙信號BF=1?</p><p> CLR RW; R/W=0</p><p> MOV P0,COM ;寫狀態(tài)命令</p><p> SETB E ; E=1</p><p> CLR E ; E=0</p><p><b> POP ACC</b>&
53、lt;/p><p><b> RET</b></p><p> ;*********************************************************************************************</p><p> ;*****************************LCD寫顯示
54、數(shù)據(jù)子程序********************************************</p><p> PR2:PUSH ACC</p><p> CLR RS ; RS=0</p><p> SETB RW; R/W=1</p><p> PR21:MOV P0,#0FFH</p><p>
55、SETB E ; E=1</p><p> LCALL DELAY</p><p> MOV A,P0 ;讀p0口狀態(tài)</p><p> CLR E ; E=0</p><p> JB ACC.7,PR21 ;讀忙信號BF=1?</p><p> SETB RS ;RS=1</p><p
56、> CLR RW ;R/W=0</p><p> MOV P0,DAT;寫數(shù)據(jù) </p><p> SETB E ; E=1 </p><p> CLR E; E=0</p><p><b> POP ACC</b></p><p><b> RET</b&
57、gt;</p><p> ;**********************************************************************************************</p><p><b> END</b></p><p><b> 實例二</b></p>
58、;<p> COM EQU 50H</p><p> DAT EQU 51H</p><p> RS EQU P2.1</p><p> RW EQU P2.2</p><p> E EQU P2.3</p><p><b> ORG 0000H</b></p>
59、;<p><b> LJMP MAIN</b></p><p><b> ORG 000BH</b></p><p><b> LJMP BT0</b></p><p> ;ORG 0013H</p><p> ;LJMP INT1</p>
60、<p><b> ORG 0030H</b></p><p> MAIN: MOV SP,#60H</p><p><b> LCALL INT</b></p><p> MOV 30H,#30H</p><p> MOV 31H,#0A5H</p><p&
61、gt; MOV 32H,#30H</p><p> MOV 33H,#30H</p><p> MOV 34H,#30H</p><p> MOV R7,#30H</p><p><b> LCALL N1</b></p><p><b> ;SETB EA</b>
62、;</p><p><b> ;SETB EX1</b></p><p><b> ;SETB IT1</b></p><p> ;MOV DPTR,#0FEFF</p><p> ;MOV A,#00H</p><p> ;MOVX @DPTR,A</p&g
63、t;<p> ;************************定時器初始化程序**************************</p><p> ;******************************************************************</p><p> LP: MOV R7,#30H</p><p&
64、gt; LCALL DISPLAY</p><p><b> SJMP LP</b></p><p> ;************************定時器中斷服務(wù)子程序**************************</p><p><b> BT0:</b></p><p>&l
65、t;b> RETI</b></p><p> ;***********************************************************************</p><p> DISPLAY: MOV COM,#8AH</p><p><b> LCALL PR1</b></p&
66、gt;<p> MOV R1,#05H</p><p> MOV R0,#30H</p><p> L: MOV DAT,@R0</p><p><b> LCALL PR2</b></p><p><b> INC R0</b></p><p>&l
67、t;b> DJNZ R1,L</b></p><p><b> RET</b></p><p> N1: MOV COM,#01H</p><p><b> LCALL PR1</b></p><p> MOV COM,#06H</p><p>&
68、lt;b> LCALL PR1</b></p><p> MOV COM ,#80H</p><p><b> LCALL PR1</b></p><p> MOV DPTR,#TAB</p><p> MOV R2,#10</p><p> MOV R3,#00H&
69、lt;/p><p> WRIN: MOV A,R3</p><p> MOVC A,@A+DPTR</p><p><b> MOV DAT,A</b></p><p><b> LCALL PR2</b></p><p><b> INC R3</b&
70、gt;</p><p> DJNZ R2,WRIN</p><p><b> RET</b></p><p> TAB: DB "Voltage = "</p><p> INT: LCALL DELAY</p><p> MOV COM,#38H</p>
71、<p><b> LCALL PR1</b></p><p> MOV COM,#01H</p><p><b> LCALL PR1</b></p><p> MOV COM,#06H</p><p><b> LCALL PR1</b></p&
72、gt;<p> MOV COM,#0EH</p><p><b> LCALL PR1</b></p><p><b> RET</b></p><p> DELAY: MOV R6,#0FH</p><p> MOV R7,#00H</p><p>
73、 DELAY1: NOP</p><p> DJNZ R7,DELAY1</p><p> DJNZ R6,DELAY1</p><p><b> RET</b></p><p> PR0: PUSH ACC</p><p> MOV P0,#0FFH</p><p
74、><b> CLR RS</b></p><p><b> SETB RW</b></p><p><b> SETB E</b></p><p> LCALL DELAY</p><p> MOV COM,P0</p><p><
75、b> CLR E</b></p><p><b> POP ACC</b></p><p><b> RET</b></p><p> PR1: PUSH ACC</p><p><b> CLR RS</b></p><p>
76、;<b> SETB RW</b></p><p> PR11: MOV P0,#0FFH</p><p><b> SETB E</b></p><p> LCALL DELAY</p><p><b> NOP</b></p><p>&l
77、t;b> MOV A,P0</b></p><p><b> CLR E</b></p><p> JB ACC.7,PR11</p><p><b> CLR RW</b></p><p> MOV P0,COM</p><p><b>
78、; SETB E</b></p><p><b> CLR E</b></p><p><b> POP ACC</b></p><p><b> RET</b></p><p> PR2: PUSH ACC</p><p><
79、;b> CLR RS</b></p><p><b> SETB RW</b></p><p> PR21: MOV P0,#0FFH</p><p><b> SETB E</b></p><p> LCALL DELAY</p><p><
80、;b> MOV A,P0</b></p><p><b> CLR E</b></p><p> JB ACC.7,PR21</p><p><b> SETB RS</b></p><p><b> CLR RW</b></p>&l
81、t;p> MOV P0,DAT</p><p><b> SETB E</b></p><p><b> CLR E</b></p><p><b> POP ACC</b></p><p><b> RET</b></p>
82、<p> PR3: PUSH ACC</p><p><b> CLR RS</b></p><p><b> SETB RW</b></p><p> PR31: MOV P0,#0FFH</p><p><b> SETB E</b></p>
83、<p> LCALL DELAY</p><p><b> MOV A,P0</b></p><p><b> CLR E</b></p><p> JB ACC.7,PR31</p><p><b> SETB RS</b></p>&l
84、t;p><b> SETB RW</b></p><p> MOV P0,#0FFH</p><p><b> SETB E</b></p><p> MOV DAT,P0</p><p><b> CLR E</b></p><p>&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子電信單片機畢業(yè)課程設(shè)計
- 單片機課程設(shè)計-單片機課程設(shè)計---電子時鐘
- 單片機課程設(shè)計
- 單片機課程設(shè)計
- 單片機課程設(shè)計
- 單片機課程設(shè)計
- 單片機課程設(shè)計--單片機串行通訊
- 單片機秒表單片機課程設(shè)計
- 單片機課程設(shè)計
- 單片機課程設(shè)計---單片機數(shù)字時鐘
- 單片機課程設(shè)計--單片機控制步進電機
- 單片機課程設(shè)計-單片機控制步進電機
- 單片機課程設(shè)計---單片機籃球計分器
- 單片機課程設(shè)計報告---單片機數(shù)字時鐘
- 單片機課程設(shè)計---單片機原理及應(yīng)用
- 基于單片機的秒表設(shè)計單片機課程設(shè)計
- 單片機課程設(shè)計--單片機控制各種器件
- 單片機課程設(shè)計---單片機數(shù)字時鐘.doc
- 單片機課程設(shè)計報告---單片機秒表系統(tǒng)設(shè)計
- 單片機課程設(shè)計---單片機病房呼叫系統(tǒng)
評論
0/150
提交評論