c51什么是单片机机题目

本文为大家带来两个89C51什么是单片機机的步进电动机控制系统设计

89C51什么是单片机机的步进电动机控制系统设计一

系统整图如图1所示,本系统采用外部中断方式p0口作为信號的输入部分,p1口为发光二极管显示部分p2口作为电机的驱动部分。

利用LM7812和LM7805芯片得到12V和5V的电压它们的应用要注意以下几点:

(1)输入输絀压差不能太大,太大则转换效率急速降低而且容易击穿损坏;

(2)输出电流不能太大,1.5A 是其极限值大电流的输出,散热片的尺寸要足够大否则会导致高温保护或热击穿;

(3)输入输出压差也不能太小,大小效率很差 其中12V电压给步进电机供电,5V电压则给什么是单片機机供电分别如图2、图3所示。

(1)产生12V的电压给步进电机供电

(2)产生5V的电压给什么是单片机机供电

本次设计选用的是什么是单片机机嘚P0口来控制信号的输入所以把按键开关和P0口连接起来,当按下开关S1时相当于给P0.0口一个低电平;当按下开关S2时,相当于给P0.1口一个低电平;当按下开关S3时相当于给P0.2口一个低电平;当按下开关S4时,相当于给P0.3口一个低电平;当按下开关S5时相当于给P0.4口一个低电平。然后通过什麼是单片机机实行相应的操作如图4。

此电路是步进电机的驱动部分我选用的是ULN2004芯片来驱动的,ULN2004系列是一款高耐压大电流达林顿管驱動器,包含7个NPN达林顿管如图5。

状态指示用P1口控制发光二极管的显示如果相应端口是低电平,相应的发光二极管就会亮用它来表示步進电机所处的状态。

时钟电路是计算机的心脏它控制着计算机的工作节奏,可以通过提高时钟频率来提高CPU的速度本次设计采用的晶振為12MHz。如图6

系统分为电机正转、电机反转、电机加速与电机减速的几部分组成,其主程序框图如图7所示

查键程序用于判断P0.0口与P0.1口的值,當p0.0口为0时电机正转,当p0.0口为1时继续判断p0.1口的值,p0.1口为0时电机反转。如图8所示

系统初始化之后,前进子程序R0用于给P2口送不同的值根据电机转动的相序,使电机正向转动P2口的值分别为01H,03H02H,06H04H,0CH08H,09H流程图如图9所示。

电机反转原理与正转相似此时P2口的值分别为09H,08H0CH,04H06H,02H03H,01H流程图如图10所示。

图10 后退部分流程图

当电机正转或反转的时候按下加速键,调用加速子程序使电机每转动一步的延時时间变短,从而实现电机的加速流程图如图11所示。

图11 加速部分流程图

电机正转或反转的时候按下减速键,通过改变电机每转动一步嘚延时时间使时间变长,从而实现电机减速流程图如图12所示。

89C51什么是单片机机的步进电动机控制系统设计二

步进电机控制系统主要由什么是单片机机、PC上位机、驱动电路、步进电动机、4*4键盘和LED显示等模块组成下图为步进电机控制系统是总体结构图。什么是单片机机产苼脉冲信号并将脉冲信号传送给步进电动机完成对步进电动机的步数和圈数的准确计数,从而实现对步进电动机的转速控制PC上位机模塊是系统的核心,通过串口向什么是单片机机发送控制命令实现PC机对步进电动机的实时控制,并实时显示步进电动机的运行状态4*4键盘模块实现指令输入,LED显示模块可显示步进电动机的转速和转向等运行状态为保护什么是单片机机控制系统硬件电路,在什么是单片机机囷步进电机之间增加过驱动电路

由于步进电动机的驱动电流比较大,步进电动机较大驱动电流的通断会造成电磁干扰进而会影响什么昰单片机机的正常工作。因而什么是单片机机与步进电动机之间的驱动电路就显得尤为重要本系统采用74LS04非门与有光电隔离的4N29达林顿管组荿驱动电路,这样不仅避免了在驱动电路发生故障造成高电压、大电流进入什么是单片机机而烧毁器件。同时割断了驱动电路与什么是單片机机控制电路之间的电气连接另外步进电动机的启停和正反转分别由S1,S2控制硬件接线图如下图所示。

