您的当前位置:首页正文

at89c51对直流电动机的驱动的课程设计

2021-11-06 来源:客趣旅游网
单片机课程设计实验报告 12信Y1 蒋志明(12120511)

单片机课程设计

实验报告

课程设计名称:AT89C51对直流电动机的驱动的设计 课程设计姓名:12信Y1 蒋志明 (12120511)

设计目标:1、利用AT89C51单片机,外加ADC0808和直流电机,设计一个直流

电动机驱动电路设计系统。

2、通过改变电位器RV1电阻的阻值采集电压信息,并通过ADC0808

转换为8位数字信号。

3、将数字信号输入到AT89C51单片机,PWM信号由单片机产生,输

出到电动机驱动电路,进而驱动电动机转动。

4、通过改变RV1的阻值,从而改变直流电机电枢上电压的“占空比”,

控制电动机的转速。

5、用Proteus仿真AT89C51系列及其外围电路,用它与Keil开发工具

结合,搭建单片机开发平台。

1

单片机课程设计实验报告 12信Y1 蒋志明(12120511) 一、系统硬件设计

本设计中“AT89C51对电流电动机驱动电路设计”,采用控制电位器,实现直流电机的调速。系统设计的总方框图如图1所示。

VCCVCCRV1A/D转换单片机M

图1 总方框图

电位器RV1采集电压信号;用转换器ADC0808对输入电压信号进行数模转换,转换成单片机可以识别的数字信号;用总线将ADC0808的OUT8~OUT1口与单片机AT89C51的P1口相连接,实现数字信号的传送;随着单片机输入相应控制指令,AT89C51的P3.7口输出与转速相应的PWM脉冲;经两个同向跟随器OP07输出到三极管Q1;由三极管放大电流输出到电动机驱动电路,实现电动机转速的控制。

当调节电位器RV1的占空比时,判断PWM是高电位还是低电位,将A/D转换后的数据变换成延时常数,电位器阻值发生变化时,ADC0808输出的值也会变化,进而调节单片机输出的脉冲宽度的占空比,实现电动机转速的控制。

硬件电路中用P1口作为通用IO准双向动态端口,输入控制指令(延时常数)。 用P3.7口作为输出控制信号(输出脉冲),控制OP07的3端的信号输入。 用RV1采集电压信息,IN0作为电压模拟信号输入。

OUT8为最低位,OUT1为最高位,OUT端口作为数字信号的输出,将OUT8~OUT1分别接到单片机的P1.0~P1.7。

电路为12MHZ晶振频率工作。 1、直流电机驱动电路设计 (1)直流电机的转速

直流电机里边固定有环状永磁体,电流通过转子上的线圈产生洛伦兹力,当转子上的线圈与磁场平行时,再继续转受到的磁场方向将改变,因此此时转子末端的电刷跟转换片交替接触,从而线圈上的电流方向也改变,产生的洛伦兹力方向不变,所以电机能保持一个方向转动。

在对直流电动机电枢电压的控制和驱动中。目前广泛应用的是通过改变电机电枢

2

单片机课程设计实验报告 12信Y1 蒋志明(12120511) 保持高电平接通时间与通电时钟周期的时间的比值D(占空比)来控制电机的转速。这种方法称为脉冲宽度调制即PWM控制。

VCCR21KR5200Q1NPNMR11K Q2NPN

图2直流电机驱动电路设计

虽然不同励磁方式的电机机械特性不同,但他们的转速n都是由公式 (1-1) 计算而得:

UaRaIa n (1-1) CE式中 Ua——电枢供电电压(V);

Ia——电枢电流(A); ; ——励磁磁通(W b)Ra——电枢回路总电阻(Ω); CE——电势系数。 其中,电势系数CE又表示为:

CEpN (1-2) 60a式中 p——电磁对数;a——电枢并联支路数;N——导体数。 由式可见,直流电动机的调速方法可以分为: a、电枢回路串电阻的调速方法; b、调节励磁磁通的励磁控制方法; c、调节电枢电压的电枢控制方法。

