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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 17277|回復: 13
打印 上一主題 下一主題
收起左側

基于51單片機+ADC0808的數字電壓表PCB文件+仿真+程序設計

  [復制鏈接]
跳轉到指定樓層
樓主
基于51單片機的數字電壓表程序設計

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
見本文后面

單片機源程序如下:
  1. #include <REG51.H>
  2. sfr AUXR = 0x8e;
  3. int shuju;
  4. #include <display.c>
  5. sbit clock = P3^0;
  6. sbit OE = P3^7;
  7. sbit EOC = P3^2;
  8. sbit SATRA = P3^5;

  9. void timer0_isr()interrupt 1
  10. {
  11.         TH0 = (65535 - 2000) / 255;
  12.         TL0 = (65535 - 2000) % 255;
  13.         display0();        
  14. }
  15. void timer1_isr()interrupt 3
  16. {
  17.         clock = ~clock;
  18. }
  19. void timer0_init()
  20. {
  21.         TMOD = 0x21;
  22.         TH0 = (65535 - 2000) / 255;
  23.         TL0 = (65535 - 2000) % 255;
  24.         EA = 1;
  25.         ET0 = 1;
  26.         TR0 = 1;
  27.         TL1 = 0xfb;                //設置定時初值
  28.         TH1 = 0xfb;                //設置定時初值        
  29.         ET1 = 1;
  30.         TR1 = 1;                //定時器0開始計時
  31. }
  32. void main()
  33. {
  34.         timer0_init();
  35.         while(1)
  36.         {
  37.                 OE = 0;
  38.                 SATRA = 0;SATRA = 1;SATRA = 0;
  39.                 while(EOC == 0);
  40.                 OE = 1;
  41.                 shuju = P1 * 1.96;
  42.                 OE = 0;                        
  43.         }
  44. }
復制代碼

摘要
本課題是利用單片機設計一個數字電壓表,能夠測量0-5V之間的直流電壓值,四位數碼管顯示,使用的元器件數目較少。外界電壓模擬量輸入到A/D轉換部分的輸入端,通過ADC0809轉換變為數字信號,輸送給單片機。然后由單片機給數碼管數字信號,控制其發光,從而顯示數字。

目錄
1 前言
1.1 課題研究的背景及意義
2 設計要求
3系統原理框圖
4 主要元器件
4.1  STC89C52
4.2  ADC0809 轉換電路
4.3四位一體數碼管
四位一體數碼管
5系統設計電路
5.1電路
6程序設計
6.1 顯示程序設計
6.2 主程序的設計
7 電路原理圖
8  PCB圖
9 程序
10 總結
參考文獻
致謝

1 前言
1.1 課題研究的背景及意義
在生產過程,科學研究和其他產業領域中,電氣控制技術應用十分廣泛。在機械設備的控制中,電氣控制也比其他的控制方法使用的更為普遍。
數字電壓表簡稱DVM,它是采用數字化測量技術設計的電壓表。從性能來看:數字電壓表的發展從一九五二年美國NLS公司由四位電子管數字電壓表精度千分之一到現在已經出現8位數字電壓表。參數可測量直流電壓、交流電壓、電流、阻抗等。測量自動化程度不斷提高,可以和計算機配合顯示、計算結果、然后打印出來。
1.2 國內外研究現狀和發展            
數字電壓表(Digital Voltmeter)簡稱DVM,它出現在上世紀50年代初,60年代末發張起來的電壓測量儀表,它采用的是數字化測量技術,把連續的模擬量,也就是連續的電壓值轉變為不連續的數字量,加以數字處理然后通過顯示器件顯示。這種電子儀表之所以出現,一方面是由于電子計算機的應用推廣到系統的自動控制信號的實驗領域,提出了各種被觀測量或被控制量轉換成數字量的要求,即為了實時控制和數據處理的要求;另一方面,也是電子計算機的發展,帶動了脈沖數字電路技術的發展,為數字化儀表的出現提供了條件。所以,數字化測量儀表的產生與發展與電子計算機的發展是密切相關的;同時,為革新電子測量中的煩瑣與陳舊方式也促進了它的飛速發展。如今,它又成為向智能化儀表發展的必要橋梁。


2
設計要求
設計一個數字電壓表,基于單片機或數字邏輯電路,設計A/D轉化電路、密碼校驗電路和控制輸出與顯示電路,實現用戶按鍵輸入密碼開鎖功能。
1、以單片機為控制核心設計數字電壓表;
2、可以測量0~5V的8路輸入電壓值;
3、LED數碼管輪流顯示或單路選擇顯示電壓值;
4、最小分辨率為0.01V,測量誤差約為±0.01V。


3系統原理框圖
選擇AT89S51作為單片機芯片,選用四位8段共陰極LED數碼管實現電壓顯示,利用ADC0809作為數模轉換芯片。將數據采集接口電路輸入電壓傳入ADC0809數模轉換元件,經轉換后通過D0至D7與單片機P0口連接,把轉換完的模擬信號以數字信號的信號的形式傳給單片機,信號經過單片機處理從LED數碼顯示管顯示。P2口接數碼管位選,P1接數碼管,實現數據的動態顯示,如圖4.1所示。


