交流电压采样单片机课程设计

课程设计任务书

学生姓名:周鸣一专业班级:电信1301班 指导教师:陈德军工作单位:武汉理工大学

题目: 用串行A/D芯片采集波形

初始条件:

(1)max2win、wave等软件;

(2)先修课程:数字电子技术、模拟电子技术、单片机、微机处理。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

(1)课程设计时间:第17周;

(2)课程设计题目:用串行A/D芯片采集波形;

(3)本课程设计统一技术要求:采用单片机AT89C51实现交流采样,即系统采集的是交流电压。该系统主要包括几大模块:数据采集模块,A/D转换模块,控制模块,显示模块。在LED上显示采样的采样的瞬时值,有效值和峰值。

(4)课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,并标明参考文献(至少5篇);

(5)写出本次课程设计的心得体会(至少500字)。

时间安排:第17周

参考文献:

[1] 李广弟等单片机基础北京航空航天出版社, 2001.7

[2] 楼然苗等 51 系列单片机设计实例北京航空航天出版社, 2003.3

[3] 唐俊翟等单片机原理与应用冶金工业出版社, 2003.9

指导教师签名:年月日

系主任(或责任教师)签名:年月日

目录

摘要................................................................ 4

1 单片机系统........................................................ 6

1.1 标准功能..................................................... 6

1.2 主要特性..................................................... 6

2 ADC0809芯片简介 .................................................. 7

2.1 主要特性 ...................................................... 7

2.2 内部结构 ...................................................... 7

2.3 工作过程 ...................................................... 8

3 软件简介.......................................................... 9

3.1 WAVE6000 ...................................................... 9

3.2 protues ....................................................... 9

4 硬件电路设计..................................................... 10

4.1硬件电路流程图 ............................................... 11

4.2 单片机最小系统设计 ........................................... 11

4.3 ADC0809芯片及其接线设计 ..................................... 12

4.4 其他部分 ..................................................... 12

5 程序部分设计..................................................... 13

5.1 ADC0809所需时钟信号产生 ..................................... 13

5.1.1 程序流程图 ............................................... 13

5.1.2 时钟产生程序 ............................................. 13

5.2 A/D转换程序设计 ............................................. 14

5.2.1 程序流程图 ............................................... 14

5.2.2 A/D转换程序 ............................................. 14

5.3 数据处理转换程序 ............................................. 15

5.3.1 数据处理原理 ............................................. 15

5.3.2 数据处理程序 ............................................. 15

5.4 数码管显示程序 ............................................... 16

6 仿真结果分析..................................................... 17

7 心得体会......................................................... 19

参考文献........................................................... 20

附录1 程序清单 .................................................... 21

附录2 实物照片 .................................................... 25

摘要

随着电子技术的发展,计算机在现代科学技术的发展中起着越来越重要的作用。多媒体技术。网络技术、智能信息处理技术、自试用控制技术、数据挖掘与处理技术都离不开计算机。本课程设计是基于微机原理与接口技术的简单应用。运用所学的微机原理和接口技术知识完成ADC0809的采样,即基于

STC89C52RC芯片将模拟电压同过ADC0809的采样完成模拟量转换成的数字量并显示出来。通过硬件与软件的结合,用我们刚刚学过的汇编语言编写程序模拟分析了ADC0809的芯片功能和硬件配置,结合硬件和软件阐述了该系统的工作原理,得出了一种简单实用的ADC0809的交流电压采样硬件与软件设计方案。该系统能测量0-5V的电压,并能将瞬时值、峰峰值、有效值结果显示与数码管上。

关键字:STC89C52RC;ADC0809;AD转换;数码管显示

Abstract

With the development of electronic technology, 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 curriculum 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 analog 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 voltage 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/DTransformation;Digital tube display

1 单片机系统

51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是51系列的单片机一般不具备自编程能力。本课程设计采用的是STC89C52RC单片机系统。

STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程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级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。

1.2 主要特性

8K字节程序存储空间;

512字节数据存储空间;

内带4K字节EEPROM存储空间;

