单片机课程设计

发布 2022-10-04 22:36:28 阅读 2572

概述。直流电机由于调速性能好、起动力矩大。在现代电子产品中,自动控制系统,电子仪器设备、家用电器、电子玩具等等方面,直流电机都得到了广泛的应用。所谓“调速性能”,是指电动机在一定负载的条件下,根据需要,人为地改变电动机的转速。

直流电动机可以在重负载条件下,实现均匀、平滑的无级调速,而且调速范围较宽。起动力矩大,是可以均匀而经济地实现转速调节。大家熟悉的录音机、录相机、cd机等,都不能缺少直流电机。

所以直流电机的控制是一门很实用的技术。

本直流电机的控制课程设计采用mcs-5l单片机设计直流电机控制系统,控制功率为5w,额定电压为24v的直流电动机电动机,实现电动机启动——正转(2min)——停止——反转(2min)——停止的过程。本设计的该控制过程由c语言编程实现。

主要元器件介绍。

直流电机。直流动机电机是将直流电能转换成机械能的装置,其结构由定子和转子两大部分组成。当其运行时,静止不动的部分成为定子,定子的主要作用是产生磁场,由机座、主磁极、换向极、端盖、轴承和电刷装置等组成。

运行时转动的部分称为转子,其主要作用是产生电磁转矩和感应电动势,是直流电机能量转换的枢纽,所以通常又称为电枢,由转轴、电枢铁心电枢绕组、换向器和风扇等组成。直流电动机的结构是由直流电源、直流电机、控制开关和调速器组成。

图2.1 电动机。

stc89c52单片机。

本系统采用的是stc89c52单片机作为控制核心,stc89c52是一种低功耗、高性能cmos8位微控制器,具有 8k 在系统可编程flash 存储器。在单芯片上,拥有灵巧的8 位cpu 和在系统可编程flash,使得stc89c52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能:

8k字节flash,节ram, 32 位i/o 口线,看门狗定时器,内置4kb eeprom,max810复位电路,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 stc89x52 可降至0hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,cpu 停止工作,允许ram、定时器/计数器、串口、中断继续工作。

掉电保护方式下,ram内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35mhz,6t/12t可选。该单片机的20和40脚分别是gnd和vcc。

18和19脚接的是11.0592mhz的晶振,在加上两个30p的瓷片电容接地。晶振是给单片机提供脉冲的。

本系统使用p1口的三个管脚作为输出控制端,用来控制l298n的运行。单片机是整个实验板的核心部件,通过它编写程序,写入到单片机内部,控制其它部件实现其自身的功能。

图2.2 stc89c52芯片引脚。

硬件电路模块。

电机控制模块。

由于单片机输出的电流较小,无法驱动电机正常运行,所以使用l298n驱动集成电路,它属于h桥集成电路,与l293d的差别是其输出电流增大,功率增强。其输出电流为2a,最高电流4a,最高工作电压50v,可以驱动感性负载,如大功率直流电机,步进电机,电磁阀等,特别是其输入端可以与单片机直接相联,从而很方便地受单片机控制。当驱动直流电机时,可以直接控制步进电机,并可以实现电机正转与反转,实现此功能只需改变输入端的逻辑电平。

为了避免电机对单片机的干扰,本模块加入光耦,进行光电隔离,从而使系统能稳定可靠的工作。所以本系统使用l298n用来控制直流电机的正转、反转。它的使能端ena接到单片机的p1.

5管脚。使能端是高电平有效。输入控制端in1、in2接到单片机的p1.

6、p1.7管脚。输出端out1、out2接到电机的两端,分别给in1、in2不同的高低电平就可以控制电机的正传反转。

图3.1 电机控制模块。

定时器模块。

51单片机16位的定时/计数器分别由两个8位专用寄存器组成,即:t0由th0和tl0构成;t1由th1和tl1构成。其访问地址依次为8ah-8dh。

每个寄存器均可单独访问。这些寄存器是用于存放定时或计数初值的。此外,其内部还有一个8位的定时器方式寄存器tmod和一个8位的定时控制寄存器tcon。

这些寄存器之间是通过内部总线和控制逻辑电路连接起来的。

16位的定时器/计数器实质上就是一个加1计数器,其控制电路受软件控制、切换。当定时器/计数器为定时工作方式时,计数器的加1信号由振荡器的12分频信号产生,即每过一个机器周期,计数器加1,直至计满溢出为止。显然,定时器的定时时间与系统的振荡频率有关。

因一个机器周期等于12个振荡周期,所以计数频率fcount=1/12osc。如果晶振为12mhz,则计数周期为: t=1/(12×106)hz×1/12=1μs,这是最短的定时周期。

若要延长定时时间,则需要改变定时器的初值,并要适当选择定时器的长度。当定时器/计数器为计数工作方式时,通过引脚t0和t1对外部信号计数,外部脉冲的下降沿将触发计数。计数器在每个机器周期的s5p2期间采样引脚输入电平。

所以检测一个由1至0的跳变需要两个机器周期,故外部事年的最高计数频率为振荡频率的1/24。

图3.2 定时器模块。

控制寄存器定时器/计数器t0和t1有2个控制寄存器-tmod和tcon,它们分别用来设置各个定时器/计数器的工作方式,选择定时或计数功能,控制启动运行,以及作为运行状态的标志等。其中,tcon寄存器中另有4位用于中断系统。

