欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 定時器控制數碼管動態掃描——(有錯誤) [打印本頁]

作者: nius    時間: 2015-4-10 03:10
標題: 定時器控制數碼管動態掃描——(有錯誤)
我的意思是想讓其數碼管以0~60循環顯示數字但是最后只能顯示個位或十位
而且位選也錯了我叫它往東它卻往西讓后又往北!!
從早上寫到晚上21點  改了好久好久  其結果是要么控制各位要么控制十位...
達不到我所要求的工作目的。   瞬間明白為什么程序員愛加班了。。。而且有時加班時間超過14個小時............
#include<reg51.h>

#define uchar unsigned char
#define uint unsigned int
uchar aa,ss,ge,shi;
uchar code shuzi[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
sbit a=P1^0;
sbit b=P1^1;
void time(uchar k);
void display(ge,shi);
void display(ge,shi);
void main()
{
TMOD=0x01;   
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;   
IT0=1;   
ET0=1;  
TR0=1;
P1=0;
P2=0;       
while(1)
{
P1=0;
P2=0;
display(ge,shi);
}
}
void display(ge,shi)
{
a=1;
P2=shuzi[ge];
time(1);
P2=0;
a=0;

b=1;
P2=shuzi[shi];
time(1 );
P2=0;
b=0;


}
void time(uchar k)
{
uchar x,y;
for(x=100;x>0;x--)
for(y=k;y>0;y--);
}
void dsq0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;
if(aa==20)
{
aa=0;
ss++;
if(ss==60)
{
ss=0;
}
shi=ss/10;
ge=ss%10;
}
}




設計者:薛羽豪



作者: nius    時間: 2015-4-10 03:11
花了12多個小時的寫出來的程序.......... 但可惜只能單獨執行個位或者十位....都申明完了但是就是不能一起執行  位選那里也出了錯  高低電平的輸出全部給我反著來  然后順序也給我反著來
作者: nius    時間: 2015-4-10 03:11
現在來解釋一下錯誤的原因
1,位選/段選寫錯了并且其釋放的電平高低寫錯了
2,沒有考慮到電路的陽/陰極接法,線也接錯了,程序必須與電路匹配
3,最好寫上初始化函數
4,有些變量沒取對




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1