欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
51單片機實現0-9.9秒的秒表程序,這樣有問題嘛?
[打印本頁]
作者:
flyzzie
時間:
2020-6-18 12:59
標題:
51單片機實現0-9.9秒的秒表程序,這樣有問題嘛?
在學單片機,用51單片機實現0-9.9秒的秒表,有一個暫停鍵,一個開始鍵,按開始鍵開始計數,最小精度為0.1,按暫停鍵暫停,此時秒數不變化,按開始鍵可繼續計數。
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define LED P0
#define PSCAN P1
uchar scan=0x01;
uint count_T1=0;
uchar number[2]={0,0};
uchar table[10]={0xc0,0xf9,0xa4,0x60,0x99,0x92,0x82,0xf8,0x80,0x90};//共陽數碼管
sbit button_start=P2^0;
sbit button_stop=P2^1;
uchar sec=0;
void delay(uchar x)
{
uchar a;
while(x--)
{
for(a=0;a<250;a++);
}
}
void Init(void)
{
IE=0X86;
TMOM=0X21;
TH0=0X3C;TL0=0X60;//T0 50ms定時
TL0=0X06;TH1=TL1;//T1 250微秒定時
TR0=1;TR1=0;
}
//T0定時掃描,在數碼管顯示,每0.05秒掃描一次
void Inter_T0(void) interrupt 1
{
TH0=0X3C;TL0=0X60;
if(scan==0x03) scan=0x01;
PSCAN=scan;
LED=table[number[scan-1]];
scan++;
}
void Inter_T1(void) interrupt 3
{
if(++count==400)//到達0.1秒
{
count_T1=0;
sec++;
if(sec==100) sec=0;
number[0]=sec/10;
number[1]=sec%10;
}
}
void main(void)
{
Init();
while(1)
{
if(!button_start)
{
delay(20);//延時20ms
if(!button_start)
{
delay(20);
while(!button_start);
TR1=1;
}
}
else if(!button_stop)
{
delay(20);//延時20ms
if(!button_stop)
{
delay(20);
while(!button_stop);
TR1=0;
}
}
}
}
仿真圖類似于這個,網上找的,把它的reset改成了stop功能。
有大神幫忙看看對不對嘛。
作者:
xianfajushi
時間:
2020-6-18 16:24
可參
https://blog.csdn.net/xianfajushi/article/details/89448933
作者:
flyzzie
時間:
2020-6-18 22:34
xianfajushi 發表于 2020-6-18 16:24
可參https://blog.csdn.net/xianfajushi/article/details/89448933
啊這,想問頭文件reg52.h和reg51.h有啥區別啊。我用的兩個數碼管,感覺挺簡單的,他那個好復雜哦。
作者:
xianfajushi
時間:
2020-6-19 09:32
按你自己的理解去寫,不用管別人如何寫,看看別人的思路是可行的。
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1