长江大学电信学院单片机课程设计.docx

上传人:scccc 文档编号:13011582 上传时间:2021-12-10 格式:DOCX 页数:17 大小:12.69KB
返回 下载 相关 举报
长江大学电信学院单片机课程设计.docx_第1页
第1页 / 共17页
长江大学电信学院单片机课程设计.docx_第2页
第2页 / 共17页
长江大学电信学院单片机课程设计.docx_第3页
第3页 / 共17页
长江大学电信学院单片机课程设计.docx_第4页
第4页 / 共17页
长江大学电信学院单片机课程设计.docx_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《长江大学电信学院单片机课程设计.docx》由会员分享,可在线阅读,更多相关《长江大学电信学院单片机课程设计.docx(17页珍藏版)》请在三一文库上搜索。

1、.长江大学电信学院单片机课程设计实例一COM EQU 50H ; 指令寄存器DAT EQU 51H ; 数据寄存器RS EQU P2.1 ; LCD寄存器选择信号RW EQU P2.2 ; LCD读/写选择信号E EQU P2.3 ; LCD使能信号 ORG 0000H LJMP MAIN ;主程序入口ORG 000BHLJMP BT0 ;T0中断入口ORG 0003HLJMP BINT0 ORG 0030H ;主程序,初始化MAIN: MOV SP,#60H CLR P1.0 MOV R4,#00H ;默认通道0 LCALL INT ;调LCD间接控制方式下的初始化子程序 LCALL MZ

2、;调用字符库 MOV 30H,#30H ;8051片内30H-35H为显示缓冲区,用于存放A/D转换数据 MOV 31H,#0A5H ;初始数据设为0.000v MOV 32H,#30H MOV 33H,#30H MOV 34H,#30H MOV 35H,#76H MOV R7,#30H LCALL N1 ;显示 Voltage ;*第二行显示控制* MOV COM,#0CDH ;设置DDRAM地址 LCALL PR1 MOV DPTR,#ZIFU MOV R1,#4 LCALL LOOP7 SJMP LOOPZIFU:DB 00H,01H,02H,20H;*;* 定时器初始化程序 *LOOP

3、:MOV TMOD,#0 MOV TH0,#63H ;定时5ms MOV TL0,#18H SETB EASETB ET0SETB EX0SETB IT0 SETB TR0;* LP:MOV R7,#30H ;显示缓冲区首地址 LCALL LED ;报警LCALL KEY;查询按键LCALL DISPLY SJMP LP ;循环显示;*按键处理*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: R

4、ET;*;* 定时器中断服务程序 *BT0:PUSH ACC MOV DPTR,#0F6FFH ;0809地址,不选中液晶 MOV A,R4 ;选择通道0 MOVX DPTR,A ;启动0809 JB P3.3,$ ;判断是否转换完成 MOVX A,DPTR ;读出数据;*显示数字量处理* 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

5、,A;* MOV TH0,#63H ;重装定时器初值 MOV TL0,#18H POP ACC RETI;*;*外部中断0服务程序*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;*;*二进制转换十进制*TURN: MOV A,#10 MUL AB MOV 70H,B MOV B,#

6、51 DIV AB MOV 72H,A MOV 71H,B MOV A,#5 MOV B,70H MUL AB ADD A,72H ADD A,#30H RET;*;*报警(设置大于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:

7、 RET;*;*LCD显示子程序*DISPLY: MOV COM,#8AH;LCD写数据地址 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 ; 设置输入方式 LCALL PR1 MOV COM,#080H ;LCD写数据首地址 LCALL PR1 MOV DPTR,#TAB MOV R2,#10 MOV R3,#00HWRIN: MOV A,R3 M

8、OVC A,A+DPTR ;显示Voltage = MOV DAT,A LCALL PR2 INC R3 DJNZ R2,WRIN RET TAB: DB "Voltage = "*;*自定义字符库*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,0F

