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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3940|回復: 2
收起左側

LED點陣顯示屏設計使用80C51單片機與兩片8x8點陣顯示器,設計一個點陣顯示屏

[復制鏈接]
ID:777644 發表于 2020-6-12 21:40 | 顯示全部樓層 |閱讀模式

    LED點陣顯示屏通過編程控制可以顯示中英文字符、圖形及視頻動態圖形,廣泛用于指示、廣告、宣傳等領域,如車站、機場的運行時刻報告牌;商店的廣告牌;證券、運動場館的指示牌等。

1項目任務

    使用80C51單片機與兩片8x8點陣顯示器,設計一個點陣顯示屏,能顯示漢字及簡單的圖形。

    項目要求:

    1)顯示穩定無閃爍。

    2)程序設計中,要使文字或圖形運動。

2項目分析

LED點陣顯示器有多個品種可供選擇,按顯示的顏色可分為單色、雙色、三色等;按發光亮度可分為普通亮度、高亮度、超高亮度等。一塊LED點陣塊的LED數量可有4×4(即4列4行)、5×7、5×8、8x8等規格;點陣中單個ILED的直徑常用的有1.9mm3mm、3.7mm、4.8mm、5mm、7.62mm、10mm、20mm等。

圖1為8x8LED點陣顯示器外觀及排列示意圖,共有64個LED發光二極管排列在一起。若需更大規模的LED點陣,只需將多個點陣塊拼在一起即可。

1 8×8LED點陣顯示器外觀及排列示意圖

     在LED點陣中,LED發光二極管按照行和列分別將陽極和陰極連接在一起,內部接線及引腳編號如圖1所示,行、列編號中,括號中的內容為引腳編號(圖中LED點陣型號為ZS*11288)。

在圖1中,列輸入引腳(Y1~Y8)接至內部IED的陰極端,行輸入引腳接至8x8LED點陣顯示器內部LED的陽極端,若陽極端輸入為高電平,陰極端輸入低電平,則該LED點亮;如X5為高電平、Y3為低電平,兩條線交又點上的那個LED被點亮。若將8位二進制數送給行輸入端X1~X8;列輸入端只有Y1為低電平,其他為高電平,結果使得圖2中最左側的一列發光二極管按照行輸入端的輸人狀態亮滅,其他列的LED均不亮。如果使列輸入線快速依次變為低電平,同時改變行輸人端的內容,即列掃描,視覺上感覺一幅圖案完整的顯示在LED點陣上。

2  LED點陣內部接線與引腳編號

3、項目硬件設計

   1.電路設計

設計的點陣顯示屏的電路如圖3所示。途中除單片機、顯示屏、晶振與復位電路外,還使用了3片串行輸入/輸出的74HC595芯片。

3 點陣顯示屏電路圖

2.74HC595介紹

74HC595是8位串行輸入/輸出或者并行移位寄存器,具有高阻關斷狀態。包括一個8位移位寄存器、一個8位D型鎖存器和三態并行輸出。移位寄存器接收串行數據并提供串行輸出,也提供并行數據輸出和8位鎖存器。移位寄存器和鎖存器都有獨立的時鐘輸入,同時還具有異步復位的功能。74HC595的引腳如圖4所示。

