8x8點陣顯示,包括靜止顯示與滾動顯示,還有protues仿真
單片機源程序如下:
- /*********************************
- *name: 微型計算機控制技術試驗
- * 8*8LED點陣輸出名字學號
- *auther: 16級電氣一班 WYH
- * 2016903020
- *********************************/
- #include "reg51.h"
- #include<intrins.h>
- typedef unsigned int u16; //對數據類型進行聲明定義
- typedef unsigned char u8;
- u8 zero_duan[] ={0x00,0x00,0x3c,0x42,0x42,0x3c,0x00,0x00};
- u8 wei[] ={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
- u8 one_duan[] ={0x00,0x00,0x00,0x44,0x7e,0x40,0x00,0x00};
-
- u8 two_duan[] ={0x00,0x00,0x64,0x52,0x4a,0x44,0x00,0x00};
-
- u8 three_duan[] ={0x00,0x00,0x24,0x42,0x5a,0x24,0x00,0x00};
-
- u8 six_duan[] ={0x00,0x00,0x7c,0x92,0x92,0x62,0x00,0x00};
-
- u8 nine_duan[] ={0x00,0x00,0x8c,0x92,0x92,0x7c,0x00,0x00};
-
- u8 w_duan[] ={0x08,0x10,0x20,0x18,0x18,0x20,0x10,0x08};
-
- u8 y_duan[] ={0x00,0x02,0x04,0x78,0x04,0x02,0x00,0x00};
-
- u8 h_duan[] ={0x00,0x00,0xfe,0x10,0x10,0xfe,0x00,0x00};
- /*******************************************************************************
- * 函 數 名 : delay
- * 函數功能 : 延時函數,i=1時,大約延時10us
- *******************************************************************************/
- void delay(u16 i)
- {
- while(i--);
- }
- /*******************************************************************************
- * 函 數 名 : main
- * 函數功能 : 主函數
- * 輸 入 : 無
- * 輸 出 : 無
- *******************************************************************************/
- void main()
- {
- u8 i;
- u16 j,k;
- while(1)
- {
- for(j=0;j<13;j++)
- {
- k=100;
- while(k--)
- {
- for(i=0;i<8;i++)
- {
- switch(j)
- {
- case 0: //w
- P0=wei[i]; //位選
- P2=w_duan[i]; //發送段選數據
- break;
- case 1: //y
- P0=wei[i]; //位選
- P2=y_duan[i]; //發送段選數據
- break;
- case 2: //h
- P0=wei[i]; //位選
- P2=h_duan[i]; //發送段選數據
- break;
- case 3: //2
- P0=wei[i]; //位選
- P2=two_duan[i]; //發送段選數據
- break;
- case 4: //0
- P0=wei[i]; //位選
- P2=zero_duan[i];//發送段選數據
- break;
- case 5: //1
- P0=wei[i]; //位選
- P2=one_duan[i]; //發送段選數據
- break;
- case 6: //6
- P0=wei[i]; //位選
- P2=six_duan[i]; //發送段選數據
- break;
- case 7: //9
- P0=wei[i]; //位選
- P2=nine_duan[i];//發送段選數據
- break;
- case 8: //0
- P0=wei[i]; //位選
- P2=zero_duan[i];//發送段選數據
- break;
- case 9: //3
- P0=wei[i]; //位選
- P2=three_duan[i];//發送段選數據
- break;
- case 10: //0
- P0=wei[i]; //位選
- P2=zero_duan[i];//發送段選數據
- break;
- case 11: //2
- P0=wei[i]; //位選
- P2=two_duan[i]; //發送段選數據
- break;
- case 12: //0
- P0=wei[i]; //位選
- P2=zero_duan[i];//發送段選數據
- break;
- }
- delay(120); //延時
- }
- }
- }
- }
- }
復制代碼
所有資料51hei提供下載:
8X8點陣.zip
(91.72 KB, 下載次數: 48)
2020-5-28 15:34 上傳
點擊文件名下載附件
|