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

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

QQ登錄

只需一步,快速開始

搜索
查看: 4842|回復(fù): 6
收起左側(cè)

STC89C52單片機(jī)控制74HC595,74HC138雙色16x16點(diǎn)陣屏循環(huán)顯示漢字

  [復(fù)制鏈接]
ID:912806 發(fā)表于 2021-8-28 13:18 | 顯示全部樓層 |閱讀模式
對(duì)應(yīng)德飛萊的16x16 LED點(diǎn)陣, 這個(gè)點(diǎn)陣有兩種型號(hào), 一種是單色, 一種是雙色, 雙色多一個(gè)IO口
背面元件圖, 這個(gè)是單色的, 有幾個(gè)焊盤是空的, 另外8x8LED的引腳也有部分是空的. 雙色的焊盤和LED點(diǎn)陣引腳都是滿焊的
16x16led2.png

用89C51去驅(qū)動(dòng), 主要是通過74HC595和74HC138這兩個(gè)邏輯芯片
* 74HC138負(fù)責(zé)行掃描, 每次時(shí)鐘中斷會(huì)掃描其中一行, 這行的位置是由ABCD這4個(gè)腳控制的, 對(duì)應(yīng)了兩片74HC138, 每片控制8個(gè)行, 通過P0.0-P0.1, 可以讓指定的行顯示
* 74HC595負(fù)責(zé)準(zhǔn)備當(dāng)前行上的數(shù)據(jù), 這個(gè)數(shù)據(jù)有16bit所以是兩個(gè)字節(jié), 對(duì)應(yīng)每個(gè)漢字, 有16x16個(gè)點(diǎn), 就是16個(gè)2字節(jié), 每次時(shí)鐘中斷就將這2個(gè)字節(jié)的內(nèi)容送到74HC595上去, 同樣是兩片74HC595, 每片負(fù)責(zé)8個(gè)bit, 走的是SPI類型的串行輸入-鎖存-并行輸出的方式

接線方式
  1.         R1        => P2.4 紅色數(shù)據(jù)信號(hào)
  2.         D         => P0.3
  3.         C         => P0.2
  4.         B         => P0.1
  5.         A         => P0.0 A-D用于控制16行,通過2路 HC138 控制
  6.         LATCH     => P2.6 鎖存
  7.         SCK       => P2.5 時(shí)鐘
  8.         G1        => P0.4 綠色數(shù)據(jù)信號(hào), 如果使用單紅色屏此信號(hào)無需連接
  9.         OE        => P2.1 可以用IO引腳PWM控制亮度, 或者使用此引腳控制拖尾現(xiàn)象
  10.         +5V       => 5V
  11.         GND       => GND
復(fù)制代碼


