|
你程序中的問(wèn)題我已經(jīng)修改,在我的板子HC6800-ES-V2.0上可以正常顯示了。你對(duì)比一下,找找自己的問(wèn)題。
/**************************************************************************************
* 定時(shí)器1實(shí)驗(yàn) *
實(shí)現(xiàn)現(xiàn)象:下載程序后數(shù)碼管最后一位間隔一秒循環(huán)顯示0-F。使用單片機(jī)內(nèi)部定時(shí)器可以實(shí)現(xiàn)準(zhǔn)確延時(shí)。
注意事項(xiàng):如果不想讓點(diǎn)陣模塊顯示,可以將74HC595模塊上的JP595短接片拔掉。
***************************************************************************************/
#include <reg52.h> //此文件中定義了單片機(jī)的一些特殊功能寄存器
#define uchar unsigned char
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
uchar code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//顯示0~F的值
uchar num1=0;
uchar num=0;
void smgplay();
/*******************************************************************************
* 函 數(shù) 名 : Timer1Init
* 函數(shù)功能 : 定時(shí)器1初始化
* 輸 入 : 無(wú)
* 輸 出 : 無(wú)
*******************************************************************************/
void Timer1Init()
{
TMOD|=0X10;//選擇為定時(shí)器1模式,工作方式1,僅用TR1打開(kāi)啟動(dòng)。
TH1=(65535-50000)/256;
TL1=(65535-50000)%256;
ET1=1;//打開(kāi)定時(shí)器1中斷允許
EA=1;//打開(kāi)總中斷
TR1=1;//打開(kāi)定時(shí)器
}
/*******************************************************************************
* 函 數(shù) 名 : main
* 函數(shù)功能 : 主函數(shù)
* 輸 入 : 無(wú)
* 輸 出 : 無(wú)
*******************************************************************************/
void main()
{
LSA=0;
LSB=0;
LSC=0;
Timer1Init(); //定時(shí)器1初始化
P0=0x00;
while(1);
}
void time1() interrupt 3
{
TH1=(65535-50000)/256;
TL1=(65535-50000)%256;
num1++;
if(num1==20)
{
smgplay();
num1=0;
}
}
void smgplay()
{
P0=smgduan[num];
num++;
if (num==16)
{
num=0;
}
}
|
|