設計12字符點陣LED,能顯示中文字符,并交替閃爍。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
1111.JPG (291.52 KB, 下載次數: 61)
下載附件
2017-11-8 11:33 上傳
0.png (53.87 KB, 下載次數: 52)
下載附件
2017-11-8 17:02 上傳
單片機源程序如下:
- #include<AT89X52.H>
- sbit ST=P3^5;
- sbit E1=P3^4;
- sbit MR=P3^7;
- char cashe[12];
- char code wd[12][16]={
- {0xFE,0xFE,0xFE,0xFE,0xFE,0xDE,0xDE,0xDE,0xDE,0xDE,0xDE,0xDE,0xDE,0x80,0xDF,0xFF},
- {0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xFB,0xFB,0xFB,0xFB,0xFB,0xFB,0xFB,0x03,0xFB,0xFF},/*"山",0*/
- {0xFD,0xFD,0x80,0xFB,0xF7,0xF7,0xEF,0xE0,0xFF,0xF7,0xF3,0xE7,0xEF,0xDD,0xFE,0xFF},
- {0xFF,0xFF,0x03,0xFF,0x7F,0x7F,0x7F,0x07,0x7F,0x5F,0x6F,0x77,0x73,0x7B,0x7F,0x7F},/*"東",1*/
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
- {0xFF,0xFF,0xFF,0xFF,0xFF,0x01,0xFF,0x7F,0x7F,0xBF,0xBF,0xDF,0xEF,0xE7,0xF1,0xFB},/*"大",4*/
- {0xFE,0xEF,0xF3,0xF7,0x80,0xBF,0x70,0xFF,0xFF,0x80,0xFF,0xFF,0xFF,0xFF,0xFD,0xFE},
- {0xF7,0x73,0x37,0x6F,0x01,0xFB,0x17,0xBF,0x7F,0x01,0x7F,0x7F,0x7F,0x7F,0x7F,0xFF},/*"學",5*/
- };
- void del(int i)//============================//延時程序
- {while(i--);}
- aline() ////=======================發送一行的顯示程序
- {
- char i=0;
- TI=0;
- for(i=0;i<12;i++)
- {SBUF=cashe[i];while(~TI);TI=0;} //將緩存中的信息轉存入595的存儲器中,到此不顯示
- }
- main()
- {
- int m=0,n=0;
- TI=0;
- SM0=0;
- SM1=0;
- E1=0;
- while(1)
- for(m=0;m<16;m++) //共有16行 循環16次顯示這16行 串行的595送出行的數據
- { //由74hc154選中要顯示的行
- for(n=0;n<12;n++) //這個for循環用來向緩存數組中裝載要顯示的內容
- {cashe[11-n]=wd[n][m];} //將第m個字的第n行信息裝載 ,因為595串接 數據第一個進去的會在最后一個595中,最后進去的會在第一個595中
- aline(); //將緩存中的一行信息載入595緩存中
- ST=0;ST=1; //595產生上升沿 輸出595鎖存的數據
- P2=m; //選中要顯示的行輸出數據
-
- del(100);//延時一段時間,以造成視覺暫存效應
- }
- }
復制代碼
所有資料51hei提供下載:
16_16(12)點陣LED.rar
(99.75 KB, 下載次數: 56)
2017-11-8 11:34 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|