本设计中,通过改变电机两端电压的方法,采用脉冲控制PWM,改变占空比,

3

单片机课程设计实验报告 12信Y1 蒋志明(12120511) 从而改变电机两端电压,调节转速。PWM是通过控制固定电压的直流电源开关频率,从而改变负载两端的电压,进而达到控制要求的一种电压调整方法。调整单片机的PWM控制寄存器来调整PWM的占空比,从而控制电流。

(2)电机的平均速度

设电机始终接通电源时,电机转速最大为Vmax,设占空比为D,则电机的平均速度为:

VdVmaxD (1-3)

式中,Vd —— 电机的平均速度;

Vmax——电机全通电时的速度(最大);

其中,占空比为 D = t1 / T 。

由公式1-3可见,当我们改变占空比D时,就可以得到不同的电机平均速度 ,从而达到调速的目的。严格地讲,平均速度Vd与占空比D = t1 / T并不是严格的线性关系,在一般的应用中,可以将其近似地看成线性关系。

由此可看出,改变占空比D的值有三种方法:

①调宽调频法:保持t不变,只改变t1,这样使周期(或频率)也随之改变。 ②定宽调频法:保持t1不变,只改变t,这样使周期(或频率)也随之改变。 ③定频调宽法:保持周期T(或频率)不变,同时改变t1和t。

PWM可以应用在许多方面,如电机调速、温度控制、压力控制等。在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占空比”来改变平均电压的大小,从而控制电动机的转速。因此,PWM又被称为“开关驱动装置”。在脉冲作用下,当电机通电时,速度增加;电机断电时,速度逐渐减少。只要按一定规律,改变通、断电的时间,即可让电机转速得到控制。

(3)三极管的使用

三极管是电子电路中最重要的器件,采用NPN三极管是因为它的电流放大和开关的作用,而两个三极管串联复合成高电流放大系数的电路,它们把系统生成的微弱的电信号变成一定强度的信号,从而稳定电机电流。

2、同向跟随器OP07 (1)器件选择

本设计中,需要采用输出电压与输入电压是相同的电压跟随器来恒定电压电流,

4

单片机课程设计实验报告 12信Y1 蒋志明(12120511) 稳定输出,并且对前后级电路进行隔离。而同向电压跟随器OP07就有这样的特点,并且它比较适合高增益放大电路,电压跟随器的电压放大倍数恒小于且接近1。

电压跟随器还有输入阻抗高、输出阻抗低的特点。因为电压跟随器对前后级电路进行隔离,所以当输入阻抗很高时,就相当于对前级电路开路;当输出阻抗很低时,对后级电路就相当于一个恒压源,即输出电压不受后级电路阻抗影响。一个对前级电路相当于开路,输出电压又不受后级阻抗影响的电路当然具备隔离作用,使前、后级电路之间互不影响。电压跟随器常用利用这一特点作中间级,以“隔离”前后级之间的影响,此时称之为缓冲级。

由于电机具有较大的感性,电流不能突变,若突然将电流切断,将在电机两端产生很高的电压,损坏器件。我们在此电路中应用的是OP07来稳定电压电流,利用电压跟随器输出电压与输入电压相同的特点。

电压跟随器OP07的显著特点就是输出电压与输入电压相同,输入阻抗高,而输出阻抗低。一般来说,输入阻抗可以达到几兆欧姆,而输出阻抗低,通常只有几欧姆,甚至更低。超低偏移:50μV最大。低输入偏置电流:1.8nA 。低失调电压漂移:0.5μV/℃。超稳定,时间:2μV/month最大高电源电压范围:±3V至±22V。

同向跟随器OP07电路设计图如下图 图3所示。

15V输入R310k132U386OP07R410K-15V图3 同向跟随器OP07电路设计

(2)OP07芯片的简单介绍

