單片機(jī)C語(yǔ)言程序設(shè)計(jì):8X8LED 點(diǎn)陣顯示數(shù)字
掃描二維碼
隨時(shí)隨地手機(jī)看文章
/* 名稱:按鍵控制 8X8LED 點(diǎn)陣屏顯
示圖形
說(shuō)明:每次按下 K1 時(shí),會(huì)使 8X8LED
點(diǎn)陣屏循環(huán)顯示不同圖形。
本例同時(shí)使用外部中斷和定
時(shí)中斷。
*/
#include<reg51.h>
#include<intrins.h> #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 定時(shí) TL0=(65536-2000)%256; IT0=1; //下降沿觸發(fā) IE=0x83; //允許定時(shí)器 0、外部 0 中斷 i=0xff; //i 的初值設(shè)為 0xff,加 1 后將從 0 開始 while(1); } //T0 中斷控制點(diǎn)陣屏顯示 void Show_Dot_Matrix() interrupt 1 { TH0=(65536-2000)/256;//恢復(fù)初值 TL0=(65536-2000)%256; P0=0xff; //輸出位碼和段碼 P0=~M[i][j]; P1=_crol_(P1,1); j=(j+1)%8; } //INT0 中斷(定時(shí)器由鍵盤中斷啟動(dòng)) void Key_Down() interrupt 0 { P0=0xff; P1=0x80; j=0; i=(i+1)%3; //i 在 0,1,2 中取值,因?yàn)橹灰?nbsp;3 個(gè)圖形 TR0=1; } 單片機(jī)C語(yǔ)言程序設(shè)計(jì):8X8LED 點(diǎn)陣顯示數(shù)字" width="550" height="361" /> 擴(kuò)展閱讀:定時(shí)器控制數(shù)碼管動(dòng)態(tài)顯示程序