基于51單片機的正負5V數字電壓表( proteus仿真+程序+設計報告+講解視頻)
仿真圖proteus7.8及以上
程序編譯器:keil 4/keil 5
編程語言:C語言
設計編號:S0101
1. 主要功能:
設計一個基于51單片機數字電壓表
1、能夠測量 -5V到+5V間的直流電壓。
2、通過數碼管顯示測量結果。
3、以51單片機為核心,可以通過proteus仿真驗證。
51單片機、數碼管、運放
需注意仿真中51單片機芯片是兼容的,AT89C51,AT89C52是51單片機的具體型號,內核是一樣的。相同的原理圖里,無論stc還是at都一樣,引腳功能都是一樣的,程序是兼容的,芯片可以替換為STC89C52/STC89C51/AT89C52/AT89C51等51單片機芯片。
以下為本設計資料展示圖:
2. 講解視頻:
講解視頻包含仿真運行講解和代碼講解
3. 仿真
打開仿真工程,雙擊proteus中的單片機,選擇hex文件路徑,然后開始仿真。開始仿真后數碼管顯示測量的電壓值。
調整滑動變阻器改變測量值。下圖是5V,0V和-5V測量
4. 程序代碼
使用keil4或者keil5編譯,代碼有注釋,可以結合視頻理解代碼含義。
#include "reg51.h"
#include"intrins.h"
#define uchar unsigned char
#define uint unsigned int
sbit smg1=P2^0;//數碼管
sbit smg2=P2^1;
sbit smg3=P2^2;
sbit smg4=P2^3;
//--定義使用的IO口--// P1數據口
sbit adc0808_clk =P3^7;
sbit adc0808_start=P3^6;
sbit adc0808_eoc =P3^5;
sbit adc0808_oe =P3^4;
//數碼管編碼
uchar code smgduan0[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//顯示0~9,無小數點
uchar code smgduan1[10]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//顯示0~9,有小數點
uchar time=0,mode=0;//系統變量
float volt=0;
uchar num=0,fu=0;void adc0808_init()//初始化
{adc0808_start=0;adc0808_oe=0;
}uchar adc0808_read()//讀取
{uchar i;_nop_();adc0808_clk=!adc0808_clk;adc0808_start=1;//啟動轉換for(i=0;i<10;i++)//產生脈沖{_nop_();adc0808_clk=!adc0808_clk;}adc0808_start=0;while(!adc0808_eoc)//等待轉換結束{_nop_();adc0808_clk=!adc0808_clk;}adc0808_oe=1;//讀取_nop_();i=P1;adc0808_oe=0;return i;
}
void delay(uint i)//延時
{while(i--);
}void main()//主函數
{adc0808_init();TMOD|=0X01;TH0=0X3C;TL0=0XB0; ET0=1;//打開定時器0中斷允許EA=1;//打開總中斷TR0=1;//打開定時器while(1){//顯示if(fu)P0=0x40;elseP0=0;smg2=0;delay(100);smg2=1; P0=smgduan1[num/10];smg3=0;delay(100);smg3=1; P0=smgduan0[num%10];smg4=0;delay(100);smg4=1; }
}
//定時器中斷
void Timer0() interrupt 1
{uint i=0;if(time<10)//0.5stime++;else{time=0;i=adc0808_read();//測量volt=i;volt=(volt-127.5)*5/128;//計算電壓volt=volt*5/4.9;}TH0=0X3C;TL0=0XB0;
}
5. 設計報告
5276字設計報告,內容包括硬件設計、軟件設計、軟硬件框圖、調試、結論等
隨著現代電子技術的持續進步與革新,數字電壓表在電子測量領域的應用范圍愈發廣泛,其重要性也日益凸顯。傳統的指針式電壓表,盡管在早期的電子測量中發揮了重要作用,但其固有的缺陷,如讀數誤差較大、精度相對較低以及讀數不夠直觀等問題,已經難以滿足當前高精度、高效率的測量需求。相比之下,數字電壓表以其讀數準確無誤、測量精度高、顯示結果直觀明了等顯著優勢,成為了電子測量領域的主流工具。
鑒于數字電壓表的諸多優點,我們計劃設計一款基于51單片機和ADC0808模數轉換器的數字電壓表。這款設計不僅具備重要的實際應用價值,能夠廣泛應用于各種需要精確測量電壓的場合,如電子實驗室、工業生產線等,而且對于學生而言,更是一次深入理解單片機應用技術和模數轉換原理的絕佳機會。通過親手設計并制作這款數字電壓表,學生將能夠親身體驗從理論到實踐的轉化過程,從而更加深入地掌握單片機的硬件電路設計、軟件編程以及模數轉換技術的核心要點。同時,這一過程也將極大地鍛煉學生的實踐能力、創新能力和解決問題的能力,為他們未來的學習和職業生涯奠定堅實的基礎。
6. 設計資料內容清單&&下載鏈接
資料設計資料包括仿真,程序代碼、講解視頻、功能要求、設計報告、軟硬件設計框圖等。
0、常見使用問題及解決方法–必讀!!!!
1、程序代碼注釋
2、proteus仿真
3、功能要求
4、軟硬件流程圖
5、開題報告
6、設計報告
7、原理圖
8、講解視頻
Altium Designer 安裝破解
KEIL+proteus 單片機仿真設計教程
KEIL安裝破解
Proteus元器件查找
Proteus安裝
Proteus簡易使用教程
單片機學習資料
相關數據手冊
答辯技巧
設計報告常用描述
鼠標雙擊打開查找嘉盛單片機51 STM32單片機課程畢業設計.url
資料下載鏈接(可點擊):
通過網盤分享的文件:KEY_S0101
鏈接: https://pan.baidu.com/s/1Ifsm-4HxnM3Y_E0HbJDZGg?pwd=983s
提取碼: 983s