可直接使用串口下载;

2 ADC0809芯片简介

ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。目前仅在单片机初学应用设计中较为常见。

2.1 主要特性

1)8路输入通道,8位A/D转换器,即分辨率为8位。

2)具有转换起停控制端。

3)转换时间为100μs(时钟为640KHz时),130μs(时钟为500KHz时)。

4)单个+5V电源供电。

5)模拟输入电压范围0~+5V,不需零点和满刻度校准。

6)工作温度范围为-40~+85摄氏度。

7)低功耗,约15mW。

2.2 内部结构

ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。

外部特性(引脚功能)

ADC0809芯片有28条引脚,采用双列直插式封装,下面说明各引脚功能: IN0~IN7:8路模拟量输入端。

2-1~2-8:8位数字量输出端。

ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。 ALE:地址锁存允许信号,输入端,产生一个正脉冲以锁存地址。

START: A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。

EOC: A/D转换结束信号,输出端,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。

OE:数据输出允许信号,输入端,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。

CLK:时钟脉冲输入端。要求时钟频率不高于640KHz。

REF(+)、REF(-):基准电压。

Vcc:电源,单一+5V。

GND:地。

2.3 工作过程

首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。

转换数据的传送 A/D转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。为此可采用下述三种方式。

(1)定时传送方式

对于一种A/D转换器来说,转换时间作为一项技术指标是已知的和固定的。例如ADC0809转换时间为128μs,相当于6MHz的MCS-51单片机共64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。

(2)查询方式

A/D转换芯片有表明转换完成的状态信号,例如ADC0809的EOC端。因此可以用查询方式,测试EOC的状态,即可确认转换是否完成,并接着进行数据传送。

(3)中断方式

把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。

不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受。

3 软件简介

3.1 WAVE6000

WAVE6000编译软件,采用中文界面。用户源程序大小不受限制,有丰富的窗口显示方式,能够多方位、动态地展示程序的执行过程。其项目管理功能强大,可使单片机程序化大为小,化繁为简,便于管理。另外,其书签、断点管理功能以及外设管理功能等为51单片机的仿真带来极大的便利。

3.2 protues

Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。

Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30 /DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP

系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。

4硬件电路设计

4.1硬件电路流程图

图4.1 系统硬件电路

4.2单片机最小系统设计

图4.1 单片机最小系统仿真电路图

单片机最小系统以STC89C52RC为核心,并设计晶振为12MHZ,由于protues仿真没有STC系列芯片,所以仿真采用AT89C52代替,仿真电路图如图5.1所示。

4.3ADC0809芯片及其接线设计

因设计要求为测出交流电压的瞬时值,有效值,峰值,所以我设计为从IN0输入采样,将ADD A、ADD B、ADD C三个引脚接地,时钟接在单片机P3.7口,定时器输出为1KHZ,EOC输出后接一个反相器,方便单片机外部中断进行对中断信号的判断,因为protues没有ADC0809的仿真模型,所以采用ADC0808作仿真,两款芯片功能引脚相似,只是ADC0809精度更高所连电路图如图5.2所示。

图4.2 ADC0809相关连线

4.4 其他部分

数码管采用共阴数码管,为了连接方便和电路图更简单,所以设计单片机引脚直连数码管引脚,并设计三个按键开关,使其能选择是测量瞬时值、有效值还是峰峰值。

5 程序部分设计

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,

2^16-t/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转换模块程序流程图

5.2.2 A/D转换程序

给A/D芯片START脉冲转换信号,并用标志A判断等待期转换结束,在收到转换结束信号后,单片机进入外部中断1,并发出允许输出信号,改变标志A。程序截图如5.4和5.5所示。

图5.4 A/D转换主程序

图5.5 AD芯片转换结束中断服务程序

5.3 数据处理转换程序

因为单片机P0口从AD芯片得到的转换数字量为8位二进制代码,所以通过处理才能得到人善于分辨的数字。

5.3.1 数据处理原理

因为ADC0809最大测量电压为5V,利用

Y=5×X 255

其中X为,得到的转换后的8位二进制数字。

