找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 19421|回復: 2
打印 上一主題 下一主題
收起左側(cè)

單片機8位LED數(shù)碼管的靜態(tài)顯示課程設(shè)計說明書與仿真源碼下載

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:268172 發(fā)表于 2018-1-21 20:07 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
設(shè)計單片機控制8位LED數(shù)碼管的動態(tài)驅(qū)動電路,并編寫程序?qū)崿F(xiàn)在8位LED數(shù)碼管上靜態(tài)信息的顯示。                                                     
    電路方面主要包括以下3部分。
(a)設(shè)計單片機的最小系統(tǒng)(包括復位電路和外接的晶振電路),并確定相關(guān)元器件參數(shù)。
(b)采用動態(tài)驅(qū)動的方式,設(shè)計單片機并行端口與LED數(shù)碼管的動態(tài)顯示電路,包括LED數(shù)碼管位選線和段選線的連線。
(c)設(shè)計LED數(shù)碼管位選端(線)給電流電路。                                                         
     編寫單片機控制(驅(qū)動)8位LED數(shù)碼管顯示程序,實現(xiàn)數(shù)字(0—9)或簡單的英文字符(A—F)的靜態(tài)信息顯示。顯示方式和內(nèi)容自定,如每隔一段時間循環(huán)顯示數(shù)字0—9 或英文字符(A—F)。

下面是該仿真實驗的課程設(shè)計說明書的重要內(nèi)容節(jié)選(附件里面有proteus仿真工程文件+完整代碼下載):

4 結(jié)果分析
4.1 程序調(diào)試與仿真
完成硬件設(shè)計和軟件程序編寫后,將Keil uVision4軟件中編輯好的程序輸出文件載入Protues軟件中的單片機STC89C52,進行仿真。按照顯示的結(jié)果進行程序的調(diào)試,顯示的時間通過延時函數(shù)改變。調(diào)試結(jié)束后,可以驗證該設(shè)計的硬件方案和軟件方案的正確性。首先沒有出現(xiàn)錯誤顯示且顯示的數(shù)字穩(wěn)定清晰,說明了電路原理的合理,所選元件也是正確的;其次顯示的內(nèi)容也與所編程序相符合,說明軟件方案也是可行的。
4.2 仿真結(jié)果
調(diào)試完成后進行仿真,仿真開始運行后8位LED數(shù)碼管上依次顯示數(shù)字“0”,“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”,并循環(huán)顯示。結(jié)果如圖4-1,圖4-2,圖4-3所示,分別為顯示的“0”“1”“9”三個數(shù)字。

               

圖4-1 仿真結(jié)果
圖4-2 仿真結(jié)果
圖4-3 仿真結(jié)果
5 結(jié)論和總結(jié)
本次單片機課程設(shè)計歷時兩周,從開始的查閱資料,初步確定設(shè)計方案,到熟悉protues和keil uvison4兩個應(yīng)用軟件,最后進行程序編寫和仿真圖制作。通過本次課設(shè),我完成了8位LED數(shù)碼管顯示的要求,在這過程中,我掌握了單片機指令系統(tǒng)中c語言的基本語句以及C語言的基礎(chǔ)知識,還有單片機與其他設(shè)備相連接輸入輸出接口技術(shù)。雖然過程磕磕絆絆,但在老師的課設(shè)指導和同學的幫助下,還是順利完成了。得出結(jié)果固然重要,但是在這個過程中的收獲則更為珍貴。

參 考 文 獻
  • 何宏.單片機原理及應(yīng)用.清華大學出版社.2012:271