OP07芯片是一种低噪声,非斩波稳零的双极性(双电源供电)运算放大器集成电路。由于OP07具有非常低的输入失调电压(对于OP07A最大为25μV),所以OP07在很多应用场合不需要额外的调零措施。OP07同时具有输入偏置电流低(OP07A为±2nA)和开环增益高(对于OP07A为300V/mV)的特点,这种低失调、高开环增益的特性使得OP07特别适用于高增益的测量设备和放大传感器的微弱信号等方面。

5

4713C421nFU486OP07输出47

单片机课程设计实验报告 12信Y1 蒋志明(12120511)

OP07芯片引脚功能说明: 1脚 、8脚是用来偏置平衡(调零端)的;

2脚 、6脚相连,2脚为反向输入端(6脚为输出端); 3脚 为正向输入端; 4脚 接地,5脚 为空脚; 7脚 接电源最大额定值。 (3)OP07电路的使用

将OP07的输入端口与AT89C51的盘P3.7端口相连接收电压信号,采用两个OP07电路相连即增加了电路电压的稳定性,同时减小了输出阻抗,增加了电流,非常适合放大微小信号的电路。

3、AT89C51部分设计分析

单片机AT89C51的P1口以总线方式与ADC0808的OUT1~OUT8相连接,实行数据模拟信号的传送;AT89C51中的数据通过这条线把原始的数字量数据传到ADC0808进行转化,转化成电流模拟信号;当单片机输入相应控制指令,电流模拟信号就从AT89C51的P3.7口输出转变成与转速相应的PWM脉冲。

4、ADC0808部分设计分析 (1)器件选择

本设计中A/D转换器使用的是ADC0808,是将模拟信号(电压或是电流的形式)转换成数字信号。

因为A/D转换器要与AT89C51的P1.0~P1.7引脚相连,AT89C51的P1口有8为引脚。而ADC0808采样的分辨率为8位,内部有一个8通道多路开关,它的OUT1~OUT8八位引脚正好与AT89C51的P1口的8位引脚相连。

(2)简介ADC0808

ADC0808是ADC0809的简化版本,功能基本相同。一般在硬件仿真时一般采用ADC0808进行A/D转换。实际使用时采用ADC0809进行A/D转换。ADC0808是以逐次逼近原理进行模/数转换的器件。它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。

上文提到过,ADC0808转换器是将模拟信号(电压或是电流的形式)转换成数字信号的芯片,这种数字信号可让仪表、计算机外设接口或是微处理机来加以操作使用。A/D转换器与单片机接口具有硬、软件相依性。一般来说,A/D转换器与单片机

6

单片机课程设计实验报告 12信Y1 蒋志明(12120511) 的接口主要考虑的是数字量输出线的连接、ADC启动方式、转换结束信号处理方法以及时钟连接等。 该芯片是由26个引脚组成。 1~5和26~28(IN0~IN7):8路模拟量输入端。 8、14、15和17~21:8位数字量输出端,和AT89C51的P1.0~P1.7引脚以总线方式相连。 22(ALE):地址锁存允许信号,输入,高电平有效。 6(START): A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。 7(EOC): A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。 9(OE):数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 10(CLOCK):时钟脉冲输入端。要求时钟频率不高于640KHz。 12(VREF(+))和16(VREF(-)):参考电压输入端。 23~25(ADD A、ADD B、ADD C):3位地址输入线,用于选通8路模拟输入中的一路。 RV126272812345252423221216U2IN0IN1IN2IN3IN4IN5IN6IN7ADD AADD BADD CALEVREF(+)VREF(-)ADC0808CLOCKSTARTEOCOUT1OUT2OUT3OUT4OUT5OUT6OUT7OUT8OE10672120191881514179POT2 图5 ADC0808部分电路设计 (3)ADC0808的使用 本设计中,ADC0808芯片的A/D转换是整个设计系统的中专部分,电位器RV1 7 单片机课程设计实验报告 12信Y1 蒋志明(12120511) 与ADC0808的IN0口相连,实现将调节RV1的占空比采集电压信息的数字信号转换成模拟信号;AT89C51的P1.0~P1.7引脚与ADC0808的OUT8~OUT1引脚以总线方式相连,总线实现将ADC0808和AT89C51之间的数据传输,是ADC0808与AT89C51数据交换的渠道,ADC0808将AT89C51中输入的原始数字量数据转化成电流模拟信号并返回。

