历史上的今天
返回首页

历史上的今天

今天是:2024年11月15日(星期五)

正在发生

2019年11月15日 | 51单片机定时闹钟仿真程序

2019-11-15 来源:51hei

仿真原理图如下
dsn.PNG

定时闹铃的基本功能

1.定时闹铃的基本功能:

         使用3位七段显示器来显示定时时间和所剩的时间(以秒为单位)

         具有3个按键来设置定时的时间:

         操作键K1:开始定时(默认为60秒)

         操作键K2:增加定时时间(以一秒为单位递增)

         操作键K3:减少定时时间(以一秒为单位递减)

         定时时间到时蜂鸣器发出蜂鸣声一分钟后停止

2.定时闹铃的可选功能:

         3位七段显示器采用动态显示。

         当操作键K2被长时间按下(超过3秒)则以十秒为单位增加定时时间

         当操作键K3被长时间按下(超过3秒)则以十秒为单位减少定时时间


buzzer蜂鸣器需要把它设置里的operatingvoltage 里的电压改为2v可以响,默认的12V不可以响

程序:

#include

#include

unsigned char codetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

void show(int n);

void staticshow(int a);

void delay();

void displaydelay();

bit t=0;

bit m=0;

sbit up=P1^1;

sbit down=P1^2;

sbit start=P1^0;

sbit buzzer=P1^3;

void main()

{

TMOD=0x01;

TH0=0x3c; //高位

TL0=0xaf; //低位,高低16位换的十进制数是65535减去放大的倍数的数,就是65535-放大倍数=0xTH0TL0,所以放大倍数基本在50000倍是极限了

ET0=1;

EA=1;

TR0=1;

while(1);

}

void show(int n)

{

P0=table[n/100];

P2=~0x01;

displaydelay();

P2=0xff;

P0=table[(n%100)%10];

P2=~0x04;

displaydelay();

P2=0xff;

P0=table[(n%100)/10];

P2=~0x02;

displaydelay();

P2=0xff;

}

void staticshow(int a)

{

P0=table[a/100];

P2=~0x08;

displaydelay();

P2=0xff;

P0=table[(a%100)%10];

P2=~0x20;

displaydelay();

P2=0xff;

P0=table[(a%100)/10];

P2=~0x10;

displaydelay();

P2=0xff;

}

void delay()

{

int i=30000;

while(i--);

}

void displaydelay()

{

int i=2000;

while(i--);

}

Timer0_int() interrupt 1

{

         staticchar i=20;//这里的“static”必须有,不然无法完成定时效果

         staticint n=7;

         staticint a=7;

         staticint x=0;

         staticint y=0;

         staticint g=1;

         buzzer=0;

         show(n);

         staticshow(a);

         if(up==0)

{

n=n+g;

a=a+g;

if(y>0)

{

g=1;

x=0;

}

delay();

x++;

if(x>=3)

{

g=10;

}


if(i==1000)

{

n=0;

a=0;

}

}

if(down==0)

{

n=n-g;

a=a-g;

if(x>0)

{

g=1;

y=0;

}

delay();

y++;

if(y>=3)

{

g=10;

}

if(n==-1)

{

n=999;

a=999;

}

}

         if(start==0||t==1)

         {

         t=1;

         if(i)

         {

         i--;

         }

         else

         {

         n--;

         if(n==0)

         {

         buzzer=1;

         t=0;

         delay();

         }

         i=9;

         }

         }

         TH0=0x3c;

         TL0=0xaf;

}


推荐阅读

史海拾趣

DPA Components International公司的发展小趣事

作为一家具有社会责任感的企业,DPA Components International公司始终关注社会公益事业。公司积极参与各种公益活动,如扶贫助学、环保行动等,为社会做出了积极贡献。此外,DPA还关注行业发展和社会进步,积极参与行业交流和合作,推动整个电子行业的健康发展。通过担当社会责任,DPA不仅提升了企业的社会形象,也为社会的进步和发展做出了积极贡献。

AAC [American Accurate Components]公司的发展小趣事

进入21世纪,AAC公司继续加大市场拓展力度。2003年,AAC成功拓展了台湾市场,与明基、仁宝电脑和华宇电脑等知名企业建立了合作关系。为了满足这些客户对高品质耳机的需求,AAC开始生产制造耳机产品。这一创新举措不仅丰富了AAC的产品线,也进一步提升了其在电子消费产品市场的竞争力。

