历史上的今天
今天是:2024年11月15日(星期五)
2019年11月15日 | 51单片机定时闹钟仿真程序
2019-11-15 来源:51hei
仿真原理图如下
定时闹铃的基本功能
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; }
史海拾趣
|
上一篇中(即《Android编译环境(1) - 编译Native C的helloworld模块》),我们试用了通过标准的Android.mk文件来编译C模块,下面我们来试试如何直接运用gcc命令行来编译,从而了解Android编译环境的细节。 Android编译环境提供了”showcommands” ...… 查看全部问答> |
|
本人在利用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 ...… 查看全部问答> |
|
#include bit b1,b2; bdata char bx,by; xdata char zz; pdata char buf[100]; void main (void) { { b1=0; b2=1; bx=12; ...… 查看全部问答> |
|
本节通过一个例子来说明C程序从浮点变换至定点的方法。这是一个对语音信号(0.3kHz~3.4kHz)进行低通滤波的C语言程序,低通滤波的截止频率为800Hz,滤波器采用19点的有限冲击响应FIR滤波。语音信号的采样频率为8kHz,每个语音样值按16位整型数存放在i ...… 查看全部问答> |