4 主要元器件
4.1  STC89C52
STC89C52是美國ATMEL公司生產的低電壓,高性能CMOS8位單片機,片內含有4KB的可反復擦寫的只讀程序存儲器和128字節的隨機存儲器。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容,由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的STC89C52是一種高效微控制器,它為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。
STC89C52功能性能:與MCS-51成品指令系統完全兼容;4KB可編程閃速存儲器;壽命:1000次寫/擦循環;數據保留時間:10年;全靜態工作:0-24MHz;三級程序存儲器鎖定;128*8B內部RAM;32個可編程I/O口線;2個16位定時/計數器;5個中斷源;可編程串行UART通道;片內震蕩器和掉電模式。              


STC89C52各引腳功能
  P0端口:P0口是一個漏極開路的8位雙向I/O口。作為輸出端口每個引腳能驅動8個TTL負載對端口P0寫入“1”時可以作為高阻抗輸入。在訪問外部程序和數據存儲器時P0口也可以提供低8位地址和8位數據的復用總線。此時P0口內部上拉電阻有效。在Flash ROM編程時P0端口接收指令字節而在校驗程序時則輸出指令字節。驗證時要求外接上拉電阻。
P1端口: P1口是一個帶內部上拉電阻的8位雙向I/O口。P1的輸出緩沖器可驅動吸收或者輸出電流方式4個TTL輸入。對端口寫入1時通過內部的上拉電阻把端口拉到高電位這是可用作輸入口。P1口作輸入口使用時因為有內部上拉電阻那些被外部拉低的引腳會輸出一個電流。
P2端口:P2口是一個帶內部上拉電阻的8位雙向I/O端口。P2的輸出緩沖器可以驅動吸收或輸出電流方式4個TTL輸入。對端口寫入1時到高電平這時可用作輸入口。P2作為輸入口使用時因為有內部的上拉電阻那些被外部信號拉低的引腳會輸出一個電流。 在訪問外部程序存儲器和16位地址的外部數據存儲器如執行“MOVX @DPTR”指令時P2送出高8位地址。在訪問8位地址的外部數據存儲器如執行“MOVX @R1”指令時P2口引腳上的內容就是專用寄存器SFR區中的P2寄存器的內容在整個訪問期間不會改變。 在對Flash ROM編程和程序校驗期間P2也接收高位地址和一些控制信號。
P3端口:P3口是一個帶內部上拉電阻的8位雙向I/O端口。P3的輸出緩沖器可驅動吸收或輸出電流方式4個TTL輸入。對端口寫入1時通過內部的上拉電阻把端口拉到高電位這時可用作輸入口。P3做輸入口使用時因為有內部的上拉電阻那些被外部信號拉低的引腳會輸入一個電流。 在對Flash ROM編程或程序校驗時P3還接收一些控制信號。

4.2  ADC0809 轉換電路
ADC0808芯片有28條引腳,采用雙列直插式封裝,各引腳功能為:

IN0~IN7:8路模擬量輸入端。
D0~D7:8位數字量輸出端口。
START:A/D轉換啟動信號輸入端。
ALE:地址鎖存允許信號,高電平有效。
EOC:輸出允許控制信號,高電平有效。
OE: 輸出允許控制信號,高電平有效。
CLK:時鐘信號輸入端。
ADDA、ADDB、ADDC:轉換通道地址,控制8路模擬通道的切換。ADDA、ADDB、ADDC分別與地址線或數據線相連,三位編碼對應8個通道地址端口,ADDA、ADDB、ADDC=000~111分別對應IN0~IN7通道的地址端口。

4.3四位一體數碼管四位一體數碼管

首先數碼管有共陰極和共陽極之分,區別他們的方法是若公共端接地,其他端接電源,若各段測試能亮,說明是共陰的,反之共陽的;若公共端接電源其他端分別接的,測得各端亮,則說明是共陽的,反之為共陰的。

5系統設計電路5.1電路
AT89C51單片機在啟動運行時或者出現死機時需要復位,使CPU以及其他功能部件處于一個確定的初始狀態,并從這個狀態開始工作。復位電路產生的復位信號(高電平有效)由RST引腳送入到內部的復位電路,對AT89C51單片機進行復位,復位信號要持續兩個機器周期(24個時鐘周期)以上,才能使AT89C51單片機可靠復位。
AT89C51單片機復位電路如圖3.3所示:



復位電路工作原理:上電瞬間RST引腳的電位與VCC等電位,RST引腳為高電平,隨著電容C6充電電流的減少,RST引腳的電位不斷下降,其充電時間常數為T=R9*C6=100ms,此時間常數足以RST引腳在保持為高電平的時間內完成復位操作。
當單片機已在運行當中時,按下復位鍵S1后松開,也能使單片機RST引腳維持一段時間的高電平,從而實現AT89C51單片機手動復位。
5.2 晶振電路