上位機(jī)代碼(STC89C52RC), 只要是12T的STC單片機(jī)都可以

  1. #include<reg52.h>

  2. sbit G1    = P0^4;       //數(shù)據(jù)引腳,屏上標(biāo)識(shí)G1
  3. sbit OE    = P2^1;       //使能引腳,屏上標(biāo)識(shí)EN/OE
  4. sbit R1    = P2^4;       //數(shù)據(jù)引腳,屏上標(biāo)識(shí)R1
  5. sbit T_CLK = P2^5;       //時(shí)鐘引腳,屏上標(biāo)識(shí)CLK
  6. sbit T_STR = P2^6;       //鎖存引腳,屏上標(biāo)識(shí)LATCH

  7. unsigned char pos=0;

  8. unsigned char tab[8];
  9. unsigned char DIS[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};//行數(shù)據(jù)

  10. /*-----------------------------------------------
  11.              16x16漢字取模數(shù)據(jù)
  12. ------------------------------------------------*/
  13. unsigned char code hztest[][32]=    //二維數(shù)組, 每個(gè)漢字32個(gè)字節(jié)
  14. {
  15. /*--  文字:  電  --*/
  16. /*--  宋體12;  此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16   --*/
  17. 0x00,0x01,0x00,0x01,0x00,0x01,0xF8,0x3F,0x08,0x21,0x08,0x21,0x08,0x21,0xF8,0x3F,
  18. 0x08,0x21,0x08,0x21,0x08,0x21,0xF8,0x3F,0x0A,0x21,0x02,0x01,0x02,0x01,0xFE,0x00,

  19. /*--  文字:  子  --*/
  20. /*--  宋體12;  此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16   --*/
  21. 0x00,0x00,0xF8,0x7F,0x10,0x00,0x20,0x00,0x40,0x00,0x80,0x01,0x00,0x01,0xFE,0xFF,
  22. 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,

  23. /*--  文字:  工  --*/
  24. /*--  宋體12;  此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16   --*/
  25. 0x00,0x00,0x00,0x00,0xFC,0x7F,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,
  26. 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0xFE,0xFF,0x00,0x00,0x00,0x00,

  27. /*--  文字:  程  --*/
  28. /*--  宋體12;  此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16   --*/
  29. 0x00,0x08,0xFC,0x1D,0x04,0xF1,0x04,0x11,0x04,0x11,0xFC,0xFD,0x00,0x10,0x00,0x30,
  30. 0xFE,0x39,0x20,0x54,0x20,0x54,0xFC,0x91,0x20,0x10,0x20,0x10,0xFE,0x13,0x00,0x10,

  31. /*--  文字:  信  --*/
  32. /*--  宋體12;  此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16   --*/
  33. 0x40,0x08,0x20,0x08,0xFE,0x0B,0x00,0x10,0x00,0x10,0xFC,0x31,0x00,0x30,0x00,0x50,
  34. 0xFC,0x91,0x00,0x10,0x00,0x10,0xFC,0x11,0x04,0x11,0x04,0x11,0xFC,0x11,0x04,0x11,

  35. /*--  文字:  息  --*/
  36. /*--  宋體12;  此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16   --*/
  37. 0x00,0x01,0x00,0x02,0xF0,0x1F,0x10,0x10,0xF0,0x1F,0x10,0x10,0xF0,0x1F,0x10,0x10,
  38. 0xF0,0x1F,0x10,0x10,0x00,0x01,0x84,0x08,0x92,0x48,0x12,0x48,0xF0,0x87,0x00,0x00,

  39. /*--  文字:  科  --*/
  40. /*--  宋體12;  此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16   --*/
  41. 0x10,0x08,0x10,0x1D,0x90,0xF0,0x90,0x10,0x10,0x10,0x10,0xFD,0x90,0x10,0x90,0x38,
  42. 0x10,0x34,0x1E,0x50,0xF0,0x53,0x10,0x90,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,

  43. /*--  文字:  學(xué)  --*/
  44. /*--  宋體12;  此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16   --*/
  45. 0x08,0x22,0x08,0x11,0x10,0x11,0x20,0x00,0xFE,0x7F,0x02,0x40,0x04,0x80,0xE0,0x1F,
  46. 0x40,0x00,0x80,0x01,0xFE,0xFF,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,


  47. };

  48. /*-----------------------------------------------
  49.              向595寫入一個(gè)字節(jié), 紅色
  50. ------------------------------------------------*/
  51. void InputByte(unsigned  char dat)
  52. {
  53.   unsigned char i;
  54.   for(i = 8; i > 0; i--)
  55.   {
  56.     R1 = !(dat & 0x01);
  57.     T_CLK = 0;
  58.     T_CLK = 1;
  59.     dat = dat >> 1;
  60.   }
  61. }

  62. /*-----------------------------------------------
  63.              向595寫入一個(gè)字節(jié), 綠色
  64. ------------------------------------------------*/
  65. void InputByteG(unsigned  char dat)
  66. {
  67.   unsigned  char i;
  68.   for(i = 8; i > 0; i--)
  69.   {
  70.     G1 = !(dat & 0x01);
  71.     T_CLK = 0;
  72.     T_CLK = 1;
  73.     dat = dat >> 1;
  74.   }
  75. }

  76. /*-----------------------------------------------
  77.              向595寫入兩個(gè)字節(jié) 雙色
  78. ------------------------------------------------*/
  79. void Input2Byte(unsigned  char DataR1, unsigned  char DataG1) //寫一個(gè)字節(jié)
  80. {
  81.   unsigned  char i;
  82.   for(i=8; i>0; i--)
  83.   {
  84.     R1 = !(DataR1&0x01);
  85.     G1 = !(DataG1&0x01);
  86.     T_CLK = 0;
  87.     T_CLK = 1;
  88.     DataR1 = DataR1 >> 1;
  89.     DataG1 = DataG1 >> 1;
  90.   }
  91. }

  92. /*-----------------------------------------------
  93.             初始化定時(shí)器,做為動(dòng)態(tài)掃描
  94. ------------------------------------------------*/
  95. void Init_Timer1(void)
  96. {
  97.   TMOD |= 0x10;                             
  98.   EA=1;                      //總中斷使能
  99.   ET1=1;                     //定時(shí)中斷使能
  100.   TR1=1;                     //打開定時(shí)器開關(guān)
  101. }

  102. /*-----------------------------------------------
  103.                       主程序
  104. ------------------------------------------------*/
  105. main()
  106. {
  107.   unsigned int i;
  108.   unsigned char a;
  109.   Init_Timer1(); //初始化定時(shí)器

  110.   while(1)
  111.   {
  112.     for(i = 0; i < 1000; i++); // 延時(shí)
  113.     a++;
  114.     if(a == 8) a = 0; // 漢字循環(huán)
  115.     pos = a;
  116.   }
  117. }

  118. /*-----------------------------------------------
  119.              定時(shí)器執(zhí)行動(dòng)態(tài)掃描
  120. ------------------------------------------------*/
  121. void Timer1_isr(void) interrupt 3
  122. {
  123.   static unsigned char count, j;
  124.   unsigned char i;
  125.   TH1=0xff;                // 重裝初值
  126.   TL1=0;

  127.   T_STR=0;    // 鎖存釋放
  128.   for(j = 0; j < 1; j++) //取當(dāng)前漢字在i位置的2個(gè)字節(jié),數(shù)據(jù)傳輸完成后鎖存輸出
  129.         {
  130.     InputByte(hztest[j+pos][i]);
  131.     InputByte(hztest[j+pos][i+1]);
  132.         }
  133.   OE = 1;    // 關(guān)閉屏幕, 如果沒有使用該引腳控制則會(huì)出現(xiàn)拖影現(xiàn)象
  134.   T_STR=1;   // 鎖存有效, 此時(shí)一行的數(shù)據(jù)顯示到屏上

  135.   P0 = DIS[count] | 0xF0; //低4位對(duì)應(yīng)P0.0-P0.3, 通過HC138 4-16譯碼器, 循環(huán)掃描其他15行
  136.   OE = 0;    // 打開屏幕
  137.   count++;

  138.   i += 2;    // 當(dāng)前漢字下一位置
  139.   if(count == 16) count = 0;
  140.   if(i == 32) i = 0;
  141. }