峰值为测量得到的最大值减去最小值,而有效值为峰峰值的0.7。

5.3.2数据处理程序

相关程序如图5.6所示。

图5.6 数据处理转化程序截图

5.4 数码管显示程序

数码管显示采用查表的方式,将数字显示在数码管上。程序代码如图5.7所示。

图5.7 数码管显示程序

6 仿真结果分析

将WAVE生成的HEX16进制代码导入protues中89C52芯片中,添加输入源并点击开始仿真。仿真结果如图6.1、图6.2、图6.3所示。

图6.1 瞬时值测量仿真结果

图6.2 峰峰值测量仿真结果

图6.3 有效值测量仿真结果

由仿真结果显示本设计电路以及程序满足了设计要求,能将瞬时值,峰峰值,有效值按按键顺序显示出来。最后我将其电路焊接在一起,制作出了实物,实物图见附录。

7 心得体会

在本次课程设计中,我们的题目是A/D芯片对交流电压的瞬时值有效值峰峰值进行检测并显示,刚开始进行得很顺利,在protues中将电路画上后,单片机也能正常使用,但是我返现protues中可供模拟的AD芯片很少,所以我选择了一款ADC0808进行仿真,这样可以结合书本内容进行设计。

刚开始设计时,我发现怎么也不能让ADC0808仿真正常工作,我使用了示波器进行仿真一步一步看波形,最终发现了要使ADC0808进行转换,要用START引脚给一个脉冲,而不是上升沿,这是我在进行书本学习中也没有仔细注意的地方,虽然很小的问题,却造成了芯片怎么都不正常工作。

最后仿真出来后进行实物测试时,我发现怎么都不能正常显示,在经过示波器一步一步看返回信号发现ADC0809已经正常工作了,再仔细分析发现是数码管的问题,最后才想起来,当时仿真的时候就注意到了数码管的仿真引脚并是不是按引脚顺序来的,最后重新连线解决了问题,虽然最后数码管没有接三极管放大直接用引脚驱动看起来有点暗,但是能正常显示还是让我很高兴的。

通过这次课设让我懂得了有时候问题就出现在很小的地方,但是可以让你整个系统都不能正常工作,所以我们在设计和分析时尽量避免这些错,不然到时候找错的时候非常麻烦,一个小问题会浪费我们很多的时间和精力。最后的成功也让我很有成就感,毕竟看见系统从元器件到实物一步一步得到是很高兴地一件事。

参考文献

附录1 程序清单

START EQU P3.0

OE EQU P3.1

ORG 0000H

AJMP MAIN

ORG 000BH

AJMP IV0

ORG 0013H

AJMP INT1

ORG 0030

MAIN: MOV TMOD,#01H

MOV TH0,#0FEH

MOV TL0,#0BH

CLR OE

CLR START

SETB TR0

SETB IT1

SETB EA

SETB ET0

SETB EX1

MOV R2,#0FH

MOV DPTR,#TAB

TEST: SETB START

MOV R6,#0FFH

DJNZ R6,$

CLR START

CJNE A,#01H,$

MOV A,P0

JB P3.5,XX

MOV 20H,#00H

MOV 30H,#00H

XX: JNB P3.4,VPP

JNB P3.6,VPP

INST: MOV B,#33H

DIV AB

MOV R0,A

MOV A,B

MOV B,#05H

DIV AB

MOV R1,A

AJMP DISP

VPP: CJNE A,20H,CMP

AJMP CMP1

CMP: JB CY,CMP1

MOV 20H,A

CMP1: CJNE A,21H,CMP2

AJMP CMP3

CMP2: JNB CY,CMP3

MOV 21H,A

CMP3: MOV A,20H

CLR CY

SUBB A,21H

JNB P3.6,EFFE

AJMP INST

EFFE: MOV B,#0AH

DIV AB

MOV R2,B

MOV B,#07H

MUL AB

PUSH A

MOV A,R2

MOV B,#07H

MUL AB

MOV B,#0AH

DIV AB

MOV R2,A

POP A