目 錄
1 選題背景
1.1 課題簡介
1.2 指導思想
2 方案論證
2.1 設(shè)計原理
2.2 設(shè)計方案
2.2.1 硬件方案
2.2.2 軟件方案
2.3 方案特點
3 8位LED數(shù)碼管顯示器的靜態(tài)信息顯示過程設(shè)計論述
3.1 系統(tǒng)硬件框圖設(shè)計
3.2 系統(tǒng)原理圖設(shè)計
3.2.1 整體原理圖
3.2.2 單片機最小系統(tǒng)設(shè)計
3.2.3 字符段控制電路設(shè)計
3.2.4 位選傳輸電路設(shè)計
3.3 驅(qū)動程序
3.3.1 程序流程
3.3.2 程序分析
4 結(jié)果分析
4.1 程序調(diào)試與仿真
4.2 仿真結(jié)果
5 結(jié)論和總結(jié)
參考文獻


1 選題背景
1.1 課題簡介
LED數(shù)碼管(LED Segment Displays)由多個發(fā)光二極管封裝在一起組成“8”字型的器件,引線已在內(nèi)部連接完成,只需引出它們的各個筆劃,公共電極。數(shù)碼管實際上是由七個發(fā)光管組成8字形構(gòu)成的,加上小數(shù)點就是8個。這些段分別由字母a,b,c,d,e,f,g,dp來表示。
                    
                           圖1-1 選題背景圖
當數(shù)碼管特定的段加上電壓后,這些特定的段就會發(fā)亮,以形成我們眼睛看到的字樣了。如:顯示一個“2”字,那么應(yīng)當是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。LED數(shù)碼管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸數(shù)碼管的顯示筆畫常用一個發(fā)光二極管組成,而大尺寸的數(shù)碼管由二個或多個發(fā)光二極管組成,一般情況下,單個發(fā)光二極管的管壓降為1.8V左右,電流不超過30mA。發(fā)光二極管的陽極連接到一起連接到電源正極的稱為共陽數(shù)碼管,發(fā)光二極管的陰極連接到一起連接到電源負極的稱為共陰數(shù)碼管。常用LED數(shù)碼管顯示的數(shù)字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。
1.2 指導思想
本課題需要了解LED數(shù)碼管結(jié)構(gòu)及字形碼,熟悉LED數(shù)碼管動態(tài)驅(qū)動的基本原理。設(shè)計單片機控制8位LED數(shù)碼管的動態(tài)驅(qū)動電路,并編寫程序?qū)崿F(xiàn)在8位LED數(shù)碼管上靜態(tài)信息的顯示。
2 方案論證
2.1 設(shè)計原理
    本課題采用動態(tài)驅(qū)動的方式,即將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。通過動態(tài)掃描輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數(shù)碼管同時都在顯示。

2.2 設(shè)計方案
2.2.1 硬件方案
硬件電路由四部分組成,即單片機最小系統(tǒng),數(shù)據(jù)字符段控制電路,位選擇傳輸電路,LED數(shù)碼管顯示電路。各部分實現(xiàn)功能及設(shè)計如下:
a)單片機最小系統(tǒng)包括外接時鐘電路和單片機復位電路。時鐘電路由一個晶振和兩個小電容組成,用來產(chǎn)生時鐘頻率;復位電路由一個電阻、按鍵和一個電容組成,用來產(chǎn)生復位信號,使單片機上電的時候復位。
b)數(shù)據(jù)字符段控制電路采用一片74HC573組成,與單片機的I/O口中的P0.0,P0.1,P0.2,P0.3,P0.4,P0.5,P0.6,P0.7口相連,通過P2.6口進行數(shù)據(jù)字符段進行選擇控制。(74HC573是八路輸出的透明鎖存器,數(shù)據(jù)的進和出沒有邏輯關(guān)系,當鎖存使能端LE為高時,這些器件的鎖存對于數(shù)據(jù)是透明的。當鎖存使能變低時,符合建立時間和保持時間的數(shù)據(jù)會被鎖存。輸出能直接接到CMOS,NMOS 和TTL 接口上。)
c)位選擇傳輸電路同樣采用一片74HC573組成,與單片機的I/O口中的P0.0,P0.1,P0.2,P0.3,P0.4,P0.5,P0.6,P0.7口相連,通過P2.6口進行位選擇控制。
d)8位LED數(shù)碼管顯示屏由兩個7SEG-MPX4-CC拼接而成。
2.2.2 軟件方案
本次設(shè)計軟件方案程序使用C語言編寫,主要包括循環(huán)顯示數(shù)字主函數(shù),顯示函數(shù),字符段數(shù)據(jù)的有關(guān)函數(shù),選位控制的有關(guān)函數(shù)以及延時函數(shù)。
2.3 方案特點
該方案硬件方面,字符數(shù)據(jù)段和位選控制分別用一個74HC573進行控制,74HC573實質(zhì)是鎖存器,能夠?qū)崿F(xiàn)“直入直出”的功能。使用一個I/O口就分別完成了字符數(shù)據(jù)與位選數(shù)據(jù)的發(fā)送。只需用74HC573的LE口進行鎖存控制即可完成字符段與位選的不同數(shù)據(jù)輸出,這樣只需一個I/O口即可,極大節(jié)省了I/O資源。
該方案軟件方面,采用C語言進行編譯,相對于匯編語言它具有靈活性強,可移植性強,庫函數(shù)多的特點。
3 8位LED數(shù)碼管顯示器的靜態(tài)信息顯示過程設(shè)計論述3.1 系統(tǒng)硬件框圖設(shè)計
根據(jù)確定的硬件方案設(shè)計系統(tǒng)硬件框圖,包括為單片機提供時鐘信號的晶振電路,進行復位操作的復位電路,字符段控制電路,位選傳輸電路,LED數(shù)碼管顯示電路。如圖3-1所示。

                             圖3-1 系統(tǒng)硬件框圖(詳見附件)