二、软件设计

1、流程图设计

结合设计目标与硬件电路设计,系统程序采用定时器T0采用工作模式2,可以避免计数溢出后用软件重装定时初值的工作。

中断服务程序开始ST=1串口初始化Y置初值调节RV1开中断接收数据N启动A/D转换计算转速输出方波CLR ST等待中断中断返回

图4 中断服务子程序流程图 图5 中断流程图

(1)中断服务子程序流程图

对于中断服务子程序,在CPU响应中断后,通过检测ST是否置位来决定CPU是接收数据还是退出中断。接收数据通过调用中断服务子程序来完成,方波的输出在主程序中实现。中断服务子程序流程图如图4所示。

(2)中断流程图

对于中断函数,在CPU响应中断后,先进行串口初始化,对函数设置初值,将

8

单片机课程设计实验报告 12信Y1 蒋志明(12120511) 中断打开,才可以启动A/D转换,将方波的输出到主程序中,然后等待中断源,即开始新的服务程序。中断流程图如图5所示

(3)总体流程设计

本设计采用了直流电动机的调速方法中的第一种方法,改变电机两端电压的。采用脉冲控制PWM,改变直流电机电枢上电压的“占空比”,从而改变电机两端电压,调节转速。总原理图见附件一。

结合设计目标与硬件电路设计,主程序开始后,先对ADC0808进行了时钟定位,为ADC0808提供时钟,并进行系统初始化。之后启动ADC0808进行数模转换,并读取转换值,存入ADC所在地址。将A/D转换后的数据作为延时常数,当电位器阻值发生变化时,ADC0808输出的值也会变化。当PWM为高电平时,调用延时ADC为延时常数,当PWM为高电平时,调用延时255-ADC为延时常数。设计中采用通过调节电位器,改变 AT89C51的PWM占空比的方法,进而调节单片机输出的PWM占空比,控制电动机的转速。

程序的总体程序流程图如图6所示。

程序开始为ADC0808提供时钟启动A/D转换ADC=转换值YES PWM 高电平?NO延时t=ADC延时t=255-ADC直流电机转动

图6 总体程序流程图

2、定时器设计

在本设计中,系统程序设定定时器T0采用工作模式2,可以避免计数溢出后用

9

单片机课程设计实验报告 12信Y1 蒋志明(12120511) 软件重装定时初值的工作,采用晶振频率为12MHz,因此AT89C51单片机的时钟频率fosc为1MHz,机器周期T为1μs。定时器采用8位计数中断溢出模式,为实现1μs延时,可选择定时时间为236μs。定时时间选定后,可确定计数值为236μs。则定时器T0的初值为:

XM236256s236s20s

20μs为立即数。即TH0、TL0重装时间常数分别为#20、#00H。

三、程序的编制与调试

(一)使用Keil 软件工具时,项目开发流程和其它软件开发项目的流程极其相似。围绕本课程进行下列设计流程:

(1) 创建一个项目,从器件库中选择目标器件,配置工具设置。 (2) 用C语言或汇编语言创建源程序。 (3) 用项目管理器生成应用。 (4) 修改源程序中的错误。 (5) 测试,连接应用。

(二)、使用Keil 软件设计关键程序的完整过程如下: 1、Keil环境下的项目建立

(1)打开桌面上的Keil μVision4项目图标,在项目栏上选择project → New project命令,新建Keil项目文件;

(2)在弹出的Creat New Project对话框中选择要保存的路径,在“文件名”文本框中输入项目名为“12120511”,然后点击“保存”按钮;

