小直流电机调速系统实验报告_第1页
小直流电机调速系统实验报告_第2页
小直流电机调速系统实验报告_第3页
小直流电机调速系统实验报告_第4页
小直流电机调速系统实验报告_第5页
已阅读5页,还剩20页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、小直流电机调速系统实验报告第五组课程名称 微机原理及应用课程综合作业学院专业 信息工程卓越工程师 年级班别 2013级2班 学 号 3113002780 学生姓名 黄健鹏 合作者 陈晓明 吴仁伟 指导老师 张巧芬 报告页数 25 2015 年 6 月 30日目录第一章 绪论3第二章 设计要求3第三章 设计原理3第四章 程序原理4工作原理概述4第五章 硬件电路4ADC0809:4AT89C517ADC0809与8051单片机的接口设计电路11LED数码显示电路设计12AT89C51与直流电机的连接13第六章 程序设计13定义符号13主程序的设计14采样子程序15转换子程序16显示子程序17中断子

2、程序18第七章 仿真与调试195.1软件介绍195.2仿真过程19第八章 总结21附录 程序代码21第一章 绪论 单片微型计算机的诞生是计算机发展史上的一个新的里程碑。近年来,随着技术的发展和进步,以及市场对产品功能和性能的要求不断提高,直流电动机的应用更加广泛,尤其是在智能机器人中的应用。直流电动机的起动和调速性能、过载能力强等特点显得十分重要,为了能够适应发展的要求,单闭环直流电动机的调速控制系统得到了很大的发展。而作为单片嵌入式系统的核心单片机,正朝着多功能、多选择、高速度、低功耗、低价格、大存储容量和强I/O功能等方向发展。随着计算机档次的不断提高,功能的不断完善,单片机已越来越广泛地

3、应用在各种领域的控制、自动化、智能化等方面,特别是在直流电动机的调速控制系统中。这是因为单片机具有很多优点:体积小,功能全,抗干扰能力强,可靠性高,结构合理,指令丰富,控制功能强,造价低等。所以选用单片机作为控制系统的核心以提高整个系统的可靠性和可行性。对直流电机调速器设计的研究,主要实现对电机的控制。本课程设计主要是通过对电位器的调节实现电机的加速、减速操作。并实现电路的仿真。为实现系统的微机控制,在设计中,采用了AT89C51单片机作为整个控制系统的控制电路的核心部分,配以各种显示、驱动模块,实现对电动机转速参数的显示和测量。设计的整个控制系统,在硬件结构上采用了大量的集成电路模块,大大简

4、化了硬件电路,提高了系统的稳定性和可靠性,使整个系统的性能得到提高。第二章 设计要求以单片机为核心,设计一个小直流电机的调速控制装置。使用ADC0809采样电位器的值,并在显示器上显示,将此信号值作为方波占空比,通过0832芯片输出经放大后控制电机转速。第三章 设计原理本题目是以单片机为核心的数字电压表与PWM信号驱动直流电机电路的组合体。 本题目的难点在于如何利用AT89C51内部定时计数器,产生占空比可调的PWM驱动信号。本设计使用定时计数器T0,选择其工作状态l(16位定时计数器,软件载人计数初值)通过改变软件载入的计数初值实现PWM信号占空比的调节。下面介绍具体过程。ADC0809采样

5、得到电压信号的数字值addata;初始化T0,使TH0=(256*addata)256TL0=(addata*256)%256,令输出out=0(因为addata取值为256,而定时计数器为16位,故在此将其放大256,以实现0256挡的调节);中断处理,若原来out=0使TH0=(256*addata)/256)TL0=(addata*256)%256),令输出out=l;若原来out=0使TH0=(256*addata)/256,TL0=(addata*256)%256,令输出out=0。不断循环执行上述3步,可以实现通过改变输入电压信号来调整PWM占空比。需要注意的是,第3步中用到了按位