3.2 系統(tǒng)原理圖設(shè)計3.2.1 整體原理圖
根據(jù)系統(tǒng)硬件框圖分為四大部分設(shè)計整體硬件圖,如圖3-2所示。
              
圖3-2 原理圖

電路設(shè)計需要的元器件包括電阻,電容,單片機,鎖存器,LED數(shù)碼管等。具體元器件規(guī)格數(shù)量見表3-1所示。[1]
表3-1 元器件清單

元器件型號

規(guī)格參數(shù)

數(shù)量

電阻

10kΩ

1個

電阻

220kΩ

1個

電容

10nF

1個

電容

22pF

2個

晶振

11.0592MHz

1個

單片機

STC89C52

1個

VCC

5V

3個

GND

接地

3個

按鍵

四角直插

1個

4位LED數(shù)碼管


2個

74HC573


2個

3.2.2 單片機最小系統(tǒng)設(shè)計
AT89C51單片機芯片內(nèi)部有一個反向放大器構(gòu)成的振蕩器,XTAL1和XTAL2分別為振蕩器電路的輸入端和輸出端,時鐘由內(nèi)部和外部生成,引腳上外接定時元件,內(nèi)部震蕩電路產(chǎn)生自激振蕩。系統(tǒng)采用的定時元件為石英晶體和電容組成的并聯(lián)諧振回路。晶振頻率選擇11.0592MHz,電容值取22PF。元件清單見表3-1所示。具體線路連接如圖3-3所示。

圖3-3 單片機最小系統(tǒng)

3.2.3 字符段控制電路設(shè)計
用一個74HC573鎖存器,輸入端接STC89C52的P0口,LE端接P2.6控制鎖存輸出。具體電路連接如圖3-4所示。

圖3-4 字符段控制電路

3.2.4 位選傳輸電路設(shè)計
用一個74HC573鎖存器,輸入端接STC89C52的P0口,LE端接P2.7控制鎖存輸出。具體電路連線如圖3-5所示。
圖3-5 位選傳輸電路
3.3 驅(qū)動程序
3.3.1 程序流程
程序主要有頭文件,端口定義,定義所用的函數(shù),字符函數(shù),具體函數(shù)編寫包括主函數(shù)。根據(jù)電路圖原理,主體流程圖如圖3-6所示(詳見51hei附件)。

