#include
#include
#define uchar unsigned char
#define uint unsigned int
//待顯示圖形編碼
uchar code M[][8]=
{
{0x00,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x00}, //圖 1
{0x00,0x38,0x44,0x54,0x44,0x38,0x00,0x00}, //圖 2
{0x00,0x20,0x30,0x38,0x3c,0x3e,0x00,0x00} //圖 3
};
uchar i,j;
//主程式
void main()
{
P0=0xff;
P1=0xff;
TMOD=0x01; //T0 方式 1
TH0=(65536-2000)/256; //2ms 定時
TL0=(65536-2000)%256;
IT0=1; //下降沿觸發
IE=0x83; //允許定時器 0、外部 0 中斷
i=0xff; //i 的初值設為 0xff,加 1 後将從 0 開始
while(1);
}[page]
//T0 中斷控制點陣屏顯示
void Show_Dot_Matrix() interrupt 1
{
TH0=(65536-2000)/256;//恢複初值
TL0=(65536-2000)%256;
P0=0xff; //輸出位碼和段碼
P0=~M[i][j];
P1=_crol_(P1,1);
j=(j+1)%8;
}
//INT0 中斷(定時器由鍵盤中斷啟動)
void Key_Down() interrupt 0
{
P0=0xff;
P1=0x80;
j=0;
i=(i+1)%3; //i 在 0,1,2 中取值,因為隻要 3 個圖形
TR0=1;
}
