51单片机 芯片是89C52 实现秒表计时器!急急……
-
51单片机 芯片是89C52 实现秒表计时器 一到59秒循环 到59秒可实现风铃器发声 可实现中断 按一下可暂停 再按一下 可继续 以下是程序 求每一项的解释注明 因为我看不懂什么意思 很急 #include
unsigned char x,y;sbit H=P3^6;unsigned char D[10]={0xc...
全部评论(1条)
-
- 豆豆酱999959 2017-11-26 08:34:52
- #include<reg52.h> unsigned char x,y; sbit H=P3^6; unsigned char D[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //用于数字0~9的显示数据表 void delay(unsigned char a){ //延时程序 unsigned char i; while(a--) for(i=115;i>0;i--); } void display(unsigned char x) //显示2位数字 { P2=0x7f; //使能低位数码管 P0=D[x%10]; //显示低位 delay(5); //延时 P2=0xbf; //使能高位数码管 P0=D[x/10]; //显示高位 delay(5); //延时 } void main(){ x=y=0; EA=1; //开总中断 EX0=1; //开外部中断0 IT0=1; //INT0为下降沿中断 ET0=1; //开定时器0中断 TMOD=0X01; //设定T0工作模式 TH0=(65536-50000)/256; //设定T0初值 TL0=(65536-50000)%256; TR0=1; //启动T0 while(1) { display(x); //刷新显示X if(x==59) H=~H; //x=59时,将P3.6取反 } } void int0() interrupt 1 { y++; while(y==20) //Y记满20后x+1 { y=0; x++; if(x==60) x=0; } TH0=(65536-50000)/256; //T0重装装初值 TL0=(65536-50000)%256; } void it0() interrupt 0 using 1 { ET0=~ET0;} //关定时器中断
-
赞(8)
回复(0)
热门问答
- 51单片机 芯片是89C52 实现秒表计时器!急急……
- 51单片机 芯片是89C52 实现秒表计时器 一到59秒循环 到59秒可实现风铃器发声 可实现中断 按一下可暂停 再按一下 可继续 以下是程序 求每一项的解释注明 因为我看不懂什么意思 很急 #include
unsigned char x,y;sbit H=P3^6;unsigned char D[10]={0xc...
2017-11-26 00:53:59
599
1
- 关于51单片机 的秒表/时钟计时器设计摘要
- 秒表/时钟计时器设计 有关的资料 我都要 谢谢各位了
2018-11-16 12:00:04
329
0
- windows窗体这个秒表计时器怎么实现
- 我想让它从0开始变成1,2,3这样
2011-07-11 04:56:41
377
4
- 51单片机计时器可否分享给我🌝
2018-11-25 09:49:24
357
0
- 用51单片机连接max7219芯片做秒计时器,求帮看下程序
- 这是我的程序:#include
#include #define uchar unsigned charsbit pinDIN=P3^0;sbit pinLOAD=P3^1;sbit pinCLK=P3^2;uchar code LEDcode[]={0x7e,0x30,0x6d,0x79,0x33,0x5b,0x5f,0x70,0x7f,0x7b,0x00};void delay1000(void) { un... 这是我的程序:#include #include #define uchar unsigned charsbit pinDIN=P3^0;sbit pinLOAD=P3^1;sbit pinCLK=P3^2;uchar code LEDcode[]={0x7e,0x30,0x6d,0x79,0x33,0x5b,0x5f,0x70,0x7f,0x7b,0x00};void delay1000(void) { unsigned char a,b,c; for(c=1;c>0;c--) for(b=142;b>0;b--) for(a=2;a>0;a--);}void sendbyte (uchar dat){ uchar i,temp; _nop_(); for (i=0;i<8;i++) { temp=dat&0x80; dat=dat<<1; if(temp) pinDIN=1; else pinDIN=0; pinCLK=0; _nop_(); pinCLK=1; }}void sendword (uchar addr,uchar dat){ pinLOAD=0; _nop_(); sendbyte (addr); _nop_(); sendbyte (dat); _nop_(); pinLOAD=1; delay1000();}void init7219 (void){sendword (0x0c,0x01); sendword (0x0a,0x09);sendword (0x0b,0x03); sendword (0x09,0x00);sendword (0x0f,0x00); }void clear7219(void){ uchar i; for(i=8;i>0;i--) { sendword(i,0x00); }}void main(void){int n=60;int s=0;int g=0;init7219 ();while(1) {clear7219();if(n>0){n=n-1;s=n/10;g=n%10;LEDcode[s];LEDcode[g];}sendword(0x01,LEDcode[1]);sendword(0x02,LEDcode[2]|0x80); sendword(0x03,LEDcode[3]);sendword(0x04,LEDcode[4]);sendword(0x05,LEDcode[5]);sendword(0x06,LEDcode[6]);sendword(0x07,LEDcode[7]);sendword(0x08,LEDcode[8]); }}不知道为什么,数码管上只显示“12.”然后就一直没变化,看下面是由高低电平的变化的,就是数字一直不变,请问是哪里出错? 展开
2017-06-04 10:27:15
393
1
- 秒表计时器怎么读
- 秒表计时器怎么读
2011-01-14 05:33:08
583
4
- Excel 秒表/计时器
- 我想在Excel中做一个计时器,请大家帮忙! 注意,不是要他显示当前时间,而是要做了用来计时间。 比如我想知道我做一件事情要多长时间,我在做之前启动秒表,昨晚后看用了多长时间! 请大家帮忙!
2008-11-07 23:03:17
396
2
- 单片机编程实现0---20秒计时器
2016-06-14 17:17:42
923
1
- 51单片机实现pwm对电机调速
2018-07-22 09:03:42
382
3
- 51单片机同时使用两个计时器的问题
- 遇到的问题是两个内部计时器同时使用会造成数码管无法正常扫描。 以下面程序为例,下面程序结果数码管(从0开始自加,8位数码管显示后4位)无法正常扫描,请问该如何修改? #include
#define uchar unsigned char #define uint unsigned int ... 遇到的问题是两个内部计时器同时使用会造成数码管无法正常扫描。 以下面程序为例,下面程序结果数码管(从0开始自加,8位数码管显示后4位)无法正常扫描,请问该如何修改? #include #define uchar unsigned char #define uint unsigned int #define DATAPORT P0 uchar code NUMBER[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar code POSITION[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; uchar TEMP[4]; uint num; sbit duanma=P2^2; sbit weima=P2^3; void display(uchar first,uchar total) { static uchar i; DATAPORT=0xff; weima=1; weima=0; DATAPORT=TEMP[i]; duanma=1; duanma=0; DATAPORT=POSITION[i+first]; weima=1; weima=0; i++; if(i==total) i=0; } void TIMER_ini() { TMOD |=0x11; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TH1=(65536-2100)/256; TL1=(65536-2100)%256; EA=1; ET0=1; ET1=1; TR0=1; TR1=1; } void main() { TIMER_ini(); while(1) { TEMP[0]=NUMBER[num/1000]; TEMP[1]=NUMBER[num/10]; TEMP[2]=NUMBER[num/10%10]; TEMP[3]=NUMBER[num%10]; } } void TIMER0() interrupt 1 { TH1=(65536-50000)/256; TL1=(65536-50000)%256; num++; if(num>9999) num=0; } void TIMER1() interrupt 3 { TH1=(65536-2100)/256; TL1=(65536-2100)%256; display(4,4); } 展开
2015-08-06 01:21:00
679
3
- 怎样用51单片机采集555计时器的频率?
2012-12-02 03:49:38
351
3
- 秒表计时器英语怎么写
2016-12-16 19:15:43
419
2
- 跑步秒表计时器怎么关闭
2014-11-15 06:16:36
803
2
- 怎样用VB做一个秒表计时器
- 两个按钮,一个开始键 一个清零键 ,想要点击开始键以后 开始键变成 结束 文本也改成结束 按清零键后变回开始 还想添加一个开始的键盘快捷键(开始和结束能够公用这个快捷键) 求大神指教
2018-11-28 05:21:49
321
0
- 风速风向仪怎么和89c52单片机通讯
2012-02-17 00:53:22
334
1
- 基于51单片机函数信号发生器怎么样实现小功率
2017-04-25 21:48:31
370
1
- C#计时器 比如秒表怎么设计?
2013-05-09 21:47:38
458
1
- 单片机60秒计时器的程序,用AT89C51实现
2009-06-03 22:35:17
337
4
- 51单片机 测速
- 当感应到磁性的时候 有高电平,没有感应到磁性的时候是低电平,求两次测到高电平之间时间是多少。 C语言程序怎么写?用霍尔传感器或者是磁性开关
2014-03-20 07:21:32
330
3
- 89C52单片机与流量传感器连接电路图???? 谢谢
2018-11-30 11:09:51
358
0
5月突出贡献榜
推荐主页
最新话题
-
- #DeepSeek如何看待仪器#
- 干体炉技术发展与应用研究
- 从-70℃到150℃:一台试验箱如何终结智能...从-70℃到150℃:一台试验箱如何终结智能调光膜失效风险?解决方案:SMC-210PF-FPC温湿度折弯试验箱的五大核心价值1. 多维度环境模拟,覆盖全生命周期测试需求超宽温域:支持-70℃至+150℃的极限温度模拟(可选配),复现材料在极寒、高温、冷热冲击下的性能表现;控湿:湿度范围20%~98%RH(精度±3%RH),模拟热带雨林、沙漠干燥等复杂工况,暴露材料吸湿膨胀、分层缺陷;动态折弯:0°~180°连续可调折弯角度,支持R1~R20弯曲半径设定,模拟实际装配中的微小应力,提前预警裂纹、断裂风险。
参与评论
登录后参与评论