《基于单片机的数字电压表.doc》由会员分享,可免费在线阅读全文,更多与《基于单片机的数字电压表》相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索。

1、。图键盘接口电路仿真图第章系统软件设计多路液晶显示数字电压表系统软件程序由主程序,AD转换子程序和显示子程序等组成。主程序设计根据需要,可将系统软件按照功能划分为个模块,分别是主程序模块、AD转换模块、液晶显示模块、键盘程序程序模块,各模块的功能关系如图所示。编写系统软件时,可首先编写各模块的底层驱动程序,而后是系统联机调试,编写上层主程序。图系统软件框图系统主程序液晶管显示AD转换键盘程序软件调试软件调试可以先编写显示程序并进行硬件的正确性检验,然后分别进行主程序、AD转换子程序、液晶显示子程序、键盘控制子程序的编译和调试,由于液晶显示有交流电压的一部分,故液晶显示必须有时时刷新的功能,这样电路才可以实现正常功能。硬件调试硬件调试相对较为简单,首先用万用表检查硬件电路的焊接是否正确,是否有短路、断路、虚焊等。在检查无误后,可通电检测LCD显示器显示状况。如果不理想,继续调整程序,直到得到正确结果。设计小结电压测量通过不同的接口电路可实现温度、湿度、压力等测量,广泛应用于工业领域。本电路设计别具一格,是一种高精度、低功耗、宽量程、智能化的电压表。可扩展键盘、EEPROM、报警电路,实现电压异常记录、报警。我们小组通过完成一个包括电路设计和程序开发的完整过程,了解了开发单片机应用系统的全过程,强化巩固所学知识,为以后的学习和工作打下基础。由于水平有限,我们认为系统还有需要改进的地方。今后的学习中还需要继续努力,深入的学习和思考问题。本次实验我们采用C语言编程实现,程序分为三个模块,通过主函数进行调用,简单可读写性强。实验是团体配合的工作,团体各成员取长补短,优势互补,最终圆满的完成了此次。

