单片机的倒计时器初始值是怎么算的,例如初始值是30分钟,30分钟是怎么设置的

供稿:hz-xin.com     日期:2025-01-13
单片机30秒倒计时程序加电路图, 可用Proteus仿真~

;可设定时间的倒计时定时器,可选择5/15/20/30/35/45/50分钟倒计时
;倒计时时间由四位拨码开关的1/2/3位来控制,
;第2位表示5分钟,第3位表示15分钟,第4位表示30分钟,
;通过不同的组合可以产生5/15/20/30/35/45/50分钟倒计时
;P1.0口的外接的发光二极管为状态LED,定时未开始时LED常亮,定时过程中LED闪烁
;K1为开始按钮,K2为停止按钮

a_bit equ 20h ;数码管个位数存放内存位置
b_bit equ 21h ;数码管十位数存放内存位置
temp equ 22h ;计数器数值存放内存位置

;开机初始化
MOV P3,#0FFH ;对P3口初始化,设置为高电平,用于按键输入
MOV P0,#0FFH ;使显示时间数码管熄灭
CLR P1.0 ;点亮LED指示灯

;等待键盘输入
START:JB P3.6,$ ;循环判断开始按钮K1是否按下?
ACALL DELAY10 ;延时10毫秒触点消抖
JB P3.6,START ;如果是干扰就返回
JNB P3.6,$ ;等待按键松开

;读拨码开关的状态,获得倒计时时间
SET1:
MOV A,#0 ;首先对A清零
JB P2.0,A1 ;判断拨码开关的第2位是否接通,接通就对A加5
ADD A,#5
A1: JB P2.1,A2 ;判断拨码开关的第3位是否接通,接通就对A加15
ADD A,#15
A2: JB P2.2,A3 ;判断拨码开关的第4位是否接通,接通就对A加30
ADD A,#30
A3: MOV TEMP,A
;这时TEMP中的值就是倒计时时间

;数码管显示定时时间的程序
display:

CLR P2.4 ;使继电器1释放,开始定时(开机时继电器处于吸合状态)
CLR P2.3 ;使继电器2释放,开始定时(开机时继电器处于吸合状态)
MOV R2,#120
AB1: MOV R3,#250
TIME1: mov a,temp ;将temp中的十六进制数转换成10进制
mov b,#10 ;10进制/10=10进制
div ab
mov b_bit,a ;十位在a
mov a_bit,b ;个位在b

mov dptr,#numtab ;指定查表启始地址
mov r0,#4
dpl1: mov r1,#250 ;
dplop: mov a,a_bit ;取个位数
MOVC A,@A+DPTR ;查个位数的7段代码
mov p0,a ;送出个位的7段代码
clr p2.7 ;开个位显示
ACALL DELY1 ;显示1毫秒
setb p2.7 ;关闭个位显示,防止鬼影
mov a,b_bit ;取十位数
MOVC A,@A+DPTR ;查十位数的7段代码
mov p0,a ;送出十位的7段代码
clr p2.6 ;开十位显示
ACALL DELY1 ;显示1毫秒
setb p2.6 ;关闭十位显示,防止鬼影

;插入一段判断定时过程中是否有按键输入的程序段
C1: JB P3.6,B1
ACALL DELAY10 ;延时10毫秒消抖
JB P3.6,C1
JNB P3.6,$ ;等待按键松开
AJMP SET1
B1: JB P3.7,M33
ACALL DELAY10 ;延时10毫秒消抖
JB P3.7,B1
JNB P3.7,$ ;等待按键松开
AJMP OVER

M33: djnz r3,TIME1 ;2毫秒循环执行250次,时间约0.5秒
CPL P1.0 ;使LED每1秒闪烁一次
djnz r2,AB1 ;循环执行120次,时间为1分钟

DEC TEMP ;满一分钟对定时时间减1
MOV A,TEMP
JNZ DISPLAY
;判断TEMP的数值是否为0?不为0循环

;结束定时
OVER:CLR P1.0 ;LED指示灯常亮
SETB P2.4 ;继电器1吸合,定时结束,退回到开机时的状态
SETB P2.3 ;继电器2吸合,定时结束,退回到开机时的状态
AJMP START ;退到开机初始化状态

;1毫秒延时子程序
DELY1: MOV R4,#2
D1: MOV R5,#248
DJNZ R5,$
DJNZ R4,D1
RET

;10毫秒延时子程序
DELAY10:MOV R4,#20
D2: MOV R5,#248
DJNZ R5,$
DJNZ R4,D2
RET

;实验板上的7段数码管0~9数字的共阴显示代码
NUMTAB:DB 0CFH,03H,5DH,5BH,93H,0DAH,0DEH,43H,0DFH,0DBH

end

分用一个寄存器,秒用一个寄存器,然后50ms用一个寄存器,定时50ms一个一个的减不够减向上一位借1

