51单片机数字电压表仿真设计_LCD显示(仿真+程序+原理图+PCB+设计报告+讲解)
原理图:Altium Designer
仿真版本:proteus 7.8
程序编译器:keil 4/keil 5
编程语言:C语言
设计编号:S0006
51单片机数字电压表仿真设计_LCD显示(仿真+程序+原理图+PCB+设计报告+讲解)
讲解视频1 功能要求:2 仿真图:3 原理图:4 PCB:5 程序设计:6 设计报告:7 资料清单 &&下载链接:讲解视频
基于51单片机数字电压表仿真设计
1 功能要求:
芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。
1、利用51单片机作为主控芯片,模拟量输入范围直流0v-5v。模拟量经A/D(ADC0809)模数转换芯片,把模拟量转换为数字量输入到单片机的P0口,再由单片机控制LCD1602液晶显示模拟量输入的电压值。
2、此次设计的是数字电压表,要求的电压范围是0~5v。
3、系统设计主要包括四个部分:
分别是电源模块、AD模数转换部分、51单片机最小系统部分、数码管显示部分。
首先由单片机初始化ADC0809模数转换芯片和共阴数码管显示,当外接被测电压后,ADC0809将模拟电压信号转换为数字信号输入到单片机的I/O口,通过单片机处理后将电压的大小显示在LCD1602液晶上面。
仿真51单片机芯片是通用的,AT89C51,AT89C52都是51单片机的具体型号,内核是兼容的。原理图不变的情况下,主控芯片可以替换成STC89C52/STC89C51/AT89C52/AT89C51/8051等51单片机芯片。
2 仿真图:
打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。开始仿真后LCD1602显示当前的电压值,通过调整滑动变阻器的阻值大小改变测量的电压值。
3 原理图:
AD绘制的。
元器件清单
4 PCB:
Proteus仿真和实物作品的区别:
1.运行环境:Proteus仿真是在计算机上运行的,而实物则是在硬件电路板上运行。
2.调试方式:在Proteus仿真中,可以方便地进行单步调试和观察变量值的变化,而在实物中则需要通过调试器或者串口输出等方式进行调试。
电路连接方式:在Proteus仿真中,可以通过软件设置进行电路连接的修改,而在实物中则需要通过硬件电路板和连接线进行修改。
3.运行速度:Proteus仿真通常比实物运行速度快,因为仿真是基于计算机运行的,而实物则需要考虑电路板上的物理限制和器件的响应时间等因素。
4.功能实现:在Proteus仿真中,可以通过软件设置实现不同的功能,而在实物中则需要根据电路设计和器件的性能进行实现。
5 程序设计:
可使用Keil4/5打开工程文件,程序有关键注释结合视频理解。
//<程序名>:数字电压表 **//<功能>:使用LCD显示被检测电压,精度为0.05V,范围是0~5V。 **#include"includes.h"#define TIME0H 0x3C#define TIME0L 0xB0 uchar uc_Clock=0;//定时器0中断计数bit b_DATransform=0;//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<把电压显示在LCD上>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>void vShowVoltage(uint uiNumber){uchar ucaNumber[3],ucCount;if(uiNumber>999)uiNumber=999;ucaNumber[0]=uiNumber/100;//把计算数字的每个位存入数组。ucaNumber[1]=(uiNumber-100*(int)ucaNumber[0])/10;ucaNumber[2]=uiNumber-100*(int)ucaNumber[0]-10*ucaNumber[1];for(ucCount=0;ucCount<3;ucCount++){vShowOneChar(ucaNumber[ucCount]+48);//从首位到末位逐一输出。if(ucCount==0)vShowOneChar('.');}}//*************************************************************************************************//* *//* ********************************主函数****************************** *//* *//*************************************************************************************************void main(){TMOD=0x01;//定时器0,模式1。TH0=TIME0H;TL0=TIME0L;TR0=1;//启动定时器。ET0=1;//开定时器中断。EA=1;//开总中断vdInitialize();vWriteCMD(0x84); //写入显示起始地址(第一行第4个位置)vShowChar("voltage");vWriteCMD(0xC9);vShowChar("(V)");while(1){if(b_DATransform==1){b_DATransform=0;vWriteCMD(0xC4);vShowVoltage(uiADTransform());}}}//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<定时器0中断函数>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>void t0() interrupt 1{if(uc_Clock==0){uc_Clock=5;b_DATransform=1;}elseuc_Clock--;TH0=TIME0H; //恢复定时器0。TL0=TIME0L;}
6 设计报告:
该系统由延时子函数、LCD1602液晶忙检测子函数、LCD1602液晶写命令/写数据子函数、汉字显示子函数、LCD1602液晶显示字符串子函数、LCD1602液晶初始化子函数、ADC0809转换子函数、主函数和数据定义这几部分组成。
7 资料清单 &&下载链接:
0.常见使用问题及解决方法–必读!!!!
1、源程序
2、仿真
3、原理图
4、PCB图
5、开题报告
6、设计报告
7、元器件清单
9、硬件框图
10、讲解视频
Altium Designer 安装破解
filename.bat
KEIL+proteus 单片机仿真设计教程
KEIL安装破解
Proteus元器件查找
Proteus安装
Proteus简易使用教程
单片机学习资料
目录清单.txt
相关数据手册
答辩技巧
设计报告常用描述
鼠标双击打开查找更多51 STM32单片机课程毕业设计.url
资料下载链接(可点击):