熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2019-3-15 10:44
正文摘要:#include<reg52.h> #define uint unsigned int #define uchar unsigned char sbit wela=P2^7; sbit dula=P2^6; void display(uchar bai,uchar shi,uchar ge); void init(); void delay(uint z); uchar a ... |
wulin 發(fā)表于 2019-3-15 21:17 不錯(cuò)不錯(cuò),這才是負(fù)責(zé)任的回答!樓主記得打償黑幣喲! |
參與人數(shù) 5 | 黑幣 +52 | 收起 理由 |
---|---|---|
![]() | + 8 | 很給力! |
![]() | + 16 | |
![]() | + 10 | 很給力! |
![]() | + 10 | 很給力! |
![]() | + 8 | 很給力! |
定時(shí)器設(shè)置有錯(cuò)誤、延時(shí)函數(shù)有錯(cuò)誤、顯示程序位置錯(cuò)誤。改好了。 #include<reg52.h> #define uint unsigned int #define uchar unsigned char sbit wela=P2^7; sbit dula=P2^6; void display(); void init(); void delay(uint z); uchar bai,shi,ge,temp,temp1; uchar aa; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void main() { init(); //初始化之程序 while(1) { if(aa==20) { aa=0; temp++; if(temp>120) { temp=0; } bai=temp/100; shi=temp%100/10; ge =temp%10; } display(); } } void init() { wela=0; dula=0; temp=0; temp1=0; TMOD=0x01; TH0=(63556-50000)/256; // TH0=(63556-50000)%256; TL0=(63556-50000)%256; TR0=1; EA=1; ET0=1; } void timer0() interrupt 1 { TH0=(63556-50000)/256; // TH0=(63556-50000)%256; TL0=(63556-50000)%256; aa++; } void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=120;y>0;y--); } void display() //顯示1-100變化的子程序 { P0=0xfe; wela=1; wela=0; P0=table[bai]; dula=1; dula=0; delay(2); P0=0xfd; wela=1; wela=0; P0=table[shi]; dula=1; dula=0; delay(2); P0=0xfb; wela=1; wela=0; P0=table[ge]; dula=1; dula=0; delay(2); } |
你的delay延時(shí)程序有問題,for(x=z;x>0;x++)和 for(y=z;y>0;y++)語句中分別應(yīng)該是x--和y--,而不應(yīng)該是x++和y++。話又說回來,累加到溢出=0應(yīng)該也行吧,但你的x、y又是unsigned int型,這個(gè)延時(shí)也太長(zhǎng)了吧 |
Powered by 單片機(jī)教程網(wǎng)