6、取反运算,其功能是为了保证PWM的周期始终稳定在从0x0000计数到0xffff所需的时间上。位运算的执行效率远高于普通十进制的代数运算,应尽量使用。第四章 程序原理本设计的硬件电路只要包括最小系统、显示器、控制电路、驱动电路三大部分。最小系统只要是为了使单片机正常工作。控制电路通过操作电位器来控制电机的转速。驱动电路主要是对单片机输出的脉冲进行功率放大,从而驱动电机转动。 显示器电位器AT89S51单片机电机设计流程图如下:工作原理概述 整个系统的工作原理:首先是人为给定电动机转速的电压信号,然后将这个电压信号通过A/D 转换器转换成数字信号后传给单片机。单片机通过中断通信方式将接受的数据先

7、保存起来。然后再对此数据进行处理:要将此二进制数进行转换,先将(00H-FFH )转换成对应的实际数值,接着启动ADC0809开始采样直流电动机的实际速度值,再通过PWM波形发生器来驱动直流电动机,同时通过LED数码管显示出直流电动机的给定速度值和实际速度值。 整个系统设计包括了三个大的部分:A/ D 转换电路部分、D/A转换电路部分、电压显示部分。第五章 硬件电路ADC0809:ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。  (1)ADC0809的内部逻辑结构 &#

8、160;  由下图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。内部结构(2)ADC0809引脚结构ADC0809各脚功能如下: D7-D0:8位数字量输出引脚。IN0-IN7:8位模拟量输入引脚。 VCC:+5V工作电压。GND:地。 REF(+):参考电压正端。 REF(-):参考电压负端。

9、60;START:A/D转换启动信号输入端。ALE:地址锁存允许信号输入端。 (以上两种信号用于启动A/D转换). EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。 OE:输出允许控制端,用以打开三态数据输出锁存器。CLK:时钟信号输入端(一般为500KHz)。ADC0809对输入模拟量要求:信号单极性,电压范围是05V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。地址输入和控制线:4条  ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,

10、地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进入转换器进行转换。A,B和C为地址输入线,用于选通IN0IN7上的一路模拟量输入。通道选择表如下表所示。ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE1,输出转换得到的数据;OE0,输出数据线呈高阻状态。D7D0为数字量输出线。  CLK为时钟输入信号线。因AD

11、C0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,VREF(),VREF()为参考电压输入。  2 ADC0809应用说明:  (1) ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。  (2) 初始化时,使ST和OE信号全为低电平。  (3) 送要转换的哪一通道的地址到A,B,C端口上。  (4) 在ST端给出一个至少有100ns宽的正脉冲信号。  (5) 

12、是否转换完毕,我们根据EOC信号来判断。  (6) 当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。AT89C51AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,AT

13、MEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且廉价的方案。AT89C51 方框图 1主要特性:  ·与MCS-51 兼容  ·4K字节可编程闪烁存储器  寿命:1000写/擦循环 数据保留时间:10年 ·全静态工作:0Hz-24Hz ·三级程序存储器锁定 ·128*8位内部RAM ·32可编程I/O线 ·两个16位定时器/计数器 &

14、#183;5个中断源  ·可编程串行通道 ·低功耗的闲置和掉电模式 ·片内振荡器和时钟电路  2管脚说明:  VCC:供电电压。     GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,

15、此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。      P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P

16、2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。   P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。  P3口也可作为AT89C51的一些特殊功能口,如下表所示:

17、60;口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。  RST:复位输入。当振荡器复位器件时,要保持

18、RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。    /PSEN

19、:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。   /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。     XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。  

20、   XTAL2:来自反向振荡器的输出。 3振荡器特性:    XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 4芯片擦除:    整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 

21、;来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。 此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 ADC0809与8051单片机的接口设计电路 图3.2控制电路原理图如图3.1所示,为了简化设计电路,给定转速由一个旋转电位器给定一个05V可变模拟电压,通过ADC0809模拟转换器将这一给定05V电压转换成对应的数字

