找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3820|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

光立方實(shí)例靜態(tài)顯示一個(gè)字

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:212875 發(fā)表于 2017-6-20 10:39 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
光立方的顯示來一波
單片機(jī)源程序如下:
  1. #include <STC12C5A60S2.H>
  2. #include "STC12C5A.H"
  3. #define uint unsigned int
  4. #define uchar unsigned char

  5. /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
  6. sbit L1602_RS_POW=P4^4;                 //定義電源功能接口 低電平
  7. /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
  8. sbit M_HR_DS0=P1^4;          //模擬數(shù)據(jù)發(fā)送端口
  9. sbit M_LR_DS0=P1^5;          //模擬數(shù)據(jù)發(fā)送端口
  10. sbit M_HG_DS0=P1^6;          //模擬數(shù)據(jù)發(fā)送端口
  11. sbit M_LG_DS0=P0^7;          //模擬數(shù)據(jù)發(fā)送端口

  12. sbit CLK=P1^3;    //模擬時(shí)鐘控制端口
  13. sbit SUO=P1^2;          //模擬鎖存信號(hào)端口

  14. /*$-_-$_-_$-_-$_-_$-_-$_-_$-_-$_-_$-_-$_-_$-_-$_-_$-_-$_-_$-_-$_-_$-_-$_-_$-_-$_-_$*/
  15. sbit a=P3^4;          //行數(shù)據(jù)掃描信號(hào)
  16. sbit b=P3^5;          //行數(shù)據(jù)掃
  17. sbit c=P3^6;          //行數(shù)
  18. sbit d=P3^7;          //行數(shù)據(jù)
  19. sbit en=P1^7;           //行數(shù)據(jù)
  20. /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/

  21. unsigned int CYCLE=100,PWM_LOW=1110,shan=0,saom=0,shuzi1=0,shuzi2=0,shuzi3=0,shuzi4=0;//定義周期并賦值
  22. unsigned int code tab[]= //在此顯示一個(gè)字,根據(jù)取字模軟件進(jìn)行提取 。將取模軟件最后一行八個(gè)字節(jié)復(fù)制過來,
  23.                                                 //再將每個(gè)字節(jié)復(fù)制在其后面,形成16個(gè)字節(jié),最后將這一行復(fù)制8行。
  24.                                                 //
  25. {
  26. 0xDF, 0xDF,0xDF,0xDF, 0xDF,  0xDF,0xD8, 0xD8,0x02, 0x02,0xD8, 0xD8,0xDF,0xDF, 0xDF, 0xDF,
  27. 0xDF, 0xDF,0xDF,0xDF, 0xDF,  0xDF,0xD8, 0xD8,0x02, 0x02,0xD8, 0xD8,0xDF,0xDF, 0xDF, 0xDF,
  28. 0xDF, 0xDF,0xDF,0xDF, 0xDF,  0xDF,0xD8, 0xD8,0x02, 0x02,0xD8, 0xD8,0xDF,0xDF, 0xDF, 0xDF,
  29. 0xDF, 0xDF,0xDF,0xDF, 0xDF,  0xDF,0xD8, 0xD8,0x02, 0x02,0xD8, 0xD8,0xDF,0xDF, 0xDF, 0xDF,
  30. 0xDF, 0xDF,0xDF,0xDF, 0xDF,  0xDF,0xD8, 0xD8,0x02, 0x02,0xD8, 0xD8,0xDF,0xDF, 0xDF, 0xDF,
  31. 0xDF, 0xDF,0xDF,0xDF, 0xDF,  0xDF,0xD8, 0xD8,0x02, 0x02,0xD8, 0xD8,0xDF,0xDF, 0xDF, 0xDF,
  32. 0xDF, 0xDF,0xDF,0xDF, 0xDF,  0xDF,0xD8, 0xD8,0x02, 0x02,0xD8, 0xD8,0xDF,0xDF, 0xDF, 0xDF,
  33. 0xDF, 0xDF,0xDF,0xDF, 0xDF,  0xDF,0xD8, 0xD8,0x02, 0x02,0xD8, 0xD8,0xDF,0xDF, 0xDF, 0xDF,

  34. };
  35. void Delay(unsigned int t)
  36. {
  37. while(--t);
  38. }

  39. void init()
  40. {
  41. P4SW=0xff;                //定義P4口為I/O口
  42. P0M1=0x00;                                         //I/O口0模式控制器0     
  43. P0M0=0xff;                //定義P0為強(qiáng)上拉輸出.
  44. P2M1=0x00;
  45. P2M0=0xff;                //定義P2為強(qiáng)上拉輸出.
  46. P4M1=0x00;
  47. P4M0=0xff;                //定義P4為強(qiáng)上拉輸出.
  48. }
  49. /*##########################################################################################*/
  50. //************************************偉澤電子科技************************************
  51. //函數(shù)名稱:void sendbyte(unsigned int byte);
  52. //功    能:根據(jù)byte值的大小,取出對(duì)應(yīng)tab數(shù)組中的值,模擬SPI發(fā)送出去一個(gè)字節(jié)
  53. //入口參數(shù):byte值,范圍0-65535
  54. //出口參數(shù):無
  55. //編 寫 人:偉澤電子科技
  56. //編寫日期:2015-08-02
  57. //修改歷史:V1.0
  58. //************************************偉澤電子科技************************************
  59. void sendbyte(unsigned int byte)
  60. {   
  61.    unsigned char num;                 //定義需要發(fā)送的數(shù)據(jù)
  62.    unsigned char c;                  //定義發(fā)送一個(gè)字節(jié)的變量
  63.    num=tab[byte];                         //根據(jù)byte值取出tab數(shù)組中的數(shù)據(jù),存入發(fā)送數(shù)據(jù)變量中
  64.    for(c=0;c<8;c++)                         //循環(huán)發(fā)送一個(gè)字節(jié)
  65.    {
  66.       CLK=0;                                  //時(shí)鐘置低電平啟動(dòng)
  67.       M_LR_DS0=num&0x80;                         //取出需要發(fā)送數(shù)據(jù)的最高位
  68.           M_LG_DS0=num&0x80;                         //取出需要發(fā)送數(shù)據(jù)的最高位
  69.           M_HR_DS0=num&0x80;                         //取出需要發(fā)送數(shù)據(jù)的最高位
  70.           M_HG_DS0=num&0x80;                         //取出需要發(fā)送數(shù)據(jù)的最高位
  71.       CLK=1;                                  //時(shí)鐘置高電平結(jié)束數(shù)據(jù)發(fā)送
  72.       num<<=1;                         //將需要發(fā)送的數(shù)據(jù)左移一位
  73.    }
  74. }
  75. /*##########################################################################################*/
  76. //************************************偉澤電子科技************************************
  77. //函數(shù)名稱:void hansao(unsigned char hs);
  78. //功    能:根據(jù)入口參數(shù)hs的值,進(jìn)行判斷選擇哪一行,選通1-16行的選通
  79. //入口參數(shù):hs的值,范圍0-15
  80. //出口參數(shù):無
  81. //編 寫 人:上升沿電子科技
  82. //編寫日期:2015-08-02
  83. //修改歷史:V1.0
  84. //************************************上升沿電子科技************************************
  85. void hansao(unsigned char hs)     
  86. {
  87.         if(hs<16)                          //判斷hs的值是否在行掃描的值范圍內(nèi),不在范圍內(nèi)不執(zhí)行任何操作
  88.         {
  89.                 if(hs==0)                  //選通第1行
  90.                 {
  91.                 a=0;b=0;c=0;d=0;   return;
  92.                 }
  93.                 if(hs==1)                  //選通第2行
  94.                 {
  95.                 a=1;b=0;c=0;d=0;   return;
  96.                 }
  97.                 if(hs==2)                  //選通第3行
  98.                 {
  99.                 a=0;b=1;c=0;d=0;   return;
  100.                 }
  101.                 if(hs==3)                  //選通第4行
  102.                 {
  103.                 a=1;b=1;c=0;d=0;   return;
  104.                 }
  105.                 if(hs==4)                  //選通第5行
  106.                 {
  107.                 a=0;b=0;c=1;d=0;   return;
  108.                 }
  109.                 if(hs==5)                  //選通第6行
  110.                 {
  111.                 a=1;b=0;c=1;d=0;   return;
  112.                 }
  113.                 if(hs==6)                  //選通第7行
  114.                 {
  115.                 a=0;b=1;c=1;d=0;   return;
  116.                 }
  117.                 if(hs==7)                  //選通第8行
  118.                 {
  119.                 a=1;b=1;c=1;d=0;   return;
  120.                 }
  121.         }
  122. }      
  123. //ps:(a=1,b=2,c=4)
  124. /*##########################################################################################*/
  125. void main()
  126. {
  127. unsigned char p=0,k=0,l=1,m=1;          //定義
  128. L1602_RS_POW=0;    //開機(jī)打開電源指示燈
  129. init();
  130. Delay(100);

  131.         while (1)
  132.     {
  133.                 for(p=0;p<100;p++)               
  134.                 {
  135. ……………………

  136. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
實(shí)例靜態(tài)顯示一個(gè)字.rar (48.47 KB, 下載次數(shù): 14)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表