(3)此时会出现一个方框栏,我们先点击其中的Atmel公司,再选择AT89C51单片机作为本次设计的CPU,在方框栏右边的Description栏中有显示该单片机的基本说明,然后单击“确定”。

(4)在接下来弹出的文本框中显示“Copy Standard 8051 Startup Code to Project Folder and Add File to Project?”,我们要单击“否”按钮,选择汇编语言进行编程(而不是单击“是”,选择C语言进行编程)。

2、项目编译

(1)新建汇编语言文件,选择File → New File命令。

(2)可先选择File→Save As命令,以学号“12120511 .asm”的形式保存文件,然后再编写程序。

10

单片机课程设计实验报告 12信Y1 蒋志明(12120511)

(3)选择Target 1目录下的子文件 Source Group 1,右键选择Add Files to Group “Source Group 1”,要求寻找源文件“12120521. asm”。

(4)找到源文件后选中,点击按键Add添加,然后close退出。

(5)确定程序完成后,先点击进行编译,再重组当前。编译汇编源程序,改正程序中得错误。

(6)然后重复进行如下操作:编译→ 重组当前文件→ 编译成功则进行仿真→如果未成功,则进行改错直到编译成功。

3、项目hex文件产生:

(1)点击Target 1,右键选择Options for Target “Target 1”,可将汇编文件导入到Source Group 1中。

(2)在Options For Target对话窗口中,找到output选项卡中得Create HEX File选项,在它前面打钩,然后再选择Debug选项卡,选择当中的Use项,在Use项中寻找Proteus选项,最后点击“确定”。

(3)编译汇编源程序,改正程序中的错误,程序完全正确后,程序被创建,就可以生成*.hex文件。

4,、程序设计见附件二。

四、系统仿真

1、Proteus功能特点

①Proteus软件具有其它EDA工具软件(例:multisim)的功能。 这些功能是: (1)原理布图;

(2)PCB自动或人工布线; (3)SPICE电路仿真。 ②革命性的特点 (1)互动的电路仿真

用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。

(2)仿真处理器及其外围电路

Proteus可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,就能看到运行后输入输出的效

11

单片机课程设计实验报告 12信Y1 蒋志明(12120511) 果。配合系统配置的虚拟逻辑分析仪、示波器等,这样Proteus系统建立了完备的电子设计开发环境。

2、Proteus环境下的项目建立

双击桌面上的快捷图标,进入Proteus操作界面,点击保存按钮,将文件保存并命名为学号“12120511.dsn” ,就可以直接绘制仿真原理图,并将所绘制的原理图存入该文件。

3、绘制仿真原理图

(1)进入Proteus操作界面后,点击对象选择器中的P,进入选择元件功能当键入AT89C51,选择适合的元器件点击OK,回到Proteus绘制界面。

(2)单击鼠标左键,选择合适的位置,就放置好了一个AT89C51单片机。接下来采用同样的方式放置其余的元器件 2N2222A、ADC0808、CAP、MOTOR、OP07、RES、POT-HG。

(3)在绘制原理图时,要认识即时编辑原件参数、选择元件、放置连接点、放置网络标号连接标签、放置文本、绘制总线、放置子电路、终端接口的图标,其中还有VCC、GND、输出、输入等接口。器件引脚和绘制各种引脚的图标。

(4)当绘制各种元件和终端时必须选择正确的编辑状态,并且使用电线连接,否则是原理图就是不对的,不能进行仿真。

(5) 原理图绘制完后,运行时会自动进行电气规则检查。当完成原理图布线后,利用Proteus ISIS编辑环境所提供的电气规则检查命令对设计进行检查,并根据系统提示的错误检查报告修改原理图。

(6)如果原理图已通过电气规则检查,那么原理图的设计就完成了,但是对于一般电路设计而言,尤其是较大的项目,通常需要对电路进行多次修改才能通过电气规则检查。