2、,编写了实验报告。附件一电路原理图附件二部分参考程序Mainc主程序AD转换程序includeincludeunsignedlongdat_adc;uintadc_init(){START=;OE=;START=;START=;while(EOC==);OE=;dat_adc=P;OE=;returndat_adc;}voidRefresh_show()刷新显示{uintt=dat_adc*;dislay_buffer[][]=t+'';dislay_buffer[][]=t%+'';dislay_buffer[][]=t%+'';}液晶显示程序LCD初始化*voidInitialize_LCD(){Write_LCD_Command(x);delayus();Write_LCD_Command(xC);delayus();Write_LCD_Command(x);delayus();Write_LCD_Command(x);delayus();}在LCD上显示字符串*voidLCD_Dislay(uchar*str){uchari;for(i=接AD转换器和间接AD转换器;按其分辨率分为位转换器。逐次逼近型AD转换器属于直接型AD转换器,它能把输入的模拟电压直接转换为输出的数字代码,而不需要经过中间变量。主要由比较器、环形分配器][、控制门、寄存器与DA转换器组成。ADC是带有位AD转换器、路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式AD转换器,可以和单片机直接接口。()ADC的内部逻辑结构由下图可知,ADC由一个路模拟开关、一个地址锁存与译码器、一个AD转换器。

3、表明正在进行AD转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE=,输出转换得到的数据;OE=,输出数据线呈高阻状态。D-D为数字量输出线。CLK为时钟输入信号线。因ADC的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为KHZ,VREF(+),VREF(-)为参考电压输入。LCD显示模块LCD显示器分为字段显示和字符显示两种。其中字段显示与LED显示相似,只要送对应的信号到相应的管脚就能显示。字符显示是根据需要显示基本字符。本设计采用的是字符型显示。系统中采用LCD作为显示器件输出信息。与传统的LED数码管显示器件相比,液晶显示模块具有体积小、功耗低、显示内容丰富等优点,而且不需要外加驱动电路,现在液晶显示模块已经是单片机应用设计中最常用的显示器件了。LCD可以显示行个汉字。如图所示。图LCD模块LCD主要技术参数:显示容量:个字符芯片工作电压:V工作电流:mA(V)模块最佳工作电压:V字符尺寸:(WH)mm引脚功能说明LCD采用标准的脚(无背光)或脚(带背光)接口,各引脚接口说明如表所示:编号符号引脚说明编号符号引脚说明VSS电源地D数据VDD电源正极D数据VL液晶显示偏压D数据VSSVDDVORSRWEDBDBDBDBDBDBDBDBAKLCD模块RS数据命令选择附件二部分参考程序附录三硬件实物图前言数字电压表(DigitalVoltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压。

4、位器调整对比度。第脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第~脚:D~D为位双向数据线。第脚:背光源正极。第脚:背光源负极。LCD的指令说明及时序液晶模块内部的控制器共有条控制指令,如表所示:序号指令RSRWDDDDDDDD清显示光标返回*置输入模式IDS显示开关控制DCB光标或字符移位SCRL**置功能DLNF**置字符发生存贮器地址字符发生存贮器地址置数据存贮器地址显示数据存贮器地址读忙标志或地址BF计数器地址写数到CGRAM或DDRAM)要写的数据内容从CGRAM或DDRAM读数读出的数据内容表液晶模块内部的控制器控制指令键盘控制模块通过键盘切换,实现对直流信号和交流信号电压值的测量,并把电压值实时显示在LCD显示屏上。对直流信号电压值,测量误差小于%;对交流信号电压值,测量误差小于%。可通过键盘切换实现多级量程的直流电压测量,其范围是Mv、V、V。可通过键盘切换实现多级量程的交流电压测量,其范围是Mv、V、V。键盘模块如图所示所示。CBA选择的通道ININININININININ表通道选择表数字量输出及控制线条,ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行AD转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,。

5、实验,下面是三位同学各主要负责部分。付江杰:此次实验,我主要参与设计了LCD上电压值的刷新显示程序和键盘接口电路。当输入新的电压值时,在LCD上需要同步更新显示,通过三个函数来实现此功能。键盘接口电路主要是实现切换量程的功能,由CPU读取键盘值,然后调用刷新显示函数,切换到对应的量程,iltstrlen(str);i++){Write_LCD_Data(str[i]);delayus();}}键盘控制程序includeincludeincludequotkeyboardhquotcharkey_buf[]={x,x,x,x,xa,x};voiddelay(uinttime){uintj=;for(;timegt;time)for(j=;jlt;j++);}chargetkey(void){chark=,k=,i=;P=xc;delay();if(P!=xc){k=P;delay();if(P==k){P=x;delay();k=Pamk;for(i=;ilt;i++){if(key_buf[i]==k){returni;}}}}return;}附录三硬件实物图编写了实验报告。刘小宝:在此次实验中我设计了AD转换电路,编写部分程序,调试电路。AD转换是将连续变化的模拟量转化成数字量,我们用芯片ADC来实现转换功能。在开始的过程中,模拟电压输入,转换成数字电压,编写函数输入到P端口,从P口输出,编写了实验报告。廖为国:在这次实验中我参与了设计硬件电路以及部分软件的编程,设计了交流电压变为直流电压,交流电压不便于直接测量,通过整流桥进行整流变成直流,然后用电容进行滤波。焊接电路,一同调试电路。

6、和一个三态输出锁存器组成。多路开关可选通个模拟通道,允许路模拟量分时输入,共用AD转换器进行转换。三态输出锁器用于锁存AD转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。图ADC的内部结构()ADC引脚结构ADC各脚功能如下:DD:位数字量输出引脚。ININ:位模拟量输入引脚。VCC:+V工作电压。GND:地。REF(+):参考电压正端。REF():参考电压负端。START:AD转换启动信号输入端。ALE:地址锁存允许信号输入端。(以上两种信号用于启动AD转换)EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。OE:输出允许控制端,用以打开三态数据输出锁存器。CLK:时钟信号输入端(一般为KHz)。A、B、C:地址输入线。图ADC硬件以及引脚图ADC对输入模拟量要求:信号单极性,电压范围是-V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。地址输入和控制线:条ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B和C为地址输入线,用于选通IN-IN上的一路模拟量输入。通道选择表如下表D数据RW读写选择D数据E使能信号D数据D数据BLA背光源正极D数据BLK背光源负极表:引脚接口说明表第脚:VSS为地电源。第脚:VDD接V正电源。第脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个K的电。

