基于单片机的数字电子钟单片机课程设计内容摘要:
14 RET NOT_CLOCK0: MOV A,MODE CJNE A,8,NOT_CLOCK1。 MODE2 为 1 时,不为模式 8,判断是否为模式 9 LCALL CONVERT_BCD3。 为模式 8,调用 display—— clock 程序 LCALL CLOCK_DISPLAY RET NOT_CLOCK1: CJNE A,9,NOT_CLOCK2。 不为模式 9,显示 mode2=0 下的 display程序 LCALL CONVERT_BCD3。 为模式 9,调用 clockdisplay 程序 LCALL CLOCK_DISPLAY RET NOT_CLOCK2: LCALL CONVERT_BCD2。 此时为 mode2 模式为 1 的,选择闪烁模式,对 DISPLAY 程序经行选择 LCALL CHOOSE_DISPLAY2。 模式 0, display 程序 RET。 显示模式选择函 数 CHOOSE_DISPLAY1: MOV A,MODE CJNE A,0,CH_1 LCALL DISPLAY1。 模式为 0,调用正常的显示程序 RET CH_1: LCALL DISPLAY1_2 RET CHOOSE_DISPLAY2: MOV A,MODE CJNE A,0,CH_2 LCALL DISPLAY2。 模式为 0,调用正常的显示程序 RET CH_2: LCALL DISPLAY2_2 RET。 中断服务程序。 中断服务程序 T0_INT: PUSH ACC。 保护现场开始,保护 A 累加器 PUSH PSW。 保护程序状态字存储器 基于单片机的数字电子钟 LKH 11/27/2020 15 PUSH DPL。 数据地址指针(低 8 位) PUSH DPH SETB RS1。 选择 2 区工作存储单元 MOV TL0,(655365000)MOD 256。 恢复时间常数 MOV TH0,(655365000)/256 LCALL KEY_SCAN INC TIMER_COUNT MOV A,TIMER_COUNT CJNE A,100,T0_INT1。 如果 A 不等于 100 ,跳到TO_INT1 MOV TIMER_COUNT,0 CPL FLASH_FLAG。 每 5MS*100=500MS取反闪烁标志位。 CPL。 LCALL FLASH。 CPL:Converse Position Logical 位取反 JNB FLASH_FLAG,T0_INT1。 为 0 跳到 TO_INT1 INC S_MEM MOV A,S_MEM CJNE A,60,T0_INT1。 秒位 MOV S_MEM,0 INC M_MEM MOV A,M_MEM CJNE A,60,T0_INT1。 分位 MOV M_MEM,0 INC H_MEM MOV A,H_MEM CJNE A,24,T0_INT1 MOV H_MEM,0。 时位 INC D_MEM MOV A,D_MEM CJNE A,32,T0_INT1 MOV D_MEM,1。 天 INC MON_MEM MOV A,MON_MEM CJNE A,13,T0_INT1 MOV MON_MEM,1。 月 INC Y_MEM_1 基于单片机的数字电子钟 LKH 11/27/2020 16 MOV A,Y_MEM_1 CJNE A,100,T0_INT1 MOV Y_MEM_1,0。 低位年 INC Y_MEM_2 MOV A,Y_MEM_2 CJNE A,100,T0_INT1 MOV Y_MEM_2,0。 高位年 T0_INT1: POP DPH POP DPL POP PSW POP ACC RETI。 出栈。 闹钟 显示 及转码 程序。 闹钟显示程序。 时钟的显示函数 CLOCK_DISPLAY:。 SETB CLOCK_FLASH MOV P0,11111111B SETB NOP NOP CPL MOV A,SCAN_COUNT5 ADD A,ACC MOV R1,A LCALL FLASH3。 在 flash 函数中选择调用哪个表。 MOV DPTR,LED_SCAN_TABLE MOV A,R1 MOVC A,@A+DPTR SETB。 位锁存 MOV P0,A CLR MOV A,SCAN_COUNT5 ADD A,ACC INC A MOVC A,@A+DPTR MOV R0,A MOV A,@R0 SETB 基于单片机的数字电子钟 LKH 11/27/2020 17 MOV P0,A。 LCALL DELAY_1S。 调试用 CLR。 DB 3FH,06H,5BH,04FH,66H,6DH,7DH,07H。 DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H,0FFH INC SCAN_COUNT5 MOV A,SCAN_COUNT5 CJNE A,4,DONE5 MOV SCAN_COUNT5,0 DONE5: RET。 闹钟闪烁及模式选择程序。 时钟闪烁模式选择程序 FLASH3: JNB FLASH_FLAG,F31。 若标志位位为 0,显示闪烁程序,否则显示正常模式。 LCALL LIGHT_OFF LJMP FLASH3 F31: MOV A,MODE CJNE A,8,F32 LJMP H_F_CLOCK。 模式 8,校准小时 F32:。 CJNE A,0,F34。 模式为 0,则返回 ? LJMP M_F_CLOCK。 模式 9,校准分钟 F34: RET。 闪烁程序 H_F_CLOCK: MOV DPTR,LED_SCAN_TABLE_CLOCK_1 RET M_F_CLOCK: MOV DPTR,LED_SCAN_TABLE_CLOCK_2 RET。 闹钟 BCD 转码程序。 为闹钟做 BCD 转码 CONVERT_BCD3:。 第一个数码管 MOV R3,H_MEM_CLOCK MOV R2,0 LCALL BTID MOV A,R6 ANL A,0FH。 保留低四位 基于单片机的数字电子钟 LKH 11/27/2020 18 MOV DPTR,LED_CODE MOVC A,@A+DPTR MOV LED1_CLOCK_HOUR,A。 第二个数码管 MOV A,R6 ANL A,0F0H。 保留高四位 SWAP A MOV DPTR,LED_CODE MOVC A,@A+DPTR MOV LED2_CLOCK_HOUR,A。 第三个数码管 MOV R3,M_MEM_CLOCK MOV R2,0 LCALL BTID MOV A,R6 ANL A,0FH MOV DPTR,LED_CODE MOVC A,@A+DPTR MOV LED1_CLOCK_MIN,A。 第四个数码管 MOV A,R6 ANL A,0F0H SWAP A。 MOV DPTR,LED_CODE MOVC A,@A+DPTR MOV LED2_CLOCK_MIN,A RET。 检测闹钟程序。 检测是否到达闹钟时间 CHECK_TIME: MOV A,H_MEM_CLOCK CJNE A,H_MEM,OVER2 CHECK_NEXT: MOV A,M_MEM_CLOCK CJNE A,M_MEM,OVER2 MOV A,S_MEM。 为了防止整一分钟都会叫,只在一秒的时候判断一次 CJNE A,0,OVER2 LCALL CLOCK_SOUND RET OVER2: RET。 显示时分秒程序。 时分秒显示程序 基于单片机的数字电子钟 LKH 11/27/2020 19。 显示时分秒程序 DISPLAY1: MOV P0,11111111B SETB NOP NOP。 MOV P0,0FFH CPL MOV A,SCAN_COUNT。 之 前 定 义 过 :SCAN_COUNT EQU 7BH ADD A,ACC MOV DPTR,LED_SCAN_TABLE MOVC A,@A+DPTR SETB。 位锁存 MOV P0,A CLR MOV A,SCAN_COUNT ADD A,ACC INC A MOVC A,@A+DPTR MOV R0,A MOV A,@R0 MOV R0,SCAN_COUNT DOT: CJNE R0,2,NOACT1 ACT: SETB ORL A,80H MOV P0,A SETB。 调试用 CLR SJMP GO_ON NOACT1: CJNE R0,4,NOACT2 SJMP ACT NOACT2: SETB MOV P0,A CLR。 DB 3FH,06H,5BH,04FH,66H,6DH,7DH,07H。 DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H,0FFH GO_ON: INC SCAN_COUNT MOV A,SCAN_COUNT CJNE A,6,DONE 基于单片机的数字电子钟 LKH 11/27/2020 20 MOV SCAN_COUNT,0 DONE: RET。 时分秒 BCD 程序。 CONVERT_BCD1:。 第一个数码管 MOV R3,S_MEM MOV R2,0 LCALL BTID MOV A,R6 ANL A,0FH。 保留低四位 MOV DPTR,LED_CODE MOVC。基于单片机的数字电子钟单片机课程设计
相关推荐
本设计采用了自定下下的设计流程即在编制一个程序时先考虑程序的总体结构而忽略一些细节问题然后逐步的一步一步的细化直至用程序语言完全描述每一个细节为止主要流程第一首《精忠报国》第二首《月亮代表我的心》第三首《看我七十二变》第四首《同一首歌》第五首《大海》第六首《两只蝴蝶》第七首 第八首歌《彩云追月》第九首 第十首 结论
要的电路和软件开发成本 ; 温度传感器采用的总线负载能力如何,能否满足多点测温的需要 ; 占用 MCU 的 I/O 引脚数情况如何,因为 MCU 的系统资源非常宝贵,输入通道有限。 多点温度测量时,如果测量的点数超过了输入通道时,就要添加多路复用器,这将增加成本和开发时间,应尽量节约 ; 与 MCU 的通信协议应尽量简单,温度测量的软件开发难度、成本要尽量小。 目前在数字温度传感器中采用串行总线
被控对象状态的测试和对控制条件的监察也是不可缺少的环节。 传感器是实现测量与控制的首要环节,是测控系统的关键部件,如果没有传感器对原始被测信号进行准确可靠的捕捉和转换,一切准确的测量和控制都将无法实现。 工业生产过程的自动化测量和控制,几乎主要依靠各种传感器来检测和控制生产过程中的各种参量,使设备和系统正常运行在最佳状态,从而保证生产的高效率和高质量。 温度传感器 采用 DS18B20,
应用技术 电子技术和微型计算机的迅速发展,促进微型计算机测量和控制技术的迅速发展和广泛应用,单片机(单片微型计算机)的应用已经渗透到国民经济的各个部门和领域,它起到了越来越重要的作用。 单片微型计算机就是将中央处理单元、存储器、定时 /计数器和多种接口都集成到一块集成电路芯片上的微型计算机。 因此一块芯片就构成了一台计算机。 它已成为工业控制领域、智能仪器仪表、尖端武器
要扫描速度大于 24Hz,由于扫描 的速度 很快, 而 人眼 睛 的视觉有暂留效应,就可以看到显示的是完整的图形或文字。 C1L E DC3L E DC5L E DC7L E DC2L E DC4L E DC6L E DC8L E DC9L E DC 1 1L E DC 1 3L E DC 1 5L E DC 1 0L E DC 1 2L E DC 1 4L E DC 1 6L E D行 1行
lcd1602 液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就 有显示,这样即可以显示出图形。 液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、 PDA 移动通信工具等众多领域。 液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。 除了黑白显示外