天天看點

led led c語言程式設計,單片機C語言程式設計:8X8LED 點陣顯示數字

#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;

}

led led c語言程式設計,單片機C語言程式設計:8X8LED 點陣顯示數字