导航:首页 > 装置知识 > 利用数码管显示的倒计时装置设计

利用数码管显示的倒计时装置设计

发布时间:2021-03-06 03:37:57

Ⅰ 利用数码管显示倒计时控制器设计

网络倒计时的设计一大把啊 买个简单的单片机开发版就要有倒计时的例子

Ⅱ 利用单片机设计实现一个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单片机,4个数码管设计一个计时器,要求在数码管上显示的数据从0开始每1秒钟加1。

共阳数码管中断程序:

#include<reg52.h>

#define uint unsigned int

#define uchar unsigned char

uchar code table[]=

{

0xc0,0xf9,0xa4,0xb0,

0x99,0x92,0x83,0xf8,

0x80,0x90,0x88,0x83,

0xc6,0xa1,0x86,0x8e};

uint num,a;

uchar ,shi,ge;

void init();

void delay(uint);

void display(uchar,ucharshi,ucharge);

uint fb();

uint fs();

uint fg();

void main()

{

init();

while(1)

{

display(fb(),fs(),fg());

}

}

void init()

{

num=0;

a=0;

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

EA=1;

ET0=1;

TR0=1;

}

void display(uchar,ucharshi,ucharge)

{

P1=0xfd;

P0=table[];

delay(1);

P1=0xfb;

P0=table[shi];

delay(1);

P1=0xf7;

P0=table[ge];

delay(1);

}

void timeoff() interrupt 1

