欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

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

QQ登錄

只需一步,快速開(kāi)始

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

單片機(jī)利用4個(gè)74HC595芯片驅(qū)動(dòng)點(diǎn)陣屏滾動(dòng)顯示漢字 Proteus仿真程序 缺少matrix.dll

[復(fù)制鏈接]
ID:681355 發(fā)表于 2020-11-27 18:46 | 顯示全部樓層 |閱讀模式
能在點(diǎn)陣屏上顯示任意漢字,并進(jìn)行滾動(dòng)循環(huán)顯示。
利用單片機(jī)AT89C51編寫程序驅(qū)動(dòng)四塊級(jí)聯(lián)在一起的74HC595,再利用這四塊595芯片驅(qū)動(dòng)點(diǎn)陣屏進(jìn)行顯示。漢字顯示,是用相應(yīng)的文字取模軟件進(jìn)行文字取模,將取到的模存入數(shù)組中,配合相應(yīng)的程序算法,實(shí)現(xiàn)文字的在點(diǎn)陣屏上的滾動(dòng)顯示。

三、理論設(shè)計(jì)
3.1 原理分析
將事先取好的字模裝入數(shù)組之中,通過(guò)軟件編程驅(qū)動(dòng)四個(gè)74HC595芯片,兩個(gè)用于字模數(shù)組的輸出,兩個(gè)用于點(diǎn)陣的掃描,相互配合進(jìn)行漢字的顯示。在C語(yǔ)言中設(shè)計(jì)兩個(gè)循環(huán)進(jìn)行嵌套,里面的小循環(huán)用于單個(gè)漢字的顯示,外面的大循環(huán)用于漢字的滾動(dòng)。

3.2 控制系統(tǒng)
AT89C51是一種帶4K字節(jié)FLASH存儲(chǔ)器的低電壓、高性能CMOS 8位微處理器,俗稱單片機(jī)。AT89C51 提供以下標(biāo)準(zhǔn)功能:4k 字節(jié)Flash 閃速存儲(chǔ)器,256字節(jié)片內(nèi)數(shù)據(jù)存儲(chǔ)器(00H -7FH為片內(nèi)RAM,80H-FFH為特殊功能寄存器SFR),32 個(gè)I/O 口線,兩個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)5向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89C51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式。空閑方式停止CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位。

3.3 74HC595芯片工作原理
74HC595是一個(gè)8位串行輸入、并行輸出的位移緩存器:并行輸出為三態(tài)輸出。在SCK 的上升沿,串行數(shù)據(jù)由SDL輸入到內(nèi)部的8位位移緩存器,并由Q7'輸出,而并行輸出則是在LCK的上升沿將在8位位移緩存器的數(shù)據(jù)存入到8位并行輸出緩存器。當(dāng)串行數(shù)據(jù)輸入端OE的控制信號(hào)為低使能時(shí),并行輸出端的輸出值等于并行輸出緩存器所存儲(chǔ)的值。

74HC595驅(qū)動(dòng)點(diǎn)陣屏電路
利用四個(gè)595芯片進(jìn)行級(jí)聯(lián)U2—>U3—>U4—>U5,左邊兩個(gè)595用于點(diǎn)陣的行掃描,下邊的兩個(gè)595用于字模數(shù)組的輸出。進(jìn)行相應(yīng)的邏輯組合實(shí)現(xiàn)漢字的滾動(dòng)顯示。
圖3-4 74HC595驅(qū)動(dòng)點(diǎn)陣屏電路

3.5系統(tǒng)總體結(jié)構(gòu)圖


四、電路仿真及仿真結(jié)果分析
4.1電路圖
依次向上滾動(dòng)所要顯示的漢字

4.2仿真結(jié)果
顯示漢字“張”
顯示漢字“啟”
顯示漢字“雄”
  • 實(shí)物圖


心得體會(huì)
通過(guò)本次設(shè)計(jì),使我對(duì)74HC595這款芯片,以及相應(yīng)的軟件驅(qū)動(dòng)代碼的書寫的理解更加清晰,對(duì)單片機(jī)的認(rèn)識(shí)也是更進(jìn)了一步。

   在本次設(shè)計(jì)工程中,遇到了很多得問(wèn)題,主要是595軟件驅(qū)動(dòng)設(shè)計(jì)和芯片之間的邏輯配合,讓四個(gè)595相互配合驅(qū)動(dòng)顯示目標(biāo)漢字那一塊。由于對(duì)595芯片的數(shù)據(jù)寫入順序,輸出順序,以及點(diǎn)陣結(jié)構(gòu)認(rèn)識(shí)不清導(dǎo)致走了一些彎路。最后重新梳理了595的特點(diǎn),理清了下編程思路,最后順利完成。完成這次設(shè)計(jì)后,我在書本理論知識(shí)的基礎(chǔ)上又有了更深層次的理解,對(duì)單片機(jī)的認(rèn)識(shí)也是更加深刻。


