|
#include "reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;
#define SMG_A_DP_PORT P0//數(shù)碼管P0端口
u8 gsmg_code[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};//共陰0-F
u8 a=0;//給a賦值0
void ZD0_init(void)
{
TMOD|=0X01;//選擇為定時(shí)器0模式,工作方式1
TH0=0XFC;//給定時(shí)器賦初值,定時(shí)10ms
TL0=0X18;
ET0=1; //打開定時(shí)器0中斷
EA=1; //打開總中斷
TR0=1;//打開定時(shí)器
}
void main()
{
ZD0_init();//定時(shí)器中斷0
while(1)
{
switch(a)
{
case 0: SMG_A_DP_PORT=~gsmg_code[0];break;
case 1: SMG_A_DP_PORT=~gsmg_code[1];break;
case 2: SMG_A_DP_PORT=~gsmg_code[2];break;
case 3: SMG_A_DP_PORT=~gsmg_code[3];break;
case 4: SMG_A_DP_PORT=~gsmg_code[4];break;
case 5: SMG_A_DP_PORT=~gsmg_code[5];break;
case 6: SMG_A_DP_PORT=~gsmg_code[6];break;
case 7: SMG_A_DP_PORT=~gsmg_code[7];break;
case 8: SMG_A_DP_PORT=~gsmg_code[8];break;
case 9: SMG_A_DP_PORT=~gsmg_code[9];break;
case 10:SMG_A_DP_PORT=~gsmg_code[10];break;
}
}
}
void ZD0() interrupt 1 //定時(shí)器0中斷函數(shù)
{
static u16 i;//定義靜態(tài)變量
TH0=0XFC;//給定時(shí)器賦初值,定時(shí)1ms
TL0=0X18;
i++;
if(i==1000)
{
i=0;
a++;
}
if(a==10)//a累加到10
{
a=0;//當(dāng)a累加到10時(shí),a就等于0
}
}
|
|