22、信号,將这个数字信号作为控制直流电机转速的给定速度值。旋转电位器一端接5V直流电压,另一端接地,可变输出端接ADC0809模拟量输入通道IN0.当电位器输出电压为5V时即给定转速为1500转/分。这样当给定电压在0-5V之间变化时,其转速后的数字信号相当于0-1500转/分。其输出端8个引脚分别连接8051的P0口。 LED数码显示电路设计 图3.3 LED数码显示电路 本次设计中要将给定的转速电压,用LED数码管显示出来。LED显示器是由发光二极管构成的字段组成的显示器,有8段和16段管两大类,本次设计采用的是8段数码管。显示器有静态显示和动态显示两种方式。动态显示控制的基本原理是,单片机依

23、次发出段选控制字和对应那一位LED显示器的位选控信号,显示器逐个循环点亮。适当选择扫描速度;利用人眼的“留光”效应,使得看上去好像几位几位显示器在同时显示一样,而在动态扫描显示控制中,同一时刻实际上只要一位LED显示器被点亮。单片机控制系统的接口电路中的LED数码显示器使用的是共阴极接法。共阴极接法的原理:将所有发光二极管的阴极互相连接后接地,每个发光二极管的阳极通过电阻与输入端相连,当阳极端输入高电平时,段发光二极管就导通点亮,当阳极端输入低电平时,段发光二极管就不点亮。设计中采用动态显示,单片机控制采用动态扫描显示。动态显示采用软件法把将要显示的十六进制数转化为相应字符码,所以需要在RAM

24、区中建立一个显示缓冲区。显示缓冲区包含的存储单元个数和系统中的LED显示器的个数相等。而显示缓冲区内包含的存储器单元个数需和系统中的LED显示器的个数相等。而显示缓冲区的起始地址很重要,它决定了显示缓冲区在RA M 中的位置。显示缓冲区的每个存储单元用于存放相应LED显示管将要显示字符的字型码地址偏移量,所以CPU可以根据这个地址偏移量通过查字形码表找出所显示字符的字形码,以便字形口显示。AT89C51与直流电机的连接第六章 程序设计定义符号先定于相关的字符LED_0 EQU 40H ;定义符号LED_0代表40HLED_1 EQU 41H ;定义符号LED_1代表41HLED_2 EQU 4

25、2H ;定义符号LED_2代表42HLED_3 EQU 43H ;定义符号LED_3代表43HBIAOZHI EQU 44H;定义符号BIAOZHI代表44HADC EQU 35H ;定义符号ADC代表35HST BIT P3.0 ;定义符号ST代表P3.0端口OE BIT P3.1 ;定义符号OE代表P3.1端口EOC BIT P3.2 ;定义符号EOC代表P3.2端口PWM BIT P3.7 ;定义符号PWM代表P3.7端口主程序的设计主程序赋初值开启外部中断TO等待T0中断;主程序开始MAIN:MOV LED_0,#00H;给LED_0赋初值00HMOV LED_1,#00H;给LED_

26、1赋初值00HMOV LED_2,#00H;给LED_2赋初值00HMOV LED_3,#00H;给LED_3赋初值00HMOV BIAOZHI,#1;给BIAOZHI赋初值1MOV TMOD,#01H;初始化T0定时方式1MOV TH0,0FFH ;装入定时极短的初值,作用只是第一次启动定时器,进而判断P3.7端口的电平再做转换MOV TL0,0F0HSETB P3.7 ;置P3.7高电平SETB EA ;开总中断SETB IT0 ;外部中断0触发方式选择位SETB EX0 ;外部中断0中断允许位SETB ET0 ;T0溢出中断允许位SETB TR0 ;启动T0采样子程序启动ADC采样子程序