那是由许多变量来保存的,如用定时器定时50ms 中断20次是1S 每60秒是1分钟 中断次数 秒数 分钟数都可由变量来表示
如 fen miao n 分别代表当前分钟数 秒数 中断次数
程序工作过程是这样的 :
定时器定时50ms(由于单片机定时器位数限制,不容易实现1秒定时)
定时时间到 (发生中断,进入中断程序),变量n加1如果n等于20将n清0同时将miao加1 如果miao等于60 秒清0
同时fen 加1 就可以实现计时
如果倒计时,可以设fen的初值为30 每次miao等于60时将分减1
就是这么简单的数学运算 高级语言编程就这么简单
但用汇编语言编程就要知道单片机的内部结构,并用一些很难记忆的指令来写程序,要繁琐很多

我不知道!

虎牌电饭煲如何预约啊?
1、确认表示部的当前时间,时间不一致调整为当前时间;2、选择煮饭后是否保温;3、选择粥时,按(时、分),调整烹煮时间。每次按(时)键可增加5分钟,按(分)键可减少5分钟,以5分钟为单位,可设定在40-90分钟的范围内,初始设定值为60分钟。请根据个人喜爱调整时间;4、反复按(预约)键选择...

电脑开机时,进入系统的速度太慢了,要怎么解决?
方法三 清理电脑桌面其实,桌面上的无论是程序图标,还是文件的缩略图,加载起来还是费点时间的。哪怕已经有缓存thumb文件存在,也还是让这个界面清爽一些~试下建个文件夹吧。另外Windows 10的搜索功能真的很好用!方法四 卸载不需要的硬件开机后,先是BIOS初始化,再是硬件自检,之后按照设定的顺序...

利用74ls192做60秒倒计时(包括电路图)
本设计采用555作为振荡电路,由74LSl92、74LS48和七段共阴LED数码管构成计时电路,具有计时器直接复位、启动、暂停、连续计时和报警功能。该电路制作、调试简单,采用普通器件,一装即成。一、电路组成 电路由秒脉冲发生器、计数器、译码器、显示电路、报警电路和辅助控制电路五部分组成,见右图。其整机...

电脑关机
一,通过操作系统关闭电脑:点击屏幕左下角的“开始”按钮(或按下键盘上的Windows徽标键)。在开始菜单中,找到电源按钮图标,它通常位于菜单底部附近。点击电源按钮,然后选择“关闭”或“关机”选项。二,使用物理电源按钮关闭电脑:短按电源按钮:现代电脑通常可以通过短按电源按钮来触发操作系统的正常关机...

aux空调遥控器怎么设置定时
要设置aux空调遥控器的定时功能,您可以按照以下步骤进行操作:1. 确保您的aux空调遥控器电池电量充足,并且与空调主机连接正常。2. 打开空调遥控器的电源开关,通常位于遥控器的顶部或侧面。3. 确认遥控器上是否有一个“定时”按钮或图标。找到并按下该按钮。如果没有明确的“定时”按钮,您可以查看遥控...

电脑自动关机是怎么设置了!
1、界面左下角搜索栏搜索“控制面板”,打开“控制面板”2、然后点击控制面板里的“管理工具”3、在管理工具里点击“计划任务程序”4、先点击下任务计划程序库,然后在中间的空白位置点击右键,选择“创建基本任务”,也可以点击右边的“创建基本任务”5、给定时关机的任务取个名字,如“定时关机”,然后...

电脑为什么速度越来越慢,如何解决?
原因一:第三方软件 电脑卡的一个原因可能是安装了第三方软件,尤其是优化和杀毒类软件。所以如果一定要装此类软件,一定要从正规渠道下载,安装的时候注意避免安装捆绑软件。原因二:系统后台 系统或杀毒软件在后台自动下载更新时、杀毒软件在后台查杀病毒时,也可能会导致电脑卡顿。1,系统更新 我们可以在...

怎样用51单片机实现累加计时和倒计时,并用六个共阴极数码管显示出来。用...
本题给出基于单片机的数字中的设计,设计由单片机作为核心控制器,通过频率计数实现计时功能,将实时时间经由单片机输出到显示设备——数码管上显示出来,并通过键盘来实现启动、停止、复位和调整时间的功能。关键词: 单片机、数字钟、AT89S52、LED 1 引言在单片机技术日趋成熟的今天,其灵活的硬件电路的设计和软件的设计,让...

电脑还原默认优化设置后果电脑恢复出厂设置会不会影响系统
5同样会自动进行GHOST备份——这算是方法二,也是真正的一键备份了。6也可以开机启动的时候,显示启动菜单项并倒计时等候5秒时,选择“Windows一键还原”项:7选择“Windows一键还原”菜单项后,并按回车键确认,进入GHOST程序开始GHOST备份;8备份完成后电脑会自动重新启动并默认进入windows系统——这是方法三了,有点手动...

常用的电脑操作小技巧
1、在微软小娜搜索栏中输入【regedit】后,按回车键进入注册表编辑器2、找到以下路径:HKEY_CURRENT_USER\\\\Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Explorer\\\\Advanced3、在【advanced】文件中【新建】-【字符串值】,命名文件为【DisabledHotkeys】,如图:4、在【DisabledHotkeys】中输入数据值(注:如果想要禁止...