久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6062|回復: 1
打印 上一主題 下一主題
收起左側

單片機16*16點陣LED顯示滾動漢字含程序原理圖74hc154+74hc595

[復制鏈接]
跳轉到指定樓層
樓主
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. /*-----------------------------------------------
  2.   名稱:595控制4漢字點陣屏
  3.   51單片機
  4.   內容:屏+5V、GND連接電源5V
  5.         P0.0-P0.3分別連接A、B、C、D,用于控制16行,通過2路HC138控制
  6.         SCK時鐘連接P2.5
  7.         LATCH鎖存連接P2.6
  8.         R1紅色數據信號連接至P2.4
  9.         G1綠色數據信號連接至P0.4,如果使用單紅色屏此信號無需連接
  10.         OE使能端一般接GND,可以用IO引腳PWM控制亮度
  11.         或者使用此引腳控制拖尾現象。
  12.   現象:使用普通速度51系列單片機。
  13.                   K1按下屏幕出現實體心型
  14.                   K2按下屏幕出現笑臉圖標
  15.                   K3按下屏幕出現A8圖標
  16.                   K4按下屏幕出現陳文蓉  邱莉杰
  17. ------------------------------------------------*/
  18. #include<reg52.h>

  19. sbit T_STR = P2^6;       //鎖存引腳,屏上標識位STR
  20. sbit R1    = P2^4;       //數據引腳,屏上標識R1
  21. sbit G1    = P0^4;       //數據引腳,屏上標識G1
  22. sbit T_CLK = P2^5;       //時鐘引腳,屏上標識位CLK
  23. sbit OE    = P2^1;       //
  24. sbit K1    = P3^2;       //
  25. sbit K2    = P3^3;       //
  26. sbit K3    = P3^4;       //
  27. sbit K4    = P3^5;       //

  28. unsigned char tab[8];
  29. unsigned char DIS[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};//行數據
  30. int oo=0;
  31. static unsigned char count,j,kk;

  32. /*-----------------------------------------------
  33.              16x16漢字取模數據
  34. ------------------------------------------------*/
  35. unsigned char code hztest[][32]=    //二維數組,目的是減少運算,可以用最基本的一維數組,每個漢字有32個字節數據
  36. {
  37. /*--  文字:  學  --*/
  38. /*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
  39. 0x44,0x10,0x88,0x10,0x88,0x08,0x00,0x04,0xFE,0x7F,0x02,0x40,0x01,0x20,0xF8,0x07,
  40. 0x00,0x02,0x80,0x21,0xFF,0x7F,0x80,0x00,0x80,0x00,0x80,0x00,0xA0,0x00,0x40,0x00,
  41. };
  42. unsigned char code hztest1[][32]=    //二維數組,目的是減少運算,可以用最基本的一維數組,每個漢字有32個字節數據
  43. {
  44. /*--  文字:  文  --*/
  45. /*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
  46. 0x40,0x00,0x80,0x00,0x80,0x20,0xFF,0x7F,0x08,0x08,0x10,0x08,0x10,0x04,0x20,0x04,
  47. 0x20,0x02,0x40,0x01,0x80,0x00,0x40,0x01,0x20,0x06,0x10,0x08,0x0C,0x70,0x03,0x20,

  48. /*--  文字:  經  --*/
  49. /*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
  50. 0x08,0x00,0xC8,0x3F,0x04,0x10,0x04,0x08,0x22,0x0C,0x3F,0x12,0x10,0x61,0xC8,0x40,
  51. 0x04,0x00,0x82,0x3F,0x3F,0x04,0x00,0x04,0x38,0x04,0x07,0x24,0xE2,0x7F,0x00,0x00,

  52. /*--  文字:  學  --*/
  53. /*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
  54. 0x44,0x10,0x88,0x10,0x88,0x08,0x00,0x04,0xFE,0x7F,0x02,0x40,0x01,0x20,0xF8,0x07,
  55. 0x00,0x02,0x80,0x21,0xFF,0x7F,0x80,0x00,0x80,0x00,0x80,0x00,0xA0,0x00,0x40,0x00,

  56. /*--  文字:  院  --*/
  57. /*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
  58. 0x00,0x01,0x1E,0x02,0xF2,0x7F,0x2A,0x40,0x1A,0x28,0xC6,0x1F,0x0A,0x00,0x12,0x10,
  59. 0xF2,0x3F,0x12,0x05,0x16,0x05,0x0A,0x05,0x82,0x44,0x82,0x44,0x42,0x78,0x32,0x00,
  60.                                   
  61. /*--  文字:  一  --*/
  62. /*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
  63. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x3F,
  64. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  65. /*--  文字:  尚  --*/
  66. /*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
  67. 0x80,0x00,0x84,0x10,0x98,0x18,0x90,0x04,0x80,0x20,0xFE,0x7F,0x02,0x20,0x02,0x24,
  68. 0xF2,0x2F,0x12,0x24,0x12,0x24,0x12,0x24,0xF2,0x27,0x12,0x24,0x02,0x28,0x02,0x10,

  69. /*--  文字:  衍  --*/
  70. /*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
  71. 0x08,0x10,0x28,0x3E,0xC4,0x00,0x82,0x00,0x01,0x00,0x28,0x20,0xC4,0x7E,0x86,0x10,
  72. 0x05,0x10,0x84,0x10,0x44,0x10,0x74,0x10,0x44,0x10,0x44,0x10,0x44,0x14,0x44,0x08,

  73. /*--  文字:  旭  --*/
  74. /*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
  75. 0x08,0x00,0x08,0x10,0x08,0x3F,0x08,0x11,0x7F,0x11,0x48,0x11,0x48,0x11,0x48,0x1F,
  76. 0x48,0x11,0x48,0x11,0x48,0x11,0x48,0x11,0x44,0x5F,0x44,0x40,0x82,0x7F,0x01,0x00,
  77. };
  78. unsigned char code hztest2[][32]=    //二維數組,目的是減少運算,可以用最基本的一維數組,每個漢字有32個字節數據
  79. {
  80. /*--  文字:  歡  --*/
  81. /*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
  82. 0x00,0x01,0x00,0x01,0x3F,0x01,0x20,0x3F,0xA2,0x20,0x62,0x12,0x14,0x02,0x14,0x02,
  83. 0x08,0x02,0x14,0x02,0x24,0x05,0x22,0x05,0x81,0x08,0x80,0x10,0x40,0x70,0x30,0x20,

  84. /*--  文字:  迎  --*/
  85. /*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
  86. 0x00,0x00,0x82,0x21,0x64,0x7E,0x28,0x22,0x20,0x22,0x20,0x22,0x2F,0x22,0x28,0x23,
  87. 0xA8,0x22,0x68,0x2A,0x28,0x12,0x08,0x02,0x08,0x02,0x14,0x62,0xE2,0x3F,0x00,0x00,

  88. /*--  文字:  您  --*/
  89. /*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
  90. 0x90,0x00,0x90,0x00,0xC8,0x3F,0x48,0x20,0x2C,0x12,0x9A,0x02,0x89,0x0A,0x48,0x32,
  91. 0x28,0x22,0x88,0x02,0x08,0x01,0x40,0x00,0x8A,0x21,0x0A,0x49,0x09,0x48,0xF0,0x0F
  92. };
  93. /*-----------------------------------------------
  94.              向595寫入一個字節 單紅色
  95. ------------------------------------------------*/
  96. void InputByte( unsigned  char DataR1) //寫一個字節
  97. {
  98. unsigned  char i;
  99. for(i=8; i>0; i--)
  100. {
  101. R1 = !(DataR1&0x01);                  
  102. T_CLK = 0;
  103. T_CLK = 1;
  104. DataR1 = DataR1 >> 1;
  105. }
  106. }
  107. /*-----------------------------------------------
  108.              向595寫入兩個字節 雙色
  109. ------------------------------------------------*/
  110. void Input2Byte( unsigned  char DataR1,unsigned  char DataG1) //寫一個字節
  111. {
  112. unsigned  char i;
  113. for(i=8; i>0; i--)
  114. {
  115. R1 = !(DataR1&0x01);   
  116. G1 = !(DataG1&0x01);               
  117. T_CLK = 0;
  118. T_CLK = 1;
  119. DataR1 = DataR1 >> 1;
  120. DataG1 = DataG1 >> 1;
  121. }
  122. }


  123. /*-----------------------------------------------
  124.             初始化定時器,做為動態掃描
  125. ------------------------------------------------*/
  126. void Init_Timer1(void)
  127. {
  128. TMOD |= 0x10;                             
  129. EA=1;                      //總中斷使能
  130. ET1=1;                     //定時中斷使能
  131. TR1=1;                     //打開定時器開關
  132. }


  133. /*-----------------------------------------------
  134.                       主程序
  135. ------------------------------------------------*/
  136. main()
  137. {                                                                 
  138. unsigned char l=0;
  139. Init_Timer1(); //初始化定時器
  140. while(1)
  141. {
  142.   //可以加入其它的控制程序
  143.   if(K1==0)         oo=0;
  144.   if(K2==0)         oo=1,kk=0;
  145.   if(K3==0)         oo=2,j=0;
  146.   l++;
  147.   if(l==250) j++,l=0,kk+=2;           //l 速度控制
  148.   if(j==9)          j=0;
  149.   if(kk==255)  kk=0;
  150. }
  151. }

  152. /*-----------------------------------------------
  153.              定時器執行動態掃描
  154. ------------------------------------------------*/
  155. void Timer1_isr(void) interrupt 3
  156. {


  157. unsigned char i;
  158. TH1=0xff;                //重裝初值
  159. TL1=0;


  160. T_STR=0;       //鎖存釋放
  161. switch(oo)
  162. {
  163. case 0:        {
  164.                             InputByte(hztest[0][i]);
  165.                     InputByte(hztest[0][i+1]);
  166.                 }
  167.                         break;
  168. case 1:        {
  169.                         InputByte(hztest1[0][i+kk]);
  170.                     InputByte(hztest1[0][i+kk+1]);
  171.                 }
  172.                         break;
  173. case 2:        {
  174.                         InputByte(hztest2[j/3][i]);
  175.                     InputByte(hztest2[j/3][i+1]);
  176.                 }
  177.                         break;
  178. }
  179. OE=1;  //暫時關閉屏幕,防止出現鬼影,如果沒有使用該引腳控制則會出現拖影現象。
  180. T_STR=1;      //鎖存有效,此時一行的數據顯示到屏上
  181. P0=DIS[count]|0xf0;//用P0口的前4位控制16行,屏內部通過4-16譯碼器工作,循環掃描其他15行
  182. OE=0;//使能
  183. count++;
  184. i+=2;              //累加調用下一行數據
  185. if(count==16)
  186.     count=0;
  187. if(i==32)
  188.     i=0;

  189. }
復制代碼

所有資料51hei提供下載:
單片機原理與應用51hei設計.zip (1009.6 KB, 下載次數: 131)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:874065 發表于 2021-1-6 00:13 | 只看該作者
您好,點陣顯示漢字是否只能用c編,匯編語言能編嗎?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99国产精品一区二区三区 | 九九在线视频 | 成人网视频 | 91福利在线观看 | 一本一道久久a久久精品蜜桃 | 久久久蜜桃 | www.国产精品| a级免费观看视频 | 午夜男人免费视频 | 国产精品久久久久久久久免费丝袜 | 日本亚洲欧美 | 亚洲国产一区视频 | av片网 | 人人鲁人人莫人人爱精品 | 亚洲成人中文字幕 | 久久久毛片| 国产在线看片 | 久久久久久久久综合 | 美女视频黄的 | 色婷婷狠狠 | 国产精品亚洲综合 | 日韩精品视频在线免费观看 | 久久久久久久久淑女av国产精品 | 国产精品日日做人人爱 | 欧美在线小视频 | 国产一区二区在线播放 | 亚洲综合在线视频 | 亚洲高清一区二区三区 | 97视频免费 | 高清一区二区 | 久久久观看 | 成人久久久 | 精品在线观看一区 | 日韩精品一区二区久久 | 国产精品久久久久久久7777 | 欧美日韩a | 日日操网站 | 精品乱子伦一区二区三区 | 91久久精品一区二区二区 | 激情一区二区三区 | 中文字幕在线精品 |