{

TH0=(65536-50000)/256;

TL0=(65526-50000)%256;

a++;

if(a%20==0)

{

num++;

if(num==999)

{

num=0;

}

}

}
void delay(uint z)
{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

uint fb()

{

=num/100;

return ;

}

uint fs()

{

shi=num%100/10;

return shi;

}

uint fg()

{

ge =num%100%10;

return ge;

}

(3)利用数码管显示的倒计时装置设计扩展阅读

2个可编程定时/计数器·5个中断源,2个优先级(52有6个)

一个全双工串行通信口

外部数据存储器寻址空间为64kB

外部程序存储器寻址空间为64kB

逻辑操作位寻址功能·双列直插40PinDIP封装

单一+5V电源供电

CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;

RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;

ROM:用以存放程序、一些原始数据和表格;

I/O口:四个8位并行I/O口,既可用作输入,也可用作输出

T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;

五个中断源的中断控制系统;

一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信;

片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最佳振荡频率为6M—12M。

参考资料来源:网络-51单片机



Ⅳ Verilog语言设计倒计时器,实现30秒倒计时,分辨率1秒,数码管显示倒计

1.
用500hz作为1s的计时抄时钟,每500下,袭计时器工作一下
2.
30秒倒计时的使能,一个脉冲即可,然后依靠1中的计时器来倒计时从29到0
3.
最后在倒计时的2-0,时输出高电平,2-1时或上500hz的时钟给蜂鸣器,0时或上2000hz给蜂鸣器
4.
以上给出算法流程,代码自己写吧

Ⅳ 使用2个数码管设计一个60秒倒计时C语言程序,要求用定时器中断定时1秒。 仿真元件数码管为7SEG-COM-CATHODE

unsigned char counter,s;
unsigned ....// 数组,7段数码管数据,记得7SEG-COM-CATHODE是共阳吧?
void delays() //延迟函数
{
unsigned char a;
for(a=0;a<200;a++);
}
void display_t() //动态部分,个位十位切换
{
SMG_data=num[s%10]
SMG_bit =;
display_t();

SMG_data=num[s/10]
SMG_bit =;
display_t();

}
void interrup_services() //设定定时器和中断,3cb0,50ms
{
TMOD=0x01;
TH0=0x3c;
TL0=0xb0;
TR0=1;
ET0=1;
EA=1;

}
void main() //主函数
{
void interrup_services() ;
while(1)
display_t();
}
void interrupt_ini() interrupt 1
{
TH0=0x3c;
TL0=0xb0;
counter++;
if(counter>19}{s++ ; counter=0 ;} //50ms*20=1s,0~19为20
if(s >59 ) {s=0;}
}
这程序很简单,仿真设定好晶振,改下就行了包括定时器的,我这个设定是晶振12M的。12HZ的真心没用过。

Ⅵ 智能倒计时器的设计选择5位数码管做显示,实现5种倒计时模式,通过控制按键进行选择1、

是仿真吗?还是实物开发板?
写C语言程序,还是汇编程序?

Ⅶ 用AT89C51单片机的定时器设计一个倒计时报警器,并用LED数码管显示倒计时时间。

考虑好按键消抖和鬼阴,而且功能函数没分开写,而且功能真的一般,只是当作练手一下

Ⅷ 怎样设计 一个计时器,实现1到99秒的倒计时。用两个LED数码管显示十位和个位的计时时间

电子显示就可以了

Ⅸ 用单片机c语言,c51的,使用数码管设计一个60秒倒计时系统,使用两个数码管,要求用定时器中断定时1秒。 仿

//用AT89c52单片机作控制.假如数码管是共阴极的话,定义的段码和位选的锁存器的选通端分别为P2^6,P2^7,P0口接段码端和位码端,而且位码端接的是锁存器输入,输出端的高两位。假设晶振频率为12MHZ。
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
uchar miao,t0,flat,shiwei,gewei,;
sbit la = P2^6;
sbit wela = P2^7;
uchar code table[] =
{ //0-9的编码
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f
};
void delay() //延时用于扫描
{
uchar x,y;
for(x = 1;x > 0;x--)
for(y = 100;y > 0;y--);
}
void display() //显示函数
{
uchar w = 0xc0;
uchar i;
for(i = 0;i < 2;i++) //由于数码管只有两位,所以只扫描两次
{
la = 1; //先选通段锁存器;
P0 = table1[i]; //给段码送数据
la = 0; //锁存住段码
delay(); //稍微延时一下
wela = 1; //选通位锁存器;
P0 = w;
wela = 0; //下降沿锁存住位码
delay();
w = _cror_(w,1); //位右移动一位
}
}
void init()
{
TMOD = 0x01; //设置定时器0工作方式1
EA = 1; //开总中断
ET0 = 1; //开定时器0中断
TR0 = 1; //开定时器0
TH0 = (65536 - 50000)/256; //给两个寄存器装初值50ms;
TL0 = (65536 - 50000)%256;
}
void main()
{
init();
while(1)
{
if(flat != 1)
{
table1 [0] = table[gewei];
table1[1] = table[shiwei];
display();
}
else
{
table1[0] = table[0];
table1[1] = table[1];
diplay();
}
}
}
void timer0() interrupt 1 // 定时器0
{
TH0 = (65536 - 50000)/256; //重新给两个寄存器装初值;
TL0 = (65536 - 50000)%256;
t0++;
if(t0 == 20) //当定时器到一秒的时候
{
t0 = 0;
miao--;
shiwei = miao / 10; //取出十位数
gewei = miao % 10; //取出个位数
if(miao == 0)
{
TR0 = 0;
shiwei = miao / 10; //取出十位数
gewei = miao % 10; //取出个位数
flat = 1;
}
}

//注意:由于你没有给出数码管的接法等,所以我自己假设的设计一个简单的电路来实现此功能。不一定能在你的实验板上显示出来。

阅读全文

与利用数码管显示的倒计时装置设计相关的资料

热点内容
为什么高速拥堵还要关闭出口阀门 浏览:39
转子轴承玻璃磨损怎么修 浏览:794
iphone显示未知设备怎么办 浏览:165
潍坊大型洗砂设备哪里有 浏览:280
检测杀菌效果用什么仪器 浏览:210
安徽厂家直销超声波洗碗机怎么用 浏览:52
乙醚萃取要用什么仪器 浏览:912
电动的电机轴承是什么型号的 浏览:530
万向传动装置以及维护应进行 浏览:368
练二头肌需要什么器材 浏览:897
简单的直播需要什么设备 浏览:648
怎么登记公司办公设备 浏览:493
为什么超声波洗牙没想象中洁白 浏览:445
健身房机械器材怎么用 浏览:722
氧气阀门未进行脱脂 浏览:26
自动测风速的装置 浏览:223
uy摩托车仪表时间怎么调 浏览:880
手机设备号怎么授权 浏览:976
n95有阀门的口罩起什么作用 浏览:419
什么情况下可以用压铸机床 浏览:218