收藏 分销(赏)

论基于单片机的作息时间控制钟系统的设计.doc

上传人:快乐****生活 文档编号:4459076 上传时间:2024-09-23 格式:DOC 页数:54 大小:226.50KB
下载 相关 举报
论基于单片机的作息时间控制钟系统的设计.doc_第1页
第1页 / 共54页
论基于单片机的作息时间控制钟系统的设计.doc_第2页
第2页 / 共54页
点击查看更多>>
资源描述
论基于单片机的作息时间控制钟系统的设计 54 2020年4月19日 文档仅供参考 课程设计任务书 分院 信息科学与工程学院 专业 自动化 学生姓名 王利伟 学号 设计题目 基于单片机的作息时间控制钟系统的设计 ——软件设计 课程设计内容及要求: 内容: 1设计电路,选择器件 2 利用Protel画原理图 3 编程,调试 4 焊接电路,调试 要求: 1.系统时间设计,设计以24小时为周期的时间钟。 2.LED数码管显示时间。 3.设计键盘,经过键盘修改时间、设定闹铃。 进度及安排:(10天) 1.查资料(2天) 2.设计电路画电路图(2天) 3.编程与调试(2天) 4.焊接硬件电路并调试(2天) 5.写报告(2天) 指导教师(签字): 年 月 日 分院院长(签字): 年 月 日 摘 要 单片机作息时间控制系统设计的目的和意义: 随着计算机技术的发展和在控制系统中的广泛应用,以及设备向小型化、智能化发展,作为高新技术之一的单片机以其体积小、功能强、价格低廉、使用灵活等优势,显示出了很强的生命力。进入21世纪以来,开发推出单片机的公司很多,各种高性能单片机芯片市场也异常活跃,新技术的不断采用,更加使单片机的种类、性能以及应用领域不断扩大和提高。因其功耗低,超高型,低成本,功能完整,在国内越来越受到用户的重视和广泛使用。 随着科技的进步和技术不断的提升。一块大而复杂的模拟电路花费了您巨大的精力,繁多的元器件增加了您的成本。而现在,只需要一块几厘米见方的单片机,写入简单的程序,就能够使您以前的电路简单很多。相信您在使用并掌握了单片机技术后,不论在您今后开发或是工作上, 一定会带来意想不到的惊喜。 以AT89S52为核心控制器件的作息时间控制钟,由键盘、声音输出模块、电源转换模块和存储模块四部分组成。它利用AT89S52的定时/计数器来计算时间,并用存储器记录数据,保证了系统的可靠性。AT89S52单片机是整个设计的核心控制器件,根据从键盘接受的数据控制整个系统的工作流程。整体性好,人性化强、可靠性高,实现了对时间控制的智能化,摆脱了传统由人来控制时间的长短的不便,是现代学校必不可少的设备。 本次校园作息时间控制系统主要用于学校,对一些以24小时为周期的开关量进行自动控制。如上下课打铃及扩音设备的开与关。采用AT89S52单片机来实现对上述开关量的控制,利用24C02芯片来存储数据,设有六位数码管、能够实时显示时间、系统还设有输入键盘,用以修改实时时钟,体现了系统简单、工作稳定可靠、价廉、控制时间精确及系统体积小等优点。 关键词:作息时间控制; AT89S52; 24C02 目 录 2.4 系统整体电路图 4 3.3.1 系统主程序 6 3.3.2 系统数据读写子程序 10 3.3.3 显示子程序 14 3.3.4 报警扫描子程序 19 3.3.5 键盘扫描子程序 20 3.3.6 设置时钟子程序 22 3.3.7 T1定时器中断子程序 25 28 5结论 29 4 0 31 1 绪论 1.1 背景介绍 随着计算机技术的发展和在控制系统中的广泛应用,以及设备向小型化、智能化发展,作为高新技术之一的单片机以其体积小、功能强、价格低廉、使用灵活等优势,显示出了很强的生命力。进入21世纪以来,开发推出单片机的公司很多,各种高性能单片机芯片市场也异常活跃,新技术的不断采用,更加使单片机的种类、性能以及应用领域不断扩大和提高。16位单片机的问世,使得单片机的科技含量及应用跃上一个新的台阶。因其功耗低,超高型,低成本,功能完整,在国内越来越受到用户的重视和广泛使用。 本设计是一个具有报时功能的作息时间控制钟。它利用AT89S52单片机的定时器计时,进行时间计算;在进行时间计算,分每加一时,都与规定的作息时间比较,如果相等则进行相应的控制或动作。由键盘和显示部分组成,系统扩展八个按键用于报时及校正时间。现代机关企业,特别是学校要求对时间加以控制,要按时打铃及播放广播,以保证学习与工作的正常运行。本设计实现了这些功能,给学校及其它机关企业带来方便,整体性好,人性化强、可靠性高,实现了对时间控制的智能化。 1.2 作息时间控制钟概述 科技的进步需要技术不断的提升。一块大而复杂的模拟电路花费了您巨大的精力,繁多的元器件增加了您的成本。而现在,只需要一块几厘米见方的单片机,写入简单的程序,就能够使您以前的电路简单很多。相信您在使用并掌握了单片机技术后,不论在您今后开发或是工作上, 一定会带来意想不到的惊喜。该系统以AT89S52为主体的设计,整体性好,人性化强、可靠性高,实现了对时间控制的智能化,摆脱了传统由人来控制时间的长短的不便,是现代学校必不可少的设备。 2 硬件介绍 2.1 硬件仿真环境介绍: Protues软件是英国Labcenter electronics公司出版的EDA工具软件。它不但具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是当前最好的仿真单片机及外围器件的工具。虽然当前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是当前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/DsPIC33、AVR、ARM、8086和MSP430等, 即将增加Cortex和DSP系列处理器,并持续增加其它系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。 支持当前的主流单片机,如51系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列、68000系列等。   1)提供软件调试功能   2)提供丰富的外围接口器件及其仿真   RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。这样很接近实际。在训练学生时,能够选择不同的方案,这样更利于培养学生。   3) 提供丰富的虚拟仪器   利用虚拟仪器在仿真过程中能够测量外围电路的特性,培养学生实际硬件的调试能力。   4) 具有强大的原理图绘制功能 2.2 系统整体设计 根据设计要求画出系统框图,如图1.1所示: 上拉电阻 单片机 数码管 电源 驱动电路 时钟 存储器 复位电路 响铃 键盘电路 图2.1系统总体框图 该系统是由微处理器、存储器、数码显示部分以及键盘输入部分所组成。该控制系统用LED数码管显示时、分、秒时间,能够显示实时时钟,显示闹铃时间,尽量减少时间积累误差,具有秒闪功能。显示电路采用了7407芯片来完成驱的功能,利用上拉电阻共同驱动数码管显示时间。 系统采用AT89S52作为处理器,利用24C02芯片作为数据存储器,打铃时间点数据存储于非易失存储器存储24C02中,防止掉电丢失数据;能逐个检查、修改、删除已设置的打铃时间点和增加打铃时间点。 系统还设有输入键盘,用以校正实时时钟,设定闹铃时间,键盘设计简单、易于操作。 输出驱动电路部分,利用220V电源为系统提供供电,利用继电器驱动,便于控制220V的电铃。同时利用直流——交流转换模块为整个系统提供电源,更方便实际应用。 2.3 控制钟硬件设计 按系统框图分五个部分设计如下图2.1。 键盘 部分 显示 部分 单片机 控制部分 响铃部分 图2.2 硬件系统框图 系统以单片机为基本核心,利用24C02芯片能够记录40个闹铃时间,而且能够长时间记录时间,不会造成时间混乱,能够满足正常的作息时间设置,简单实用,能够满足正常的生活。 根据学校作息时间,能够得到需要打铃的时间如下表所示: 表2.1 作息时间控制表 时间 事件 动作 8:00 第一节课上课 铃响;延时20S 8:45 第一节课下课 铃响;延时20S 8:55 第二节课上课 铃响;延时20S 9:40 第二节课下课 铃响;延时20S 10:00 第三节课上课 铃响;延时20S 10:45 第三节课下课 铃响;延时20S 10:55 第四节课上课 铃响;延时20S 11:40 第四节课下课 铃响;延时20S 13:00 第五节课上课 铃响;延时20S 13:45 第五节课下课 铃响;延时20S 13:55 第六节课上课 铃响;延时20S 14:40 第六节课下课 铃响;延时20S 14:50 第七节课上课 铃响;延时20S 15:35 第七节课下课 铃响;延时20S 15:45 第八节课上课 铃响;延时20S 16:30 第八节课下课 铃响;延时20S 16:40 第九节课上课 铃响;延时20S 17:25 第九节课下课 铃响;延时20S 17:35 第十节课上课 铃响;延时20S 18:20 第十节课下课 铃响;延时20S 2.4 系统整体电路图 系统的整体的电路图如下图所示: 图2.3作息时间控制钟系统整体电路图 3 作息时间控制钟软件设计 3.1总体介绍 硬件平台结构一旦确定,大的功能框架即形成。软件在硬件平台上构筑,完成各部分硬件的控制和协调。系统功能是由软硬件共同实现的,由于软件的可伸缩性,最终实现的系统功能可强可弱,差别可能很大。因此,软件是本系统的灵魂。软件采用模块化设计方法,不但易于编程和调试,也可减小软件故障率和提高软件的可靠性。同时,对软件进行全面测试也是检验错误排除故障的重要手段。本程序用汇编语言设计。 3.2软件环境介绍: Keil uVision2是美国Keil Software公司出品的51系列兼容C语言软件开发系统,使用接近于传统的语法来开发,与相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,而且大大的提高了工作效率和项目开发周期,她还能嵌入汇编,您能够在关键的位置嵌入,使程序达到接近于汇编的工作效率。   Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全界面,使您能在很短的时间内就能学会使用keil c51来开发您的单片机应用程序 。   另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现的优势。 3.3 流程图介绍 软件设计以定时器T1、T2定时、内存读取、时钟显示、键盘扫描、报警程序为主程序。在设计中利用单片机时钟计时集成电路完成计时的任务,并500ms向单片机发一个中断,中断子程序有时钟显示及时间比较,如比较相等,则说明作息时间已到,发出指令控制电铃开、关操作。 3.3.1 系统主程序 根据控制钟的设计要求,设计的程序的主流程图如图所示: 开始 设置定时器T1、T2 调用读取存储器内容程序 显示时间初值 调用动态扫描程序 调用报警扫描子程序 调用键盘扫描子程序 不相等 比较键值是否相等 调用设置报警子程序 调用设置时钟子程序 不等 比较键值 图3.1 主程序流程图流程图 程序如下:TF2 EQU 0CFH;T2中断标志控制位 TR2 EQU 0CAH;T2启动/停止控制位 ET2 EQU 0ADH;T2允许中断控制位 PT2 EQU 0BDH;T2优先级控制位 RCAP2L EQU 0CAH;T2自动重载低位 RCAP2H EQU 0CBH;T2自动重载高位 TL2 EQU 0CCH;T2计数器低位 TH2 EQU 0CDH;T2计数器高位 I2cStart EQU 55H;I2C开始标志 I2cStop EQU 0AAH;I2C结束标志 SDA EQU 0B2H;I2C数据线 SCL EQU 0B3H;I2C时钟线 SHOW_CODE EQU 80H;显示段码 SHOW_BIT EQU 0A0H;显示位码 KeyFlag EQU 00H;按键标志位 S_Flash EQU 01H;秒闪标志位 LED_FLAG EQU 02H;LDE显示模式标志位 BeforKey EQU 22H;上次采样键值 NowKey EQU 23H;现在次采样键值 LS_S EQU 24H;临时变量1 LS_M EQU 25H;临时变量2 LS_H EQU 26H;临时变量3 CLOCK_DATA0 EQU 27H;时钟秒 CLOCK_DATA1 EQU 28H;时钟分 CLOCK_DATA2 EQU 29H;时钟时 SHOW_MOUDE EQU 2AH;显示模式 SHOW_PC EQU 2BH;显示数据指针 RingCount EQU 2CH;报警数据个数 ShowRing EQU 2DH;显示报警数据地址 RINGDATAH EQU 2EH;报警数据高位起始地址 RINGDATAL EQU 57H;报警数据低位起始地址 ORG 0000H MOV SP,#10H SJMP START ORG 0001BH AJMP INT_T1 ORG 0002BH CPL P3.5 CLR TF2 RETI ORG 00035H START: MOV TH2,#3CH ;设置T2定时50ms MOV TL2,#0B0H MOV RCAP2H,#3CH MOV RCAP2L,#0B0H SETB PT2 SETB ET2 MOV TMOD,#60H ;设置T1定时500ms(T2中断10次,T1中断5次) MOV TH1,#0FBH MOV TL1,#0FBH SETB ET1 ACALL READ_DATA SETB EA SETB TR2 SETB TR1 MOV CLOCK_DATA0,#0 MOV CLOCK_DATA1,#0 MOV CLOCK_DATA2,#12 SETB LED_FLAG CLR P3.4 AGAIN: MOV SHOW_MOUDE,#0 ;显示模式0 MOV SHOW_PC,#CLOCK_DATA0;显示时钟(传时钟地址指针) ACALL DISPLAY ;调用动态扫描子程序 ACALL COMP_DATA ;调用报警扫描子程序 MOV BeforKey,NowKey ACALL GETKEY ;调用键盘扫描子程序 MOV NowKey,A CJNE A,BeforKey,AGAIN CJNE A,#0,NEXT_KEY0 SETB KeyFlag SJMP AGAIN NEXT_KEY0: JNB KeyFlag,AGAIN CLR KeyFlag CJNE A,#1,NEXT_KEY2 ACALL SetTimer ;调用设置时钟子程序 SJMP AGAIN NEXT_KEY2: CJNE A,#2,AGAIN ACALL SetRing ;调用设置报警子程序 SJMP AGAIN;--------------------//主程序结束// 3.3.2 系统数据读写子程序 系统中利用24C02存储系统数据,该芯片为单电源供电,工作电压范围为1.8-5.5V,低功耗CMOS技术,自定时写周期,页面写周期的典型值为2ms,具有硬件写保护。经过串行I2C总线扩展技术对数据进行读写操作,节省了接口引脚数,只利用两根传输总线就能够实现全双工同步数据传送。其程序流程图如下: 开始 调用设置I2C起始子程序 读开始 错误 刷新24C02 写入数据 读24C02高位 数据读取结束 读取结束 读24C02低位 未读完 是否读完 结束 图3.2 数据读写子程序流程图 程序如下: I2C_START: ;I2C开始 SETB SDA SETB SCL NOP CLR SDA NOP CLR SCL RET I2C_STOP: ;I2C结束 CLR SDA NOP SETB SCL NOP SETB SDA RET I2C_SEND: ;I2C发送一个字节 MOV R7,#08 CLR C SEND_BIT: RLC A MOV SDA,C NOP SETB SCL NOP CLR SCL DJNZ R7,SEND_BIT SETB SDA NOP SETB SCL NOP CLR SCL RET I2C_RECEIVE: ;I2C接收一个字节 MOV R7,#08 RECEIVE_BIT: SETB SCL NOP MOV C,SDA RLC A CLR SCL DJNZ R7,RECEIVE_BIT SETB SDA NOP SETB SCL NOP CLR SCL RET READ_24C02: ;读24C02 ACALL I2C_START MOV A,#0A0H ACALL I2C_SEND MOV A,R0 ACALL I2C_SEND ACALL I2C_START MOV A,#0A1H ACALL I2C_SEND ACALL I2C_RECEIVE ACALL I2C_STOP RET WRITE_24C02: ;写24C02 ACALL I2C_START MOV A,#0A0H ACALL I2C_SEND MOV A,R0 ACALL I2C_SEND MOV A,R1 ACALL I2C_SEND ACALL I2C_STOP RET READ_DATA:;--------------------从24C02中读取数据更新内存 MOV R2,#10 READ_START_AGAIN: ;读开始标志位 MOV R0,#0 CLR EA ACALL READ_24C02 SETB EA CJNE A,#I2cSTART,READ_SUB SJMP WRITE_STOP READ_SUB: DJNZ R2,READ_START_AGAIN ;读开始位错误刷新24C02 WRITE_STOP: XRL A,#I2cSTART JZ READ_NEXT1 MOV R0,#0 MOV R1,#I2cStart CLR EA ACALL WRITE_24C02 ;写开始字节 SETB EA MOV R7,#5 ACALL Delay1ms MOV R0,#1 MOV R1,#I2cStop CLR EA ACALL WRITE_24C02 ;写结束字节 SETB EA MOV R7,#5 ACALL Delay1ms READ_NEXT1: MOV R0,#1;读数据地址;R1为间地址寻址寄存器 MOV R3,#0;读数据总数;R2为数据缓存器 READ_DATA_AGAIN: CLR EA ACALL READ_24C02 ;读高位 SETB EA INC R0 CJNE A,#I2cStop,READ_NEXT2 ;判断是否是结束标志 SJMP READ_EXIT READ_NEXT2: MOV R2,A MOV A,#RINGDATAH ADD A,R3 MOV R1,A MOV A,R2 MOV @R1,A CLR EA ACALL READ_24C02 ;读低位 SETB EA INC R0 MOV R2,A MOV A,#RINGDATAL ADD A,R3 MOV R1,A MOV A,R2 MOV @R1,A INC R3 CJNE R3,#40,READ_DATA_AGAIN READ_EXIT: MOV RingCount,R3 ;更新报警数据个数 RET 3.3.3显示子程序 对多位LED显示器的动态显示,一般都是采用动态扫描的方法进行显示,即逐个循环点亮各位显示器。这样虽然在任一时刻只有一位显示器被点亮,可是由于间隔时间较短,且人眼具有视觉残留效应,看起来与全部显示器持续点亮一样。 为了实现LED显示器的动态扫描,除了要给显示器提供的输入之外,还要对显示器加位选择控制,这就是一般所说的段控和位控。因此多位LED显示器接口电路需要有两个输出口,其中一个用于输出8位信号;另一个用于输出段控制信号。 其显示模式有五种:0:正常显示数据;1:显示调试模式(0,1位闪烁);2:显示调试模式(2,3位闪烁);3:显示调试模式(4,5位闪烁);4:显示特殊字符模式。 其程序流程图如下: 开始 A=0 A=0 调用得到位数据子程序 未完 全显示 显示模式为4则显示NULL 数码 管 显示数据屏蔽 显示数据屏蔽 结束 图3.3 显示子程序流程图 程序如下: SHOW_NUMBER:;段码 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH DB 40H SHOW_NULL:;空码 DB 00H,38H,38H,3EH,37H,00H SHOW_BIT_CODE:;位码 DB 0DFH,0EFH,0F7H,0FBH,0FDH,0FEH ;------------------ DISPLAY:;显示子程序 MOV R1,#6 SHOW_AGAIN: MOV A,SHOW_MOUDE XRL A,#4 JZ SHOW_CHAR MOV A,R1 ACALL GETCODE ;调用得到位数据子程序 MOV DPTR,#SHOW_NUMBER MOVC A,@A+DPTR SJMP SHOW_TO_CODE SHOW_CHAR: ;显示模式为4则显示字符NULL MOV DPTR,#SHOW_NULL MOV A,R1 DEC A MOVC A,@A+DPTR SHOW_TO_CODE: MOV SHOW_BIT,#0FFH;-------显示数据屏蔽 MOV SHOW_CODE,A MOV A,R1 MOV DPTR,#SHOW_BIT_CODE-1 MOVC A,@A+DPTR MOV SHOW_BIT,A MOV R7,#1 ACALL Delay1ms DJNZ R1,SHOW_AGAIN MOV SHOW_BIT,#0FFH;--------显示数据屏蔽 RET Delay1ms: ;-----------延时1MS MOV R5,#2 DELAY: MOV R6,#0 DJNZ R6,$ DJNZ R5,DELAY DJNZ R7,Delay1ms RET GETCODE:;得到位数据子程序 MOV B,#10 DEC A RL A MOV DPTR,#FIND_BIT JMP @A+DPTR FIND_BIT:;位散转 SJMP SHOW_0 SJMP SHOW_1 SJMP SHOW_2 SJMP SHOW_3 SJMP SHOW_4 SJMP SHOW_5 SHOW_0: ;得到位0数据 MOV R0,SHOW_MOUDE CJNE R0,#1,SHOW_LED_0 JB S_Flash,SHOW_LED_0 MOV A,#10 RET SHOW_LED_0: MOV R0,SHOW_PC MOV A,@R0 DIV AB MOV A,B RET SHOW_1: ;得到位1数据 MOV R0,SHOW_MOUDE CJNE R0,#1,SHOW_LED_1 JB S_Flash,SHOW_LED_1 MOV A,#10 RET SHOW_LED_1: MOV R0,SHOW_PC MOV A,@R0 DIV AB RET SHOW_2: ;得到位2数据 MOV R0,SHOW_MOUDE CJNE R0,#2,SHOW_LED_2 JB S_Flash,SHOW_LED_2 MOV A,#10 RET SHOW_LED_2: MOV R0,SHOW_PC INC R0 MOV A,@R0 DIV AB MOV A,B RET SHOW_3: ;得到位3数据 MOV R0,SHOW_MOUDE CJNE R0,#2,SHOW_LED_3 JB S_Flash,SHOW_LED_3 MOV A,#10 RET SHOW_LED_3: MOV R0,SHOW_PC INC R0 MOV A,@R0 DIV AB RET SHOW_4: ;得到位4数据 MOV R0,SHOW_MOUDE CJNE R0,#3,SHOW_LED_4 JB S_Flash,SHOW_LED_4 MOV A,#10 RET SHOW_LED_4: MOV R0,SHOW_PC INC R0 INC R0 MOV A,@R0 DIV AB MOV A,B RET SHOW_5: ;得到位5数据 MOV R0,SHOW_MOUDE CJNE R0,#3,SHOW_LED_5 JB S_Flash,SHOW_LED_5 MOV A,#10 RET SHOW_LED_5: MOV R0,SHOW_PC INC R0 INC R0 MOV A,@R0 DIV AB RET 3.3.4 报警扫描子程序 经过扫描时钟与定时时间是否相同来控制电铃,其程序流程图如下: 开始 未到时间 比较 铃响 数据加一 结束 图3.4 报警扫描子程序流程图 程序如下: COMP_DATA: ;报警扫描子程序 MOV A,RingCount JZ COMP_EXIT MOV A,CLOCK_DATA0 JNZ COMP_EXIT MOV R2,RingCount COMP_LOOP: MOV A,RINGDATAH CJNE A,CLOCK_DATA2,NEXT_COMP MOV A,RINGDATAL CJNE A,CLOCK_DATA1,NEXT_COMP SETB P3.4 SJMP COMP_EXIT NEXT_COMP: INC R0 INC R1 DJNZ R2,COMP_LOOP COMP_EXIT: RET 3.2.5 键盘扫描子程序 系统利用独立式键盘,作为系统的输入设备,能够实现对时钟的调整,以及对响铃报警时间的设置,具有设计简单,方便,使用的特点。 其流程图如下: 开始 键值相等 与键值1比较 与键值2比较 与键值3比较 与键值4比较 与键值5比较 与键值6比较 与键值7比较 与键值8比较 结束 图3.5 键盘扫描子程序流程图 程序如下: GETKEY:;扫描键盘得到键值子程序 MOV A,P1 CJNE A,#0FEH,GOTO_KEY2 MOV A,#1 RET GOTO_KEY2: CJNE A,#0FDH,GOTO_KEY3 MOV A,#2 RET GOTO_KEY3: CJNE A,#0FBH,GOTO_KEY4 MOV A,#3 RET GOTO_KEY4: CJNE A,#0F7H,GOTO_KEY5 MOV A,#4 RET GOTO_KEY5: CJNE A,#0EFH,GOTO_KEY6 MOV A,#5 RET GOTO_KEY6: CJNE A,#0DFH,GOTO_KEY7 MOV A,#6 RET GOTO_KEY7: CJNE A,#0BFH,GOTO_KEY8 MOV A,#7 RET GOTO_KEY8: CJNE A,#07FH,KEY_EXIT MOV A,#8 RET KEY_EXIT: MOV A,#0 RET 3.3.6 设置时钟子程序: 利用键盘设置,经过模式左移右移来实现对时间的修改设置以及保存。其程序流程图如下:
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服