|
5黑幣
各位大大問下我這個(gè)是在P3^7用定時(shí)器1產(chǎn)生方波信號,然后P3^4是計(jì)數(shù)器0的下降沿跳變信號,但是單片機(jī)上只讀到了01就沒有繼續(xù)加了,是不是IO口賦值有什么問題?
- #include<reg52.h>
- #define uchar unsigned char
- #define unit unsigned int
- uchar num,num2;
- unit count;
- uchar code table[]={0x3f,0x06,0x5b,0x4f,
- 0x66,0x6d,0x7d,0x07,
- 0x7f,0x6f,0x77,0x7c,
- 0x39,0x5e,0x79,0x71};
- sbit IS=P3^4;
- sbit led0=P1^0;
- sbit dula=P2^6;
- sbit wela=P2^7;
- /*************************
- 延遲函數(shù)
- **************************/
- void delayms(unit ms)
- {
- unit i,j;
- for(i=ms;i>0;i--)
- for(j=110;j>0;j--);
- }
- /*************************
- 初始化函數(shù)
- *************************/
- void init()
- {
- TMOD=0x15;
- EA=1;
- ET0=1;
- ET1=1;
- TR0=1;
- TR1=1;
- TH0=0xff;
- TL0=0xff;
- TH1=(65536-50000)/256;
- TL1=(65536-50000)%256;
- }
- /*************************
- 數(shù)碼管顯示函數(shù)
- *************************/
- 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);
- }
- /**************************
- 主函數(shù)
- **************************/
- void main()
- {
- init();
- while(1)
- {
- IS=led0;
- display(num/10,num%10);
-
- }
- }
- /***************************
- 定時(shí)器中斷函數(shù)
- ***************************/
- void ser()interrupt 1
- {
- TH0=0xff;
- TL0=0xff;
- num++;
- if(num==100)
- {
- num=0;
- }
- }
- void ser1()interrupt 3
- {
- TH1=(65536-50000)/256;
- TL1=(65536-50000)%256;
- num2++;
- if(num2==10)
- {
- led0=~led0;
- }
- }
復(fù)制代碼
|
最佳答案
查看完整內(nèi)容
給你改了一下試試。
#include
#define uchar unsigned char
#define unit unsigned int
unit num;
uchar num2;
uchar code table[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
sbit IS=P3^4;
sbit led0=P1^0;
sbit dula=P2^6;
sbit wela=P2^7;
/******************* ...
|