版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、/*/ ; K2=P3.3 K4=P3.5;* 1602LCD显示秒表 *;* K2 - 控制按键 *;* 按一下计时,再按一下暂停计时 *;* ;* K4 - 清零按键: *;* 在任何状态下,按一下K4,均可清零。 *;* *;-;晶振 11.0592M;定时器0,方式1;计时中断程序每隔10ms中断一次;- TLOW EQU 0CH ;定时器初值 THIGH EQU 0DCH HOUR EQU 30H MIN EQU 31H SEC EQU 32H SEC0 EQU 33H ;10ms计数值 KEY_D EQU 34H ;为键当前的端口状况 KEY_S EQU 35H ;为键上次的端口状
2、况 X EQU 36H ;LCD 地址变量 KEY_C EQU 37H ;键计数单元 ;K1 EQU P3.2 K2 EQU P3.3 ;K3 EQU P3.4 K4 EQU P3.5 BEEP EQU P2.4 RS EQU P3.5 ;LCD控制端口定义 RW EQU P3.6 EN EQU P3.7;- ORG 0000H JMP START ORG 0BH JMP T0_INT;-START: MOV R3,#00H MOV SP,#60H CLR EN CALL SET_LCD CALL INIT ;初始化变量 MOV KEY_S,#01H CALL INIT_TIMER ;初始化定
3、时器 ; CALL MENULOOP: CALL CONV ;时间计数处理 CALL SKEYMOV KEY_S,KEY_D JZ XPMOV A, KEY_S JB ACC.0,XP CLR A MOV B,A INC R3 MOV A,R3 MOV B,#2 DIV AB MOV A,BCALL BZ JZ XPP SETB TR0 ;启动中断 MOV DPTR,#MADJ ;显示执行信息 CALL P_KEY SJMP XP XPP: CLR TR0 MOV DPTR,#MADJ1 CALL P_KEY XP: JB K4,LOOP ;判清零键是否按? MOV R3,#00H CALL
4、BZ JMP START;-P_KEY: MOV A,#1 ;第一行显示 CALL LCD_PRINT RET ;-SKEY: CLR A ;判是否有键按下子程序 MOV KEY_D,A MOV C,K2 RLC A ORL KEY_D,A MOV A,KEY_D XRL A,KEY_S ;有键按下,A 中内容不为零 RET;-;LMESS1: DB ,0 ;LCD 第一行显示消息;LMESS2: DB TIME ,0 ;LCD 第二行显示消息;-INIT: CLR A ;初始化控制变量 MOV SEC0,A MOV SEC,A MOV MIN,A MOV HOUR,A MOV KEY_D,A
5、 MOV KEY_S,A SETB BEEP CLR TR0 RET;-INIT_TIMER: ;初始化定时器接口 MOV TMOD,#01H ;设置定时器0 工作模式为模式1 MOV IE, #82H ;启用定时器0 中断产生 MOV TL0,#TLOW MOV TH0,#THIGH RET;-T0_INT: PUSH ACC ;定时器0计时中断程序 MOV TL0,#TLOW MOV TH0,#THIGH INC SEC0 MOV A,SEC0 ;10ms 计数值加1 CJNE A,#100,TT MOV SEC0,#0 INC SEC ;秒加1 MOV A,SEC CJNE A,#60,
6、TT INC MIN ;分加1 MOV SEC,#0 MOV A,MIN CJNE A,#60,TT INC HOUR ;时加1 MOV MIN,#0 MOV A,HOUR CJNE A,#24,TT MOV SEC0,#0 MOV SEC,#0 ;秒、分、时单元清0 MOV MIN,#0 MOV HOUR,#0 TT: POP ACC RETI;-; 在第二行显示数字;-SHOW_DIG2: ;在 LCD 的第二行显示数字 MOV B,#10 ;设置被除数 DIV AB ;结果A存商数,B存余数 ADD A,#30H ;A为十位数,转换为字符 PUSH B ;B放入堆栈暂存 MOV B,X
7、;设置 LCD 显示的位置 CALL LCDP2 ;由 LCD 显示出来 POP B ; MOV A,B ;B为个位数 ADD A,#30H ;转换为字符 INC X ;LCD 显示位置加1 MOV B,X ;设置 LCD 显示的位置 CALL LCDP2 ;由 LCD 显示出来 RET;-;转换为 ASCII 码并显示;-CONV: MOV A,HOUR ;加载小时数据 MOV X,#5 ;设置位置 CALL SHOW_DIG2 ;显示数据 INC X ; MOV A,#: ; MOV B,X ; CALL LCDP2 ; MOV A,MIN ;加载分钟数据 INC X ;设置位置 CALL
8、 SHOW_DIG2 ;显示数据 INC X ; MOV A,#: ; MOV B,X ; CALL LCDP2 ; MOV A,SEC ;加载秒数数据 INC X ;设置位置 CALL SHOW_DIG2 ;显示数据 INC X ; MOV A,#: ; MOV B,X ; CALL LCDP2 ; MOV A,SEC0 ;加载秒数数据 INC X ;设置位置 CALL SHOW_DIG2 RET;-; LCD CONTROL;-SET_LCD: ;对 LCD 做初始化设置及测试 CLR EN CALL INIT_LCD ;初始化 LCD MOV R5,#10 CALL DELAY MOV
9、DPTR,#MMENU ;指针指到显示消息1 MOV A,#1 ;显示在第一行 CALL LCD_PRINT MOV DPTR,#SLF ;指针指到显示消息2 MOV A,#2 ;显示在第二行 CALL LCD_PRINT RET;-INIT_LCD1: ;LCD 控制指令初始化 MOV A,#38H ;双列显示,字形5*7点阵 CALL WCOM ; call delay1 MOV A,#0CH ;开显示,显示光标,光标不闪烁 CALL WCOM ; call delay1 MOV A,#01H ;清除 LCD 显示屏 CALL WCOM ; call delay1 RET;-ENABLE:
10、 ;写指令 CLR RS ;RS=L,RW=L,E=高脉冲 CLR RW ;D0-D7=指令码 SETB EN ACALL DELAY1 CLR EN RET;-LCD_PRINT: ;在LCD的第一行或第二行显示字符 CJNE A,#1,LINE2 ;判断是否为第一行 LINE1: MOV A,#80H ;设置 LCD 的第一行地址 CALL WCOM ;写入命令 CALL CLR_LINE ;清除该行字符数据 MOV A,#80H ;设置 LCD 的第一行地址 CALL WCOM ;写入命令 JMP FILL LINE2: MOV A,#0C0H ;设置 LCD 的第二行地址 CALL W
11、COM ;写入命令 CALL CLR_LINE ;清除该行字符数据 MOV A,#0C0H ;设置 LCD 的第二行地址 CALL WCOM FILL: CLR A ;填入字符 MOVC A,A+DPTR ;由消息区取出字符 CJNE A,#0,LC1 ;判断是否为结束码 RET LC1: CALL WDATA ;写入数据 INC DPTR ;指针加1 JMP FILL ;继续填入字符 RET;-CLR_LINE: ;清除该行 LCD 的字符 MOV R0,#16 CL1: MOV A,# CALL WDATA DJNZ R0,CL1 RET;- DE: MOV R7,#250 ;延时500微
12、秒 DJNZ R7,$ RET;- EN1: CLR RW SETB EN ;短脉冲产生启用信号 CALL DE CLR EN CALL DE RET;-INIT_LCD: ;8位I/O控制 LCD 接口初始化 MOV P1,#38H ;双列显示,字形5*7点阵 call enable call delay1 MOV P1,#38H ;双列显示,字形5*7点阵 call enable call delay1 MOV P1,#38H ;双列显示,字形5*7点阵 call enable call delay1 CALL INIT_LCD1 RET;-WCOM: ;以8位控制方式将命令写至LCD M
13、OV P1,A ;写入命令 call enable RET;-WDATA: ;以8位控制方式将数据写至LCD MOV P1,A ;写入数据 SETB RS ;设置写入数据 CALL EN1 RET;-;第二行显示字符;-LCDP2: ;在LCD的第二行显示字符 PUSH ACC ; MOV A,B ;设置显示地址 ADD A,#0C0H ;设置LCD的第二行地址 CALL WCOM ;写入命令 POP ACC ;由堆栈取出A CALL WDATA ;写入数据 RET;-DELAY: ;延时10MS MOV R6,#50 D1: MOV R7,#100 DJNZ R7,$ DJNZ R6,D1 DJNZ R5,DELAY RET;-DELAY1: ;延时5MS MOV R6,#25 D2: MOV R7,#100 DJNZ R7,$ DJNZ R6,D2 RET;-BZ: ;蜂鸣器 MOV R6,#100 B1: CALL DEX CPL BEEP DJNZ R6,B1 MOV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川成都市温江区2026-2027学年八年级上学期期中地理试题(含答案)
- 2026年中级消防设施操作员题库及参考答案
- 2026年制作考试题库带答案
- 2026年知识产权应知应会知识考试题库带答案
- 2026年玉米生产测试题库(含答案)
- 2026年工业机器人运维员(中级工)理论考试题库及答案
- 2026年架子工安全模拟试卷(含答案)
- 2026年指挥证考试题库带答案
- 2026年法律基础知识必考题库及答案完整版
- 2026年专利证考试题库(含答案)
- 2026年中石化笔试题库(含答案)
- 2026年厨师人员考试模拟试卷(含答案)
- 小学美术四年级社团课教学设计《孵蛋的大白鹅》综合材料创作实践
- 高中美术必修《中国书法和中国画的密切关系》教学设计
- 工程决算编制办法说明
- 2026秋苏教版八年级上册生物全册每课知识点清单
- 2026秋沪科版(五四学制)八年级物理上册全册每课知识点清单
- 2026中银数字服务(南宁)有限公司招聘笔试模拟试题及答案详解
- RoHS 3.0 指令 2024-1020-EU 中文版(完整译文 + 新旧对比 + 2027 年实施时间表)
- 既有线施工安全注意事项培训课件
- 2026河南省豫地硅材料有限公司招聘22人笔试历年参考题库附带答案详解
评论
0/150
提交评论