ADD A,R2

AJMP INST

DISP: MOV A,R0

MOVC A,@A+DPTR

MOV P1,A

MOV A,R1

MOVC A,@A+DPTR

MOV P2,A

AJMP TEST

IV0: MOV TH0,#0FEH

MOV TL0,#0BH

CPL P3.7

RETI

INT1: SETB OE

MOV A,#01H

RETI

TAB:DB 7FH,60H,0B7H,0F3H,0E9H,0DBH,0DFH,71H,0FFH,0FBH

附录2 实物照片

课程设计任务书

学生姓名:周鸣一专业班级:电信1301班 指导教师:陈德军工作单位:武汉理工大学

题目: 用串行A/D芯片采集波形

初始条件:

(1)max2win、wave等软件;

(2)先修课程:数字电子技术、模拟电子技术、单片机、微机处理。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

(1)课程设计时间:第17周;

(2)课程设计题目:用串行A/D芯片采集波形;

(3)本课程设计统一技术要求:采用单片机AT89C51实现交流采样,即系统采集的是交流电压。该系统主要包括几大模块:数据采集模块,A/D转换模块,控制模块,显示模块。在LED上显示采样的采样的瞬时值,有效值和峰值。

(4)课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,并标明参考文献(至少5篇);

(5)写出本次课程设计的心得体会(至少500字)。

时间安排:第17周

参考文献:

[1] 李广弟等单片机基础北京航空航天出版社, 2001.7

[2] 楼然苗等 51 系列单片机设计实例北京航空航天出版社, 2003.3

[3] 唐俊翟等单片机原理与应用冶金工业出版社, 2003.9

指导教师签名:年月日

系主任(或责任教师)签名:年月日

目录

摘要................................................................ 4

1 单片机系统........................................................ 6

1.1 标准功能..................................................... 6

1.2 主要特性..................................................... 6

2 ADC0809芯片简介 .................................................. 7

2.1 主要特性 ...................................................... 7

2.2 内部结构 ...................................................... 7

2.3 工作过程 ...................................................... 8

3 软件简介.......................................................... 9

3.1 WAVE6000 ...................................................... 9

3.2 protues ....................................................... 9

4 硬件电路设计..................................................... 10

4.1硬件电路流程图 ............................................... 11

4.2 单片机最小系统设计 ........................................... 11

4.3 ADC0809芯片及其接线设计 ..................................... 12

4.4 其他部分 ..................................................... 12

5 程序部分设计..................................................... 13

5.1 ADC0809所需时钟信号产生 ..................................... 13

5.1.1 程序流程图 ............................................... 13

5.1.2 时钟产生程序 ............................................. 13

5.2 A/D转换程序设计 ............................................. 14

5.2.1 程序流程图 ............................................... 14

5.2.2 A/D转换程序 ............................................. 14

5.3 数据处理转换程序 ............................................. 15

5.3.1 数据处理原理 ............................................. 15

5.3.2 数据处理程序 ............................................. 15

5.4 数码管显示程序 ............................................... 16

6 仿真结果分析..................................................... 17

7 心得体会......................................................... 19

参考文献........................................................... 20

附录1 程序清单 .................................................... 21

附录2 实物照片 .................................................... 25

摘要

随着电子技术的发展,计算机在现代科学技术的发展中起着越来越重要的作用。多媒体技术。网络技术、智能信息处理技术、自试用控制技术、数据挖掘与处理技术都离不开计算机。本课程设计是基于微机原理与接口技术的简单应用。运用所学的微机原理和接口技术知识完成ADC0809的采样,即基于

STC89C52RC芯片将模拟电压同过ADC0809的采样完成模拟量转换成的数字量并显示出来。通过硬件与软件的结合,用我们刚刚学过的汇编语言编写程序模拟分析了ADC0809的芯片功能和硬件配置,结合硬件和软件阐述了该系统的工作原理,得出了一种简单实用的ADC0809的交流电压采样硬件与软件设计方案。该系统能测量0-5V的电压,并能将瞬时值、峰峰值、有效值结果显示与数码管上。

