光立方的顯示來一波
單片機源程序如下:
- #include <STC12C5A60S2.H>
- #include "STC12C5A.H"
- #define uint unsigned int
- #define uchar unsigned char
- /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
- sbit L1602_RS_POW=P4^4; //定義電源功能接口 低電平
- /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
- sbit M_HR_DS0=P1^4; //模擬數據發送端口
- sbit M_LR_DS0=P1^5; //模擬數據發送端口
- sbit M_HG_DS0=P1^6; //模擬數據發送端口
- sbit M_LG_DS0=P0^7; //模擬數據發送端口
- sbit CLK=P1^3; //模擬時鐘控制端口
- sbit SUO=P1^2; //模擬鎖存信號端口
- /*$-_-$_-_$-_-$_-_$-_-$_-_$-_-$_-_$-_-$_-_$-_-$_-_$-_-$_-_$-_-$_-_$-_-$_-_$-_-$_-_$*/
- sbit a=P3^4; //行數據掃描信號
- sbit b=P3^5; //行數據掃
- sbit c=P3^6; //行數
- sbit d=P3^7; //行數據
- sbit en=P1^7; //行數據
- /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
-
- unsigned int CYCLE=100,PWM_LOW=1110,shan=0,saom=0,shuzi1=0,shuzi2=0,shuzi3=0,shuzi4=0;//定義周期并賦值
- unsigned int code tab[]= //在此顯示一個字,根據取字模軟件進行提取 。將取模軟件最后一行八個字節復制過來,
- //再將每個字節復制在其后面,形成16個字節,最后將這一行復制8行。
- //
- {
- 0xDF, 0xDF,0xDF,0xDF, 0xDF, 0xDF,0xD8, 0xD8,0x02, 0x02,0xD8, 0xD8,0xDF,0xDF, 0xDF, 0xDF,
- 0xDF, 0xDF,0xDF,0xDF, 0xDF, 0xDF,0xD8, 0xD8,0x02, 0x02,0xD8, 0xD8,0xDF,0xDF, 0xDF, 0xDF,
- 0xDF, 0xDF,0xDF,0xDF, 0xDF, 0xDF,0xD8, 0xD8,0x02, 0x02,0xD8, 0xD8,0xDF,0xDF, 0xDF, 0xDF,
- 0xDF, 0xDF,0xDF,0xDF, 0xDF, 0xDF,0xD8, 0xD8,0x02, 0x02,0xD8, 0xD8,0xDF,0xDF, 0xDF, 0xDF,
- 0xDF, 0xDF,0xDF,0xDF, 0xDF, 0xDF,0xD8, 0xD8,0x02, 0x02,0xD8, 0xD8,0xDF,0xDF, 0xDF, 0xDF,
- 0xDF, 0xDF,0xDF,0xDF, 0xDF, 0xDF,0xD8, 0xD8,0x02, 0x02,0xD8, 0xD8,0xDF,0xDF, 0xDF, 0xDF,
- 0xDF, 0xDF,0xDF,0xDF, 0xDF, 0xDF,0xD8, 0xD8,0x02, 0x02,0xD8, 0xD8,0xDF,0xDF, 0xDF, 0xDF,
- 0xDF, 0xDF,0xDF,0xDF, 0xDF, 0xDF,0xD8, 0xD8,0x02, 0x02,0xD8, 0xD8,0xDF,0xDF, 0xDF, 0xDF,
-
- };
- void Delay(unsigned int t)
- {
- while(--t);
- }
- void init()
- {
- P4SW=0xff; //定義P4口為I/O口
- P0M1=0x00; //I/O口0模式控制器0
- P0M0=0xff; //定義P0為強上拉輸出.
- P2M1=0x00;
- P2M0=0xff; //定義P2為強上拉輸出.
- P4M1=0x00;
- P4M0=0xff; //定義P4為強上拉輸出.
- }
- /*##########################################################################################*/
- //************************************偉澤電子科技************************************
- //函數名稱:void sendbyte(unsigned int byte);
- //功 能:根據byte值的大小,取出對應tab數組中的值,模擬SPI發送出去一個字節
- //入口參數:byte值,范圍0-65535
- //出口參數:無
- //編 寫 人:偉澤電子科技
- //編寫日期:2015-08-02
- //修改歷史:V1.0
- //************************************偉澤電子科技************************************
- void sendbyte(unsigned int byte)
- {
- unsigned char num; //定義需要發送的數據
- unsigned char c; //定義發送一個字節的變量
- num=tab[byte]; //根據byte值取出tab數組中的數據,存入發送數據變量中
- for(c=0;c<8;c++) //循環發送一個字節
- {
- CLK=0; //時鐘置低電平啟動
- M_LR_DS0=num&0x80; //取出需要發送數據的最高位
- M_LG_DS0=num&0x80; //取出需要發送數據的最高位
- M_HR_DS0=num&0x80; //取出需要發送數據的最高位
- M_HG_DS0=num&0x80; //取出需要發送數據的最高位
- CLK=1; //時鐘置高電平結束數據發送
- num<<=1; //將需要發送的數據左移一位
- }
- }
- /*##########################################################################################*/
- //************************************偉澤電子科技************************************
- //函數名稱:void hansao(unsigned char hs);
- //功 能:根據入口參數hs的值,進行判斷選擇哪一行,選通1-16行的選通
- //入口參數:hs的值,范圍0-15
- //出口參數:無
- //編 寫 人:上升沿電子科技
- //編寫日期:2015-08-02
- //修改歷史:V1.0
- //************************************上升沿電子科技************************************
- void hansao(unsigned char hs)
- {
- if(hs<16) //判斷hs的值是否在行掃描的值范圍內,不在范圍內不執行任何操作
- {
- if(hs==0) //選通第1行
- {
- a=0;b=0;c=0;d=0; return;
- }
- if(hs==1) //選通第2行
- {
- a=1;b=0;c=0;d=0; return;
- }
- if(hs==2) //選通第3行
- {
- a=0;b=1;c=0;d=0; return;
- }
- if(hs==3) //選通第4行
- {
- a=1;b=1;c=0;d=0; return;
- }
- if(hs==4) //選通第5行
- {
- a=0;b=0;c=1;d=0; return;
- }
- if(hs==5) //選通第6行
- {
- a=1;b=0;c=1;d=0; return;
- }
- if(hs==6) //選通第7行
- {
- a=0;b=1;c=1;d=0; return;
- }
- if(hs==7) //選通第8行
- {
- a=1;b=1;c=1;d=0; return;
- }
- }
- }
- //ps:(a=1,b=2,c=4)
- /*##########################################################################################*/
- void main()
- {
- unsigned char p=0,k=0,l=1,m=1; //定義
- L1602_RS_POW=0; //開機打開電源指示燈
- init();
- Delay(100);
- while (1)
- {
- for(p=0;p<100;p++)
- {
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
實例靜態顯示一個字.rar
(48.47 KB, 下載次數: 14)
2017-6-20 10:38 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|