XTAL1和XTAL2是片內振蕩電路輸入端,這兩個端子用來外接石英晶體和微調電容,即用來連接AT89C51單片機片內OSC的定時反饋回路。晶振起振后要能在XTAL2端輸出一個3V左右的正弦波,以便使片內OSC電路按晶振相同頻率自激振蕩。通常,OSC的輸出時鐘頻率FOSC為6MHZ—16MHZ,典型值為12MHZ或11.0592MHZ。電容C5和C6幫助晶振起振,典型值為30pf,調節它們可以達到微調FOSC的目的。本系統中,晶振為12MHZ,C5=C6=30pf。晶振電路如圖3.4所示:

6程序設計
6.1 顯示程序設計
系統上電后,配置數碼管個引腳,然后對其進行初始化,再調用的讀寫函數,可將采集處理后的電壓數值實時顯示。其程序流程圖如圖所示。



6.2 主程序的設計
由于ADC0809在進行A/D轉換時需要有CLK信號,而此時的ADC0809的CLK是連接在AT89C51單片機的40管腳,也就是要求從40管腳輸出CLK信號供ADC0809使用。因此產生CLK信號的方法就等于從軟件產生。電壓表系統有主程序,A/D轉換子程序、按鍵子程序和顯示子程序。





7 電路原理圖


8  PCB



Proteus8.8仿真+代碼PCB資料:
數字電壓表仿真程序PCB.7z (2.44 MB, 下載次數: 531)

評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:308785 發表于 2019-4-29 23:13 | 只看該作者
正在學習此項內容 比較感謝樓主的分享
回復

使用道具 舉報

板凳
ID:524917 發表于 2019-4-30 09:12 | 只看該作者
感謝樓主分享
回復

使用道具 舉報

地板
ID:375715 發表于 2019-4-30 14:09 來自手機 | 只看該作者
值得學習
回復

使用道具 舉報

5#
ID:528087 發表于 2019-5-8 18:38 | 只看該作者
正在做此類設計,學習學習
回復

使用道具 舉報

6#
ID:157286 發表于 2019-10-25 23:45 | 只看該作者
感謝樓主分享
回復

使用道具 舉報

7#
ID:710050 發表于 2020-3-17 15:29 | 只看該作者
兩個c文件添加到工程里面,為什么編譯不了呢,顯示   display.c(15): error C202: 'P0': undefined identifier
求解答。
回復

使用道具 舉報

8#
ID:804169 發表于 2020-7-16 13:58 | 只看該作者
感謝樓主,我想問一下,你的ADC0809是自己畫的,還是在庫里找的,我在庫里找不到咋辦
回復

使用道具 舉報

9#
ID:804169 發表于 2020-7-16 13:59 | 只看該作者
問一下樓主,你的ADC0809是自己畫的嗎,我在庫里沒有找到
回復

使用道具 舉報

10#
ID:925314 發表于 2021-5-22 12:47 | 只看該作者
想問下ADC0808在哪里找到呀
回復

使用道具 舉報

11#
ID:648066 發表于 2021-6-21 19:03 | 只看該作者
樓主你這個PCB圖連線有問題啊
回復

使用道具 舉報

12#
ID:978036 發表于 2021-11-28 11:29 | 只看該作者
di88 發表于 2020-7-16 13:58
感謝樓主,我想問一下,你的ADC0809是自己畫的,還是在庫里找的,我在庫里找不到咋辦

用ADC0808,一樣的
回復

使用道具 舉報

13#
ID:991606 發表于 2021-12-13 12:42 來自手機 | 只看該作者
正在學習此項內容 比較感謝樓主的分享
回復

使用道具 舉報

14#
ID:992042 發表于 2021-12-14 08:57 | 只看該作者
看過樓主的設計,非常受用。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 婷婷福利视频导航 | 亚洲一区二区免费电影 | 成年人在线观看视频 | 96av麻豆蜜桃一区二区 | 国产精品一区二区不卡 | 日韩欧美在 | 久久激情视频 | 黄视频在线网站 | 日韩免费视频 | 日韩精品免费在线观看 | 91亚洲免费 | 成人美女免费网站视频 | 激情五月婷婷综合 | 欧美国产视频一区二区 | 99视频免费看 | 一区二区影视 | 日日噜噜夜夜爽爽狠狠 | 亚洲国产欧美一区二区三区久久 | 精品国产一区二区三区久久狼黑人 | 精品国产成人 | 久久网国产 | 青青99 | 精品伦精品一区二区三区视频 | 日韩 欧美 二区 | 天天干天天操 | 伊人91在线| 久色视频在线 | 精品欧美激情精品一区 | 一级特黄色毛片 | 国产乱码一区 | 在线观看视频91 | 精品国产乱码久久久久久久久 | 一区二区精品视频 | 亚洲欧洲精品一区 | 国产精品影视在线观看 | av资源在线看 | 午夜精品一区二区三区在线观看 | 亚洲一区二区三区在线 | 久久精品免费一区二区 | 欧美一二区 | 亚洲一二三区精品 |