关键字:STC89C52RC;ADC0809;AD转换;数码管显示

Abstract

With the development of electronic technology, 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 curriculum 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 analog 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 voltage 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/DTransformation;Digital tube display

1 单片机系统

51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是51系列的单片机一般不具备自编程能力。本课程设计采用的是STC89C52RC单片机系统。

STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程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级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。

1.2 主要特性

8K字节程序存储空间;

512字节数据存储空间;

内带4K字节EEPROM存储空间;

可直接使用串口下载;

2 ADC0809芯片简介

ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。目前仅在单片机初学应用设计中较为常见。

2.1 主要特性

1)8路输入通道,8位A/D转换器,即分辨率为8位。

2)具有转换起停控制端。

3)转换时间为100μs(时钟为640KHz时),130μs(时钟为500KHz时)。

4)单个+5V电源供电。

5)模拟输入电压范围0~+5V,不需零点和满刻度校准。

6)工作温度范围为-40~+85摄氏度。

7)低功耗,约15mW。

2.2 内部结构

ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。

外部特性(引脚功能)

ADC0809芯片有28条引脚,采用双列直插式封装,下面说明各引脚功能: IN0~IN7:8路模拟量输入端。

2-1~2-8:8位数字量输出端。

ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。 ALE:地址锁存允许信号,输入端,产生一个正脉冲以锁存地址。

START: A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。

EOC: A/D转换结束信号,输出端,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。

OE:数据输出允许信号,输入端,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。

CLK:时钟脉冲输入端。要求时钟频率不高于640KHz。

REF(+)、REF(-):基准电压。

Vcc:电源,单一+5V。

GND:地。

2.3 工作过程

首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。

转换数据的传送 A/D转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。为此可采用下述三种方式。

(1)定时传送方式

对于一种A/D转换器来说,转换时间作为一项技术指标是已知的和固定的。例如ADC0809转换时间为128μs,相当于6MHz的MCS-51单片机共64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。

(2)查询方式

A/D转换芯片有表明转换完成的状态信号,例如ADC0809的EOC端。因此可以用查询方式,测试EOC的状态,即可确认转换是否完成,并接着进行数据传送。

(3)中断方式

把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。

不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受。

3 软件简介

3.1 WAVE6000

WAVE6000编译软件,采用中文界面。用户源程序大小不受限制,有丰富的窗口显示方式,能够多方位、动态地展示程序的执行过程。其项目管理功能强大,可使单片机程序化大为小,化繁为简,便于管理。另外,其书签、断点管理功能以及外设管理功能等为51单片机的仿真带来极大的便利。

3.2 protues

Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。

Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30 /DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP

系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。

4硬件电路设计

4.1硬件电路流程图

图4.1 系统硬件电路

4.2单片机最小系统设计

图4.1 单片机最小系统仿真电路图

单片机最小系统以STC89C52RC为核心,并设计晶振为12MHZ,由于protues仿真没有STC系列芯片,所以仿真采用AT89C52代替,仿真电路图如图5.1所示。

4.3ADC0809芯片及其接线设计

因设计要求为测出交流电压的瞬时值,有效值,峰值,所以我设计为从IN0输入采样,将ADD A、ADD B、ADD C三个引脚接地,时钟接在单片机P3.7口,定时器输出为1KHZ,EOC输出后接一个反相器,方便单片机外部中断进行对中断信号的判断,因为protues没有ADC0809的仿真模型,所以采用ADC0808作仿真,两款芯片功能引脚相似,只是ADC0809精度更高所连电路图如图5.2所示。

图4.2 ADC0809相关连线

4.4 其他部分

数码管采用共阴数码管,为了连接方便和电路图更简单,所以设计单片机引脚直连数码管引脚,并设计三个按键开关,使其能选择是测量瞬时值、有效值还是峰峰值。

5 程序部分设计

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,

2^16-t/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转换模块程序流程图

5.2.2 A/D转换程序

给A/D芯片START脉冲转换信号,并用标志A判断等待期转换结束,在收到转换结束信号后,单片机进入外部中断1,并发出允许输出信号,改变标志A。程序截图如5.4和5.5所示。

