欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
51單片機粗略60s倒計時數碼管顯示求教
[打印本頁]
作者:
單片機之神
時間:
2020-4-26 23:37
標題:
51單片機粗略60s倒計時數碼管顯示求教
目前還沒有學習定時中斷,所以只能是粗略的60s倒計時數碼管顯示,下面是我自己編的程序,沒有預期現象,還請各位大佬幫忙瞅瞅,感謝!
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
void display(uint ge,uint shi);
void delay(uint z)
{
uint a,b;
for(a=z;a>0;a--)
for(b=120;b>0;b--);
}
uchar table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uint c,n,i,ge,shi;
sbit k1=P1^0;
void main()
{
while(1)
{
c=0;
n=60;
if(k1==0) {c=1;}
if(k1==0) delay(10);
if(c==1)
{
for(i=60;i>0;i--)
{
n- -;
display(ge,shi);//調用顯示子函數
delay(1000);//延時一秒
}
if(n==0) n=0;
}
}
}
}
void display(uint ge,uint shi)//顯示子函數
{
ge=n%10;
shi=n/10;
P2=0xfe;
P1=table1[ge];
delay(5);
P2=0xfd;
P1=table1[shi];
delay(5);
}
作者:
之一知足
時間:
2020-4-26 23:58
那就去學定時器,用軟件延時函數太粗略了,或者用延時函數計算工具,計算出大概比較精確的延時函數,自己一點一點試,比較不好
作者:
單片機之神
時間:
2020-4-27 07:31
拜托了各位,這個是我們師傅布置的任務,不用中斷定時怎么做
作者:
xianfajushi
時間:
2020-4-27 09:27
用不用中斷都一樣,都是延時而已。可參
https://blog.csdn.net/xianfajush ... rank_v2~rank_v25-19
作者:
wulin
時間:
2020-4-27 14:11
用控制主循環周期的60s倒計時程序示例+仿真
無標題.jpg
(121.04 KB, 下載次數: 24)
下載附件
2020-4-27 14:10 上傳
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit k1=P3^0;
uchar table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uint n;
uchar c=0,i=0,sec=0;
bit j;
void delay(uint z)
{
uint a,b;
for(a=z;a>0;a--)
for(b=119;b>0;b--);
}
void display()//顯示子函數
{
P1=0x00;//消隱
P2=0xfe;//送個位位碼
P1=table1[sec%10];//送個位段碼
delay(1);//延時一毫秒
P1=0x00;//消隱
P2=0xfd;//送十位位碼
P1=table1[sec/10];//送十位段碼
delay(1);//延時一毫秒
}
void main()
{
while(1)//主循環周期約2ms
{
if(k1==0)
{
if(++i==10 && j==0)//計數消抖與判斷按鍵狀態
{
j=1;//記憶按鍵狀態
c++;
if(c==1)//開始倒計時
{
sec=60;
n=0;
}
// if(c==2)//暫停
if(c==3)//清0
{
c=0;
sec=0;
}
}
}
else //按鍵松手
{
i=0;
j=0;
}
if(c==1)//允許倒計時
{
n++;
if(n>=500)//1秒
{
n=0;
if(sec>0)
sec--;
if(sec==0)
c=0;
}
}
display();//調用顯示子函數
}
}
復制代碼
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1