1、 摘 要 本课程设计主要介绍了由AT89S52单片机和TLC549A/D转换器和四位一体的数码管(共阳极)构成的简单的数字电压表电路,本电路是一个能够测量直流电压的数字电压表,测量电压范围05V,测量精度小数点后两位。该电压表的测量电路主要由三个模块组成:A/D转换模块、数据处理模块及显示控制模块。A/D转换器用于模拟电压信号转换为单片机用于识别的数字信号。AT89S52主要用于信号的控制和处理显示。TLC549是8位串行输入的芯片,其存在片内系统时钟,通过CLK、CS、DATAOUT三条口线与单片机连接进行串行操作。本课程设计的硬件电路包括AT89S52单片机、 TLC549A/D转换器、
2、复位电路、 电源模块、 振荡电路 、下载电路、 数码显示器及按键等几个模块。而其中的复位电路、 电源模块、 振荡电路 、下载电路都包含在单片机的最小系统中。软件电路为汇编语言编程,其包括键盘扫描子程序 、键处理程序、 数码显示程序等多个程序,利用Keil和Proteus软件对程序调试和仿真,并在Altium Designer软件上进行电路图和PCB图的绘制。将调试好的程序导入实物进行操作,进行检验后可知,设计达到了要求的效果,并且该设计所需元件少,成本低,且精确度和可靠性较高,有较强的实用性。关键字:数字电压表; AT89S52; TLC549ABSTRACTThis course mainl
3、y introduces the design of AT89S52 single chip microcomputer and TLC549A/D converter and the four digital tube (anode) consisting of simple digital voltmeter circuit, this circuit is a digital voltage meter to measure dc voltage, measure the voltage range of 0 5 v, measuring accuracy of two decimal
4、places.The voltmeter measurement circuit is mainly composed of three modules: A/D conversion module, data processing module and display control module. A/D converter is used for simulating the voltage signal is converted into A single chip microcomputer is used to identify the digital signal. AT89S5
5、2 devices are mainly used for the control and signal processing display. Eight bits, eight serial input chip, its existence within the system clock, through the CLK, CS, DATAOUT three mouth lines connected to the single chip microcomputer serial operation. The course design of hardware circuit inclu
6、ding AT89S52 single chip microcomputer, eight bits a/D converter and reset circuit, power supply module, oscillating circuit, download circuit, digital display and buttons, etc. Several modules. And the reset circuit, power supply module, oscillating circuit, download circuit are included in the sin
7、gle chip microcomputer minimum system. Software circuit for assembly language programming, including keyboard scanning subroutine, key processing program, digital display multiple applications, such as using Keil and Proteus software to program debugging and simulation, and in Altium Designer softwa
8、re on the circuit diagram and PCB diagram. Program debugging good import material, after the test, the design has reached the requirements of the effect, and the design of the needed less component, lower cost, and high precision and reliability of strong practicality.Key words digital voltmeter;at8
9、9s52;tlc549 -目 录1 设计课题任务 、功能要求说明及方案介绍11.1 设计课题任务11.2 功能要求说明11.3 设计总体方案介绍及原理说明12 设计课题硬件系统的设计 3 2.1 设计课题硬件系统各模块功能简要介绍3 2.2 设计课题电路原理图、PCB图、元器件布局图4 2.3 设计课题元器件清单4 3 设计课题软件系统的设计 6 3.1 设计课题使用单片机的资源情况6 3.2 设计课题软件系统各模块功能简要介绍6 3.3 设计课题软件系统程序流程框图6 3.4 设计课题软件系统程序清单94 设计结论、仿真结果、误差分析、教学建议 10 4.1 设计课题的设计结论及使用说明10
10、 4.2 设计课题的仿真结果10 4.3 设计课题的误差分析12 4.4 设计体会12 4.5 教学建议12结 束 语 13致 谢 14参考文献 15附 录 16附 录 一 电路原理图 16附 录 二 电路的PCB图 17附 录 三 元器件布局图 18附 录 四 程序清单 191 设计课题任务、功能要求说明及方案介绍1.1 设计课题任务设计一个能够测量直流电压的数字电压表。测量电压范围05V,测量精度小数点后两位。该电压表上电或按键复位后能自动显示系统提示符“P.”, 进入测量准备状态,按测量开始键则开始测量,并将测量值显示在显示器上,按测量结束键则自动返回“P.”状态。1.2 功能要求说明设
11、计一个能够测量直流电压的数字电压表。该电压表上电或按键复位后能自动显示系统提示符“P.”,按测量键开始测量,并将测量值显示在数码显示器上,按测量结束键,数码显示又回到测量前的“P.”,测量的直流电压值在05V,并可精确到小数后两位,输入的电压值与数码管上的显示一致。 1.3 设计课题总体方案介绍及工作原理说明本电压表的所有的软件、参数均存放在AT89S52的Flash ROM和内部RAM中,减少了芯片的使用数量简化了整体电路也降低了整机的工作电流。本设计采用AT89S52单片机控制,A/D转换采用TLC549,对模拟信号进行采样,利用A/D转换使其变为数字信号显示在数码管上,实现简易的数字电压
12、表的功能。主要通过软件系统对A/D转换进行数模转换,再由单片机对数字量进行运算,转换为电压的大小,最后再由数码显示器显示出来。其重点与难点在有A/D的转换和如何确认转换完成,只有在数据转换完成后,才可进行读取。 本数字电压表主要由单片机、A/D转换器、显示接口电路 、振荡电路、 时钟电路、按键电路和复位电路构成,设计课题的总体方案如图1所示: 图1 数字电压表结构框图2 设计课题硬件系统的设计2.1 设计课题硬件系统各模块功能简要介绍2.1.1 单片机最小系统模块本设计采用AT89S52单片机,此单片机为40引脚双列直插式封装的芯片,有 4个8位的并行双向I/O口,这4个口除可按字节寻址外,还
13、可按位寻址。(1)复位电路 AT89S52有复位信号引脚RST,用于从外界引入复位信号。其有两种复位方式,完成复位操作共需24个状态周期,复位信号为高电平有效,复位电路用于产生复位信号,通过RST引脚送入单片机,进行复位操作。复位电路直接影响单片机系统的可靠性,要特别重视复位电路的设计,本设计采用按键电平复位。(2)时钟电路 单片机的时钟电路由振荡电路和分频电路组成,其中振荡电路由反相器以及并联外接的石英晶体和电容构成,而分频电路则用于把振荡脉冲分频,得到所需的时钟信号。(3)振荡电路 AT89S52芯片中的高增益反相器,其输入端为引脚XTAL1,输出端为XTAL2。通过这两个引脚在芯片外接石
14、英晶体振荡器和两只电容(一般取30pF)。在本设计中电容为33pF,晶振为12MHZ,其振荡脉冲频率为12MHZ,一个机器周期为1us.(4)下载电路 AT89S52中的下载电路主要用于将程序导入实物中,也可当做电源使用。(5)电源模块 现在市面上销售的编程器有很多都是由PC机的USB口直接供电为了降低本设计的成本及节省设计时间,没有另外设计编程器,而直接购买了市场上的供电及下载器。2.1.2 监控模块 本设计中的监控程序主要是对键盘的选择和键程序的监控。2.1.3 A/D转换模块本设计采用TLC549A/D转换器,此转换器为8位串行的芯片,该芯片有片内系统时钟,该时钟与I/OCLOCK是独立
15、工作的。CLOCK为时钟信号的引脚,CS是片选的信号引脚,当CS为高电平时,数据输出DATAOUT处于高阻状态,此时I/O CLOCK不起作用,当CS为低电平时,内部在测得CS下降沿后,再等待两个内部时钟上升沿和一个下降沿后,然后确认变化,最后自动的将前一次转换的结果的最高位(D7)输出到DATAOUT端上。前四个I/O CLOCK周期下降沿依次移出第2、3、4和第5位(D6、D5、D4、D3),片上的采样保持电路在第四个I/O CLOCK下降沿开始采样模拟输出,接下来3个I/O CLOCK周期的下降沿移出第6、7、8(D2 、D1 、D0)个转换位。最后,片上采样保持电路在第8个I/O CL
16、OCK周期的下降沿将移出第6、 7、 8 (D2、 D1、 D0)个转换位。保持功能将持续4个内部时钟周期,然后开始进行A/D转换。若要在特定的时刻采样模拟信号,应使第8个I/O CLOCK时钟的下降沿与该时刻保持一致,因为该芯片虽在第4个I/O CLOCK时钟下降沿开始采样,却在第8个I/O CLOCK时钟下降沿开始保存。2.1.4 显示按键模块本次设计显示为3位,采用一个四位一体数码管(共阳极)作为显示窗口,既可以节约成本又能简化电路。其位控口接在单片机的P2口上,段控接在P0口, 显示时通过位控信号采用扫描的方法逐位地循环点亮各位数码管。LED动态显示时任一时刻只有一位数码管被点亮,由于
17、视觉残留效应,就如全部数码管持续点亮的效果。其按键接在P1口,分别为测量开始键,结束键。2.2 设计课题电路原理图、PCB图、元器件布局图2.2.1 电路原理图见附录一2.2.2 电路的PCB图见附录二2.2.3 电路的元器件布局图见附录三2.3 设计课题元器件清单元器件清单如表1所示。表1 设计所用元器件清单 元器件名称参数数量AT89S52双列直插式1共阳数码管4位一体1晶振12MHZ1TLC549加底座双列直插式1电阻4708电阻2001电阻1K2插针40脚174HC573锁存器加底座双列直插式1下载供电接口及供电线-1电容33pF2极性电容22F2电位器10K1排阻4704发光二极管-
18、1开关六脚1短路帽-1按键-33 设计课题软件系统的设计3.1 设计课题使用单片机资源的情况本设计使用单片机资源的情况如下: P2.0-P2.1接锁存器74HC573,P0.0P0.7口为数码管的段控口,P1.6P1.7口接按键,位控口接在74HC573锁存器的端口。P1.0口接时钟信号,P1.1口接数据输出口,P1.2口接片选信号。3.2 设计课题软件系统个模块功能简要介绍本设计的软件系统主要采用以下基本模块来实现,主程序、A/D转换程序、键扫子程序、 数码管显示程序。主程序:主要是用于对输入信号的处理、输出信号的控制和对各个功能程序模块的运用及其控制。A/D转换程序:主要是用于实现模拟量向
19、数字量的转换。键扫子程序:主要是用于判断键是否按下。数码管显示程序:主要用于显示结果3.3 设计课题软件系统程序流程框图系统软件采用汇编语言按模块化方式进行设计,然后通过Keil软件开发台将程序转变成十六进制程序语言,接着使用Proteous 进行仿真,读出显示数据。主程序流程框图如2所示; A/D转换程序程序如3所示;键盘扫描子程序框图如4所示;数码显示程序框图如5所示; 图2 主程序流程框图 图3 A/D转换流程图 图4 键扫子程序流程框图 图5 数码显示流程框图3.4 设计课题软件系统程序清单本设计软件系统程序清单详见附录四 4 设计结论、仿真结果、误差分析、教学建议4.1 设计课题的设
20、计结论及使用说明本设计用1个四位一体的共阳数码管做为显示器,显示电压值。该数字电压表可测量直流电压,测量电压范围05V,测量精度小数点后两位。该电压表上电后能自动显示系统提示符“P.”,按下S2按键后,数码管显示电压值,按下S3按键后,数码管显示回到系统提示符“P.”,调节滑动变阻器,可改变电压值的大小。4.2 设计课题的仿真结果上电后显示如图6所示:图6 上电后显示图按下按键一后如图7所示: 图7 按下按键一后显示图改变滑动变阻器值后如图8,9所示: 图8 显示图像 图9 显示图像按下按键二后如图10所示: 图10 按下键二后显示图 4.3 设计课题的误差分析本设计的数字电压表进行仿真后,由
21、结果可知有误差产生,误差产生的原因为小数点后第一位进行换算时本该与5.1相除,但因汇编语言中没有浮点的表示方法,所以在单片机进行运算时其小数点后第一位进行换算时是与5相除,从而产生了误差。4.4 设计体会本次课程设计,让我受益匪浅,认识到了自己的许多缺点和不足,使我深深的感受到了理论联系实际的必要性及其重要性。通过本次课程设计让我对单片机这门课有了更深的认识,同时也提高了我的动手能力和思考能力,可以更加熟练地应用Keil软件对程序进行调试和Proteus对电路进行仿真,学会了PCB制板,由于程序的编写都是用汇编语言,因此对于汇编语言的应用也比以前更加熟练。 4.5 教学建议经过一个学期王韧老师
22、教导的的单片机学习,我掌握了很多单片机学习的宝贵经验,在开始编程之前,想好编程的思路,编程能力才会提高,编程的过程才会顺畅,程序的质量才会提高。经过一学期单片机的学习和实验,我有觉得老师在实验时,对于给学生提的问题可以给适当的提示,而且要鼓励学生积极的提出自己的问题。 结 束 语在本次课程设计的完成过程中,不仅检验了我所学的知识,也交给我如何用自己所学的知识去解决问题,课程设计是对我们所学专业知识的综合应用实训。在这次的设计中我做了数字电压表,所以对TLC549转换器有了更深的认识,对于汇编语言的应用也比以前熟练,在做电路板时也体会到了老师所讲的一个一个模块的进行焊接的好处,通过各个方面的调试
23、,所做的电压表也实现了该有的功能,但存在一定误差。通过这次的课程设计也让我懂得细节决定成败,在做课程设计时一定要细心。致 谢 在自己的努力下,终于完成了本次课程设计。首先感谢王韧老师,在这一学期的学习中,王老师给我传授了很多的知识,王老师授课内容条理清晰,经常运用各种实例,给人印象深刻。经常会用一些亲身实践的经验为例,让同学们在基于事实的基础上更好的理解相关理论,充分做到了理论与实际的结合,在做实验时,会让学生用不同的方法进行编程,并对不同程序的优缺点进行比较,在课堂上,会专门的对课程设计进行讲解,因此,在做课程设计时,相对的有了参考,做起来也更容易一些,所以,非常感谢王老师这一学期的授课。参
24、考文献1 李广弟,朱月秀,冷祖祁.单片机基础M (第三版),北京:北京航空航天大学出版社,2007.6Li Guangdi ,Zhu Yuexiu, LengZuQi. Single chip microcomputer based (third edition) M, Beijing: Beijing university of aeronautics and astronautics press, 2007.6 2 刘文秀.单片机应用系统仿真的研究J.现代电子技术.2005, 第286 期Liu WenXiu .Microcontroller Application System Simu
25、lation J. Modern electronic technology.2005,No.2863 张洪润.兰清华,单片机应用技术教程M,北京:清华大学出版社,1997.11Zhang Hongrun ,Lan Qinghua, MCU application technology tutorial M, Beijing: Tsinghua University Press, 1997.11.4 李朝青.单片机原理及接口技术M.北京:北京航空航天大学出版社,1998.Li Chaoqing. Single chip microcomputer principle and interface
26、 technology M. Beijing: Beijing university of aeronautics and astronautics press, 1998. 附 录附录一 电路原理图附录二 电路的PCB图附录三 电路的元器件布局图 附录四 程序清单;*:;项目名称:数字电压表的设计;设计者:;设计日期:2014年06月05日;功能要求:设计一个能够测量直流电压的数字电压表。该电压表上电或按键复位后能自动显示系统提示符“P.”,按测量键开始测量,并将测量值显示在数码显示器上,按测量结束键,数码显示又回到测量前的“P.”,测量的直流电压值在05V,并可精确到小数后两位,输入的电压
27、值与数码管上的显示一致。 ;*; ;堆栈栈底60H;*;LED数码管显示器设定;P0.0-P0.7段控线,接LED的显示段a,b,c,d,e,f,g,dp;P2.0-P2.1位控线,从左至右(LED2,LED1,LED0);显示缓冲区设定从左至右依次为41H,42H,43H ;*;独立式键盘设定;2个按键S2至S3分别依次接在P1.6至P1.7口线;*;键功能程序;KEYA (S2键键功能程序);KEYB (S3键键功能程序);*;常数表格;TAB (共阳数码管字型代码表);*; ;子程序;KEY(键扫描子程序);KEYCHULI(P1口数据处理子程序);DIR(数码管显示子程序);DELAY
28、20 (延时子程序;DELAY4MS(延时子程序);ZH (A/D转换子程序);*;系统起始程序区 ORG 0000H LJMP MAIN;*;系统监控程序区 ORG 0100HMAIN: MOV SP, #60H MOV R7, #00H MOV A, #0CH MOV P2, #01H MOV P0, A LCALL KEY JB 20H.6, KEYA JB 20H.7, KEYB LJMP MAIN;*;键功能程序区;S2键功能程序KEYA: LCALL ZH MOV A, 40H MOV B, #51 ;5/255=1/51 DIV AB MOV 41H, A MOV A, B MO
29、V B, #5 DIV AB MOV 42H, A MOV 43H, B LCALL DIR LCALL KEY JNB 20H.7, KEYA RET;S3键功能程序KEYB: LJMP MAIN;*;显示字符段选码表(共阳极代码)TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H DB 90H, 88H,83H,0C6H,0A1H,86H,8EH ;*;子程序区;键盘扫描子程序KEYKEY: LCALL KEYCHULI JZ EXIT LCALL DELAY5MS LCALL KEYCHULI JZ EXIT MOV B, 20HKEYSF:
30、 LCALL KEYCHULI JZ KEY1 LCALL DELAY5MS LJMP KEYSFKEY1: MOV 20H, BEXIT: RET;P1口数据处理子程序KEYCHULI:KEYCHULI:PUSH PSW CLR RS1 SETB RS0 MOV P1, #0FFH MOV A, P1 CPL A ANL A, #0F0H MOV 20H, A CLR RS1 CLR RS0 POP PSW RET; 数码管显示子程序DIR: MOV R0, #41H MOV R1, #3;循环3次 MOV R2, #01HLOOP: MOV DPTR, #TABLE MOV A, R0 M
31、OVC A, A+DPTR CJNE R2, #01H, LOOP1 ANL A, #7FHLOOP1: MOV P2, R2 MOV P0, A LCALL DELAY5MS MOV A, R2 RL A MOV R2, A INC R0 DJNZ R1, LOOP MOV P2, #00H CLR A MOV B, #00H RET;延时子程序DELAY20DELAY20: MOV R6, #01H; 延时20us等待AD转换DLY0: MOV R5, #07H DJNZ R5, $ DJNZ R6, DLY0 RET;延时子程序DELAY4MSDELAY5MS: MOV R6, #13H
32、DL1: MOV R5, #82H DJNZ R5, $ DJNZ R6, DL0 RET;A/D转换子程序ZH: SETB P1.1 NOP ACALL TLC549 ;调子程序TLC549读取上次ADC值,启动本次AD转换 LCALL DELAY20 ; 延时20us等待AD转换TLC549: CLR P1.0 CLR P1.2 ;选中TLC549 MOV R6, #8 NOPTLCAD: MOV C, P1.1 ;读转换结果的1位放入C SETB P1.0 ;产生1个时钟脉冲 RLC A ;将所读位移入A的最低位 NOP CLR P1.0 ;使CLK=0,为读出下一位数据作准备 DJNZ R6, TLCAD SETB P1.2 ;禁能TLC549,再次启动AD转换 MOV 40H, A RET END .忽略此处.
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922