c语言编程的电压表设计,数字电压表的单片机设计(C语言编程)详解.doc
目录
一 设计总体方案1
1.1 设计要求1
1.2 设计思路1
1.3 设计方案1
二 硬件电路元件分析与设计2
2.1 单片机系统2
2.1.1 AT89C51性能2
2.1.2 AT89C51各引脚功能2
2.2 A/D转换模块3
2.2.1 ADC0808主要特性3
2.2.2 ADC0808工作流程4
2.3 LED显示系统设计5
2.3.1 LED显示器的选择5
2.3.2 LED译码方式5
2.4 双D正沿触发器6
2.5 总体电路设计7
三 程序设计9
3.1 程序设计总方案9
3.2 系统子程序设计9
3.2.1 初始化程序9
3.2.2 A/D转换子程序9
3.2.3 显示子程序10
四 仿真调试12
4.1 软件调试12
4.2 显示结果及误差分析12
4.2.1 显示结果12
4.2.2 误差分析13
结束15
参考文献16
附录17
一 设计总体方案
1.1 设计要求
⑴以AT89C51单片机为核心器件,组成一个简单的直流数字电压表。
⑵能够测量0-5V之间的直流电压值。
⑶电压显示用4位一体的LED数码管显示,尽量使用较少的元器件。
1.2 设计思路
⑴根据设计要求,选择AT89C51单片机为核心控制器件。
⑵A/D转换采用ADC0808实现,与单片机接口为P0口和P3口的高四位引脚。
⑶电压显示采用4位一体的LED数码管。
⑷LED数码的段码输入,由并行端口P1产生:位码输入,用并行端口P2高四位产生。
1.3 设计方案
硬件电路设计由5个部分组成; A/D转换电路,AT89C51单片机系统,LED显示系统、时钟电路、测量电压输入电路。硬件电路设计框图如图1-1
图1-1 数字电压表系统硬件设计框图
二 硬件电路元件分析与设计
2.1 单片机系统
2.1.1 AT89C51性能
AT89C51功能性能:与MCS-51成品指令系统完全兼容;4KB可编程闪速存储器;全静态工作:0-24MHz;128*8B内部RAM;4个位可编程I/O口线;2个16位定时/计数器;5个中断源;2个串行通道;片内振荡器和掉电模式。
2.1.2 AT89C51各引脚功能
引脚配置如图2-1所示。
图2-1 AT89C51的引脚图
AT89C51芯片的各引脚功能为:
P0口:这组引脚共有8条,P0.0为最低位。这8个引脚有两种不同的功能,分别适用于不同的情况,第一种情况是89C51不带外存储器,P0口可以为通用I/O口使用,P0.0-P0.7用于传送CPU的输入/输出数据,这时输出数据可以得到锁存,不需要外接专用锁存器,输入数据可以得到缓冲,增加了数据输入的可靠性;第二种情况是89C51带片外存储器,P0.0-P0.7在CPU访问片外存储器时先传送片外存储器的低8位地址,然后传送CPU对片外存储器的读/写数据。P0口为开漏输出,在作为通用I/O使用时,需要在外部用电阻上拉。
P1口:这8个引脚和P0口的8个引脚类似,P1.7为最高位,P1.0为最低位,当P1口作为通用I/O口使用时,P1.0-P1.7的功能和P0口的第一功能相同,也用于传送用户的输入和输出数据。
P2口:这组引脚的第一功能与上述两组引脚的第一功能相同即它可以作为通用I/O口使用,它的第一功能和P0口引脚的第二功能相配合,用于输出片外存储器的高8位地址,共同选中片外存储器单元,但并不是像P0口那样传送存储器的读/写数据。
P3口:这组引脚的第一功能和其余三个端口的第一功能相同,第二功能为控制功能,每个引脚并不完全相同,如下表1所示:
表1 P3口各位的第二功能
P3口各位第二功能P3.0 RXT(串行口输入)P3.1 TXD(串行口输出)P3.2INT0(外部中断0输入)P3.3INT1(外部中断1输入)P3.4T0(定时器/计数器0的外部输入)P3.5T1(定时器/计数器1的外部输入)P3.6WR(片外数据存储器写允许) P3.7RD(片外数据存储器读允许)Vcc为+5V电源线,Vss接地。
ALE:地址锁存允许线,配合P0口的第二功能使用,在访问外部存储器时,89C51的CPU在P0.0-P0.7引脚线去传送随后而来的片外存储器读/写数据。在不访问片外存储器时,89C51自动在ALE线上输出频率为1/6振荡器频率的脉冲序列。该脉冲序列可以作为外部时钟源或定时脉冲使用。
EA:片外存储器访问选择线,可以控制89C51使用片内ROM或使用片外ROM,
若EA=0,则允许使用片内ROM, 若EA=1,则只使用片外ROM。
PSEN:片外ROM的选通线,在访问片外ROM
c语言编程的电压表设计,数字电压表的单片机设计(C语言编程)详解.doc相关推荐
- 汇川小型PLC梯形图编程系列教程(七):数值存储与二进制数据知识详解
原文链接:汇川小型PLC梯形图编程系列教程(七):数值存储与二进制数据知识详解 PLC数据存储原理简介 H123U小型PLC内部采用的是32位的处理器,PLC中的数据处理和电脑中的数据处理基本是一致的 ...
- R语言使用survminer包生存分析及可视化(ggsurvplot)实战详解:从数据集导入、生存对象生成、ggsurvplot可视化参数配置、设置、可视化对比
R语言使用survminer包生存分析及可视化(ggsurvplot)实战详解:从数据集导入.生存对象生成.ggsurvplot可视化参数配置.设置.可视化对比 目录 R语言使用survminer包生 ...
- PCB电路板制作课程(PCB板设计)与单片机设计 各种品牌的变频器、伺服驱动器、缝纫机电控箱等工控设备的维修。工业电路板维修培训(变频器、伺服驱动器、缝纫机电控、数控、机器人等..)
工业电路板维修精修班(机器人电路板.数控电路板) 学习内容:各种品牌的变频器.伺服驱动器.缝纫机电控箱等工控设备及工业机器人等等. PCB电路板制作课程(PCB板设计)与单片机设计 各种品牌的变频器. ...
- c语言图形时钟课程设计,图形模拟时钟C语言课程设计详解.doc
学号<>课程设计报告图形模拟时钟专业:计算机科学与技术班级:13计科2班姓名:指导教师:陈广宏成绩: 计算机学院 2015 年 4月 30 日 目 录 1 设计内容及要求1 1.1 设计内 ...
- c语言编程步骤Vision4,【2017年整理】keil_μVision4使用详解教程.pdf
[2017年整理]keil_μVision4使用详解教程 Keil μVision4 使用详解 zxmh6 前言 单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为 CPU 可以 ...
- 单片机c语言编程编码器数值,基于单片机的光电编码器测速报告详解.doc
课程设计报告 课程名称: 微机原理课程设计 题 目: 基于51单片机的光电编码器测速 摘要 光电编码器是高精度位置控制系统常用的一种位移检测传感器.在位置控制系统中,由于电机既可能正转,也可能反转,所 ...
- python面向对象编程的三大特性_Python面向对象总结及类与正则表达式详解
Python3 面向对象 -------------------------------------------------------------------------------- 一丶面向对象 ...
- cpld xilinx 定义全局时钟_FPGA/CPLD设计工具:Xilinx ISE 5.x使用详解
第1章 ISE系统简介 1.1 FPGA/CPLD简介 1.1.1 FPGA/CPLD的基本原理 1.1.2 FPGA/CPLD的特点 1.2 FPGA/CPLD的设计流程 1.3 ISE系列产品的新 ...
- 探索Redis设计与实现6:Redis内部数据结构详解——skiplist
Redis内部数据结构详解(6)--skiplist 2016-10-05 本文是<Redis内部数据结构详解>系列的第六篇.在本文中,我们围绕一个Redis的内部数据结构--skipl ...
最新文章
- 在CentOS 6.3 64bit上安装redis 3.0.3
- MVC、JSP实现mysql的增删改查功能的封装和简陋的界面交互
- [UVa-437] Color Length
- JustOJ1500: 蛇行矩阵
- C++调用C#编写的com组件方法
- 睿远基金副总经理傅鹏博:用实业思维做投资 在认知范围之内做选择
- JDBC连接池技术与Druid
- flink job 提交模式
- xp计算机用户名和密码忘记了怎么办,xp电脑开机密码忘记了怎么办,xp忘记开机密码的解决方法...
- 小学用计算机画画的课件,小学信息技术绘图课件
- JAVA面试题集(2) (转)
- 小米路由器SSH资料攻略
- 杭州拱墅区委副书记、区长冯晶一行莅临利尔达参观调研
- AM335x启动流程(BootRom- MLO-的Uboot)
- 房地产业务学习 04 -房企信息化 谁忽悠了谁
- 1994年图灵奖--爱德华·费根鲍姆和劳伊·雷迪简介
- 微信小程序授权登录,跳转页面后在跳回首页不用再次登录
- matlab经济建模之离散模型
- Windows平台轻量级图片浏览器ImageGlass 8.1.4.18
- RBAC权限管理的一点小改进