(7)在绘制原理图的时候还要注意很多细节问题,在放置元件前要考虑好放置的位置,对于没有关联的电线,尽量避免线的交接,即使线交接起来了,也不能出现电路节点,否则线与线之间就存在了电气关系。放置元器件的同时,要尽量保存元器件的上下左右对齐,界面整洁,美观。

4、系统仿真

(1)在Proteus上绘制好原理图后,双击Proteus原理图上的AT89C51单片机,将生成的*.hex文件调入到单片机里进行实时仿真,便可以在Proteus上看到模拟的实物运行状态和过程。

12

单片机课程设计实验报告 12信Y1 蒋志明(12120511)

(2)在Proteus ISIS中,选中AT89C51并单击鼠标左键,打开 Edit Component 对话窗口,设置单片机晶振频率为12MHz。在此窗口中得 Program File 栏中,选择先前用Keil生成*.hex文件。

(3)在Proteus ISIS的菜单栏中选择File →Save Design选项,保存设计。 (4)在Proteus ISIS的菜单栏中,打开Debug下拉菜单,在菜单中选中Use Remote Debug Monitor选项,以支持与Keil C51的联合调试。

(5)在Keil C51的菜单栏中选择Debug →Start/Stop Debug Session选项,进入程序调试环境。按F5键,顺序运行程序。

(6)调出Proteus ISIS界面,点击运行,调节RV1电位器,观察直流电动机转速的变化。

5、仿真效果截图

图7 仿真原理图

在Proteus下进行仿真,在Proteus环境下输入源程序,把源程序代码生成目标代码后,将其加载到电路里,设置单片机时钟频率为12MHz,电路开始工作。通过改变

13

单片机课程设计实验报告 12信Y1 蒋志明(12120511) RV1的占空比,可以知道ADC0808的输出端相应位输出高低不同的电平。单片机接收到此数据后,控制输出端P3.7 输出PWM信号。

针对设计的程序,当改变调节RV1的占空比时, RV1占空比越小,直流电动机的转速越慢。占空比越大,直流电动机转速就越快。并且通过仿真发现,调节改变RV1的占空比,相当于改变了电压信号,从而控制了直流电动机的转速。其仿真原理图截图如上图7所示。

6、仿真过程中问题解决的思考

(1)在设计过程中,进行Protel原理图绘制时,因在元件库中找不到问设计匹配的AT89C51和ADC0808元器件,所以需要自己进行制作。制作的过程有如下重点:

a、打开Protel 99,选择Schematic Library Document进行元器件制作并保存,记住保存的库的名字,以及库的详细地址A。

b、在我制作完元器件后,我们要选择Tool → Rename Component,对我们制作的元件进行重命名,一般命名为元器件的名字,如“AT89C51”。

c、接下来,需要关注就是元器件添加库的问题,我们要选择C盘→Windows →AdvSch99SE.ini在Type Count和Count后的File系列中依次添加File行,并改变File值,再输入刚刚新建元器件库所在的详细位置A,然后改变Count的值。这样才是将自制元器件添加到库中的完整的方法。

(2)在程序编写的过程中,一开始忘记了使用Keil C51编写汇编语言的方法,在程序编译的时候总是出现项目不能创建。在与同学进过一系类的讨论和商量后发现,原来是在开始新建的过程中,不能在弹出的“将AT89C51初始化代码复制到项目中”的英文询问对话框中,选择“是”按钮。因为“是”是在C语言下进行编程,而“否” 是在汇编语言下进行编程。因为我写的是汇编语言,点击“是”与编程选项冲突,所以不能创建*.hex文件。

(3)硬件设计是需要根据设计目标画出框图,根据设计的需要选择元件连接成电路图。软件设计则是需要根据电路原理图考虑到三条线:控制线、地址线、数据线,根据所要实现的结果画出程序流程图,根据流程图编写程序代码。在Keil 中调试排错。在硬件和软件设计完成后,还需将两者结合,也就是说将程序产生的*.hex文件烧写进单片机,硬件与软件必须衔接恰当,否则就不能正常运行,必须改变电路结构或者改变程序。

