LED 點陣電子顯示屏是集微電子技術、計算機技術、信息處理技術于一體的大型顯示屏系統。它以其色彩鮮艷,動態范圍廣,亮度高,壽命長,工作穩定可靠等優點而成為眾多顯示媒體以及戶外作業顯示的理想選擇。同時也可廣泛應用到軍事、車站、賓館、體育、新聞、金融、證券、廣告以及交通運輸等許多行業。本次設計的點陣顯示屏主要是通過單片機直接控制行掃描,然后用74LS138來控制列掃描。這個設計的軟硬件都成功通過了PROTEUS的仿真調試。 MCS-48成功應用的推動下,許多半導體公司和計算機公司也競相研制和開發自己的單片機系列。到目前為止,世界各地廠商也相繼研制出大約50個系列300多個品種的單片機產品,可以滿足不同領域的需要。代表產品有Intel公司的MCS-51單片機,Motorola公司的MC6081、MC6082系列機,Zilog公司的Z-8系列機,TI公司的TMS7000系列機等,此外Rockwell、NS、GI和日本的NEC、松下、日立等公司也先生產了自己的單片機系列。
電路原理圖如下:
單片機源程序如下:
- #include<reg51.h>
- #include<intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- #define data1 P0
- #define data2 P2
- sbit s1=P3^6;
- sbit s2=P3^7;
- bit fangxiang;
- uint alt=0,net=0,sl=160;
- bit mode;
- uchar code tab[]={
- // (0) (1) 新(2) 年(3) 快(4) 樂(5) (6) (7)
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",0*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",1*/
- 0x02,0x04,0x22,0x48,0x2A,0x52,0xA6,0x41,0x63,0xFE,0x26,0x40,0x2A,0x50,0x22,0x49,
- 0x00,0x06,0x3F,0xF8,0x22,0x00,0x22,0x00,0x23,0xFF,0x42,0x00,0x02,0x00,0x00,0x00,/*"新",2*/
- 0x00,0x20,0x04,0x20,0x18,0x20,0xE3,0xE0,0x22,0x20,0x22,0x20,0x22,0x20,0x22,0x20,
- 0x3F,0xFF,0x22,0x20,0x22,0x20,0x22,0x20,0x22,0x20,0x20,0x20,0x00,0x20,0x00,0x00,/*"年",3*/
- 0x00,0x80,0x07,0x00,0x00,0x00,0xFF,0xFF,0x08,0x00,0x04,0x81,0x10,0x82,0x10,0x8C,
- 0x10,0xB0,0xFF,0xC0,0x10,0xB0,0x10,0x8C,0x1F,0x82,0x00,0x81,0x00,0x81,0x00,0x00,/*"快",4*/
- 0x00,0x00,0x00,0x04,0x07,0x08,0x39,0x10,0x21,0x60,0x21,0x02,0x21,0x01,0x2F,0xFE,
- 0x41,0x00,0x41,0x00,0xC1,0x40,0x41,0x20,0x01,0x10,0x01,0x0C,0x00,0x00,0x00,0x00,/*"樂",5*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",6*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",7*/
- };
- void delay(uint z) //延時子函數
- {
- uchar x;
- for(;z>0;z--)
- for(x=110;x>0;x--);
- }
- void xianshi() //顯示
- {
- uchar aa,i;
- for(i=0;i<16;i++)
- {
- P1=i; //列掃描
- data1=tab[net+aa]; //取出上8行數據輸出
- aa++;
- data2=tab[net+aa]; //取出下8行數據輸出
- aa++;
- delay(5); //延時
- data1=0; //清屏
- data2=0; //清屏
- P1=0x00; //消除余輝
- if(aa>30) aa=0; //字模地址
- }
-
- }
- void main() //主函數
- {
- ET1=1; //使能定時器0
- EA=1; //開啟總中斷
- TR1=1; //開始計數
- while(1) //無限循環
- {
- xianshi(); //顯示
- if(s1==0) //檢測按鍵
- {
- delay(30); //延時消抖
- TR1=~TR1; //按下暫停 ,暫按繼續
- while(!s1)xianshi();
- delay(30);
- }
- if(s2==0) //檢測按鍵
- {
- delay(30); //延時消抖
- fangxiang=~fangxiang; //方向取反
- while(!s2)xianshi();
- delay(30);
- }
- }
- }
-
- void timer1() interrupt 3
- {
- alt++;
- if(alt==10) //到一定的時間加以實現左移
- {
- alt=0;
- if(fangxiang==0) //如果是正向 正向移動
- {
- net=net+2;
- if(net>sl) //字移動數量
- net=0;
- }
- else //否則反向移動
- {
- net=net-2;
- if(net<2)
- net=sl; //字移動數量
- }
- }
-
- }
復制代碼
所有資料51hei提供下載:
點陣程序.rar
(1.13 KB, 下載次數: 77)
2018-8-29 12:57 上傳
點擊文件名下載附件
直接程序
Protel Schematic.pdf
(37.22 KB, 下載次數: 62)
2018-8-29 12:56 上傳
點擊文件名下載附件
上原理圖
|