图5.4 A/D转换主程序

图5.5 AD芯片转换结束中断服务程序

5.3 数据处理转换程序

因为单片机P0口从AD芯片得到的转换数字量为8位二进制代码,所以通过处理才能得到人善于分辨的数字。

5.3.1 数据处理原理

因为ADC0809最大测量电压为5V,利用

Y=5×X 255

其中X为,得到的转换后的8位二进制数字。

峰值为测量得到的最大值减去最小值,而有效值为峰峰值的0.7。

5.3.2数据处理程序

相关程序如图5.6所示。

图5.6 数据处理转化程序截图

5.4 数码管显示程序

数码管显示采用查表的方式,将数字显示在数码管上。程序代码如图5.7所示。

图5.7 数码管显示程序

6 仿真结果分析

将WAVE生成的HEX16进制代码导入protues中89C52芯片中,添加输入源并点击开始仿真。仿真结果如图6.1、图6.2、图6.3所示。

图6.1 瞬时值测量仿真结果

图6.2 峰峰值测量仿真结果

图6.3 有效值测量仿真结果

由仿真结果显示本设计电路以及程序满足了设计要求,能将瞬时值,峰峰值,有效值按按键顺序显示出来。最后我将其电路焊接在一起,制作出了实物,实物图见附录。

7 心得体会

在本次课程设计中,我们的题目是A/D芯片对交流电压的瞬时值有效值峰峰值进行检测并显示,刚开始进行得很顺利,在protues中将电路画上后,单片机也能正常使用,但是我返现protues中可供模拟的AD芯片很少,所以我选择了一款ADC0808进行仿真,这样可以结合书本内容进行设计。

刚开始设计时,我发现怎么也不能让ADC0808仿真正常工作,我使用了示波器进行仿真一步一步看波形,最终发现了要使ADC0808进行转换,要用START引脚给一个脉冲,而不是上升沿,这是我在进行书本学习中也没有仔细注意的地方,虽然很小的问题,却造成了芯片怎么都不正常工作。

最后仿真出来后进行实物测试时,我发现怎么都不能正常显示,在经过示波器一步一步看返回信号发现ADC0809已经正常工作了,再仔细分析发现是数码管的问题,最后才想起来,当时仿真的时候就注意到了数码管的仿真引脚并是不是按引脚顺序来的,最后重新连线解决了问题,虽然最后数码管没有接三极管放大直接用引脚驱动看起来有点暗,但是能正常显示还是让我很高兴的。

通过这次课设让我懂得了有时候问题就出现在很小的地方,但是可以让你整个系统都不能正常工作,所以我们在设计和分析时尽量避免这些错,不然到时候找错的时候非常麻烦,一个小问题会浪费我们很多的时间和精力。最后的成功也让我很有成就感,毕竟看见系统从元器件到实物一步一步得到是很高兴地一件事。

参考文献

附录1 程序清单

START EQU P3.0

OE EQU P3.1

ORG 0000H

AJMP MAIN

ORG 000BH

AJMP IV0

ORG 0013H

AJMP INT1

ORG 0030

MAIN: MOV TMOD,#01H

MOV TH0,#0FEH

MOV TL0,#0BH

CLR OE

CLR START

SETB TR0

SETB IT1

SETB EA

SETB ET0

SETB EX1

MOV R2,#0FH

MOV DPTR,#TAB

TEST: SETB START

MOV R6,#0FFH

DJNZ R6,$

CLR START

CJNE A,#01H,$

MOV A,P0

JB P3.5,XX

MOV 20H,#00H

MOV 30H,#00H

XX: JNB P3.4,VPP

JNB P3.6,VPP

INST: MOV B,#33H

DIV AB

MOV R0,A

MOV A,B

MOV B,#05H

DIV AB

MOV R1,A

AJMP DISP

VPP: CJNE A,20H,CMP

AJMP CMP1

CMP: JB CY,CMP1

MOV 20H,A

CMP1: CJNE A,21H,CMP2