4 74HC595的引腳

  引腳說明如下:

  QA-QH:八位并行輸出端,可以直接控制數碼管的8個段。

  QH`:(9腳):級聯輸出端。

  S(14腳):串行數據輸入端。

(10腳):低電平時將移位寄存器的數據清零,通常將它接Vcc。

SCK(11腳):上升沿時數據寄存器的數據移位,QA→QB→QC→…→QH;下降沿移位寄存器數據不變。

RCK(12腳):上升沿時移位寄存器的數據進入數據存儲寄存器,下降沿時存儲寄存器數據不變。通常RCK置為低電平,當移位結東后,在RCK端產生一個正脈沖,更新顯示數據。

G(13腳):高電平時禁止輸出(高阻態)。如果單片機的引腳不緊張,用一個引腳控

制它,可以方便地產生閃爍和熄滅效果,比通過數據端移位控制要省時。

74HC164和74HC595功能相仿,都是8位串行輸入、并行輸出的移位寄存器。74HC164的驅動電流(25mA)比74HC595(35mA)的要小,14腳封裝,體積也小一些。74HC595的主要優點是具有數據存儲寄存器,在移位的過程中,輸出端的數據可以保持不變。這在串行速度慢的場合很有用處,數碼管沒有閃爍感。與74HC164只有數據清零端相比,74HC595尚有輸出的使能/禁止控制端,可使輸出為高阻態。

4、項目程序設計

通過單片機的串口向74HC595發送數據到2片8×8點陣顯示屏,滾動顯示,顯示的內容包括一個“→”圖形和“天天向上”四個漢字,通過按鍵控制,顯示可以向左方向移動也可以向右方向移動。

設計的程序如下


  1. <font color="rgb(0, 0, 0)"><font face="Calibri"><font style="font-size: 12pt">include <reg51.h>
  2. #include <intrins.h>
  3. #include <stdio.h>
  4. #define uchar unsigned char
  5. #define uint unsigned int
  6. sbit RCK_Pin = P3^2;
  7. sbit k1 = P1^1;
  8. sbit k2 = P1^3;
  9. uchar flag=1;
  10. uchar code DSY_CONTENT_8x8_0[]=
  11. {
  12.   0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  13.   0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  14.   0xFF,0xFF,0xF7,0xE3,0x81,0x00,0xC3,0xC3,
  15.   0xC3,0xC3,0xC3,0xC3,0xC3,0xE7,0xE7,0xFF,
  16.   0xEE,0xAD,0xAB,0x87,0xA3,0xAD,0xEE,0xFF,/*"天"*/
  17.   0xEE,0xAD,0xAB,0x87,0xA3,0xAD,0xEE,0xFF,/*"天"*/
  18.   0xFF,0xC0,0xB7,0xD3,0xD3,0xDF,0xC0,0xFF,/*"向"*/
  19.   0xFF,0xFD,0xFD,0x81,0xED,0xED,0xFD,0xFF,/*"上"*/
  20.   0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  21. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  22. };
  23. uchar code DSY_CONTENT_8x8_1[]=
  24. {
  25.   0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  26.   0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  27.   0xFF,0xFF,0xF7,0xE3,0x81,0x00,0xC3,0xC3,
  28.   0xC3,0xC3,0xC3,0xC3,0xC3,0xE7,0xE7,0xFF,
  29.   0xEE,0xAD,0xAB,0x87,0xA3,0xAD,0xEE,0xFF,/*"天",0*/
  30.   0xEE,0xAD,0xAB,0x87,0xA3,0xAD,0xEE,0xFF,/*"天",1*/
  31.   0xFF,0xC0,0xDF,0xD3,0xD3,0xB7,0xC0,0xFF,/*"向",2*/
  32.   0xFF,0xFD,0xED,0xED,0x81,0xFD,0xFD,0xFF,/*"上",3*/
  33.   0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  34.   0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  35. };
  36. uchar Scan_BIT = 0x01;
  37. uchar Scan_BIT1 = 0x80;
  38. uchar Offset,Data_Index = 0;
  39. uchar Offset1,Data_Index1 = 0;
  40. void Delay(uint t)
  41. {
  42. uchar i;
  43. while(t--) for(i=0;i<120;i++);
  44. }
  45. void T0_Led_Display_Control() interrupt 1
  46. {
  47. TH0 = (65536-1000)/256;
  48. TL0 = (65536-1000)%256;

  49. if(flag==0)
  50. {
  51. Scan_BIT1=0x80;
  52. Data_Index1 = 0;
  53. Scan_BIT = _cror_(Scan_BIT,1);
  54. putchar(Scan_BIT);
  55. while(TI == 0);
  56. putchar( DSY_CONTENT_8x8_0[Offset + Data_Index + 8]);
  57. while (TI==0);
  58. putchar( DSY_CONTENT_8x8_0[Offset + Data_Index ]);
  59. while(TI == 0);
  60. Data_Index = (Data_Index + 1) % 8;
  61. RCK_Pin = 1;
  62. RCK_Pin = 0;
  63. }
  64. if(flag==1)
  65. {
  66. Scan_BIT=0x01;
  67. Data_Index = 0;
  68. Scan_BIT1 = _crol_(Scan_BIT1,1);
  69. putchar(Scan_BIT1);
  70. while(TI == 0);
  71. putchar( DSY_CONTENT_8x8_1[Offset1 + Data_Index1]);
  72. while (TI==0);
  73. putchar( DSY_CONTENT_8x8_1[Offset1 + Data_Index1 + 8 ]);
  74. while(TI == 0);
  75. Data_Index1 = (Data_Index1 + 1) % 8;
  76. RCK_Pin = 1;
  77. RCK_Pin = 0;
  78. }
  79. }
  80. void main()
  81. {
  82. uchar i;
  83. TMOD = 0x01;
  84. TH0 = (65536-1000) / 256;
  85. TL0 = (65536-1000) % 256;
  86. IE = 0x82;
  87. TCON =0x00;
  88. TI = 1;
  89. while(1)
  90. {
  91.       for(i=0;i<64;i++)
  92.    {
  93.      if(k1==0) { flag=1; }
  94.      if(k2==0) { flag=0; }
  95.      Offset = i; Offset1 = i;
  96.      TR0 = 1;
  97.      Delay(50);
  98.      TR0 = 0;
  99.    }
  100.   }
  101. }</font></font></font>
復制代碼


5、仿真結果

設計的點陣顯示屏的Proteus仿真電路與圖5所示。

5 點陣顯示屏仿真電路

顯示”天天“與”向上“的仿真與實驗結果如圖6和圖7所示。所涉及的系統滿足項目要求的功能。

6顯示天天仿真結果

7 顯示向上仿真結果

以上的Word格式文檔51黑下載地址,為了防止白嫖,仿真工程本人已經刪除,請自己畫:
基于51單片機的LED點陣顯示屏設計.docx (3.09 MB, 下載次數: 30)


回復

使用道具 舉報

ID:766783 發表于 2020-6-27 17:27 來自觸屏版 | 顯示全部樓層
在嗎圖中U2下方的txd  rxa  p32的那個圈是在仿真哪里能
回復

使用道具 舉報

ID:766783 發表于 2020-6-27 18:48 來自觸屏版 | 顯示全部樓層
有沒有完整的
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 免费一级欧美在线观看视频 | 国产精品视频一二三区 | 国产清纯白嫩初高生在线播放视频 | 欧美一级免费观看 | 特黄色一级毛片 | 天天爽天天操 | 欧日韩在线 | 国产成人91视频 | 99精品免费| 在线观看视频中文字幕 | 日韩在线精品强乱中文字幕 | 国产乱码久久久 | 男人天堂国产 | 成人影视网 | 国产成人精品一区二区三区在线 | 啪一啪在线视频 | 国产精品久久av | 成人精品久久 | av av在线 | 国产高清一区二区三区 | 99热播精品| 久久av一区 | 亚洲高清视频在线 | 成人免费大片黄在线播放 | 综合亚洲视频 | 久久国产精品免费一区二区三区 | 影音先锋中文字幕在线观看 | 91看片在线观看 | 国产精品久久性 | 亚洲精品9999久久久久 | 亚洲系列第一页 | 成人欧美日韩一区二区三区 | 国产精品久久久久久久7777 | 成年人在线 | 日韩综合网 | 在线观看黄色电影 | 国产精品久久久久无码av | 色黄爽 | 国产福利资源在线 | 日韩成人高清 | 在线观看成人精品 |