9、H,01H,0FH,03H,01H,00H DB 0CH,1FH,0DH,0BH,09H,08H,0FH,00H;*;* LCD初始化子程序*INT:LCALL DELAY ; 调延时子程序MOV COM,#38H ; 设置工作方式 LCALL PR1MOV COM,#01H ; 清屏LCALL PR1MOV COM,#06H ; 设置输入方式LCALL PR1MOV COM,#0CH ; 设置显示方式LCALL PR1RETDELAY:MOV R6,#0FH ; 延时子程序MOV R7,#00HDELAY1: NOPDJNZ R7,DELAY1DJNZ R6,DELAY1RET;*;*LCD

10、写指令代码子程序*PR1: PUSH ACC CLR RS ; RS=0 SETB RW ; R/W=1PR11:MOV P0,#0FFH; P0置位, 准备读 SETB E ; E=1 LCALL DELAY NOP MOV A,P0 ;读p0口状态 CLR E JB ACC.7,PR11;读忙信号BF=1? CLR RW; R/W=0 MOV P0,COM ;写状态命令 SETB E ; E=1 CLR E ; E=0 POP ACC RET;*;*LCD写显示数据子程序*PR2:PUSH ACC CLR RS ; RS=0 SETB RW; R/W=1PR21:MOV P0,#0FFH

11、SETB E ; E=1 LCALL DELAY MOV A,P0 ;读p0口状态 CLR E ; E=0 JB ACC.7,PR21 ;读忙信号BF=1? SETB RS ;RS=1 CLR RW ;R/W=0 MOV P0,DAT;写数据 SETB E ; E=1 CLR E; E=0 POP ACC RET;* END实例二COM EQU 50HDAT EQU 51HRS EQU P2.1RW EQU P2.2E EQU P2.3ORG 0000HLJMP MAINORG 000BHLJMP BT0;ORG 0013H;LJMP INT1ORG 0030HMAIN: MOV SP,#60

12、H LCALL INT MOV 30H,#30H MOV 31H,#0A5H MOV 32H,#30H MOV 33H,#30H MOV 34H,#30H MOV R7,#30H LCALL N1 ;SETB EA ;SETB EX1 ;SETB IT1 ;MOV DPTR,#0FEFF ;MOV A,#00H ;MOVX DPTR,A;*定时器初始化程序*;*LP: MOV R7,#30H LCALL DISPLAYSJMP LP;*定时器中断服务子程序*BT0:RETI;*DISPLAY: MOV COM,#8AH LCALL PR1 MOV R1,#05H MOV R0,#30HL: M

13、OV DAT,R0 LCALL PR2 INC R0 DJNZ R1,L RETN1: MOV COM,#01H LCALL PR1MOV COM,#06HLCALL PR1MOV COM ,#80HLCALL PR1MOV DPTR,#TABMOV R2,#10MOV R3,#00HWRIN: MOV A,R3 MOVC A,A+DPTR MOV DAT,A LCALL PR2 INC R3 DJNZ R2,WRIN RETTAB: DB "Voltage = "INT: LCALL DELAY MOV COM,#38H LCALL PR1 MOV COM,#01H LC

14、ALL PR1 MOV COM,#06H LCALL PR1 MOV COM,#0EH LCALL PR1 RETDELAY: MOV R6,#0FH MOV R7,#00HDELAY1: NOP DJNZ R7,DELAY1 DJNZ R6,DELAY1 RETPR0: PUSH ACC MOV P0,#0FFH CLR RS SETB RW SETB E LCALL DELAY MOV COM,P0 CLR E POP ACC RETPR1: PUSH ACC CLR RS SETB RWPR11: MOV P0,#0FFH SETB E LCALL DELAY NOP MOV A,P0

15、CLR E JB ACC.7,PR11 CLR RW MOV P0,COM SETB E CLR E POP ACC RETPR2: PUSH ACC CLR RS SETB RWPR21: MOV P0,#0FFH SETB E LCALL DELAY MOV A,P0 CLR E JB ACC.7,PR21 SETB RS CLR RW MOV P0,DAT SETB E CLR E POP ACC RETPR3: PUSH ACC CLR RS SETB RWPR31: MOV P0,#0FFH SETB E LCALL DELAY MOV A,P0 CLR E JB ACC.7,PR31 SETB RS SETB RW MOV P0,#0FFH SETB E MOV DAT,P0 CLR E POP ACC RET END定时器 *;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1