復(fù)制代碼

WeChat Image_20210828131655.jpg

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:605498 發(fā)表于 2021-12-25 10:00 | 顯示全部樓層
程序注釋,講解比較細(xì)致,編程邏輯性好。學(xué)習(xí)了有提高。謝了。
回復(fù)

使用道具 舉報(bào)

ID:1002257 發(fā)表于 2022-1-26 22:59 | 顯示全部樓層
這個(gè)先留個(gè)腳印方便再找
回復(fù)

使用道具 舉報(bào)

ID:297903 發(fā)表于 2022-1-27 20:50 | 顯示全部樓層
i學(xué)習(xí)下,準(zhǔn)備自己有時(shí)間也整一套試試!!
回復(fù)

使用道具 舉報(bào)

ID:1068268 發(fā)表于 2023-4-4 22:19 | 顯示全部樓層
樓主寫的非常好,對(duì)我很有啟發(fā)
回復(fù)

使用道具 舉報(bào)

ID:863362 發(fā)表于 2023-4-6 08:56 | 顯示全部樓層
我看著照片上顯示的字是錯(cuò)誤的吧?
回復(fù)

使用道具 舉報(bào)

ID:983193 發(fā)表于 2023-6-26 12:22 | 顯示全部樓層
學(xué)習(xí)到了,感謝大佬的程序
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品大片在线观看 | 精品欧美乱码久久久久久1区2区 | 91精品国产91久久久 | 欧美激情精品久久久久久 | 国产a区| 国产亚洲精品久久久久久豆腐 | 亚洲视频免费观看 | 久久精品国产一区二区电影 | 一级美国黄色片 | 日本一区二区不卡视频 | 中文字幕一区二区三区不卡 | 国产激情三区 | 久久久久久久久91 | 日本精品视频在线观看 | 日韩成人在线视频 | 国产精品久久一区二区三区 | 欧美一级毛片免费观看 | av久久 | 亚洲国产精品久久久久婷婷老年 | 成人国产精品一级毛片视频毛片 | 成人一区二区三区在线观看 | 草草影院ccyy| 亚洲成人av在线播放 | 午夜国产| 夜夜骑首页 | 国产精品高 | 91视频国产精品 | 日韩精品专区在线影院重磅 | www久久99| 在线观看日韩精品视频 | 91五月婷蜜桃综合 | av大全在线 | 中文字幕1区2区3区 日韩在线视频免费观看 | 日韩免费福利视频 | 国产免费福利在线 | 我要看黄色录像一级片 | 国产视频二区在线观看 | 一区二区三区日韩精品 | 91欧美| 国产精品成人一区二区 | 国产精品一区二区在线播放 |