27、开始A/D是否完成? 延时 返回 采样是否完成?NYNY;以下START0程序段为读取通道0信息并转换并显示程序段START0:MOV DPTR,#7FF8H;指向通道0MOVX DPTR,A;读取转换数值CLR ST;此语句到第三条语句为启动A/D转换SETB ST;ST置高电平CLR ST ;清零STJNB EOC, $ ;查询A/D转换是否结束SETB OE;允许输出MOVX A,DPTR;读取转换数据开始转化为工程量MOV ADC, A; A/D转换结果存入ADC也即35H单元中 CLR OE ;关闭输出LCALL WAIT;调用转换LCALL DISP;调用显示LJMP START0

28、转换子程序;以下为把通道0读取到的数据转换成BCD码WAIT: ;A/D转换数据转BCD码MOV A, ADC ;把读取到的数据赋值给累加器AMOV B, #51;B赋值51DIV AB;A除B,商赋值给A,余数给BMOV LED_3, A;整数位存入LED_3也即33H单元中 MOV A, B ;B的值传给ACLR F0 ;清零F0SUBB A,#1AH ;A和1AH相减MOV F0,C MOV A,#10 MUL AB;AB相乘MOV B,#51 DIV AB ;A除B,商赋值给A,余数给BJB F0,BCD1 ADD A,#5BCD1:MOV LED_2, A;小数点后第一位存入LED_

29、2也即32H单元中MOV A, B CLR F0 SUBB A,#1AH MOV F0,C MOV A,#10 MUL AB MOV B,#51 DIV AB JB F0,BCD2 ADD A,#5BCD2:MOV LED_1,A;小数点后第二位存入LED_1即31H单元中MOV A, B CLR F0 SUBB A,#1AH MOV F0,CMOV A,#10 MUL AB MOV B,#51 DIV AB JB F0,BCD3 ADD A,#5BCD3:MOV LED_0,A;小数点后第三位存入LED_0即30H单元中 LCALL DISPRET显示子程序DISP: ;显示MOV DPTR

30、,#TABLE ;指针指向表首地址MOV A, LED_0MOVC A, A+DPTR;查询小数点后第三位段码CLR P2.0 ;置零P2.0MOV P1, A;显示小数点后第三位LCALL DELAY ;调用延时子程序SETB P2.0;置P2.0高电平MOV A, LED_1MOVC A,A+DPTR;查询小数点后第二位段码CLR P2.1 ;置零P2.1MOV P1, A ;显示小数点后第二位LCALL DELAY;调用延时子程序SETB P2.1 ;置P2.1高电平MOV A, LED_2MOVC A,A+DPTR;查询小数点后第一位段;CLR P2.2 ;置零P2.2MOV P1,A

31、;显示小数点后第一位LCALL DELAY;调用延时子程序SETB P2.2 ;置P2.2高电平MOV A,LED_3MOVC A,A+DPTR;查询整数位段码;CLR P2.3 ;置零P2.3ORL A,#80H;显示小数点位MOV P1,A;显示整数位LCALL DELAY;调用延时子程序SETB P2.3 ;置P2.3高电平RET ;返回中断子程序中断子程序清零TF0位否判断biaozhi是否为1?是把P3.7置1,定时把P3.7置零,定时返回中断;T0中断子程序PWM_0:CLR TF0 ;清零TF0位MOV A,BIAOZHI ;判断BIAOZHI是否为1,由下面可知,BIAOZHI

32、为1则P3.7为高电平,为0则为低电平JZ PWM_ ;为1则顺序执行,把P3.7置零;为0则跳转PWM_,把P3.7置1MOV TMOD,#01H;T0定时方式1MOV TH0,ADC;装入初值MOV TL0,ADCMOV BIAOZHI,#0 ;BIAOZHI赋值0CPL P3.7 ;P3.7置零SETB TR0 ;启动T0RETI ;返回中断PWM_:MOV A,ADCCPL A ;取反MOV R4,A;MOV A,R3;CPL A;MOV R3,AMOV TMOD,#01H;T0定时方式1MOV TH0,R4 ;装入初值MOV TL0,R4MOV BIAOZHI,#1 ;BIAOZHI