AJMP CMP3

CMP2: JNB CY,CMP3

MOV 21H,A

CMP3: MOV A,20H

CLR CY

SUBB A,21H

JNB P3.6,EFFE

AJMP INST

EFFE: MOV B,#0AH

DIV AB

MOV R2,B

MOV B,#07H

MUL AB

PUSH A

MOV A,R2

MOV B,#07H

MUL AB

MOV B,#0AH

DIV AB

MOV R2,A

POP A

ADD A,R2

AJMP INST

DISP: MOV A,R0

MOVC A,@A+DPTR

MOV P1,A

MOV A,R1

MOVC A,@A+DPTR

MOV P2,A

AJMP TEST

IV0: MOV TH0,#0FEH

MOV TL0,#0BH

CPL P3.7

RETI

INT1: SETB OE

MOV A,#01H

RETI

TAB:DB 7FH,60H,0B7H,0F3H,0E9H,0DBH,0DFH,71H,0FFH,0FBH

附录2 实物照片


相关文章

  • 降压斩波电路设计
  • 重庆交通大学 电力电子技术课程设计 --直流降压斩波电路 学生姓名:周瑶 小组成员:周瑶.姜飞.王圆月 专业班级:电气工程与自动化2012级1班 学号:[1**********]3 指导老师:余腾伟老师 设计时间:2015至2016学年第一 ...查看


  • 电压信号采集
  • 电压信号采集方案设计 叶云云 摘 要: 电压信号采集电路是电子系统中常用到的功能模块,该电路设计分三个模块:数据采集.数据处理和显示模块.数据信号采集采用运算放大器0P07构成电压跟随器对信号进行跟随处理,再由采样/保持器LF398对信号进 ...查看


  • 电压谐波分析论文
  • 毕业设计(论文)任务书 I.毕业设计(论文)题目: 电网电压谐波分析仪设计 II.毕 业设计(论文)使用的原始资料(数据)及设计技术要求: 用汇编或C语言对制作的交流电压谐波分析仪编程,实现电网电压谐波分析仪功 能.具体要求为: 1.采用交 ...查看


  • 110kV输电线路功率方向保护设计(1)
  • 辽 宁 工 业 大 学 题目:110kV输电线路功率方向保护设计(1) 院(系): 电气工程学院 专业班级: 电气111班 学 号: 学生姓名: 指导教师: (签字) 起止时间: 20141.12.15-2014.12.26. 课程设计(论 ...查看


  • 交流电量同步采集 091415423
  • 河南机电高等专科学校 毕业设计(论文) 交流电量同步采集 系 部: 自动控制系 专 业: 电气自动化 班 级: xxxxx xx 姓 名: xxxx xxx xx 学 号: xxx xxx xx x 指导老师: xxx 二零一二年五月 第一 ...查看


  • 几种简单的恒流源电路
  • 几种简单的恒流源电路 恒流电路应用的范围很广,下面介绍几种由常用集成块组成的恒流电路.1.由7805组成的恒流电路,电路图如下图1 所示: 电流I=Ig+VOUT/R,Ig的电流相对于Io 是不能忽略的,且随Vout,Vin及环境温度的变化 ...查看


  • 高速数据采集原理分析与设计
  • 课程设计任务书 学生姓名: 周国阳 专业班级: 电信1001班 指导教师: 沈维聪 工作单位: 信息工程学院 题 目:高速数据采集系统原理分析和设计 初始条件: 数据采集是数字信号处理的前提,研究和设计数据采集系统就显得尤为重要.本课程设计 ...查看


  • 清华大学课程学习
  • 电机工程与应用电子技术系 00220012 高档单片机原理及应用 2学分 32学时 The Principles and Application of Advanced Single-Chip Computer 本课程受日本瑞萨科技公司资助 ...查看


  • 华东师范大学本科优秀论文
  • 2009 届本科生学士学位论文 学校代码:10269 微电脑吸尘器控制板量产测试系统的设计和实现 The Design and implementation for Production test system of Micro-compu ...查看


热门内容