步进电机与什么是单片机机硬件接线图

什么是单片机机程序判断步进电机是否启动;若启动则进一步判断其旋转方向;然后按照既定的旋转方向传送控制脉冲序列再加仩脉宽延时即可。每走一步步数减1并判断步数是否为零,从而决定是否送下一个脉冲序列其控制状态如下表所示。

由上表可以看出輸出的不同状态字,表示不同的励磁方式P1=0x06H,表示A相通电其它两相断电:P1=0x05H,表示B相通电其它两相断电;P1=0x03H,表示C相通电其它两相断电。若以次给P1口送0X06H0X05H,0X03H则步进电机通电顺序为A——B——C——A相。反之若以次给P1口送0X03H0X05H,0X06H则步进电机通电顺序为C——B——A——C相。从而用软件实现了步进电机的正反转控制步进电机的旋转速度可以用脉冲宽度,即送出控制状态字后的延时时间长短来控制

软件设计流程框图洳下图所示。

声明:本文由入驻电子说专栏的作者撰写或者网上转载观点仅代表作者本人,不代表电子发烧友网立场如有侵权或者其怹问题,请联系举报

“不用这么客气”刘豫笑笑,輕轻摆手“我就是想问问你,你觉得绍廷对你怎么样”“可我也不是什么好人。”夏阮同房主通过电话确认楼栋号后,便驱车一路過去

第31章“对,如果是宋若韵的话倒是也好解释了。”刘豫说着似乎就打算将内存卡给收起来,“唉不过我就奇怪了为什么要逮著你们俩拍,不就是一道回去能引出什么话题?”女孩的音色柔软而清澈在这片朦胧夜色中,溅起圈圈涟漪什么是单片机机c51最小系統原理图陆绍廷见眼前人儿双颊绯红,不由哑然失笑心想真是个不经逗的小姑娘,便也不难为她直起身对她笑笑:“以后叫我名字就恏,如果现在改不过来就先随你顺口。”

什么是单片机机c51最小系统原理图他垂眸瞧着怀中的她嗓音低沉,含着几分意味不明的沙哑:“做出这么可爱的举动还想反悔?”结束今日拍摄任务后景舒窈便凑到陆绍廷旁边,贴心地递过去瓶纯净水:“呐前辈我特意拿了兩瓶呢。”“既然是你送我的”他弯唇,笑得人畜无害:“帮我系上没问题吧?”

“贺先生你好。”景舒窈颔首笑应:“待会要麻煩你带我看看房子啦”主持人:“……”因为居民要给他们的任务竟然是――什么是单片机机c51最小系统原理图

开始写中断函数之前我们来一起回顾一下,什么是单片机机的中断系统

      中断的意思(学习过微机原理与接口技术的同学,没学过什么是单片机机也应该知道),我們在这里就不讲了首先来回忆下中断系统涉及到哪些问题。

     (1)中断源:中断请求信号的来源(8051有3个内部中断源T0,T1串行口,2个外部Φ断源INT0INT1(这两个低电平有效,上面的那个横杠不知道怎么加上去))

     (2)中断响应与返回:CPU采集到中断请求信号怎样转向特定的中断垺务子程序,并在执行完之后返回被中断程序继续执行期间涉及到CPU响应中断的条件,现场保护现场恢复。

     (3)优先级控制:中断优先級的控制就形成了中断嵌套(8051允许有两级的中断嵌套优先权顺序为INT0,T0INT1,T1串行口),同一个优先级的中断还存在优先权的高低。优先级是可以编程的而优先权是固定的。

      80C51的原则是①同优先级先响应高优先权②低优先级能被高优先级中断③正在进行的中断不能被同┅级的中断请求或低优先级的中断请求中断。

     (2)中断控制寄存器:定时和外中断控制寄存器TCON(包括T0、T1INT0、INT1),串行控制寄存器SCON中断允許寄存器IE,中断优先级寄存器IP

      具体的是什么包括哪些标志位,在这里不讲了所有书上面都会讲。

     (2)CPU响应中断后在边沿触发方式下,IE0(外部中断INT0请求标志位)和IE1由硬件自动清零;在电平触发方式下不能自动清楚IE0和IE1。所以在中断返回前必须撤出INT0和INT1引脚的低电平否则僦会出现一次中断被CPU多次响应。

     (3)串口中断中CPU响应中断后,TI(串行口发送中断请求标志位)和RI(接收中断请求标志位)必须由软件清零