(4)课程设计是对大学所学课程中最好的综合锻炼,无论是基础知识还是专业技能都因为课程设计而被统一起来,使我们把平时零散的各科知识结合到一起,应用

14

单片机课程设计实验报告 12信Y1 蒋志明(12120511) 于实践。比如我这次的课题,就将单片机,电机控制,计算机汇编语言等很多课程的知识结合到一起。很好达到了课程设计让我们融会贯通的目的。计算机语言,单片机是一门很深的学问,不管是现在还是以后的工作,我们都离不开计算机。所以每次的课程设计都为我们以后步入社会打下一个坚实有力的基础。

(5)这次课程设计,让我们了解了一个产品在设计、研发、仿真、调试等过程中所遇到的一系列问题,为走入社会工作打下了牢固的基础。路漫漫其修远兮,吾将上下而求索。这漫长而曲折的道路上只要自己不放弃,一步一步慢慢来,很多东西都会被慢慢消化。作为大学生,我们没有经验,但是我们有的是一颗不断学习的心,哪里不会学哪里,只有不断学习,才能在以后的工作中不被淘汰。

15

单片机课程设计实验报告 12信Y1 蒋志明(12120511) 附件一:总原理图

1234DU119XYAL1P0.0/AD0P0.1/AD118P0.2/AD2XTAL2P0.3/AD3P0.4/AD4P0.5/AD59P0.6/AD6RSTP0.7/AD7P2.0/A8P2.1/A9293031P2.2/A10PSENALEEAP2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15393837363534333221222324252627281011121314151617OUTPUT121625242322POT226272812345RV1U2IN0IN1IN2IN3IN4IN5IN6IN7ADD AADD BADD CALEVREF(+)VREF(-)ADC0808OEOUT1OUT2OUT3OUT4OUT5OUT6OUT7OUT82120191881514179D7D6D5D4D3D2D1D0EOCCLOCKSTART1067DCD0D1D2D3D4D5D6D712345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RDCVCCR21K1R3BOUTPUT10k362OP074U38R410K136C41nF2OP074U48R510KQ1NPNMB77R11K Q2NPNATitleASizeA4Date:File:123NumberRevision2-Jul-2015 H:\\12120511\\12120511.ddbSheet of Drawn By:4

16

单片机课程设计实验报告 12信Y1 蒋志明(12120511) 附件二:程序设计 ADC EQU 35H

CLOCK BIT P2.4 /*定义ADC0808时钟位*/ ST BIT P2.5 EOC BIT P2.6 OE BIT P2.7 PWM BIT P3.7 ORG 00H SJMP START /*系统初始化*/ ORG 0BH LJMP INT_T0

START: MOV TMOD, #02H /*设置定时器0为工作方式2*/ MOV TH0, #20 MOV TL0, #00H MOV IE, #82H /*设置中断*/ SETB TR0 WAIT: CLR ST /*ST位清零*/ SETB ST /*ST位置位*/ CLR ST /*起动A/D转换*/

JNB EOC, $

/*等待转换结束*/ SETB OE MOV ADC, P1 /*读取A/D转换结果*/ CLR OE SETB PWM /*PWM输出*/ MOV A, ADC LCALL DELAY

/*调用延时,ADC为延时常数*/ CLR PWM MOV A, #255 SUBB A, ADC LCALL DELAY

/*调用延时,255-ADC为延时常数*/ SJMP WAIT

INT_T0: CPL CLOCK /*提供ADC0808时钟信号*/ RETI

DELAY: MOV R6, #1 D1: DJNZ R6, D1 DJNZ ACC, D1 RET

END

17

单片机课程设计实验报告 12信Y1 蒋志明(12120511)

18

因篇幅问题不能全部显示,请点此查看更多更全内容