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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 47100|回復: 0
收起左側

單片機數碼管動態顯示程序設計實驗

[復制鏈接]
ID:180782 發表于 2018-5-28 19:22 | 顯示全部樓層 |閱讀模式

數碼管動態顯示程序設計

1、數碼管的驅動

數碼管的顯示是靠點亮內部的發光二極管來發光。數碼管內部電路如下圖所示,顯示一個8字需要7個小段,另外還有一個小數點,所以其內部一共有8個小的發光二極管,最后還有一個公共端。公共端又可分為共陽極和共陰極,中間圖為共陰極內部原理圖,右圖為共陽極內部原理圖。

上圖展出了常用的兩種數碼管的引腳排列和內部結構。眾所周知,點亮發光二極管就是要給予它足夠大的正向壓降。所以點亮數碼管其實也就是給它內部相應的發光二極管正向壓降。

對共陰極數碼來說,其8個發光二極管的陰極在數碼管內部全部連接在一起,所以稱“共陰”,而它們的陽極是獨立的,通常在設計電路時一般把陰極接地。當我們給數碼管的任意一個陽極加一個高電平時,對應的這個發光二極管就點亮了。

共陽極數碼管其內部8個發光二極管的所有陽極全部連接在一起,電路連接時,公共端接高電平,因此我們要點亮的那個發光管二極管就需要給陰極送低電平,此時顯示數字的編碼與共陽極編碼是相反的關系。

2、動態數碼管驅動原理

首先我們來看一下開發板上的電路原理圖:

本開發板上使用的是,通過P22、P23、P24控制3-8譯碼器來對數碼管進行位選,通過P0口經過573的驅動控制數碼管的段選,通過P13控制573的使能端,為低電平時573才會有輸出。

實驗板連接圖:



實驗內容:數碼管動態顯示0~7

/******************************************************************************

* 實 驗 名                            : 動態數碼管顯示試驗

* 實驗說明       : 8位數碼管顯示0~7

* 連接方式       : 見連接圖

*******************************************************************************

  1. <font color="rgb(0, 0, 0)"><font face="Calibri"><font style="font-size: 14px">#include<reg52.h>

  2. #define GPIO_DIG P0

  3. sbit LSA=P2^2;

  4. sbit LSB=P2^3;

  5. sbit LSC=P2^4;



  6. //定義全局變量//

  7. unsigned char code DIG_CODE[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

  8. 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

  9. //0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的顯示碼

  10. unsigned char DisplayData[8];   //用來存放要顯示的8位數的值



  11. //--聲明全局函數--//

  12. void DigDisplay(); //動態顯示函數

  13. /******************************************************************************* 函 數 名         : main

  14. * 函數功能                               : 主函數

  15. * 輸    入         : 無

  16. * 輸    出         : 無

  17. *****************************************************************************/

  18. void main()

  19. {

  20.               unsigned char i;

  21.               for(i=0;i<8;i++)

  22.               {

  23.                             DisplayData[i]=DIG_CODE[i];            

  24.               }

  25.               while(1)

  26.               {

  27.                             DigDisplay();

  28.               }                                                      

  29. }

  30. /******************************************************************************* 函 數 名         : DigDisplay

  31. * 函數功能                               : 使用數碼管顯示

  32. * 輸    入         : 無

  33. * 輸    出         : 無

  34. **************************************************************************/

  35. void DigDisplay()

  36. {

  37.               unsigned char i;

  38.               unsigned int j;

  39.               for(i=0;i<8;i++)

  40.               {

  41.                             switch(i)              //位選,選擇點亮的數碼管,

  42.                             {

  43.                                           case(0):

  44.                                                         LSA=0;LSB=0;LSC=0; break;//顯示第0位

  45.                                           case(1):

  46.                                                         LSA=1;LSB=0;LSC=0; break;//顯示第1位

  47.                                           case(2):

  48.                                                         LSA=0;LSB=1;LSC=0; break;//顯示第2位

  49.                                           case(3):

  50.                                                         LSA=1;LSB=1;LSC=0; break;//顯示第3位

  51.                                           case(4):

  52.                                                         LSA=0;LSB=0;LSC=1; break;//顯示第4位

  53.                                           case(5):

  54.                                                         LSA=1;LSB=0;LSC=1; break;//顯示第5位

  55.                                           case(6):

  56.                                                         LSA=0;LSB=1;LSC=1; break;//顯示第6位

  57.                                           case(7):

  58.                                                         LSA=1;LSB=1;LSC=1; break;//顯示第7位            

  59.                             }

  60.                             GPIO_DIG=DisplayData[i];//發送段碼

  61.                             j=10;                                                           //掃描間隔時間設定

  62.                             while(j--);            

  63.                             GPIO_DIG=0x00;//消隱

  64.               }

  65. }</font></font></font>
復制代碼


完整的Word格式文檔51黑下載地址:

2數碼管動態顯示程序設計.docx (459.79 KB, 下載次數: 65)

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久黄 | 欧美精品综合 | 久久久噜噜噜久久中文字幕色伊伊 | 国产美女在线播放 | 亚洲国产成人一区二区 | 一区二区视频 | 成人av网站在线观看 | 日韩中文字幕在线不卡 | 可以免费看的毛片 | 亚洲高清视频在线 | 老外几下就让我高潮了 | 精品在线一区 | 一区二区三区亚洲精品国 | 天堂在线91 | 国产精品久久久久久久久久 | www.av在线| 国产精品成人一区 | 国产黑丝av | 国产一区二区久久 | 青青久久 | 日日骚av | 国产视频一区二区 | 免费在线黄 | 亚洲欧美综合 | 亚洲精品电影网在线观看 | www.一区二区 | 一区二区三区国产 | 国产黄色网址在线观看 | 中文字幕亚洲精品 | 中文字幕av高清 | 999热精品视频 | 亚洲区视频 | 色天天综合 | 中文字幕日韩一区二区 | 射欧美 | 久久小视频 | 天天色av | 日韩精品在线观看视频 | 福利视频一区二区 | 日韩一区二区三区视频在线播放 | 亚洲国产视频一区二区 |