Advanced Semiconductor, Inc.公司的发展小趣事

随着科技的快速发展,ASI不断加大对研发的投入,努力突破技术瓶颈。在某一时期,公司成功研发出一款具有划时代意义的半导体芯片,这款芯片不仅性能卓越,而且功耗更低,极大地提升了电子设备的性能和使用体验。这一技术突破使得ASI在市场上获得了更多的份额,并奠定了公司在半导体行业的领先地位。

Aborn Electronics Inc公司的发展小趣事

在激烈的市场竞争中,成本控制是企业生存和发展的重要因素之一。Aborn Electronics深知这一点,因此在供应链管理上下了大力气。公司与多家优质供应商建立了长期稳定的合作关系,确保了原材料的稳定供应和质量可靠。同时,通过对生产流程的不断优化和改进,降低了生产成本,提高了生产效率。这些措施使得Aborn Electronics的产品在市场上更具竞争力。

CMOS Sensor Inc公司的发展小趣事

为了保持技术领先地位,CMOS Sensor Inc公司高度重视研发投入。公司拥有一支专业的研发团队,致力于新技术、新产品的开发。同时,公司还与多所高校和研究机构建立了紧密的合作关系,共同推动光电图像采集技术的发展。这些举措使得CMOS Sensor Inc在行业中保持了持续的创新能力。

ETEQ Microsystems Inc公司的发展小趣事

为了进一步扩大市场份额,ETEQ Microsystems Inc开始实施全球化战略。公司在亚洲、欧洲和北美等地设立了研发中心和销售办事处,并与多家国际知名企业建立了战略合作关系。这些举措不仅增强了公司的品牌影响力,还为公司带来了更多的商业机会。

问答坊 | AI 解惑

Android编译环境(2) - 手工编译C模块 ZT

上一篇中(即《Android编译环境(1) - 编译Native C的helloworld模块》),我们试用了通过标准的Android.mk文件来编译C模块,下面我们来试试如何直接运用gcc命令行来编译,从而了解Android编译环境的细节。 Android编译环境提供了”showcommands” ...…

查看全部问答>

诚问 WinCE嵌入式环境下能运行神经网络吗?

本人在利用wince开发汽车故障诊断系统 采用扬创S3c2440开发板 打算采用BP神经网络的作为诊断的算法 想知道有人做过类似的不? 系统资源能否支持呢? ps:s3c2440主频500M 32m内存 小弟再次谢过…

查看全部问答>

请教高手这段代码的意思?

这段代码是我老师给我的,是用keil uvision2软件纺写的 是bulkloop框架里的 void DA5384(unsigned char indata) {         unsigned char i; unsigned int mydata; unsigned int dataT; //SCLK =PA0, DIN=PA1 CS =PA5 ...…

查看全部问答>

串口通信问题求助

我在做串口通信 为什么在串口调试助手上找不到串口啊 有哪位高手知道指点一下好吗 先谢了 …

查看全部问答>

GAP的形成与内存控制问题(单片机)附map文件

#include bit b1,b2; bdata char bx,by; xdata char zz; pdata char buf[100]; void main (void) { {            b1=0;        b2=1;        bx=12;    ...…

查看全部问答>

寻支持二次开发的PDA

现需一款PDA,基本要求如下:支持二次开发+GPRS(最好支持EDGE)+摄像头+闪光灯.有意者请与许先生联系:13956057557.…

查看全部问答>

请问一道题目

试写出大尾数和小尾数机器中下图的数据结构,下图中a,b个占4bit长度 0   0 1 2 3 4 5 6 7   +-+-+-+-+-+-+-+-+   |       |       |   | a   &n ...…

查看全部问答>

有没有哪位高手在8962上用软件模拟过SPI的?

8962只有一个SPI接口可以用,有没有哪位高手在8962上用软件模拟过SPI的?求分享~~…

查看全部问答>

一个低通滤波例子哪位大虾能给解释一下吗?打问号的地方不懂!

本节通过一个例子来说明C程序从浮点变换至定点的方法。这是一个对语音信号(0.3kHz~3.4kHz)进行低通滤波的C语言程序,低通滤波的截止频率为800Hz,滤波器采用19点的有限冲击响应FIR滤波。语音信号的采样频率为8kHz,每个语音样值按16位整型数存放在i ...…

查看全部问答>