|
| 好像與595差不多吧,我覺得。 |
| MAX7219是一種串行輸入/并行輸出的的共陰極顯示驅動器,可連接CPU實現8位數字的7段LED顯示或64位獨立LED。仔細看看MAX7219資料,連接好線路,89C51的編程,決定了你來顯示什么。 |
| 這個芯片就是把串口數據轉換成并口 |
|
MAX7219驅動數碼管顯示,單片機檢測按鍵情況,在程序中進行計數,將結果送給MAX7219驅動數碼管顯示。目前正使用MAX7219驅動數碼管顯示在做東西,談談感受。 使用MAX7219的好處: 1)它會對數碼管進行動態掃描驅動,不需要單片機進行驅動,節約單片機運行時間。 2)電路是否簡化?不同人會有不同看法。我個人認為簡化了。 缺點: 1)硬件成本增加 2)如果單片機不刷新,則會一直顯示原來內容 使用注意事項: 1)連接線不宜過長 2)程序及時刷新變動顯示數據,便于只管觀察到程序是否還在運行 |
|
應該先弄清楚MAX7219的時序控制。 下列是從網絡上來的程序,自己研究和參考: #include <reg52.h> #define uchar unsigned char #define uint unsigned int //定義Max7219端口 sbit Max7219_pinCLK = P1^2; sbit Max7219_pinCS = P1^1; sbit Max7219_pinDIN = P1^0; void Delay_xms(uint x) { uint i,j; for(i=0;i<x;i++) for(j=0;j<112;j++); } //-------------------------------------------- //功能:向MAX7219(U3)寫入字節 //入口參數:DATA //出口參數:無 //說明: void Write_Max7219_byte(uchar DATA) { uchar i; Max7219_pinCS=0; for(i=8;i>=1;i--) { Max7219_pinCLK=0; Max7219_pinDIN=DATA&0x80; DATA=DATA<<1; Max7219_pinCLK=1; } } //------------------------------------------- //功能:向MAX7219寫入數據 //入口參數:address、dat //出口參數:無 //說明: void Write_Max7219(uchar address,uchar dat) { Max7219_pinCS=0; Write_Max7219_byte(address); //寫入地址,即數碼管編號 Write_Max7219_byte(dat); //寫入數據,即數碼管顯示數字 Max7219_pinCS=1; } void Init_MAX7219(void) { Write_Max7219(0x09, 0xff); //譯碼方式:BCD碼 Write_Max7219(0x0a, 0x03); //亮度 Write_Max7219(0x0b, 0x07); //掃描界限;4個數碼管顯示 Write_Max7219(0x0c, 0x01); //掉電模式:0,普通模式:1 Write_Max7219(0x0f, 0x01); //顯示測試:1;測試結束,正常顯示:0 } void main(void) { Delay_xms(50); Init_MAX7219(); Delay_xms(2000); Write_Max7219(0x0f, 0x00); //顯示測試:1;測試結束,正常顯示:0 Write_Max7219(1,8); Write_Max7219(2,7); Write_Max7219(3,6); Write_Max7219(4,5); Write_Max7219(5,4); Write_Max7219(6,3); Write_Max7219(7,2); Write_Max7219(8,1); while(1); } |