C51语言允许用户自己写中断服务子程序(中断函数)

首先来了解程序的格式:

m为中断源的编号,有五个中断源取值为0,1,2,3,4,中断编号会告訴编译器中断程序的入口地址执行该程序时,这个地址会传个程序计数器PC于是CPU开始从这里一条一条的执行程序指令。

n为什么是单片机機工作寄存器组(又称通用寄存器组)编号共四组,取值为0,1,2,3

这5个中断源的中断入口地址为:(在上一篇文章中讲到的ROM前43个存储单元就是怹们这40个地址用来存放中断处理程序的地址单元,每一个类中断的存储单元只有8B显然不是中断处理的程序,而是存放着中断处理程序嘚真正地址)

中断向量(中断入口地址)= 中断号x8 +3

      前面m意思很清楚不同的m值表示这个函数是针对不同的中断源,比如m为1是表示它是定时器0嘚中断函数

      那么后面的using n 又是什么意思呢?在正在执行一个特定任务时有更紧急的事情需要CPU来处理,涉及到中断优先权高优先权中断低优先权正在处理的程序,所以最好给每个优先程序分配不同的寄存器组

      CPU正在处理某个事件,突然另外一个事件需要处理于是进入中斷后,而你不想将现在执行的程序的各寄存器状态入栈那么可以把这个中断程序放入另一个寄存器组,如切换到1组然后退出中断时,洅切回到0组(原来的程序在0组)

      为了更好的了解这里意思,你可以看看工作寄存器组的作用是什么

下面的注意事项转自网络上其他朋伖的文章(整理下,重复的去掉了写的非常好):

(1)中断函数不能进行参数传递

(2)中断函数没有返回值

(3)在任何情况下都不能直接调用中断函数

(4)中断函数使用浮点运算要保存浮点寄存器的状态。 

(5)如果在中断函数中调用了其它函数则被调用函数所使用的寄存器必须与中断函数相同,被调函数最好设置为可重入的 

(6)C51编译器对中断函数编译时会自动在程序开始和结束处加上相应的内容,具體如下:在程序开始处对ACC、B、DPH、DPL和PSW入栈结束时 出栈。中断函数未加using n修饰符的开始时还要将R0~R1入栈,结束时出栈如中断函数加using n修饰符,則在开始将PSW入栈后还要修改PSW中的工作寄存器组选择位

(7)C51编译器从绝对地址8m+3处产生一个中断向量,其中m为中断号也即interrupt后面的数字。该姠量包含一个到中断函数入口地址的绝对跳转

(8)中断函数最好写在文件的尾部,并且禁止使用extern存储类型说明防止其它程序调用。

(9)在设计中断时要注意的是哪些功能应该放在中断程序中,哪些功能应该放在主程序中一般来说中断服务程序应该做最少量的工作,這样做有很多好处首 先系统对中断的反应面更宽了,有些系统如果丢失中断或对中断反应太慢将产生十分严重的后果这时有充足的时間等待中断是十分重要的。其次它可使中断服务程 序的结构简单不容易出错。中断程序中放入的东西越多他们之间越容易起冲突。简囮中断服务程序意味着软件中将有更多的代码段但可把这些都放入主程序 中。中断服务程序的设计对系统的成败有至关重要的作用要仔细考虑各中断之间的关系和每个中断执行的时间,特别要注意那些对同一个数据进行操作的ISR.


我要回帖

更多关于 什么是单片机 的文章

 

随机推荐