基于51单片机的数字电压表c语言程序,基于单片机的数字电压表(全文完整版)...相关推荐

  1. 51单片机的电子钟c语言程序,基于51单片机的电子钟C语言程序

    基于单片机C语言的电子钟程序代码与仿真 基于51单片机的电子钟C语言程序: 程序代码 #include #include #define uchar unsigned char #define uin ...

  2. 单片机红外发射c语言程序,合泰单片机HT66F018红外发射C程序及电路图资料

    #include \ void CHUSHIHUA() { _wdtc = 0b10101000; //关闭看门狗 for(_tbhp=0;_tbhp<=1;_tbhp++) //清RAM BA ...

  3. 基于51单片机的数字电压表c语言程序,基于AT89C51单片机的直流数字电压表设计毕业论文+任务书+Proteus代码+电路图+源码...

    摘 要 数字电压表是一种结构简单.应用广泛的测量仪表,近年来越来越多地应用在电压测量场合,因此对其测量精度.可靠性和可维护性的要求也越来越高.数字电压表是也诸多数字化仪表的核心与基础,其数字化是将连续 ...

  4. 基于51单片机的数字电压表c语言程序,基于51单片机的数字电压表的设计..doc

    数字电压表的设计目录 TOC \o "1-3" \h \z \u HYPERLINK \l "_Toc282204562" 绪论1 HYPERLINK \l & ...

  5. c51单片机音乐门铃C语言程序,基于51单片机的无线音乐门铃设计

    include #define sound_amount 5 // 歌曲的数量 sbit pause=P2^5; // 播放 暂停 sbit speaker=P2^7; // 无源蜂鸣器 // uns ...

  6. 单片机消抖c语言程序,基于单片机定时器软件消抖C51程序研究

    向兵 杨述凯 摘 要:随着电子技术的发展,单片机的应用在教学及科技开发中越来越普遍,而针对单片机的开发环境而言,大多采用C51语法进行设计.按键的使用在大多数硬件设计里相当频繁,而按键的干扰处理可以使 ...

  7. 单片机发射红外c语言程序,STC单片机51简单的红外遥控发射程序C语言

    /*功能说明:红外发射,用于遥控复制或自制发射器*/ //这里采用1T周期的stc15w102单片机,烧录时晶振选33,要在精准选外部晶振的芯片 #include #include #include ...

  8. 单片机控制秒表C语言程序,89C51单片机秒表的设计(全文完整版)

    <89C51单片机秒表的设计.doc>由会员分享,可免费在线阅读全文,更多与<89C51单片机秒表的设计>相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜 ...

  9. 52单片机总线控制c语言程序,C52单片机的应用(连接、编程、测试) - 全文

    一.连接单片机板 MPU6050 电路图,参看:MPU6050开发 -- 初识 从电路图上看了引出四根线:电源.GND.SCL.SDA. 连接单片机板. 单片机部分电路图: 思考:SCL.SDA应该接 ...

最新文章

  1. 灰度直方图均衡化及其实现
  2. 相机设置感兴趣区域(自带API)
  3. 在网上常听到说CEO CTO CIO CGO COO CFO什么什么..现在了解了一下..呵呵
  4. java类中定义索引器,C#面向对象基础——字段、属性和索引器
  5. 笔记:后端 - Redis
  6. hiredis源码分析与简单封装
  7. 展厅智能中央控制服务器,可视化展馆智能中控-智能中央控制系统
  8. 极速PDF编辑器提示缺少字体如何解决
  9. 如何修复uefi引导?这种方法才是最有效的解决方法
  10. EPUBBuilder编辑器新版
  11. MapReduce之简单K-mer计数
  12. android 自定义locale,Android Locale填坑
  13. pr软件,设置软件的首选项,导入素材的快捷键,文件导入的几种方式
  14. centos 安装virt-mannager
  15. verilog从txt中读取_将Verilog中的二进制文件数据读入2D数组
  16. word文档在线编辑推荐超级文档
  17. 淘宝客佣金比例一般是多少?淘宝客的佣金一般设定在多少
  18. 动态高斯模糊 surfaceView View
  19. 浪潮存储:基于系统级可靠性设计,为数据存储保驾护航
  20. 一、Storm是什么?

热门文章

  1. 专访 | wuhan2020拾柴者王欣:开源的世界里没有老师
  2. python lambda 判断_Python lambda
  3. [版本发布]OpenNCC百度定制版VCAM发布
  4. html右侧有白边,html5有白边解决办法
  5. 新大陆云平台app制作(史上最简单)
  6. Spark 常用算子详解(转换算子、行动算子、控制算子)
  7. 山东哈斯精密机械有限公司
  8. 模型稳定度指标PSI
  9. 大学计算机基础课后题答案中国铁道出版社,大学计算机基础 铁道出版社 2015年第1版 第7章 习题答案...
  10. 如果存在表则删除表然后创建Mysql