33、赋值1CPL P3.7 ;取反P3.7SETB TR0 ;启动T0RETI ;返回中断第七章 仿真与调试5.1软件介绍(1)Proteus软件介绍Proteus(海神)的ISIS是一款Labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统。 全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势。 具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS一232动态仿真、1 C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等

34、。 目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。 支持大量的存储器和外围芯片。总之该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大 ,可仿真51、AVR、PIC。 (2)keil软件介绍 Keil 软件是目前最流行开发 MCS-51 系列单片 机的软件,这从近年来各仿真机厂商纷纷宣布全面支持 Keil 即可看出。Keil 提供了包括 C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通 过一个集成开发环境(uVision)将这些部份组

35、合在一起。5.2仿真过程操作如下:在Protues中画出系统电路图 将程序在keil中编译并生成hex文件。把在keil中编译生成的HEX文件载入AT89C51芯片中,运行仿真。 第八章 总结两周的课程设计结束了,通过此次课程设计,使我更加扎实的掌握了有关单片机设计方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检验修改环节,本身就是在践行“

36、过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在不懈的努力下,终于迎刃而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可! 课程设计不仅是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思路,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识。附录 程

37、序代码小直流电机控制系统源代码:LED_0 EQU 40H ;定义符号LED_0代表40HLED_1 EQU 41H ;定义符号LED_1代表41HLED_2 EQU 42H ;定义符号LED_2代表42HLED_3 EQU 43H ;定义符号LED_3代表43HBIAOZHI EQU 44H;定义符号BIAOZHI代表44HADC EQU 35H ;定义符号ADC代表35HST BIT P3.0 ;定义符号ST代表P3.0端口OE BIT P3.1 ;定义符号OE代表P3.1端口EOC BIT P3.2 ;定义符号EOC代表P3.2端口PWM BIT P3.7 ;定义符号PWM代表P3.7端

38、口ORG 0000H;主程序入口LJMP MAIN;跳转到MAINORG 000BH;T0中断入口LJMP PWM_0;跳到T0中断子程序PWM_0;主程序开始MAIN:MOV LED_0,#00H;给LED_0赋初值00HMOV LED_1,#00H;给LED_1赋初值00HMOV LED_2,#00H;给LED_2赋初值00HMOV LED_3,#00H;给LED_3赋初值00HMOV BIAOZHI,#1;给BIAOZHI赋初值1MOV TMOD,#01H;初始化T0定时方式1MOV TH0,0FFH ;装入定时极短的初值,作用只是第一次启动定时器,进而判断P3.7端口的电平再做转换MO

39、V TL0,0F0HSETB P3.7 ;置P3.7高电平SETB EA ;开总中断SETB IT0 ;外部中断0触发方式选择位SETB EX0 ;外部中断0中断允许位SETB ET0 ;T0溢出中断允许位SETB TR0 ;启动T0;以下START0程序段为读取通道0信息并转换并显示程序段START0:MOV DPTR,#7FF8H;指向通道0MOVX DPTR,A;读取转换数值CLR ST;此语句到第三条语句为启动A/D转换SETB ST;ST置高电平CLR ST ;清零STJNB EOC, $ ;查询A/D转换是否结束SETB OE;允许输出MOVX A,DPTR;读取转换数据开始转化为

40、工程量MOV ADC, A; A/D转换结果存入ADC也即35H单元中 CLR OE ;关闭输出LCALL WAIT;调用转换LCALL DISP;调用显示LJMP START0;以下为把通道0读取到的数据转换成BCD码WAIT: ;A/D转换数据转BCD码MOV A, ADC ;把读取到的数据赋值给累加器AMOV B, #51;B赋值51DIV AB;A除B,商赋值给A,余数给BMOV LED_3, A;整数位存入LED_3也即33H单元中 MOV A, B ;B的值传给ACLR F0 ;清零F0SUBB A,#1AH ;A和1AH相减MOV F0,C MOV A,#10 MUL AB;AB相乘MOV B,#51 DIV AB ;A除B,商赋值给A,余数给BJB F0,BCD1 ADD A,#5BCD1:MOV

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论