單片機源程序如下:
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char


  5. sbit DA=P2^6;                     //
  6. sbit WEI=P2^7;                    //

  7. uint shu=0;


  8. unsigned char code tab[] ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x79,0x00,0x5c};//共陰數(shù)碼碼表
  9. unsigned char Display_Digit[]={0,0,0,0,0,0,0,0,0,0};//待顯示

  10. void Delay(uint x)
  11. {
  12.          while(--x);
  13. }

  14. void delayms(uint z)     //延時N ms
  15. {
  16.         uint x,y;
  17.         for(x=z;x>0;x--)
  18.         for(y=120;y>0;y--);
  19. }


  20. //7F,BF,DF,EF, F7,FB,FD,FE

  21. void SMG_DIS(void)     //
  22. {
  23.         P0 = 0xFE;
  24.         WEI=1;
  25.         WEI=0;  //位控制
  26.         P0=(tab[shu]); //個位和小數(shù)點
  27.         DA=1;
  28.         DA=0;         //顯示數(shù)據(jù)輸出
  29.         delayms(3);

  30.         P0 = 0xFD;
  31.         WEI=1;
  32.         WEI=0;  //位控制
  33.         P0=(tab[shu]); //個位和小數(shù)點
  34.         DA=1;
  35.         DA=0;         //顯示數(shù)據(jù)輸出
  36.         delayms(3);

  37.         P0 = 0xFB;
  38.         WEI=1;
  39.         WEI=0;  //位控制
  40.         P0=(tab[shu]); //個位和小數(shù)點
  41.         DA=1;
  42.         DA=0;         //顯示數(shù)據(jù)輸出
  43.         delayms(3);

  44.         P0 = 0xF7;
  45.         WEI=1;
  46.         WEI=0;  //位控制
  47.         P0=(tab[shu]); //個位和小數(shù)點
  48.         DA=1;
  49.         DA=0;         //顯示數(shù)據(jù)輸出
  50.         delayms(3);


  51.         P0 = 0xEF;
  52.         WEI=1;
  53.         WEI=0;  //位控制
  54.         P0=(tab[shu]); //個位和小數(shù)點
  55.         DA=1;
  56.         DA=0;         //顯示數(shù)據(jù)輸出
  57.         delayms(3);

  58.         P0 = 0xDF;
  59.         WEI=1;
  60.         WEI=0;  //位控制
  61.         P0=(tab[shu]); //個位和小數(shù)點
  62.         DA=1;
  63.         DA=0;         //顯示數(shù)據(jù)輸出
  64.         delayms(3);

  65.         P0 = 0xBF;
  66.         WEI=1;
  67.         WEI=0;  //位控制
  68.         P0=(tab[shu]); //個位和小數(shù)點
  69.         DA=1;
  70.         DA=0;         //顯示數(shù)據(jù)輸出
  71.         delayms(3);

  72.         P0 = 0x7F;
  73.         WEI=1;
  74.         WEI=0;  //位控制
  75.         P0=(tab[shu]); //個位和小數(shù)點
  76.         DA=1;
  77.         DA=0;         //顯示數(shù)據(jù)輸出
  78.         delayms(3);
  79. }


  80. void main(void)
  81. {  
  82.                 uint d=0;               //整型數(shù)據(jù)        
  83.                 uint i=0;
  84.                         Display_Digit[0]=1;
  85.                         Display_Digit[1]=2;
  86.                         Display_Digit[2]=3;
  87.                         Display_Digit[3]=4;
  88.                         Display_Digit[4]=5;
  89.                         Display_Digit[5]=6;
  90.                         Display_Digit[6]=7;
  91. ……………………

  92. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼



所有資料51hei提供下載(含word格式的課設(shè)說明書與任務(wù)書+仿真工程+源碼):

8位LED數(shù)碼管顯示器的靜態(tài)信息顯示 .rar (481.47 KB, 下載次數(shù): 92)


評分

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

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:493418 發(fā)表于 2019-3-18 18:44 | 只看該作者
很好有幫助
回復

使用道具 舉報

板凳
ID:650452 發(fā)表于 2019-11-27 00:31 | 只看該作者
很有幫助!
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表