导航:首页 > 操作系统 > 51单片机60秒倒计时系统简介

51单片机60秒倒计时系统简介

发布时间:2023-02-24 13:56:30

❶ 51单片机如何使外部中断显示60秒倒计时求程序,谢谢。

ORG00H;
SJMPSTAR;
ORG1BH;
SJMPTIS;转T1中断服务程序
ORG30H;
STAR:MOVR2,#60H;倒计时初值
MOVR4,#20H;定时中断溢出计数器
MOVIE,#88H;开中断
MOVTMOD,#10H;
MOVTH1,#3CH;定时初值
MOVTL1,#0B0H;定时初值
SETBTR1;启动
ACALLDIS;调用显示子程序
SJMP$;
TIS:MOVTH1,#3CH;
MOVTL1,#0B0H;
DJNZR4,T1S1;定时1S到否
MOVR4,#20;到1S,重置R4=20
DJNZR2,T1S0;倒计时递减
CLRTR1;倒计时结束,关定时器
T1S0:ACALLDIS;调显示
T1S1:RETI;中断返回
SEG7:INCA;A的值加一
MOVCA,@A+PC;取显示断段
RET;;
DB0C0H,0F9H,0A4H,0B0H;;0至3的共阳型显示码
DB99H,92H,82H,0F8H;;4至7的共阳型显示码
DB80H,90H,88H,83H;8至B的共阳型显示码
DB0C6H,0A1H,86H,8EH;;C至F的共阳型显示码
DIS:MOVA,R2;;单字节十六进制数转为十进制数
MOVB,#10;
DIVAB;
ACALLSEG7;
MOVP1,A;;显示十位
MOVA,B;;
ACALLSEG7;;
MOVP2,A;;显示个位
RET;;子程序返回
END;

❷ 51单片机汇编语言倒计时60秒循环程序

可以在SJMP $这里改成判断R2是不是为0,如是就重新载入60…如果不是就跳回重新判断R2

❸ 51单片机 汇编语言 两个七段共阳数码管 60S倒计时

C语言的我这里有。
以下是24倒计时的程序。你修改TABLE: 中的数据内容就可以达到你的要求的了。里面用到了两片7447芯片。。。
ORG 0000h
AJMP START
ORG 0030H
START: CLR P3.1 ;D1亮
JB P3.7,START ;按下K1倒计时启动
SETB P3.1 ;D1灭
CLR P3.0 ;D2亮
MOV TMOD,#01H ;设定时器TIMER0工作在模式1
MOV DPTR,#TABLE
NEXT: MOV A,#00H
MOVC A,@A+DPTR
MOV P1,A
MOV R3,#20 ;延时1秒
LCALL DELAY
INC DPTR ;数据指针加1
CJNE A,#0FFH,NEXT
MOV P1,#0FFH
SETB P3.0
LJMP START
; ****延时0.5秒子程序****
DELAY: SETB TR0 ;起动TIMER0开始计时
AGAIN: MOV TL0,#LOW(65536-50000) ;设定时器TL0的值
MOV TH0,#HIGH(65536-50000) ;设定时器TH0的值
LOOP2: JBC TF0,LOOP3 ;判断TF=1?,是则跳转至LOOP3,并清除TF0
JMP LOOP2 ;TF0不为1则跳转至LOOP2
LOOP3: DJNZ R3,AGAIN ;R3是否为0?不是则跳转至AGAIN
CLR TR0 ;是则停止TIMER0计数
RET
;*****显示数码表*****
TABLE:
DB 24H,23H,22H,21H,20H,19H,18H,17H,16H,15H,14H,13H
DB 12H,11H,10H,09H,08H,07H,06H,05H,04H,03H,02H,01H
DB 0FFH ;结束码
END

❹ 怎么用51单片机倒计时60秒(不用显示),60s后控制电路断开啊

在。。很简单啊,,一个80c51,一个继电器,引脚出发定时,然后执行60s,然后断开

❺ 利用单片机设计实现一个60秒倒计时显示装置,并且计时到后发出报警声音。

#include<reg52.h>
sbitbz=P3^1;
unsignedchara[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xd8,0x80,0x90};
unsignedcharn,time=60;
main()
{
P1=a[0];
P2=a[6];
TMOD=0X01;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
EA=1;
ET0=1;
TR0=1;
while(1);
}
timer0()interrupt1
{
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
if(time!=0)
{
n++;
if(n==100)
{
n=0;
time--;
P1=a[time%10];
P2=a[time/10];
}
}
elsebz=~bz;
}

❻ 关于51单片机60秒倒计时的c语言程序,delay和dispiay部分分别什么意思啊,具体点

delay(int t)这个是延时子程序,如果采用20M晶振的话,调用一次延时t毫秒。
display()是数码管动态扫描显示子程序,位控位为P3.0、P3.1,段码控制为P1。扫描间隔时间为5毫秒左右。

❼ 采用AT89C51单片机设计一只电子秒表,倒计时(60~1每间隔1秒倒数)

硬件电路 有2位数码管可以显示秒表的时间 0~10秒

有3个按键 K1为开始计时 K2为停止计时 K3为清零

软件设计:

K1按下则启动定时器定时 每到1秒 显示器缓冲单元内容加1

K2按下则停止定时器定时

K3按下则将显示器缓冲单元内容清零。

❽ 小白求救,51单片机利用两个数码管实现60秒倒计时

个位数能够显示正常,那么就说明十位数的处理代码出了问题;

给出代码看看吧

❾ 求C51单片机汇编语言控制两位数码管倒计时程序,从60秒到30秒再到90秒并循环倒计时显示。

从60秒到30秒再到90秒并循环倒计时显示。
----
有点不好理解。

从60秒到30秒,看来,是倒计时。
到了30之后,怎么办?是立即改为90吗?
到了90之后,再怎么办?是立即改为60吗?

❿ 求C51单片机汇编语言控制两位数码管60秒倒计时的程序,最好能说明下思路

#include <at89x52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define seg P0
#define sw P2
int tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
int dis[]={0,0};
uint X;
uchar Count=0;
uchar sec=60;
void display()
{
int a;
int m=0x01;
dis[0]=sec/10;
dis[1]=sec%10;
for(a=0;a<2;a++)
{
seg=0xff;
seg=tab[dis[a]];
sw=m;
m=_crol_(m,1);
}
}
void TINT0() interrupt 1
{
TL0=-50000%256;
TH0=-50000/256;
if(++Count==20)
{
if(sec>0)sec--;
Count=0;
}
}
void Main()
{
TMOD=0x01;
EA=1;
ET0=1;
TR0=1;
TL0=-50000%256;
TH0=-50000/256;
while(1)
{
if(sec==0)sec=60;
display();
}

}

阅读全文

与51单片机60秒倒计时系统简介相关的资料

热点内容
python优秀代码 浏览:616
androidtop命令 浏览:455
你平时怎么排解压力 浏览:68
表格中的文件夹怎样设置 浏览:476
em78单片机 浏览:960
splitjava空格 浏览:248
电脑怎么谷歌服务器地址 浏览:515
nx自定义工具启动宏命令 浏览:101
程序员怎么解决无法访问互联网 浏览:303
java访问本地文件 浏览:747
瓦斯琪服务器怎么用 浏览:22
安卓主题用什么app 浏览:747
修改服务器pci地址空间 浏览:321
程序员将来去哪里 浏览:966
虚幻5创建c无法编译 浏览:189
javaweb项目设计 浏览:407
国家反诈app紧急联系人怎么填 浏览:191
单片机旋转led 浏览:340
杜洋单片机官网 浏览:467
法国加密货币税务 浏览:28