熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
看樣子你是用protues仿真的,那個(gè)四位的有問題,你換成一位一位的,就好了 |
哥們,這個(gè)肯定是程序問題,,你再好好查查程序 |
看看你的電路和程序是不是用的同樣的IO口,你的數(shù)碼管是共陽還是共陰。程序是共陽的段碼。程序沒問題主要看你的電路,和數(shù)碼管。 |
是程序有問題還是硬件有問題這不好說,就算同一個(gè)程序不同的人制作出來會(huì)有不同結(jié)果。 |
你全點(diǎn)亮 先確定數(shù)碼管沒有壞 |
你全點(diǎn)亮 看看是不是數(shù)碼管壞了 |
實(shí)物能不能顯示?有的時(shí)候仿真出不來是器件顯示時(shí)間不夠 |
本帖最后由 末將 于 2016-2-15 22:44 編輯 這是程序 照著書上寫的 #include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit dula=P2^6; sbit wela=P2^7; sbit led1=P1^0; uchar code table []={0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e}; void delayms(uint); void display(uchar,uchar); uchar num,num1,num2,shi,ge; void main() {TMOD=0x11; TH0=(65536-45872)/256; TL0=(65536-45872)%256; TH1=(65536-45872)/256; TL1=(65536-45872)%256; EA=1; ET0=1; ET1=1; TR0=1; TR1=1; while(1) { display(shi,ge); } } void display (uchar shi,uchar ge) { dula=1 ; P0=table[shi]; dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delayms(5); dula=1; P0=table[ge]; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delayms(5); } void delayms(uint xms) { uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } void T0_time() interrupt 1 { TH0=(65536-45872)/256; TL0=(65536-45872)%256; num1++; if(num1==4) { num1=0; led1=~led1; } } void T1_time() interrupt 3 { TH1=(65536-45872)/256; TL1=(65536-45872)%256; num2++; if(num2==20) { num2=0; num++; if(num==60) num=0; shi=num/10; ge=num%10; } } |
現(xiàn)在本來應(yīng)該是02 |
Powered by 單片機(jī)教程網(wǎng)