1、武汉理工大学单片机课程设计说明书1课程设计任务书学生姓名: 周鸣一 专业班级: 电信 1301 班 指导教师: 陈德军 工作单位: 武汉理工大学 题 目: 用串行 A/D 芯片采集波形 初始条件:(1)max2win、wave 等软件;(2)先修课程:数字电子技术、模拟电子技术、单片机、微机处理。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1)课程设计时间:第 17 周;(2)课程设计题目:用串行 A/D 芯片采集波形 ;(3)本课程设计统一技术要求:采用单片机 AT89C51 实现交流采样,即系统采集的是交流电压。该系统主要包括几大模块:数据采集模块,
2、 A/D 转换模块,控制模块,显示模块。在 LED 上显示采样的采样的瞬时值,有效值和峰值。 (4)课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,并标明参考文献(至少 5 篇) ;(5)写出本次课程设计的心得体会(至少 500 字) 。时间安排:第 17 周参考文献:1 李广弟等 单片机基础 北京航空航天出版社, 2001.72 楼然苗等 51 系列单片机设计实例 北京航空航天出版社, 2003.33 唐俊翟等 单片机原理与应用 冶金工业出版社, 2003.9指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日武汉理工大学单片机课程设计说明书2目录摘要 41 单
3、片机系统 61.1 标准功能 .61.2 主要特性 .62 ADC0809 芯片简介 72.1 主要特性 72.2 内部结构 72.3 工作过程 83 软件简介 93.1 WAVE600093.2 protues.94 硬件电路设计 .114.1 硬件电路流程图 .114.2 单片机最小系统设计 .114.3 ADC0809 芯片及其接线设计 .124.4 其他部分 .125 程序部分设计 .135.1 ADC0809 所需时钟信号产生 .135.1.1 程序流程图 .135.1.2 时钟产生程序 .135.2 A/D 转换程序设计 .145.2.1 程序流程图 .145.2.2 A/D 转换
4、程序 .14武汉理工大学单片机课程设计说明书35.3 数据处理转换程序 .155.3.1 数据处理原理 .155.3.2 数据处理程序 .155.4 数码管显示程序 .166 仿真结果分析 .177 心得体会 .19参考文献 .20附录 1 程序清单 21附录 2 实物照片 25武汉理工大学单片机课程设计说明书4摘要随着电子技术的发展,计算机在现代科学技术的发展中起着越来越重要的作用。多媒体技术。网络技术、智能信息处理技术、自试用控制技术、数据挖掘与处理技术都离不开计算机。本课程设计是基于微机原理与接口技术的简单应用。运用所学的微机原理和接口技术知识完成 ADC0809 的采样,即基于STC8
5、9C52RC 芯片将模拟电压同过 ADC0809 的采样完成模拟量转换成的数字量并显示出来。通过硬件与软件的结合,用我们刚刚学过的汇编语言编写程序模拟分析了 ADC0809 的芯片功能和硬件配置,结合硬件和软件阐述了该系统的工作原理,得出了一种简单实用的 ADC0809 的交流电压采样硬件与软件设计方案。该系统能测量 0-5V 的电压,并能将瞬时值、峰峰值、有效值结果显示与数码管上。关键字:STC89C52RC; ADC0809;AD 转换;数码管显示武汉理工大学单片机课程设计说明书5AbstractWith the development of electronic technology,
6、computer plays a more and more important role in the development of modern science and technology. Multimedia technology. Network technology, intelligent information processing technology, since the trial control technology, data mining and processing technology cannot do without computer. This curr
7、iculum design is a simple application based on Microcomputer Principle and interface technology. The use of the microcomputer principle and interface technology knowledge to complete the sampling of ADC0809, which is based on STC89C52RC chip analog digital voltage sampling with ADC0809 complete anal
8、og converted and displayed. Through a combination of hardware and software of chip function and hardware configuration of the ADC0809 we just learned in the assembly language the simulation program, a combination of hardware and software and expounds the working principle of the system, the AC volta
9、ge is a simple and practical sampling of ADC0809 hardware and software design. Case. The system can measure the voltage of 0-5V, the results show that with the digital tube.Key words:STC89C52RC;ADC0809;A/D Transformation; Digital tube display武汉理工大学单片机课程设计说明书61 单片机系统51 单片机是对所有兼容 Intel 8031 指令系统的单片机的统
10、称。该系列单片机的始祖是 Intel 的 8004 单片机,后来随着 Flash rom 技术的发展,8004 单片机取得了长足的进展,成为应用最广泛的 8 位单片机之一,其代表型号是ATMEL 公司 的 AT89 系列,它广泛应用于工业测控系统之中。很多公司都有51 系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51 单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是 51 系列的单片机一般不具备自编程能力。本课程设计采用的是 STC89C52RC 单片机系统。STC89C52 是 STC 公 司生产的一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编
11、程 Flash 存储器。STC89C52 使用经典的 MCS-51 内核,但做了很多的改进使得芯片具有传统 51 单片机不具备的功能。在单芯片上,拥 有灵巧的 8 位 CPU 和在系统可编程 Flash,使得 STC89C52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。1.1 标准功能具有以下标准功能: 8k 字节 Flash,512 字节 RAM, 32 位 I/O 口线,看门狗定时器,内置 4KB EEPROM,MAX810 复位电路,3 个 16 位定时器/ 计数器,4 个外部中断,一个 7 向量 4 级中断结构(兼容传统 51 的 5 向量 2 级中断结构) ,全双工串行口
12、。 另外 STC89C52 可降至 0Hz 静态逻辑操作,支持 2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许 RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬 件复位为止。最高运作频率35MHz,6T/12T 可选。1.2 主要特性8K 字节程序存储空间;512 字节数据存储空间;内带 4K 字节 EEPROM 存储空间;可直接使用串口下载;武汉理工大学单片机课程设计说明书72 ADC0809 芯片简介ADC0809 是美国国家半导体公司生产的 CMOS 工艺 8 通道,8 位逐次逼近式 A/D
13、模数转换器。其内部有一个 8 通道多路开关,它可以根据 地址码锁存译码后的信号,只选通 8 路模拟输入信号中的一个进行 A/D 转换。目前仅在单片机初学应用设计中较为常见。2.1 主要特性1)8 路输入通道,8 位 A/D 转换器,即分辨率为 8 位。2)具有转换起停控制端。3)转换时间为 100s(时钟为 640KHz 时),130s(时钟为 500KHz 时) 。4)单个+5V 电源供电。5)模拟输入电压范围 0+5V,不需零点和满刻度校准。6)工作温度范围为-40+85 摄氏度。7)低功耗,约 15mW。2.2 内部结构ADC0809 是 CMOS 单片型逐次逼近式 A/D 转换器,内部
14、结构如图所示,它由 8 路模拟开关、地址锁存与译码器、比较器、8 位开关树型 A/D 转换器、逐次逼近寄存器、逻辑控制和定时电路组成。外部特性(引脚功能)ADC0809 芯片有 28 条引脚,采用双列直插式封装,下面说明各引脚功能:IN0IN7:8 路模拟量输入端。2-12-8:8 位数字量输出端。ADDA、ADDB、ADDC:3 位地址输入线,用于选通 8 路模拟输入中的一路。ALE:地址锁存允许信号,输入端,产生一个正脉冲以锁存地址。START: A/D 转换启动脉冲输入端,输入一个正脉冲(至少 100ns 宽)使其启动(脉冲上升沿使 0809 复位,下降沿启动 A/D 转换) 。武汉理工
15、大学单片机课程设计说明书8EOC: A/D 转换结束信号,输出端,当 A/D 转换结束时,此端输出一个高电平(转换期间一直为低电平) 。OE:数据输出允许信号,输入端,高电平有效。当 A/D 转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。CLK:时钟脉冲输入端。要求时钟频率不高于 640KHz。REF(+) 、REF(-):基准电压。Vcc:电源,单一+5V。GND:地。2.3 工作过程首先输入 3 位地址,并使 ALE=1,将地址存入地址锁存器中。此地址经译码选通 8 路模拟输入之一到比较器。START 上升沿将逐次逼近寄存器复位。下降沿启动 A/D 转换,之后 EOC 输
16、出信号变低,指示转换正在进行。直到 A/D转换完成,EOC 变为高电平,指示 A/D 转换结束,结果数据已存入 锁存器,这个信号可用作中断申请。当 OE 输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。转换数据的传送 A/D 转换后得到的数据应及时传送给 单片机进行处理。数据传送的关键问题是如何确认 A/D 转换的完成,因为只有确认完成后,才能进行传送。为此可采用下述三种方式。(1)定时传送方式对于一种 A/D 转换器来说,转换时间作为一项技术指标是已知的和固定的。例如 ADC0809 转换时间为 128s,相当于 6MHz 的 MCS-51 单片机共 64 个机器周期。可据
17、此设计一个延时子程序,A/D 转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。(2)查询方式A/D 转换芯片有表明转换完成的状态信号,例如 ADC0809 的 EOC 端。因此可以用查询方式,测试 EOC 的状态,即可确认转换是否完成,并接着进行数据传送。武汉理工大学单片机课程设计说明书9(3)中断方式把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。首先送出口地址并以信号有效时,OE 信号即有效,把转换数据送上数据总线,供单片机接受。3 软件简介3.1 WAVE6
18、000WAVE6000 编译软件,采用中文界面。用户源程序大小不受限制,有丰富的窗口显示方式,能够多方位、动态地展示程序的执行过程。其项目管理功能强大,可使单片机程序化大为小,化繁为简,便于管理。另外,其书签、断点管理功能以及外设管理功能等为 51 单片机的仿真带来极大的便利。3.2 protuesProteus 软件是英国 Lab Center Electronics 公司出版的 EDA 工具软件(该 软件中国总代理为广州风标电子技术有限公司) 。它不仅具有其它 EDA 工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器 件的工具。虽然目前国内推广刚起步,但已受
19、到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus 是世界上著名的 EDA 工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到 PCB 设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软 件、PCB 设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持 8051、HC11、PIC10/12/16/18/24/30 /DsPIC33、AVR、ARM 、 8086 和 MSP430 等,2010 年又增加了 Cortex 和 DSP武汉理工大学单片机课程设计说明书10系列处理器,并持续增加其他系列处理器
20、模型。在编 译方面,它也支持IAR、Keil 和 MPLAB 等多种编译器。武汉理工大学单片机课程设计说明书114 硬件电路设计4.1 硬件电路流程图图 4.1 系统硬件电路4.2 单片机最小系统设计单片机最小系统以 STC89C52RC 为核心,并设计晶振为 12MHZ,由于protues 仿真没有 STC 系列芯片,所以仿真采用 AT89C52 代替,仿真电路图如图 5.1 所示。发出指令A/D 转换单片机 LED 显示交流信号武汉理工大学单片机课程设计说明书12图 4.1 单片机最小系统仿真电路图4.3 ADC0809 芯片及其接线设计因设计要求为测出交流电压的瞬时值,有效值,峰值,所以
21、我设计为从 IN0输入采样,将 ADD A、ADD B、ADD C 三个引脚接地,时钟接在单片机 P3.7 口,定时器输出为 1KHZ,EOC 输出后接一个反相器,方便单片机外部中断进行对中断信号的判断,因为 protues 没有 ADC0809 的仿真模型,所以采用 ADC0808 作仿真,两款芯片功能引脚相似,只是 ADC0809 精度更高所连电路图如图 5.2 所示。图 4.2 ADC0809 相关连线4.4 其他部分数码管采用共阴数码管,为了连接方便和电路图更简单,所以设计单片机引脚直连数码管引脚,并设计三个按键开关,使其能选择是测量瞬时值、有效值还是峰峰值。武汉理工大学单片机课程设计
22、说明书135 程序部分设计5.1 ADC0809 所需时钟信号产生由于单片机定时器越快越不稳定,也越来越多干扰主程序运行,所以设计时钟为 1KHZ,这样既能保证 AD 采样速度较快,也能减少进入中断次数。本部分采用定时器 0,16 位方式。5.1.1 程序流程图图 5.1 时钟产生程序流程图5.1.2 时钟产生程序采样中断方式,定时器 T0 置于方式 1(16 位)为计数方式,时钟信号频率f=2KHz,t=1/f=500us,fosc=12MHz,MC=12/fosc=1us,计数初值为 216-初始化 T0置入定时计数初值等待中断信号中断开启计入中断程序重新置入初值P3.7 取反重新置入定时
23、器初值武汉理工大学单片机课程设计说明书14t/MC=FE0BH。WAVE 程序截图如图 5.2 所示。图 5.2 中断服务程序截图5.2 A/D 转换程序设计由于硬件将 ADD A、ADD B、ADD C 选择端置低,并将 ALE 于 START 相连。5.2.1 程序流程图图 5.3 A/D 转换模块程序流程图中断子程序OE 置 1,允许输出中断返回Y采样信号输入时钟信号输入ADDA,ADDB,ADDC 接低电平START 输入正脉冲A/D 开始转换EOC 变 1进入中断子程序N标志 A 赋 1武汉理工大学单片机课程设计说明书155.2.2 A/D 转换程序给 A/D 芯片 START 脉冲
24、转换信号,并用标志 A 判断等待期转换结束,在收到转换结束信号后,单片机进入外部中断 1,并发出允许输出信号,改变标志A。程序截图如 5.4 和 5.5 所示。图 5.4 A/D 转换主程序图 5.5 AD 芯片转换结束中断服务程序5.3 数据处理转换程序因为单片机 P0 口从 AD 芯片得到的转换数字量为 8 位二进制代码,所以通过处理才能得到人善于分辨的数字。5.3.1 数据处理原理因为 ADC0809 最大测量电压为 5V,利用=5255其中 X 为,得到的转换后的 8 位二进制数字。峰值为测量得到的最大值减去最小值,而有效值为峰峰值的 0.7。5.3.2 数据处理程序相关程序如图 5.
25、6 所示。武汉理工大学单片机课程设计说明书16图 5.6 数据处理转化程序截图5.4 数码管显示程序数码管显示采用查表的方式,将数字显示在数码管上。程序代码如图 5.7所示。图 5.7 数码管显示程序武汉理工大学单片机课程设计说明书176 仿真结果分析将 WAVE 生成的 HEX16 进制代码导入 protues 中 89C52 芯片中,添加输入源并点击开始仿真。仿真结果如图 6.1、图 6.2、图 6.3 所示。图 6.1 瞬时值测量仿真结果武汉理工大学单片机课程设计说明书18图 6.2 峰峰值测量仿真结果图 6.3 有效值测量仿真结果由仿真结果显示本设计电路以及程序满足了设计要求,能将瞬时
26、值,峰峰值,有效值按按键顺序显示出来。最后我将其电路焊接在一起,制作出了实物,实物图见附录。武汉理工大学单片机课程设计说明书197 心得体会在本次课程设计中,我们的题目是 A/D 芯片对交流电压的瞬时值有效值峰峰值进行检测并显示,刚开始进行得很顺利,在 protues 中将电路画上后,单片机也能正常使用,但是我返现 protues 中可供模拟的 AD 芯片很少,所以我选择了一款 ADC0808 进行仿真,这样可以结合书本内容进行设计。刚开始设计时,我发现怎么也不能让 ADC0808 仿真正常工作,我使用了示波器进行仿真一步一步看波形,最终发现了要使 ADC0808 进行转换,要用START 引
27、脚给一个脉冲,而不是上升沿,这是我在进行书本学习中也没有仔细注意的地方,虽然很小的问题,却造成了芯片怎么都不正常工作。最后仿真出来后进行实物测试时,我发现怎么都不能正常显示,在经过示波器一步一步看返回信号发现 ADC0809 已经正常工作了,再仔细分析发现是数码管的问题,最后才想起来,当时仿真的时候就注意到了数码管的仿真引脚并是不是按引脚顺序来的,最后重新连线解决了问题,虽然最后数码管没有接三极管放大直接用引脚驱动看起来有点暗,但是能正常显示还是让我很高兴的。通过这次课设让我懂得了有时候问题就出现在很小的地方,但是可以让你整个系统都不能正常工作,所以我们在设计和分析时尽量避免这些错,不然到时候
28、找错的时候非常麻烦,一个小问题会浪费我们很多的时间和精力。最后的成功也让我很有成就感,毕竟看见系统从元器件到实物一步一步得到是很高兴武汉理工大学单片机课程设计说明书20地一件事。参考文献1元增民. AT89S51 单片机与 ADC0809 模数转换器的三种典型连接J. 长沙大学学报,2005,05:75-78.2夏莉英,陈雁. 基于 ADC0809 的模拟电压采样测量方法J. 福建电脑,2008,04:166-167+154.3申小海,李俊莉. 基于 ADC0809 的模数转换应用举隅J. 河南师范大学学报(自然科学版),2008,04:166-167.4刘焕平,韩树新. ADC0809 与
29、AT89C51 的一种接口方法J. 石家庄师范专科学校学报,2002,02:52-53+77.5黄学祥,王嘉文. 模/数转换芯片 ADC0809(0808)的用法J. 无锡轻工业学院学报,1989,02:59-66.武汉理工大学单片机课程设计说明书21附录 1 程序清单START EQU P3.0OE EQU P3.1ORG 0000HAJMP MAINORG 000BHAJMP IV0ORG 0013HAJMP INT1ORG 0030MAIN: MOV TMOD,#01HMOV TH0,#0FEHMOV TL0,#0BHCLR OECLR START武汉理工大学单片机课程设计说明书22SE
30、TB TR0SETB IT1SETB EASETB ET0SETB EX1MOV R2,#0FHMOV DPTR,#TABTEST: SETB STARTMOV R6,#0FFHDJNZ R6,$CLR STARTCJNE A,#01H,$MOV A,P0JB P3.5,XXMOV 20H,#00HMOV 30H,#00HXX: JNB P3.4,VPPJNB P3.6,VPPINST: MOV B,#33HDIV ABMOV R0,AMOV A,BMOV B,#05HDIV ABMOV R1,AAJMP DISP武汉理工大学单片机课程设计说明书23VPP: CJNE A,20H,CMPAJM
31、P CMP1CMP: JB CY,CMP1MOV 20H,ACMP1: CJNE A,21H,CMP2AJMP CMP3CMP2: JNB CY,CMP3MOV 21H,ACMP3: MOV A,20HCLR CYSUBB A,21HJNB P3.6,EFFEAJMP INSTEFFE: MOV B,#0AHDIV ABMOV R2,BMOV B,#07HMUL ABPUSH AMOV A,R2MOV B,#07HMUL ABMOV B,#0AHDIV ABMOV R2,APOP AADD A,R2武汉理工大学单片机课程设计说明书24AJMP INSTDISP: MOV A,R0MOVC A,A+DPTRMOV P1,AMOV A,R1MOVC A,A+DPTRMOV P2,AAJMP TESTIV0: MOV TH0,#0FEHMOV TL0,#0BHCPL P3.7RETIINT1: SETB OEMOV A,#01HRETITAB:DB 7FH,60H,0B7H,0F3H,0E9H,0DBH,0DFH,71H,0FFH,0FBH武汉理工大学单片机课程设计说明书25附录 2 实物照片武汉理工大学单片机课程设计说明书26武汉理工大学单片机课程设计说明书27武汉理工大学单片机课程设计说明书28