標題:
52單片機數(shù)碼管從左往右間隔一秒循環(huán)顯示“-”,哪里不對,求大神
[打印本頁]
作者:
霍禮林
時間:
2017-11-6 15:51
標題:
52單片機數(shù)碼管從左往右間隔一秒循環(huán)顯示“-”,哪里不對,求大神
#include "reg52.h"
#include<intrins.h> //因為要用到左右移函數(shù),所以加入這個頭文件
#define uchar unsigned char
typedef unsigned int u16; //對數(shù)據(jù)類型進行聲明定義
typedef unsigned char u8;
u8 duan[8]={0x40};
u8 wei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}
u8 dispbitcnt;
u8 i;
void Timer()
{
TMOD=0x01;//采用定時器0,16位
TH0=0x3c; //初始值 10ms
TL0=0xb0;
EA=1; //總中斷打開
ET0=1; //定時器中斷打開
TR0=1; //定時器開關打開
}
void main()
{
Timer();
while (1);
{
if(i==100)
{
i=0;
P0=0x40;
P2=wei[dispbitcnt];
P2=P2>>1;
dispbitcnt++;
if(P2==0x7f)
dispbitcnt=0;
}
}
}
void Timer0(void) interrupt 1
{
static u16 i;
TH0=0xd8;
TL0=0xf0;
i++;
}
作者:
Felixin
時間:
2017-11-6 16:23
為啥會有一個全局變量i
作者:
Felixin
時間:
2017-11-6 16:24
為啥會有一個全局變量i和一個局部變量i呢,你主函數(shù)用的應該是全局變量那個吧
作者:
1014477535
時間:
2017-11-6 16:49
會不會是因為定時太短了?
作者:
霍禮林
時間:
2017-11-6 16:55
Felixin 發(fā)表于 2017-11-6 16:24
為啥會有一個全局變量i和一個局部變量i呢,你主函數(shù)用的應該是全局變量那個吧
用的全局的
作者:
liut_text
時間:
2017-11-6 17:26
while(1);這里有分號,運行到這里就一直循環(huán)
作者:
zl2168
時間:
2017-11-6 21:05
先學理論,打基礎,否則,問題多多,事倍功半。
作者:
白羊一只老母豬
時間:
2017-11-6 21:13
先學理論,打基礎,否則,問題多多,事倍功半。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1