|
樓主逐條對(duì)照,就能發(fā)現(xiàn)問(wèn)題在哪里。
- #include "reg52.h"
- #include "intrins.h"
- typedef unsigned char u8;
- typedef unsigned int u16;
- sbit Wei1=P2^2;//這里的引腳是控制74ch138的
- sbit Wei2=P2^3;
- sbit Wei3=P2^4;
- u8 code Duan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共陰數(shù)碼管段碼
- u16 cut=0;
- u8 sec=0;
- u8 min=0;
- void main()
- {
- u8 i=0;
- TMOD=0x01;
- TH0 = 0xF8;
- TL0 = 0xCD;
- TR0=1;
- while(1)
- {
- if(TF0==1)//2ms
- {
- TF0=0;
- TH0 = 0xF8;
- TL0 = 0xCD;
- cut++;
- if(cut>=500)
- {
- cut=0;
- sec++;
- if(sec>=60)
- {
- sec=0;
- min++;
- if(min>=60)
- min=0;
- }
- }
- //定時(shí)器的代碼
- switch(i)
- {//數(shù)碼管動(dòng)態(tài)掃描
- case(0): Wei1=0 ;Wei2=0 ;Wei3=0;P0=0x40;i++;break;
- case(1): Wei1=1 ;Wei2=0 ;Wei3=0;P0=0x40;i++;break;
- case(2): Wei1=0 ;Wei2=1 ;Wei3=0;P0=0x40;i++;break;
- case(3): Wei1=1 ;Wei2=1 ;Wei3=0;P0=0x40;i++;break;
- case(4): Wei1=0 ;Wei2=0 ;Wei3=1;P0=Duan[min/10];i++;break;
- case(5): Wei1=1 ;Wei2=0 ;Wei3=1;P0=Duan[min%10]|0x80;i++;break;//加小數(shù)點(diǎn)
- case(6): Wei1=0 ;Wei2=1 ;Wei3=1;P0=Duan[sec/10];i++;break;
- case(7): Wei1=1 ;Wei2=1 ;Wei3=1;P0=Duan[sec%10];i=0;break;
- }
- }
- }
- }
復(fù)制代碼 |
|