基于单片机at89c51电子时钟设计内容摘要:
关定时器 T0 中断CLR TR0。 关闭定时器 T0LCALL DL1S。 调用 1 秒延时程序JB ,CLOSEDIS。 键按下时间小于 1 秒,关闭显示(省电) MOV R2,06H。 进入调时状态,赋闪烁定时初值 SETB ET1。 允许 T1 中断SETB TR1。 开启定时器 T1SET2: JNB ,SET1。 口为 0(键未释放),等待SETB 00H。 键释放,分调整闪烁标志置 1SET4: JB ,SET3。 等待键按下LCALL DL05S。 有键按下,延时 秒JNB ,SETHH。 按下时间大于 秒转调小时状态MOV R0,77H。 按下时间小于 秒加 1 分钟操作LCALL ADD1。 调用加 1 子程序MOV A,R3。 取调整单元数据CLR C。 清进位标志CJNE A,60H,HHH。 调整单元数据与 60 比较HHH: JC SET4。 调整单元数据小于 60 转 SET4 循环LCALL CLR0。 调整单元数据大于或等于 60 时清 0CLR C。 清进位标志AJMP SET4。 跳转到 SET4 循环CLOSEDIS:SETB ET0。 省电(LED 不显示)状态。 开 T0 中断SETB TR0。 开启 T0 定时器(开时钟)CLOSE: JB ,CLOSE。 无按键按下,等待。 LCALL DISPLAY。 有键按下,调显示子程序延时削抖JB ,CLOSE。 是干扰返回 CLOSE 等待电子时钟设计14WAITH: JNB ,WAITH。 等待键释放LJMP START1。 返回主程序(LED 数据显示亮)SETHH: CLR 00H。 分闪烁标志清除(进入调小时状态)SETHH1: JNB ,SET5。 等待键释放SETB 01H。 小时调整标志置 1SET6: JB ,SET7。 等待按键按下LCALL DL05S。 有键按下延时 秒JNB ,SETOUT。 按下时间大于 秒退出时间调整MOV R0,79H。 按下时间小于 秒加 1 小时操作LCALL ADD1。 调加 1 子程序MOV A,R3。 CLR C。 CJNE A,24H,HOUU。 计时单元数据与 24 比较HOUU: JC SET6 小于 24 转 SET6 循环LCALL CLR0。 大于或等于 24 时清 0 操作AJMP SET6。 跳转到 SET6 循环SETOUT: JNB ,SETOUT1。 调时退出程序。 等待键释放LCALL DISPLAY。 延时削抖JNB ,SETOUT。 是抖动,返回 SETOUT 再等待CLR 01H。 清调小时标志CLR 00H。 清调分标志CLR 02H。 清闪烁标志CLR TR1。 关闭定时器 T1CLR ET1。 关定时器 T1 中断SETB TR0。 开启定时器 T0SETB ET0。 开定时器 T0 中断(计时开始)LJMP START1。 跳回主程序SET1: LCALL DISPLAY。 键释放等待时调用显示程序(调分)AJMP SET2。 防止键按下时无时钟显示SET3: LCALL DISPLAY。 等待调分按键时时钟显示用AJMP SET4SET5: LCALL DISPLAY。 键释放等待时调用显示程序(调小时)AJMP SETHH1。 防止键按下时无时钟显示SET7: LCALL DISPLAY。 等待调小时按键时时钟显示用AJMP SET6SETOUT1: LCALL DISPLAY。 退出时钟调整时键释放等待AJMP SETOUT。 防止键按下时无时钟显示延时程序:1MS 延时程序,LED 显示程序用电子时钟设计15DL1MS: MOV R6,14HDL1: MOV R7,19HDL2: DJNZ R7,DL2DJNZ R6,DL1RET20MS 延时程序,采用调用显示子程序以改善 LED 的显示闪烁现象DS20MS: ACALL DISPLAYACALL DISPLAYACALL DISPLAYRET 源程序设计ORG 0000H。 程序执行开始地址LJMP START。 跳到标号 START 执行ORG 0003H。 外中断 0 中断程序入口RETI。 外中断 0 中断返回ORG 000BH。 定时器 T0 中断程序入口LJMP INTT0。 跳至 INTTO 执行ORG 0013H。 外中断 1 中断程序入口RETI。 外中断 1 中断返回ORG 001BH。 定时器 T1 中断程序入口LJMP INTT1。 跳至 INTT1 执行ORG 0023H。 串行中断程序入口地址RETI。 串行中断程序返回主程序开始; START: MOV R0,70H。 清 70H7AH 共 11 个内存单元MOV R7,0BH。 CLEARDISP: MOV @R0,00H。 INC R0。 DJNZ R7,CLEARDISP。 MOV 20H,00H。 清 20H(标志用)MOV 7AH,0AH。 放入熄灭符数据MOV TMOD,11H。 设 T0、T1 为 16 位定时器MOV TL0,0B0H。 50MS 定时初值(T0 计时用)MOV TH0,3CH。 50MS 定时初值MOV TL1,0B0H。 50MS 定时初值(T1 闪烁定时用)MOV TH1,3CH。 50MS 定时初值SETB EA。 总中断开放SETB ET0。 允许 T0 中断SETB TR0。 开启 T0 定时器电子时钟设计16MOV R4,14H。 1 秒定时用初值(50MS20)START1: LCALL DISPLAY。 调用显示子程序JNB ,SETMM1。 口为 0 时转时间调整程序SJMP START1。 口为 1 时跳回 START1SETMM1: LJMP SETMM。 转到时间调整程序 SETMM。 1 秒计时程序。 INTT0: PUSH ACC。 累加器入栈保护PUSH PSW。 状态字入栈保护CLR ET0。 关 T0 中断允许CLR TR0。 关闭定时器 T0MOV A,0B7H。 中断响应时间同步修正ADD A,TL0。 低 8 位初值修正MOV。基于单片机at89c51电子时钟设计
相关推荐
d display_2(year,mon,tian) {year_0=year%10。 year_1=year/10。 mon_0=mon%10。 mon_1=mon/10。 tian_0=tian%10。 tian_1=tian/10。 P2=0。 P0=tab[year_1]。 delay(200)。 P2=0x01。 P0=tab[year_0]。 delay(200)。 P2=0x02。
抵消,经信号处理而输出电压信号。 AT89C51单片机简单概述 AT89C51单片机的结构 AT89C51单片机是美国Atmel公司生产低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的只读程序存储器(EPROM)和128 bytes的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存取技术生产,兼容标准MCS51指令系统
脚)为供电端口,分别接 +5V 电源的正负端。 P0~P3 为可编程通用 I/O 脚,其功能用途由软件定义,在本设计中, P0 端口( 32~39 脚)被定义为 N1 功能控制端口,分别与 N1的相应功能管脚相连接, 13 脚定义为 IR 输入端, 10 脚和 11 脚定义为 I2C 总线控制端口,分别连接 N1 的 SDAS( 18 脚)和 SCLS( 19 脚)端口, 12 脚、 27 脚及
需要的 脉冲信号。 不同的光电元件,所要求的测量电路也不相同 ,为此 设计时 必须详加考虑。 光电转换及信号调理电路设计 传感器将电机的转速信号转变成了电脉冲信号,该信号经 过 LM324集成运放整形驱动,送到单片机进行脉冲计数,从而测出电动机转速。 光电转换部分与单片机的连接框图如图。 图 光电转换部分与单片机的连接框图 LM324是四运放集成电路 , 它采用 14脚双列直插塑料封装 ,
‘1’。 ELSE IF NUMIN=TEMPNUM THEN 上一键值与此键值不同 TENPNUM=NUMIN。 记录此键值 COUNTER= ‘0’。 并对 计数器清 0,准备对此键值计时 ELSE IF COUNTER31 THEN。 当键值保持 31个时钟周期不变时 11 NUMOUT=NUMIN。 即确定为有效键值,并输出 COUNTER= ‘0’。 ELSE