定时器方式控制寄存器tmod在特殊功能寄存器中,字节地址为89h,无位地址。tmod的高4位用于t1,低4使用于t0,4种符号的含义如下: gate:

门控制位。gate和软件控制位tr、外部引脚信号int的状态,共同控制定时器/计数器的打开或关闭。 c/t:

定时器/计数器选择位。c/t=1,为计数器方式;c/t=0,为定时器方式。 m1m0:

工作方式选择位,定时器/计数器的4种工作方式由m1m0设定。

表3-1 定时器/计数器工作方式设定。

定时器/计数器方式控制寄存器tmod不能进行位寻址,只能用字节传送指令设置定时器工作方式,低半字节定义为定时器0,高半字节定义为定时器1。复位时,tmod所有位均为0。

复位电路模块。

复位电路的第一功能是上电复位。一般微机电路正常工作需要供电电源为5v±5%,即4.75~5.

25v。由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当vcc超过4.75v低于5.

25v以及晶体振荡器稳定工作时,复位信号才被撤除,微机电路开始正常工作。单片机复位电路主要有四种类型:(1)微分型复位电路;(2)积分型复位电路;(3)比较器型复位电路;(4)看门狗型复位电路。

isa总线的复位信号到南桥之间会有一个非门,跟随器或电子开关,常态时为低电平,复位时为高电平。vcc上电时,c充电,在10k电阻上出现电压,使得单片机复位;几个毫秒后,c充满,10k电阻上电流降为0,电压也为0,使得单片机进入工作状态。工作期间,按下s,c放电。

s松手,c又充电,在10k电阻上出现电压,使得单片机复位。几个毫秒后,单片机进入工作状态。

图3.3 复位电路。

程序设计。主程序流程图。

图4.1 主程序流程图。

主程序源**。

根据流程图,设计主程序**如下:

#include<>

#include <>

#define uchar unsigned char

#define uint unsigned int

sbit en1=p1^5;

sbit s1=p1^6;

sbit s2=p1^7;

uint t=0;

void delayms(unsigned int ms) /延时ms

unsigned char i;

while(ms--)

if(t==2400||t==4800)//定时两分钟到延时。

void timer1() interrupt 1 //定时器中断。

th1=(65536-50000)/256;

tl1=(65536-50000)%256;

t++;总结。

经过系统调试,电机工作正常,可完成设计预期的电动机启动——正转(2min)——停止——反转(2min)——停止的过程。本设计主要优点是利用单片机做主控芯片,电路功能容易扩展,硬件电路相对比较简单,用c语言编程,直观高效,效果比较理想。

经过本次的单片机课程设计,我巩固了以前所学的51单片机课程理论知识,进一步深入了l298n驱动集成电路的工作原理,并结合c语言编程知识,完成了本次课程设计。。在设计过程中,我对以前所学习的知识查缺补漏,并结合设计题目,学习了一些新的相关知识,最后完成了本次课程设计。但是,在这个过程中,也发现了我身上存在的如部分知识点掌握得不够清晰,专业软件操作不够熟练等的不足,在以后的课程设计过程中我会注重提高和完善。

参考文献。1] 单片微型计算机与接**术,李群芳、黄建编著,电子工业出版社;

2] 单片机原理及应用,张毅刚编著,高等教育出版社;

3] 51系列单片机及c51程序设计,王建校,杨建国等编著,科学出版社;

4] 单片机原理及接**术,李朝青编著,北京航空航天大学出版社。

#include<>

#include <>

#define uchar unsigned char

#define uint unsigned int

sbit en1=p1^5;

sbit s1=p1^6;

sbit s2=p1^7;

uint t=0;

void delayms(unsigned int ms) /延时ms

unsigned char i;

while(ms--)

if(t==2400||t==4800)//定时两分钟到延时。

void timer1() interrupt 1 //定时器中断。

th1=(65536-50000)/256;

tl1=(65536-50000)%256;

t++;

单片机课程设计

可变程序控制器是集微机技术 自动化技术 通讯技术于一体的通用工业控制装置。它可靠性强 性能 比高 使用方便,已在工业控制的各个领域里得到了极为广泛的应用,成为实现工业自动化的一种强有力的工具 1 plc的定义有许多种。国际电工委员会 iec 对plc的定义是 可编程控制器是一种数字运算操作的电子系统...

单片机课程设计

目录。内容提要2 关键词2引言3 一 硬件电路设计3 一 电路板原理3 二 电路元器件3 二 软件设计3 一 秒钟设计方案3 二 时钟设计方案4 结语7单片机时钟设计。内容摘要 一 在实验板上用动态扫描显示00 59秒钟,具体要求如下 一 6m晶振 二 l9 l10显示00 59十进制数并循环,间隔...

单片机课程设计

1 选题背景。1.1 家庭智能防盗报警系统设计的背景及目的。随着经济的发展,人们对防盗 防劫 防火保安设备的需求量大大增加。针对偷盗 抢劫 火灾 煤气泄漏等事故进行检测和报警的系统,其需求也越来越高。家居智能是以家为平台,兼备建筑 自动化,智能化于一体的高效 舒适 安全 便利的家居环境。自动化的家居...