基于ATS51的简易数字电压表的设计
摘要:
本课题是利用单片机设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码管显示,使用的元器件数目较少。外界电压模拟量输入到A/D转换部分的输入端,通过ADC0809转换变为数字信号,输送给单片机。然后由单片机给数码管数字信号,控制其发光,从而显示数字。此外,本文还讨论了设计过程中的所用的软件硬件环境,调试所出现的问题等。 关键词:单片机; ATS51;数字电压表; ADC0809,四位数码管
任务书
1.设计题目
基于ATS51的简易数字电压表的设计。 2.设计内容与要求
用ATS51单片机和ADC0809组成一个数字电压表,要求能够测量0~5V的直流电压值,并用四位数码管显示,并要求所用元器件最少。
3,。设计目的意义
(1).通过亲身的设计应用电路,将所用的理论知识应用到实践中,增强实践动手能力,进而促进理论知识的强化。
(2).通过数字电压表的设计系统掌握51单片机的应用。掌握A/D转换的原理及软件编程及硬件设计的方法,掌握根据课题的要求,提出选择设计方案,查找所需元器,设计并搭建硬件电路,编程写入EPROM并进行调试等。
目录
一、系统原理框图 二、ATS51的结构 三、器件的比较与选择 四、系统硬件及仿真图
- 1 -
桂林电子科技大学微机综合设计报告
五、相关软件简介
六、程序流程图与源程序 七、数字电压表发展及未来
八、设计体会 九、参考文献
基于ATS51的简易数字电压表的设计
- 2 -
桂林电子科技大学微机综合设计报告
第一章 系统原理框图
选择ATS51作为单片机芯片,选用四位8段共阴极LED数码管实现电压显示,利用ADC0809作为数模转换芯片。将数据采集接口电路输入电压传入ADC0809数模转换元件,经转换后通过D0至D7与单片机P0口连接,把转换完的模拟信号以数字信号的信号的形式传给单片机,信号经过单片机处理从LED数码显示管显示。P2口接数码管位选,P1接数码管,实现数据的动态显示,如图4.1所示。
AD0809 待测电压 D0~D7 IN0~IN7 VREF+ VREF- CLK OE ST、ALE 数据 ATS51 P1 P0 段选 四位数码管 控制线 P3 P2 位选 图4.1 系统原理框图
第二章: ATS51的结构
在本次课题设计中我们选择了ATS51芯片。ATS51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51
- 3 -
桂林电子科技大学微机综合设计报告
指令系统及80C51引脚结构,芯片内集成了通用8位处理器和ISP Flash存储单元,功能强大的微型计算机的ATS51可为许多嵌入式控制应用系统提供高性价比的解决方案。
2.1 ATS51内部结构概述
• 三级程序存储器保密锁定 • 128*8位内部RAM • 32条可编程I/O线 • 两个16位定时器/计数器 • 6个中断源 • 可编程串行通道
• 低功耗的闲置和掉电模式
• 片内振荡器和时钟电路
2.1 单片机(ATS51)引脚及外观 图
2.2 CPU结构
CPU 是单片机的核心部件。它由运算器和控制器等部件组成。 1. 运算器
运算器以完成二进制的算术/逻辑运算部件ALU为核心。它可以对半字节(4)、单字节等数据进行操作。例如,能完成加、减、乘、除、加1、减1、BCD码十进制调整、比较等算术运算,完成与、或、异或、求反、循环等逻操作,操作结果的状态信息送至状态寄存器。
运算器还包含有一个布尔处理器,用以处理位操作。它以进位标志位C为累加器,可执行置位、复位、取反、位判断转移,可在进位标志位与其他可位寻址的位之间进行位数据传诵等操作,还可以完成进位标志位与其他可位寻址的位之间进行逻辑与、或操作。
- 4 -
桂林电子科技大学微机综合设计报告
2.程序计数器PC
PC是一个16位的计数器,用于存放一条要执行的指令地址,寻址范围为kB,PC有自动加1功能,即完成了一条指令的执行后,其内容自动加1。
3.指令寄存器
指令寄存器用于存放指令代码。CPU执行指令时,由程序存储器中读取的指令代码送如指令寄存器,经指令译码器译码后由定时有控制电路发出相应的控制信号,完成指令功能。
2.3 存储器和特殊功能寄存器
1. 存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据。计算机中的全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控制器指定的位置存入和取出信息。
2.特殊功能寄存器
特殊功能寄存器(SFR)的地址范围为80H~FFH。在MCS-51中,除程序计数器PC和四个工作寄存器区外,其余21个特殊功能寄存器都在这SFR块中。其中5个是双字节寄存器,它们共占用了26个字节。各特殊功能寄存器的符号和地址见附表2。其中带*号的可位寻址。特殊功能寄存器反映了8051的状态,实际上是8051的状态字及控制字寄存器。用于CPU PSW便是典型一例。这些特殊功能寄存器大体上分为两类,一类与芯片的引脚有关,另一类作片内功能的控制用。与芯片引脚有关的特殊功能寄存器是P0~P3,它们实际上是4个八位锁存器(每个I/O口一个),每个锁存器附加有相应的输出驱动器和输入缓冲器就构成了一个并行口。MCS-51共有P0~P3四个这样的并行口,可提供32根I/O线,每根线都是双向的,并且大都有第二功能。其余用于芯片控制的寄存器中,累加器A、标志寄存器PSW、数据指针DPTR等的功能前已提及。
2.4 P0-P3口结构
P0口功能 :P0口具有两种功能:第一,P0口可以作为通用I/O接口使用,P0.7—P0.0用于传送CPU的输入/输出数据。输出数据时可以得到锁存,不需外接专用锁存器,输入数据可以得到缓冲。第二,P0.7—P0.0在CPU访问片外存储器时用于传送片外存储器de低8位地址,然后传送CPU对片外存储器的读写
P1口 功能 :P1口的功能和P0口de第一功能相同,仅用于传递I/O输入/输出数据。 P2口的功能 :P2口的第一功能和上述两组引脚的第一功能相同,即它可以作为通用I/O使用。它的第二功能和P0口引脚的第二功能相配合,作为地址总线用于输出片外存储器的高8位地址。
P3口功能 :P3口有两个功能:第一功能与其余三个端口的第一功能相同;第二功能作控制用,每个引脚都不同。
表2.1 P3口第二功能
引脚 P3.0 名称 RXD 功能 串行数据接收口 - 5 -
桂林电子科技大学微机综合设计报告
P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 TXD INT0 INT1 T0 T1 WR RD 串行数据发送口 外中断0输入 外中断1输入 计数器0计数输入 计数器1计数输入 外部RAM写选通信号 外部RAM读选通信号 2.5 时钟电路和复位电路
1.时钟电路
单片机的时钟一般需要多相时钟,所以时钟电路由振荡器和分频器组成。
MCS-51内部有一个用于构成振荡器的可控高增益反向放大器。两个引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。在片外跨接一晶振和两个匹配电容C1、C2如图2.5所示。就构成一个自激振荡器。振荡频率根据实际要求的工作速度,从几百千赫至24MHz可适当选取某一频率。匹配电容C1、C2要根据石英晶体振荡器的要求选取。
当晶振频率为12MHz时,C1C2一般选30pF左右。图2.5中PD是电源控制寄存器PCON.1的掉电方式位,正常工作方式PD=0。当PD=1时单片机进入掉电工作方式,是一种节能工作方式。上述电路是靠MCS-51单片机内部电路产生振荡的。也可以由外部振荡器或时钟直接驱动MCS-51。
图4.3 复位电路的内部及外部方式
- 6 -
桂林电子科技大学微机综合设计报告
2.复位电路
复位是单片机的初始化操作。其功能主要是将程序计数器(PC)初始化为0000H,使单片机从0000H单元开始执行程序,并将特殊功能寄存器赋一些特定值。复位是使单片机退出低功耗工作方式而进入正常状态一种操作。复位是上电的第一个操作,然后程序从0000H开始执行。在运行中,外界干扰等因素可能会使单片机的程序陷入死循环状态或“跑飞”。要使其进入正常状态,唯一办法是将单片机复位,以重新启动。
复位后,程序计数器(PC)及各特殊功能寄存器(SFR)的值如表4.2所示。
表4.2 程序计数器及各特殊功能寄存器的复位值 寄存器 PC ACC PSW SP DPTR TCON TL0 TH0 TL1
RST引脚是复位端,高电平有效。在该引脚输入至少连续两个机器周期以上的高电平,单片机复位。RST引脚内部有一个斯密特ST触发器(图2.10)以对输入信号整形,保证内部复位电路的可靠,所以外部输入信号不一定要求是数字波形。使用时,一般在此引脚与VSS引脚之间接一个8.2kΩ的下拉电阻,与VCC引脚之间接一个约10μF的电解电容,即可保证上电自动复位。
复位状态 0000H 00H 00H 07H 0000H 00H 00H 00H 00H 寄存器 TH1 P0~P3 IP IE TMOD SCON SBUF PCON 复位状态 00H FFH xx000000B 0xx00000B 00H 00H 不定 0xxx0000B - 7 -
桂林电子科技大学微机综合设计报告
图4.4自动和手动复位电路图
上电或手动复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或手动复位的操作。
第三章 器件的比较与选择
3.1显示器
本次设计中有显示模块,而常用的显示器件比较多,有数码管,LED点阵,1602液晶,128液晶等。
1. 数码管是最常用的一种显示器件,它是由几个发光二极管组成的8字段显示器件,其特点是价格非常的便宜,使用也非常的方便,显示效果非常的清楚。小电流下可以驱动每光,发光响应时间极短,体积小,重量轻,抗冲击性能好,寿命长。但数码管只能是显示0——9的数据。不能够显示字符。这也是数码管的不足之处。
2. LED点阵显示器件是由好多个发光二极管组成的。具有高亮度,功耗低,视角大,寿命长,耐湿,冷,热等特点,LED点阵显示器件可以显示数字,英文字符,中文字符等。
3. 1602液晶是工业字符型液晶,能够同时显示16*2即32个字符。1602液晶模块内部的字符发生存储器已经存储了160个不同的点阵字符图形,这些字这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码。使用时直接编写软件程序按一定的时序驱动即可。它的特点是显示字迹清楚,价格相对便宜。
4. 128液晶也是一种工业字符型液晶,它不仅能够显示1602液晶所可以显示的字符,数字等信息,而且还可以显示8*4个中文汉字和一些简单的图片,显示信息也非常的清楚。使用时也直接编写软件程序按一定的时序驱动即可。不过它的价格比1602液晶贵了很多。
综合上述,根据本设计的要求和价格的考虑,选择数码管显示器。
- 8 -
桂林电子科技大学微机综合设计报告
单位数码管如图4.4所示,四位共阴极数码管如图4.5所示。
gfGNDabaafedgbcdp +5Vabcdeabcdefgfgdpabcd 共阳极efgdp+5V bcdgefGNDabfgadpfbgedcdp·edGNDcdp(a)共阴极 (b) ·edGNDcdpdp(a)共阴极 (b)共阳极
图4.4 单位数码管
- 9 -
桂林电子科技大学微机综合设计报告
图4.5 四位共阴极数码管
3.2模数(A/D)芯片
A/D转换器是模拟量输入通道中的一个环节,单片机通过A/D转换器把输入模拟量变成数字量再处理。A/D转换的常用方法有:①计数式A/D转换,②逐次逼近型A/D转换,③双积分式A/D转换,④ V/F变换型A/D转换。在这些转换方式中,记数式A/D转换线路比较简单,但转换速度较慢,所以现在很少应用。双积分式A/D转换精度高,多用于数据采集及精度要求比较高的场合,如5G14433(31/2位),AD7555(41/2位或51/2位)等,但速度更慢。随着大规模集成电路的发展,目前不同厂家已经生产出了多种型号的A/D转换器,以满足不同应用场合的需要。如果按照转换原理划分,主要有3种类型,即双积分式A/D转换器、逐次逼近式A/D转换器和并行式A/D转换器。目前最常用的是双积分和逐次逼近式。
(1)A/D芯片的比较
双积分式A/D转换器具有抗干扰能力强、转换精度高、价格便宜等优点。
1. AD0809是8位逐次逼近型A/D转换器,它是由一个8路的模拟开关、一个地址锁存译码器、一个A/D 转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8 路模拟量分时输入,共用A/D 转换器进行转换。些A/D转换器是的特点是8位精度,属于并行口,如果输入的模拟量变化大快,必须在输入之前增加采样电路。
2. AD0832也是8位逐次逼近型A/D转换器,可支持致命伤个单端输入通道和一个差分输入通道。它易于和微处理器接口或使用;可满量程工作;可用地址逻辑多路器选通各输入通道。
3. TLC2543C是12位开关电容逐次逼近A/D转换,每个器件有三个控制输入端,片选,输入/输出时钟以及地址输入端。它可以从主机高速传输转换数据。它有高速的转换,通用的控制能力,具有简化比率转换,刻度以及模拟电路与逻辑电路和电源噪声隔离,耐高温等特点。
综合上述,逐次逼近型A/D转换既照顾了转换速度,有具有一定的精度,这里选用的是逐次逼近型的A/D转换芯片ADC0809。
- 10 -
桂林电子科技大学微机综合设计报告
图4.6 ADC0809内部结构
(2)ADC0809 的工作原理
图4.6 ADC0809引脚图
1.IN0-IN7:8 条模拟量输入通道
- 11 -
桂林电子科技大学微机综合设计报告
ADC0809 对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
2.数字量输出及控制线:11 条
ST 为转换启动信号。当ST 上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D 转换;在转换期间,ST 应保持低电平。EOC 为转换结束信号。当EOC 为高电平时,表明转换结束;否则,表明正在进行A/D 转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。D7-D0 为数字量输出线。
CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,
VREF(+),VREF(-)为参考电压输入。
3. ADC0809 应用说明
①ADC0809 内部带有输出锁存器,可以与ATS51 单片机直接相连。 ②初始化时,使ST 和OE信号全为低电平。 ③送要转换的哪一通道的地址到A,B,C 端口上。 ④在ST 端给出一个至少有100ns 宽的正脉冲信号。 ⑤是否转换完毕,我们根据EOC 信号来判断。
⑥当EOC变为高电平时,这时给OE 为高电平,转换的数据就输出给单片机了。
第四章 系统硬件及仿真图
4.1 系统仿真图
- 12 -
桂林电子科技大学微机综合设计报告
4.2 系统原理图
- 13 -
桂林电子科技大学微机综合设计报告
4.3 系统PCB图
- 14 -
桂林电子科技大学微机综合设计报告
- 15 -
桂林电子科技大学微机综合设计报告
第五章 相关软件简介
5.1 Protel99 与Keil
Protel99SE是应用于Windows9X/2000/NT操作系统下的EDA设计软件,采用设计库管理模式,可以进行联网设计,具有很强的数据交换能力和开放性及3D模拟功能,是一个32位的设计软件,可以完成电路原理图设计,印制电路板设计和可编程逻辑器件设计等工作,可以设计32个信号层,16个电源--地层和16个机加工层。 (1)Protel 99 SE的系统组成
按照系统功能来划分,Protel99se主要包含以下俩大部分和6个功能模块。 1.电路工程设计部分
①电路原理设计部分(Advanced Schematic 99) ②印刷电路板设计系统(Advanced PCB 99) ③自动布线系统(Advanced Route 99) (2)电路仿真与PLD部分
①电路模拟仿真系统(Advanced SIM 99) ②可编程逻辑设计系统(Advanced PLD 99)
③高级信号完整性分析系统(Advanced Integrity 99) (3)Protel 99 SE的功能特性 ①开放式集成化的设计管理体系 ②超强功能的、修改与编辑功能 ③强大的设计自动化功能
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。
单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。
Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。
5.2 Protues
Protues软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。
(1)功能特点
Protues软件具有其它EDA工具软件(例:multisim)的功能。 (2)性的特点
- 16 -
桂林电子科技大学微机综合设计报告
1.互动的电路仿真
用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。
2.仿真处理器及其外围电路
可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Protues建立了完备的电子设计开发环境。
(3)四大功能模块
1.智能原理图设计(ISIS)
2.完善的电路仿真功能(Prospice)
3.独特的单片机协同仿真功能(VSM) 4.实用的PCB设计平台
(4)软件仿真
支持当前的主流单片机,如51系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列、68000系列等。 1.提供软件调试功能
2.提供丰富的外围接口器件及其仿真 3.提供丰富的虚拟仪器 4.具有强大的原理图绘制功能 (5)电路功能仿真
在PROTUES绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTUES的原理图中看到模拟的实物运行状态和过程。
PROTUES 是单片机课堂教学的先进助手。PROTUES不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。
- 17 -
桂林电子科技大学微机综合设计报告
第六章 程序流程图与源程序
6.1 程序流程图
- 18 -
桂林电子科技大学微机综合设计报告
初始化开始 ST、OE端口拉低 ST上升沿清除AD缓存器 ST下降沿,AD开始转换 CLK提供AD工作的时钟信号 转换结束? P1口读取数据,存储在地址70H 数据除以51,商为电压整数 部分,储存在地址71H 余数>25? 电压小数相应位加5调整 余数乘以10后,再除以51, 为电压小数相应位部分,分别储存在地址72H~74H N 四位处理完? Y ①
- 19 -
桂林电子科技大学微机综合设计报告
① 查询数码管显示表 P0分别赋地址71H~74H里的值,P0口为段选 P2口为位选 延时1.5ms 四位显示完? Y 返回程序开始 N 图 6.1 程序流程图
6
开始 AD采集函数 数据处理函数 显示函数 图6.2主函数流程图
- 20 -
桂林电子科技大学微机综合设计报告
6.2 汇编语言程序清单
QIAN EQU 71H BAI EQU 72H SHI EQU 73H GEWEI EQU 74H
;71H-74H存放显示数据,依次为个位、十位、百位、千位
SHUJU EQU 70H ;地址70H存放采集数据 ST BIT P3.0 ;START和ALE共用一个端口 OE BIT P3.6 EOC BIT P3.7 CLK BIT P3.3 ORG 0000H LJMP START ORG 0030H
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH START:
MAIN: LCALL TEST ;数据采集函数
LCALL TURNDATA ;数据处理函数
LCALL DISPLAY ;显示函数 LJMP MAIN
/***************延时函数****************/ DELAY: MOV R7,#06H LOOP1: LOOP2:
/***************ADC0809采集函数*************/ TEST: CLR ST
- 21 -
;约延时1.5ms
MOV R6,#0FFH DJNZ R6,LOOP2
DJNZ R7,LOOP1
RET
桂林电子科技大学微机综合设计报告
CLR OE
SETB ST
CLR ST ;ST端口下降沿,开始转换
SETB CLK ;由软件来提供ADC0809工作的时钟频率 CLR CLK
JNB EOC,LOOPCLK ;EOC=1时,退出循环 SETB OE
;转换后数据的传送
MOV P1,#0FFH ;P1端口读数据,需先给高电平 MOV A,P1 CLR OE
MOV SHUJU,A ;存储数据到地址70H
LOOPCLK:
RET
/**************数据处理函数***********/ TURNDATA:
MOV A,SHUJU MOV B,#51
DIV AB ;余数在B,相除以后C=0 MOV QIAN,A
;储存千位
CLR F0
MOV A,B
SUBB A,#1AH ;A减去26,测试上面AB相除时,余数与26相比较 MOV F0,C ;余数<26,则C=1,不用加5调整 MOV A,#10 MUL AB MOV B,#51 DIV AB JB F0,LP1
ADD A,#5 ;若AB相除后B>=26,百位加五 MOV BAI,A ;储存百位 CLR F0
MOV A,B
LP1:
SUBB A,#1AH MOV F0,C MOV A,#10 MUL AB MOV B,#51 DIV AB
JB F0,LP2 ;F0=1时,转移
- 22 -
桂林电子科技大学微机综合设计报告
ADD A,#5 ;若AB相除后B>=26,十位加五 MOV SHI,A ;储存十位 CLR F0 MOV A,B SUBB A,#1AH MOV F0,C MOV A,#10 MUL AB MOV B,#51 DIV AB
JB F0,LP3 ;F0=1时,转移 ADD A,#5 ;若AB相除后B>=26,个位加五 MOV GEWEI,A ;储存个位
LP2:
LP3:
RET
/***************显示函数*******************/ DISPLAY:
MOV R1,#4 ;循环四次
MOV R2,#0FEH
MOV R0,#71H ;存放显示初始地址 MOV DPTR,#TAB
MOV A,@R0 MOVC A,@A+DPTR
CJNE R2,#0FEH,NOT_ONE ;不是左边第一个数码管,则转移 ORL A,#80H ;左边第一个数码管显示小数点 MOV P0,A ;数码管段选 LCALL DELAY ;延时 MOV A,R2
RL A ;循环左移 MOV R2,A
INC R0 ;选取下一个地址 DJNZ R1,XIANSHI
XIANSHI:
NOT_ONE:
MOV P2,R2 ;数码管位选
RET END
- 23 -
桂林电子科技大学微机综合设计报告
6.3 C语言程序清单
#include /***************延时函数****************/ void delay(unsigned int z) { } /***************ADC0809采集函数*************/ void ADC_0809() { unsigned char temp=2; ST=0; OE=0; ST=0; while(z--); ST=1; CLK=1; CLK=0; CLK=1; - 24 - 桂林电子科技大学微机综合设计报告 CLK=0; } /***************数据转换和显示函数*******************/ void Vpp_Show() { unsigned char qian,bai,shi,ge; qian=dianya/1000; bai=dianya%1000/100; shi=dianya%100/10; ge=dianya%10; P0=table[qian]|0x80; //显示小数点 delay(50); P0=table[bai]; while(!EOC) { CLK=1; } OE=1; P1=0xff; //读取P1端口数据 temp=P1; OE=0; CLK=0; dianya=(unsigned int)temp*19.53; P2=0xfe; P2=0xfd; delay(50); P2=0xfb; P0=table[shi]; delay(50); P2=0xf7; } void main() { P0=table[ge]; while(1) { Vpp_Show(); - 25 - ADC_0809(); 桂林电子科技大学微机综合设计报告 } } 第七章 系统功能分析与说明 数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。本章重点介绍单片A/D 转换器以及由它们构成的基于单片机的数字电压表的工作原理。 数字电压表的系统工作原理:首先,被测电压信号进入A/D转换器,单片机中控制信号线发出控制信号,启动A/D转换器进行转换,其采样得到的数字信号数据在相应的码制转换模块中转换为显示代码。最后发出显示控制与驱动信号,驱动外部的数码管显示相应的数据。图2.1所示为DVM的基本组成框图,需指出的是,图中将DVM分成模拟和数字两大部分,从框图上看,A/D转换器包含在模拟部分,这样划分并不严格,因为A/D转换器本身具有数字电路的性质,特别是大规模集成化A/D转换器是模拟与数字两系统相互结合的,就连逻辑控制也集成在其中。 输入电路 A/D转换单片机 显示器 逻辑控制器 时钟脉冲 图7.1 数字电压表基本组成框图 本课题是利用单片机设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示,使用的元器件数目较少。外界电压模拟量输入到A/D转换部分的输入端,通过A/D - 26 - 桂林电子科技大学微机综合设计报告 转换变为数字信号,输送给单片机。然后由单片机给数码管数字信号,控制其发光,从而显示数字。 第八章 设计体会 经过近二周的单片机课程设计,终于完成了我的数字电压表的设计,基本达到设计要求。 对于此次课程设计,有许多的感触与体会,遇到的难题多,学习到的知识也就更多。 第一,硬件电路遇到了ADC0809无内部时钟,需外接外部时钟,如何解决这个问题,我们小组进行了多次讨论,最终确定了在程序中提供时钟信号,大大降低了硬件电路的复杂度。 第二,则是解决程序设计的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面的。其中,我遇到了很多的问题,虽然以前还做过这样的设计,但是以前的都是用C语言进行编程。而此次运用汇编语言编程,着实让我当头一棒,因为除了微机原理实验进行过相关编程,汇编语言的编程能力还停留在理论阶段。在此次编程中,首先,我是先用C语言编程,进行调试后,成功的达到了课程设计的要求。其次,查找汇编语言的相关资料,经过不懈的努力与调试,终于将汇编语言版的成功编程出来。 第三,在一个课题中,要设计一个成功的电路,必须要有耐心,要有坚持的毅力。在整个电路的设计过程中,重要的是各个单元电路的连接及电路的细节设计上,如在多种方案的选择中,我们仔细比较分析其原理以及可行的原因。这就要求我们对硬件系统中各组件部分有充分透彻的理解和研究,并能对之灵活应用。完成这次设计后,我在书本理论知识的基础上又有了更深层次的理解。 第四,在本次设计的过程中,我还学会了高效率的查阅资料、运用工具书、利用网络查找资料。我发现,在我们所使用的书籍上有一些知识在实际应用中其实并不是十分理想,各种参数都需要自己去调整,这就要求我们应更加注重实践环节。 最后,还要在此感谢课程设计的指导老师们和我的组员们,他们在整个过程中都给予了我充分的帮助与支持。 - 27 - 桂林电子科技大学微机综合设计报告 第九章 参考文献 [1] 李华.MCS-51系列单片机实用接口技术[M].19. [2] 周立功.单片机实验与实践.北京:北京航空航天大学出版社. [3] 吴国经.单片机应用技术.北京:中国电力出版社,2003. [4] 徐惠民 安德宁 丁玉珍.单片微型计算机原理、接口及应用.北京:北京邮电大学出版 社,2007年. [5] 徐爱钧.《智能化测量控制仪表原理与设计》(第二版)[M].北京:北京航空航天大学出 版社,2004. - 28 -
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- axer.cn 版权所有 湘ICP备2023022495号-12
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务