辽宁工业大学单片机与接口技术课程设计(论文)题目:小直流电机调速控制系统院(系):专业班级:学号:学生:指导教师:教师职称:起止时间:2014-6-30至2014-7-11课程设计(论文)任务及评语院(系):教研室:目录第1章绪论 (1)第2章元器件的介绍 (2)2.1AT89C51单片机 (2)2.2ADC0809单片机 (4)2.3DAC0832单片机 (5)第3章方案设计 (7)3.1总设计方案 (7)3.2控制电路 (7)3.3最小系统与显示器 (8)3.3驱动电路 (8)3.4外部中断设置 (9)第4章程序代码 (10)第5章课程设计总结 (36)参考文献...................................................... (38)附录...................................................... .. (39)第1章绪论单片微型计算机的诞生是计算机发展史上的一个新的里程碑。
近年来,随着技术的发展和进步,以及市场对产品功能和性能的要求不断提高,直流电动机的应用更加广泛,尤其是在智能机器人中的应用。
直流电动机的起动和调速性能、过载能力强等特点显得十分重要,为了能够适应发展的要求,单闭环直流电动机的调速控制系统得到了很大的发展。
而作为单片嵌入式系统的核心—单片机,正朝着多功能、多选择、高速度、低功耗、低价格、大存储容量和强I/O功能等方向发展。
随着计算机档次的不断提高,功能的不断完善,单片机已越来越广泛地应用在各种领域的控制、自动化、智能化等方面,特别是在直流电动机的调速控制系统中。
这是因为单片机具有很多优点:体积小,功能全,抗干扰能力强,可靠性高,结构合理,指令丰富,控制功能强,造价低等。
所以选用单片机作为控制系统的核心以提高整个系统的可靠性和可行性。
对直流电机调速器设计的研究,主要实现对电机的控制。
本课程设计主要是通过对电位器的调节实现电机的加速、减速操作。
并实现电路的仿真。
为实现系统的微机控制,在设计中,采用了AT89C51单片机作为整个控制系统的控制电路的核心部分,配以各种显示、驱动模块,实现对电动机转速参数的显示和测量。
设计的整个控制系统,在硬件结构上采用了大量的集成电路模块,大大简化了硬件电路,提高了系统的稳定性和可靠性,使整个系统的性能得到提高。
第2章元器件的介绍2.1 AT89C51单片机ATMEL公司的AT89C51芯片具有以下特性: 4KB片在系统可编程Flash程序存储器;时钟频率为0~33MHz;128字节片随机读写存储器(RAM);32个可编程I/O引脚; 2个16位定时/计数器;6个中断源,2级优先级;全双工串行通信接口;监视定时器;低功耗的闲置和掉电模式。
AT89C51引脚功能介绍:Vcc:AT89C51电源正端输入,接+5V;Vss:电源接地端;XTAL1:单芯片系统时钟的反相放大器输入端;XTAL2:系统时钟的反相放大器输出端;RST/VPD:RST是复位信号,高电平有效,在此引脚上出现两个机器周期以上的高电平将使单片机复位。
RST的第二功能是备用电源VPD的输入端。
EA/:外部程序存储器地址允许输入端/固化编程电压输入端。
当EA端Vpp保持高电平时,单片机复位后访问片存储器ROM。
当程序计数器PC的值超过4KB时,将自动转去执行片外存储器ROM的程序。
当EA端接地保持低电平时,则只访问片外程序存储器,而不管部是否有程序存储器。
ALE/:地址锁存允许信号端。
当访问外部存储器时,地址锁存允许PROGALE(address latch enable)信号的输出用于锁存低8位地址的控制信号,此信号频率为振荡器的1/6。
当不访问片外存储器时,ALE信号可用作对外输出时钟或定时信号。
ALE端可驱动8个LS型TTL负载。
PSEN:程序存储器允许输出信号端(program store enable)。
此端定时输出负脉冲作为读片外存储器的选通信号。
AT89C51可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址围。
PSEN端同样可驱动8个LS型TTL负载。
P0口:P0.0~P0.7。
P0口第一功能是作为通用的I/O口,CPU在传送输入/输出数据时,输出数据可以锁存,输入数据可以缓存;P0口第二功能是当CPU访问片外存储器时,分时提供低8位地址和8位数据的复位总线。
P1口:P1.0~P1.7。
P1口第一功能是作为通用I/O口;P1口第二功能是在对片EPROM编程或校验时输入片EPROM的低8位地址。
P2口:P2.0~P2.7。
P2口第一功能是当不带片外存储器时,作为通用I/O口;P2口第二功能是当带片外存储器时,与P0口配合,传送片外存储器的高8位地址,共同选中片外存储器单元。
P3口:P3.0~P3.7。
P3口除了做通用的I/O口外,作为控制用的第二功能如表3-2所示:表3-2:P3口各位的第二功能P3口的位第2功能注释P3.0 RXD 串行数据接收口P3.1 TXD 串行数据发送口P3.2 INT0 外部中断0输入P3.3 INT1 外部中断1输入P3.4 T0 定时器/计数器0外部输入 P3.5 T1 定时器/计数器0外部输入 P3.6 WR外部RAM写选通信号P3.7 RD外部RAM读选通信号2.2 ADC0809美国国家半导体公司的ADC0809芯片具有以下特性:8路输入通道,8位A/D转换器,即分辨率为8位。
具有转换起停控制端。
转换时间为100μs(时钟为640kHz时),130μs(时钟为500kHz时)单个+5V电源供电模拟输入电压围0~+5V,不需零点和满刻度校准。
工作温度围为-40~+85摄氏度低功耗,约15mW。
ADC0809引脚功能介绍100ns0809转换)。
当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
OE:数据输出允许信号,输入,高电平有效。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
CLK:时钟脉冲输入端。
要求时钟频率不高于640KHZ。
REF(+)、REF(-):基准电压。
Vcc:电源,单一+5V。
GND:地。
注:仿真时只能用ADC0808,与ADC0809功能一样。
2.3 DAC0832D0~D7:8位数据输入线,TTL电平,有效时间应大于90ns(否则DAC0832是8分辨率的D/A转换集成芯片。
与微处理器完全兼容。
这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。
D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。
a.主要特性参数:分辨率为8位稳定时间1us;可单缓冲、双缓冲或直接数字输入;只需在满量程下调整其线性度;单一电源供电(+5V~+15V);低功耗,200mW。
b.芯片结构:锁存器的数据会出错);CS:片选信号输入线(选通数据锁存器),低电平有效;WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。
由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。
由WR1、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的容打入DAC寄存器并开始D/A转换。
IOUT1:电流输出端1,其值随DAC寄存器的容线性变化;IOUT2:电流输出端2,其值与IOUT1值之和为一常数;Rfb:反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;Vcc:电源输入端,Vcc的围为+5V~+15V;VREF:基准电压输入线,VREF的围为-10V~+10V;AGND:模拟信号地DGND:数字第3章方案设计3.1 总方案设计本设计的硬件电路只要包括最小系统与显示器、控制电路、驱动电路三大部分。
最小系统只要是为了使单片机正常工作。
控制电路通过操作电位器来控制电机的转速。
驱动电路主要是对单片机输出的脉冲进行功率放大,从而驱动电机转动。
设计流程图如下:图33.2控制电路图3.2控制电路原理图如图 3.2所示,芯片ADC0808采样电位器的值,并转化为数字信号传给AT89C51,通过上下滑动电位器,来改变电压的大小,由此采样不同的电压值,AT8951通过采样值的大小来调节电机转速。
3.3最小系统与显示器图3.3单片机最小系统或者称为最小应用系统,素质用最少的元件组成的单片机可以工作的系统,对51系列单片机来说,最小系统一般应该包括:单片机、复位电路、晶振电路。
AT89C51的P1口和P2口的高四位控制LED显示屏,P0口接收来自ADC0808的信号。
LED显示屏显示ADC0808采样的电压值。
3.4驱动电路图3.3单片机AT89S51输出的脉宽调制(PWM)信号需经过功率放大才能驱动电机3.5 外部中断设置1)外部中断允许设置中断控制寄存器IE的EX0对应INT0,EX1对应INT1,EA为中断的总开关,若要开放外部中断,只要将IE对应的位和总开关EA置1即可。
如:开放外部中断0的设置:SETB EX0SETB EA开放外部中断0和1的设置:SETB EX0SETB EX1SETB EA(2)外部中断触发方式设置单片机外部中断有两种触发方式,一种是电平触发方式,另一种是脉冲触发方式,单片机外部中断触发方式与TCON的IT位有关。
电平触发设置方法:CLR ITX,为低电平触发方式。
脉冲触发设置方法:SETB ITX=1,为脉冲下降沿触发方式。
在使用外部中断时,如果不进行设置,则为电平触发方式。
(3)外部优先级设置外部中断IN0、INT1的中断优先级的设置是通过设置IP寄存器实现的,IP的PX0对应INT0,PX1对应INT1。
PX置1为高级中断,PX为0为低级中断。
第4章程序代码;============================================================= ====Q0000: LJMP Q02D1;==========================================================================Q0003: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q000B: DB 02H, 03H, 90H ;...;============================================================= =============Q000E: MOV A,R4ORL A,R5JZ Q0023MOV A,R0ORL A,R1JNZ Q002DMOV A,R5RLC AMOV A,R4RLC AINC AJZ Q002ACLR AMOV R4,AMOV R7,AMOV R6,AMOV R5,AQ0022: RET;============================================================= =============Q0023: MOV A,R1RLC AMOV A,R0INC AJNZ Q0022Q002A: LJMP Q01BE;============================================================= =============Q002D: LCALL Q0189ANL A,R0INC AJZ Q003DCLR AXCH A,R4ADD A,#81HJNC Q0040ADD A,R0JNC Q0046Q003D: LJMP Q01C8;============================================================= =============Q0040: ADD A,R0JC Q0046LJMP Q01C5;============================================================= =============Q0046: PUSH ACCMOV A,R3ORL A,R2JNZ Q0090CJNE R1,#80H,Q0055MOV R3,ALJMP Q01B4;============================================================= =============Q0055: MOV A,R7ORL A,R6JNZ Q0075CJNE R5,#80H,Q0064Q005C: MOV A,R3MOV R7,AMOV A,R2MOV R6,AMOV A,R1MOV R5,ASJMP Q004F;============================================================= =============Q0064: MOV A,R1MOV B,R5MUL ABMOV R6,AMOV A,BLJMP Q00F7;============================================================= =============Q006E: MOV A,R1XCH A,R5MOV R1,AMOV R6,AMOV A,R3MOV R7,AQ0075: MOV A,R7MOV B,R1MUL ABMOV R4,AMOV A,BXCH A,R6MOV B,R1MUL ABADD A,R6MOV R7,ACLR AADDC A,BXCH A,R5MOV B,R1MUL ABADD A,R5MOV R6,ACLR AADDC A,BSJMP Q00F7;============================================================= =============Q0090: MOV A,R7ORL A,R6JNZ Q0099CJNE R5,#80H,Q006ESJMP Q005C;============================================================= =============Q0099: MOV A,R7MOV B,R3MUL ABMOV R4,BMOV A,R6MOV B,R3MUL ABADD A,R4MOV R4,ACLR AADDC A,BMOV R0,AMOV A,R7MOV B,R2MUL ABADD A,R4MOV A,BADDC A,R0MOV R4,ACLR ARLC AXCH A,R3MOV B,R5MUL ABADD A,R4MOV A,BADDC A,R3 MOV R0,A MOV A,R6 MOV B,R2 MUL ABADD A,R4 MOV R4,A MOV A,BADDC A,R0 MOV R0,A CLR ARLC AXCH A,R7 MOV B,R1 MUL ABADD A,R4 MOV R4,A MOV A,BADDC A,R0 XCH A,R7 ADDC A,#00H XCH A,R6 MOV B,R1 MUL ABADD A,R7 MOV R7,A MOV A,BMOV R6,ACLR ARLC AXCH A,R1MOV B,R5MUL ABADD A,R6MOV R6,AMOV A,BADDC A,R1XCH A,R5MOV B,R2MUL ABADD A,R7MOV R7,AMOV A,BADDC A,R6MOV R6,ACLR AADDC A,R5Q00F7: MOV R5,ARLC APOP ACCMOV R3,AJNC Q0105INC R3CJNE R3,#00H,Q0111 LJMP Q01C8;============================================================= =============Q0105: MOV A,R4ADD A,R4MOV R4,AMOV A,R7RLC AMOV R7,AMOV A,R6RLC AMOV R6,AMOV A,R5RLC AMOV R5,AQ0111: LJMP Q01A0;============================================================= =============Q0114: DB 75H,0F0H, 20H, 80H, 0EH ;u....;============================================================= =============Q0119: MOV B,#10HSJMP Q0123;============================================================= =============Q011E: DB 75H,0F0H, 08H, 7DH, 00H ;u..}.;============================================================= =============Q0123: MOV R6,#00HMOV R7,#00HRLC AMOV F0,CJNB F0,Q0130LCALL Q0228Q0130: MOV A,R4RLC AJC Q0144MOV A,R7RLC AMOV R7,AMOV A,R6RLC AMOV R6,AMOV A,R5RLC AMOV R5,AMOV A,R4RLC AMOV R4,ADJNZ B,Q0130RET;============================================================= =============Q0144: MOV A,BADD A,#7EHMOV C,F0RRC AXCH A,R4MOV ACC.7,CXCH A,R5XCH A,R6MOV R7,ARET;============================================================= =============Q0152: MOV A,R5SETB ACC.7XCH A,R5RLC AMOV A,R4RLC AMOV F0,CADD A,#81HJC Q0165CLR AQ0160: MOV R7,AMOV R6,AMOV R5,AMOV R4,AQ0164: RET;============================================================= =============Q0165: MOV R4,ACLR AXCH A,R7XCH A,R6XCH A,R5XCH A,R4ADD A,#0E0HJNC Q0180MOV A,#0FFHSJMP Q0160;============================================================= =============Q0173: CLR CXCH A,R4RRC AXCH A,R4XCH A,R5RRC AXCH A,R5XCH A,R6RRC AXCH A,R6XCH A,R7RRC AXCH A,R7Q0180: INC AJNZ Q0173JNB F0,Q0164LJMP Q0228;============================================================= =============Q0189: MOV A,R1SETB ACC.7XCH A,R1RLC AMOV A,R0RLC AMOV R0,AMOV F0,CMOV A,R5SETB ACC.7XCH A,R5RLC AMOV A,R4RLC AMOV R4,AJNC Q019FCPL F0Q019F: RET;============================================================= =============Q01A0: MOV A,R4JNB ACC.7,Q01B4INC R7CJNE R7,#00H,Q01B4INC R6CJNE R6,#00H,Q01B4INC R5CJNE R5,#00H,Q01B4INC R3MOV A,R3JZ Q01C8Q01B4: MOV C,F0MOV A,R3RRC AMOV R4,AMOV A,R5MOV ACC.7,CMOV R5,ARET;============================================================= =============Q01BE: MOV A,#0FFHQ01C0: MOV R4,AMOV R5,AQ01C2: MOV R6,AMOV R7,ARET;============================================================= =============Q01C5: CLR ASJMP Q01C0;============================================================= =============Q01C8: MOV C,F0MOV A,#0FFHRRC AMOV R4,AMOV R5,#80HCLR ASJMP Q01C2;============================================================= =============Q01D3: CJNE R4,#00H,Q01E1CJNE R6,#00H,Q0202MOV A,R7MOV B,R5DIV ABMOV R7,AMOV R5,BRET;============================================================= =============Q01E1: CLR AXCH A,R4MOV R0,AMOV B,#08HQ01E7: MOV A,R7ADD A,R7MOV R7,AMOV A,R6RLC AMOV R6,AMOV A,R4RLC AMOV R4,AMOV A,R6SUBB A,R5MOV A,R4SUBB A,R0JC Q01FBMOV R4,AMOV A,R6SUBB A,R5MOV R6,AINC R7Q01FB: DJNZ B,Q01E7CLR AXCH A,R6MOV R5,ARET;============================================================= =============Q0202: MOV A,R5MOV R0,AMOV B,AMOV A,R6DIV ABJB OV,Q0227MOV R6,AMOV R5,BMOV B,#08HQ0211: MOV A,R7ADD A,R7MOV R7,AMOV A,R5RLC AMOV R5,AJC Q0220SUBB A,R0JNC Q0222DJNZ B,Q0211RET;============================================================= =============Q0220: CLR CSUBB A,R0Q0222: MOV R5,AINC R7DJNZ B,Q0211Q0227: RET;============================================================= =============Q0228: CLR CCLR ASUBB A,R7MOV R7,ACLR ASUBB A,R6MOV R6,ACLR ASUBB A,R5MOV R5,ACLR ASUBB A,R4MOV R4,ARET;============================================================= =============Q0236: SETB 20H.0SETB P3.7Q023A: SETB P3.0CLR P3.0Q023E: JB P3.2,Q0245SETB P3.1SJMP Q023E;============================================================= =============Q0245: MOV R7,P0MOV 1DH,#00HMOV 1EH,R7LCALL Q03E0MOV R4,1DHMOV R5,1EHCLR ALCALL Q0119MOV R3,#48HMOV R2,#0E1HMOV R1,#0FAHMOV R0,#3FHLCALL Q000ELCALL Q0152MOV 1DH,R6MOV 1EH,R7CLR P3.1MOV R4,#00HMOV R5,#0AHLCALL Q01D3MOV A,#09HMOV R0,AMOV A,R0MOV 19H,A MOV R6,1DH MOV R7,1EH MOV R4,#00H MOV R5,#0AH LCALL Q01D3 MOV R4,#00H MOV R5,#0AH LCALL Q01D3 MOV A,#09H ADD A,R5MOV R0,AMOV A,R0MOV 1AH,A MOV R6,1DH MOV R7,1EH MOV R4,#00H MOV R5,#64H LCALL Q01D3 MOV R4,#00H MOV R5,#0AH LCALL Q01D3 MOV A,#09H ADD A,R5MOV R0,AMOV A,R0MOV R6,1DHMOV R7,1EHMOV R4,#03HMOV R5,#0E8HLCALL Q01D3MOV A,#09HADD A,R7MOV R0,AMOV A,R0MOV 1CH,ACLR AMOV 21H,AQ02C0: MOV A,21HSETB CSUBB A,#0C8HJC Q02CALJMP Q023A;============================================================= =============Q02CA: LCALL Q035DINC 21HSJMP Q02C0;============================================================= =============Q02D1: MOV R0,#7FHCLR AQ02D4: MOV R0,ADJNZ R0,Q02D4LJMP Q0318;============================================================= =============Q02DD: LJMP Q0236;============================================================= =============Q02E0: CLR AMOVC A,A+DPTRINC DPTRMOV R0,AQ02E4: CLR AMOVC A,A+DPTRINC DPTRJC Q02ECMOV R0,ASJMP Q02ED;============================================================= =============Q02EC: MOVX R0,AQ02ED: INC R0DJNZ R7,Q02E4SJMP Q031B;============================================================= =============Q02F2: CLR AMOVC A,A+DPTRINC DPTRMOV R0,AADD A,#0CHXCH A,R0CLR CRLC ASWAP AANL A,#0FHORL A,#20HXCH A,R0MOVC A,A+PCJC Q030ACPL AANL A,R0SJMP Q030B;============================================================= =============Q030A: ORL A,R0Q030B: MOV R0,ADJNZ R7,Q02F2SJMP Q031B;============================================================= =============Q0310: DB 01H, 02H, 04H, 08H, 10H, 20H, 40H, 80H ;.......;============================================================= =============Q0318: MOV DPTR,#03B5HQ031B: CLR AMOV R6,#01HJZ Q02DDINC DPTRMOV R7,AANL A,#3FHJNB ACC.5,Q0331 ANL A,#1FHMOV R6,ACLR AMOVC A,A+DPTRINC DPTRJZ Q0331INC R6Q0331: XCH A,R7ANL A,#0C0HADD A,ACCJZ Q02E0JC Q02F2CLR AMOVC A,A+DPTRINC DPTRMOV R2,ACLR AMOVC A,A+DPTRINC DPTRMOV R0,AQ0342: CLR AMOVC A,A+DPTRINC DPTRXCH A,R0XCH A,DPLXCH A,R0XCH A,R2XCH A,DPHXCH A,R2MOVX DPTR,AINC DPTRXCH A,R0XCH A,DPLXCH A,R0XCH A,R2XCH A,DPHXCH A,R2DJNZ R7,Q0342DJNZ R6,Q0342SJMP Q031B;============================================================= =============Q035D: CLR AMOV R3,AMOV R2,AQ0360: MOV R7,03HMOV A,1FHMOV R0,07HINC R0SJMP Q036B;============================================================= =============Q0369: CLR CRLC AQ036B: DJNZ R0,Q0369MOV P2,AMOV A,#19HADD A,R3MOV R0,AMOV A,R0MOV P1,AMOV A,R3XRL A,#02HORL A,R2JNZ Q037FORL P1,#80HQ037F: MOV R7,#01HLCALL Q03CFINC R3CJNE R3,#00H,Q0389INC R2Q0389: MOV A,R3XRL A,#04HORL A,R2JNZ Q0360RET;============================================================= =============Q0390: DB 0C0H,0E0H,0C0H,0D0H, 30H, 00H, 09H,0C2H ;Q0398: DB 0B7H,0C2H, 00H, 85H, 1EH, 8CH, 80H, 0BH ;Q03A0: DB 0D2H,0B7H,0D2H, 00H,0C3H, 74H,0FFH, 95H ;Q03A8: DB 1EH,0F5H, 8CH, 75H, 8AH, 00H,0D2H, 8CH ;Q03B0: DB 0D0H,0D0H,0D0H,0E0H, 32H, 10H, 09H, 3FH ;Q03B8: DB 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH ;Q03C0: DB 6FH, 77H, 7CH, 39H, 5EH, 79H, 71H, 01H ;Q03C8: DB 1FH, 01H, 02H, 1DH, 00H, 00H, 00H ;;============================================================= =============Q03CF: CLR AMOV R6,AQ03D1: MOV A,R6CLR CSUBB A,R7JNC Q03DFCLR AMOV R5,AQ03D8: INC R5CJNE R5,#78H,Q03D8INC R6SJMP Q03D1;============================================================= =============Q03DF: RET;============================================================= =============Q03E0: SETB EASETB ET0MOV TMOD,#01HMOV TH0,1EHCLR AMOV TL0,ASETB TR0RET;============================================================= =============第5章仿真与调试5.1软件介绍Proteus软件介绍Proteus(海神)的ISIS是一款Labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统。