
長(zhǎng)江大學(xué)電信學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì).doc
17頁(yè)長(zhǎng)江大學(xué)電信學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)實(shí)例一COM EQU 50H ; 指令寄存器DAT EQU 51H ; 數(shù)據(jù)寄存器RS EQU P2.1 ; LCD寄存器選擇信號(hào)RW EQU P2.2 ; LCD讀/寫選擇信號(hào)E EQU P2.3 ; LCD使能信號(hào) ORG 0000H LJMP MAIN ;主程序入口 ORG 000BH LJMP BT0 ;T0中斷入口 ORG 0003H LJMP BINT0 ORG 0030H ;主程序,初始化MAIN: MOV SP,#60H CLR P1.0 MOV R4,#00H ;默認(rèn)通道0 LCALL INT ;調(diào)LCD間接控制方式下的初始化子程序 LCALL MZ ;調(diào)用字符庫(kù) MOV 30H,#30H ;8051片內(nèi)30H-35H為顯示緩沖區(qū),用于存放A/D轉(zhuǎn)換數(shù)據(jù) MOV 31H,#0A5H ;初始數(shù)據(jù)設(shè)為0.000v MOV 32H,#30H MOV 33H,#30H MOV 34H,#30H MOV 35H,#76H MOV R7,#30H LCALL N1 ;顯示 Voltage ;******************第二行顯示控制******************************************* MOV COM,#0CDH ;設(shè)置DDRAM地址 LCALL PR1 MOV DPTR,#ZIFU MOV R1,#4 LCALL LOOP7 SJMP LOOPZIFU:DB 00H,01H,02H,20H;******************************************************************************;************************* 定時(shí)器初始化程序 **********************************LOOP:MOV TMOD,#0 MOV TH0,#63H ;定時(shí)5ms MOV TL0,#18H SETB EA SETB ET0 SETB EX0 SETB IT0 SETB TR0;***************************************************************************** LP: MOV R7,#30H ;顯示緩沖區(qū)首地址 LCALL LED ;報(bào)警 LCALL KEY ;查詢按鍵 LCALL DISPLY SJMP LP ;循環(huán)顯示;**************************按鍵處理*********************************************KEY: JB 20H.0,KEY0 JB 20H.1,KEY1 JB 20H.2,KEY2 SJMP STKEY0: MOV R4,#02H SJMP STKEY1: MOV R4,#01H SJMP STKEY2: MOV R4,#00HST: RET;******************************************************************************;******************************* 定時(shí)器中斷服務(wù)程序 ************************BT0:PUSH ACC MOV DPTR,#0F6FFH ;0809地址,不選中液晶 MOV A,R4 ;選擇通道0 MOVX @DPTR,A ;啟動(dòng)0809 JB P3.3,$ ;判斷是否轉(zhuǎn)換完成 MOVX A,@DPTR ;讀出數(shù)據(jù);**************************顯示數(shù)字量處理************************************** MOV B,#51 DIV AB ADD A,#30H MOV 30H,A LCALL TURN MOV 32H,A MOV A,71H ADD A,70H MOV B,A LCALL TURN MOV 33H,A MOV A,71H ADD A,70H MOV B,A LCALL TURN MOV 34H,A;****************************************************************************** MOV TH0,#63H ;重裝定時(shí)器初值 MOV TL0,#18H POP ACC RETI;******************************************************************************;***************************外部中斷0服務(wù)程序**********************************BINT0:JNB P1.1,LL1 SJMP L1LL1: MOV 20H,#00H SETB 20H.0 SJMP RTL1:JNB P1.3,LL2 SJMP L2LL2: MOV 20H,#00H SETB 20H.1 SJMP RTL2: JNB P1.5,LL3 SJMP RTLL3: MOV 20H,#00H SETB 20H.2RT: RETI;******************************************************************************;******************************************二進(jìn)制轉(zhuǎn)換十進(jìn)制********************TURN: MOV A,#10 MUL AB MOV 70H,B MOV B,#51 DIV AB MOV 72H,A MOV 71H,B MOV A,#5 MOV B,70H MUL AB ADD A,72H ADD A,#30H RET;********************************************************************************;*********************************報(bào)警(設(shè)置大于4.8v則二極管亮)*******************************************LED: MOV A,30H CJNE A,#34H,LOOP1 ;判斷是否等于4 SJMP LOOP2LOOP1:JNC LOOP4 CLR P1.0 SJMP LOOP5LOOP2: MOV A,32H CJNE A,#38H,LOOP3 ;判斷是否等于8 SJMP LOOP4LOOP3: JNC LOOP4 CLR P1.0 SJMP LOOP5LOOP4: SETB P1.0LOOP5: RET;***********************************************************************************;***********************************LCD顯示子程序***********************************DISPLY: MOV COM,#8AH ;LCD寫數(shù)據(jù)地址 LCALL PR1 MOV R1,#06H MOV R0,#30HL: MOV DAT,@R0 ;顯示0.000v LCALL PR2 INC R0 DJNZ R1,L RET;*************************************************************************************;***************************** 逐字依次輸入顯示字符程序*****************************N1:MOV COM,#01H ;清屏 LCALL PR1 MOV COM,#06H ; 設(shè)置輸入方式 LCALL PR1 MOV COM,#080H ;LCD寫數(shù)據(jù)首地址 LCALL PR1 MOV DPTR,#TAB MOV R2,#10 MOV R3,#00HWRIN: MOV A,R3 MOVC A,@A+DPTR ;顯示Voltage = MOV DAT,A LCALL PR2 INC R3 DJNZ R2,WRIN RET TAB: DB "Voltage = ";***************************************************************************************;************************************自定義字符庫(kù)***************************************MZ: MOV COM,#40H ;;CGRAM首地址 LCALL PR1 MOV R1,#24 MOV DPTR,#TABLE LOOP7:CLR A MOVC A,@A+DPTR MOV DAT,A LCALL PR2 INC DPTR DJNZ R1,LOOP7 RETTABLE: DB 00H,1FH,04H,04H,1FH,04H,1FH,00H DB 1EH,0AH,0FH,01H,0FH,03H,01H,00H DB 0CH,1FH,0DH,0BH,09H,08H,0FH,00H;*************************************************************************************。




![[精編]吳教人[]13號(hào)](/Images/s.gif)