單片機(jī)源程序如下:


  1. /**************************************************************************************
  2. 項(xiàng)目名稱:點(diǎn)陣滾動(dòng)設(shè)計(jì)
  3. ***************************************************************************************/

  4. #include "reg51.h"                         //此文件中定義了單片機(jī)的一些特殊功能寄存器
  5. #include "intrins.h"

  6. typedef unsigned int u16;          //對(duì)數(shù)據(jù)類型進(jìn)行聲明定義
  7. typedef unsigned char u8;

  8. //--定義使用的IO口--//
  9. sbit SRCLK=P3^6;
  10. sbit RCLK=P3^5;
  11. sbit SER=P3^4;

  12. //定義LED點(diǎn)陣的位選,也就是類似于數(shù)碼管的位選,因?yàn)橐獙?duì)其動(dòng)態(tài)掃描操作
  13. //數(shù)組前16位和后16位數(shù)據(jù)正好是相反的,也就是說(shuō)先讓第3個(gè)595輸出低電平,然后再讓第4個(gè)595輸出低電平

  14. u8 code ledwei[]=
  15. {
  16. 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  17. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,
  18. };

  19. u8 code ledduan1[]=
  20. {
  21. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  22. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  23. /*--  文字:  湖  --*/
  24. /*--  新宋體12;  此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16   --*/
  25. 0x01,0x00,0x21,0x1E,0x11,0x12,0x17,0xD2,0x81,0x12,0x41,0x1E,0x41,0x12,0x17,0xD2,
  26. 0x14,0x52,0x24,0x5E,0xE4,0x52,0x27,0xD2,0x24,0x52,0x20,0x22,0x20,0x2A,0x00,0x44,
  27. ,.......詳見(jiàn)附件.................
  28. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,


  29.         
  30. };

  31. /*******************************************************************************
  32. * 函 數(shù) 名         : delay
  33. * 函數(shù)功能                   : 延時(shí)函數(shù),i=1時(shí),大約延時(shí)10us
  34. *******************************************************************************/
  35. void delay(u16 i)
  36. {
  37.         while(i--);        
  38. }

  39. /*******************************************************************************
  40. * 函 數(shù) 名         : Hc595SendByte(u8 dat1,u8 dat2,u8 dat3,u8 dat4)
  41. * 函數(shù)功能                   : 通過(guò)595發(fā)送四個(gè)字節(jié)的數(shù)據(jù)
  42. * 輸    入         : dat1:第4個(gè)595輸出數(shù)值
  43. *                  * dat2: 第3個(gè)595輸出數(shù)值
  44. *                  * dat3:第2個(gè)595輸出數(shù)值
  45. *                  * dat4:第1個(gè)595輸出數(shù)值
  46. * 輸    出         : 無(wú)
  47. *******************************************************************************/
  48. void Hc595SendByte(u8 dat1,u8 dat2,u8 dat3,u8 dat4)
  49. {
  50.         u8 a;

  51.         SRCLK = 1;
  52.         RCLK = 1;

  53.         for(a=0;a<8;a++)                 //發(fā)送8位數(shù)
  54.         {
  55.                 SER = dat1 >> 7;                 //從最高位開(kāi)始發(fā)送
  56.                 dat1 <<= 1;

  57.                 SRCLK = 0;                         //發(fā)送時(shí)序
  58.                 _nop_();
  59.                 _nop_();
  60.                 SRCLK = 1;        
  61.         }

  62.         for(a=0;a<8;a++)                 //發(fā)送8位數(shù)
  63.         {
  64.                 SER = dat2 >> 7;                 //從最高位開(kāi)始發(fā)送
  65.                 dat2 <<= 1;

  66.                 SRCLK = 0;                         //發(fā)送時(shí)序
  67.                 _nop_();
  68.                 _nop_();
  69.                 SRCLK = 1;        
  70.         }

  71.         for(a=0;a<8;a++)                 //發(fā)送8位數(shù)
  72.         {
  73.                 SER = dat3 >> 7;                 //從最高位開(kāi)始發(fā)送
  74.                 dat3 <<= 1;

  75.                 SRCLK = 0;                         //發(fā)送時(shí)序
  76.                 _nop_();
  77.                 _nop_();
  78.                 SRCLK = 1;        
  79.         }

  80.         for(a=0;a<8;a++)                 //發(fā)送8位數(shù)
  81.         {
  82.                 SER = dat4 >> 7;                 //從最高位開(kāi)始發(fā)送
  83.                 dat4 <<= 1;

  84.                 SRCLK = 0;                         //發(fā)送時(shí)序
  85.                 _nop_();
  86.                 _nop_();
  87.                 SRCLK = 1;        
  88.         }

  89.         RCLK = 0;
  90.         _nop_();
  91.         _nop_();
  92.         RCLK = 1;
  93. }



  94. /*******************************************************************************
  95. * 函 數(shù) 名       : main
  96. * 函數(shù)功能                 : 主函數(shù)
  97. * 輸    入       : 無(wú)
  98. * 輸    出             : 無(wú)
  99. *******************************************************************************/
  100. void main()
  101. {        
  102.         u16 i,a;
  103.         
  104.         while(1)
  105.         {         
  106.                 for(a=0;a<=768;a=a+2)     //大循環(huán)用于漢字的滾動(dòng)
  107.                 {
  108.                         for(i=0;i<16;i++)       //小循環(huán)用于每一個(gè)漢字圖片的顯示
  109.                         {
  110.                                 Hc595SendByte(ledduan1[2*i+a+1],ledduan1[2*i+a],~ledwei[i+16],~ledwei[i]);
  111.                                 delay(500);        
  112.                         }        
  113.                         a+=2;   //防止兩個(gè)不同字模的數(shù)組之間過(guò)渡的地方導(dǎo)致數(shù)組讀取混亂
  114.                 }               
  115.         }               
  116. }
復(fù)制代碼

所有資料51hei提供下載(Proteus仿真+源代碼):
缺少matrix.dll  求大神分享

2018111115張啟雄 點(diǎn)陣LED顯示屏.zip (3.81 MB, 下載次數(shù): 128)


評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:630338 發(fā)表于 2021-5-25 19:43 | 顯示全部樓層
顯示不對(duì)哦,用了普中開(kāi)發(fā)板。
回復(fù)

使用道具 舉報(bào)

無(wú)效樓層,該帖已經(jīng)被刪除
ID:58718 發(fā)表于 2022-4-7 10:30 | 顯示全部樓層
為什么是右移,先送高位不應(yīng)該是左移動(dòng)嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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