




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机关键技术基础详解(一)单片机被广泛应用于工业控制,家电,消费电子,医疗电子,仪表测量等领域,为应广大初级电子工程师/单片机爱好者之需,电子发烧友隆重策划整合推出单片机关键技术基础详解系列技术文章,以后会陆续推出其他章节,敬请广大工程师朋友继续关注和留意。一、关于C51单片机的中断号以及中断向量1、中断号2、interrupt 和 using 在C51中断中的使用8051 系列 MCU 的基本结构包括:32 个 I/O 口(4 组8 bit 端口);两个16 位定时计数器;全双工串行通信;6 个中断源(2 个外部中断、2 个定时/计数器中断、1 个串口输入/输出中断),两级中断优先级;128 字节内置RAM;独立的 64K 字节可寻址数据和代码区。中断发生后,MCU 转到 5 个中断入口处之一,然后执行相应的中断服务处理程序。中断程序的入口地址被编译器放在中断向量中,中断向量位于程序代码段的最低地址处,注意这里的串口输入/输出中断共用一个中断向量。8051的中断向量表如下:二、CPU与单片机的复位电路的作用及基本复位方式在上电或复位过程中,控制CPU的复位状态:这段时间内让CPU保持复位状态,而不是一上电或刚复位完毕就工作,防止CPU发出错误的指令、执行错误操作,也可以提高电磁兼容性能。无论用户使用哪种类型的单片机,总要涉及到单片机复位电路的设计。而单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性。许多用户在设计完单片机系统,并在实验室调试成功后,在现场却出现了“死机”、“程序走飞”等现象,这主要是单片机的复位电路设计不可靠引起的。基本的复位方式单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位。1、手动按钮复位手动按钮复位需要人为在复位输入端RST上加入高电平(图1)。一般采用的办法是在RST端和正电源Vcc之间接一个按钮。当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。手动按钮复位的电路如所示。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。图12、上电复位AT89C51的上电复位电路如图2所示,只要在RST复位输入引脚上接一电容至Vcc端,下接一个电阻到地即可。对于CMOS型单片机,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至1?F。上电复位的工作过程是在加电时,复位电路通过电 容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。上电时,Vcc的上升时间约为10ms,而振荡器的起振时间取决于振荡频率,如晶振频率为10MHz,起振时间为1ms;晶振频率为1MHz,起振时间则为10ms。在图2的复位电路中,当Vcc掉电时,必然会使RST端电压迅速下降到0V以下,但是,由于内部电路的限制作用,这个负电压将不会对器件产生损害。另外,在复位期间,端口引脚处于随机状态,复位后,系统将端口置为全“l”态。如果系统在上电时得不到有效的复位,则程序计数器PC将得不到一个合适的初值,因此,CPU可能会从一个未被定义的位置开始执行程序。图23、积分型上电复位常用的上电或开关复位电路如图3所示。上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。根据实际操作的经验,下面给出这种复位电路的电容、电阻参考值。图3中:C:=1uF,Rl=lk,R2=10k图3 积分型上电复位电路三、单片机双机并行通信中所遇问题 1 引言本系统采用的CPLD为 ATMEL公司生产的ATF1540AS器件,该器件是一种高性能、高密度复合可编程逻辑器件,简称CPLD,它利用ATMEL 的电可擦除存储器技术,有 64个逻辑宏单元和68个I/O端口,很容易和多个TTL、SSI、MSI、LSI和经典的PLDS组合使用。每个宏单元包括积项和积项多路选择器、 OR/XOR/CASCADE逻辑、触发器、输出选择和使能、输入逻辑阵列五个部分。ATF1504AS的增强选路开关增加了可用的门计数,提高了管脚锁存设计修改的成功率。图1 双机通信框图2 系统结构系统的CPU采用W77E58,由ATF1504AS构成通信接口,系统框图如图1所示。2.1 问题提出电脑刺绣机为达到良好的人机界面交互功能,采用上下位机方式,下位机主要进行绣花动作的控制,上位机主要进行花样的跟踪。为了实现绣花的同时在液晶屏上进行绣花跟踪,单CPU方式存在系统资源透支, CPU处理数据将十分困难,于是提出了采用双CPU的工作方式,但同时带来一个问题双CPU的通信问题。2.2 解决方案(1) 采用串行通信方式优点:在由单片机组成的多机方式中,串行接口方式是最常用的。串行通信方式接口电路简单,可以方便实现长距离传输。抗干扰能力比较好。缺点:传输数据慢,不适合实时数据传输。在数据传输要求高的情况下,容易造成瓶颈堵塞现象。(2) 采用并行通信方式优点:并行通信传输数据快,适合进行实时控制。缺点:抗干扰能力差,不适合长距离传输,最大距离不超过5m。由于本系统对数据传输的实时性要求比较高,并且上下位机之间的距离不超过3m,进行适当的抗干扰措施,完全可以达到系统的要求,所以确定采用并行通信方式。2.3 具体措施(1) 采用ATF1504AS(可编程逻辑器件)进行并行通信,减少分立器件所产生的杂散电容而带来的噪声干扰。(2) 在输入数据端加斯密特电路(74LS14),将外部传输线上耦合噪声滤除掉。从而提高总线接收的抗干扰性能。(3) 采用三态门驱动方式可以提高总线的抗干扰能力,因为三态门有三种状态输出,既所谓的低阻高电平、低阻低电平、高阻态(禁态)。由于三态门的输入具有的三态性,所以使三态门的信号源的负担减轻。有利于提高速度和抗干扰能力。3 双CPU通信原理设计3.1 双CPU通信原理图从图2双CPU通信原理图中可以看出,在输入接口上都接上74LS14斯密特电路和74LS244三态门驱动器,以提高抗干扰能力。在SRZB、SCYX(上位机)及SRZB、SCYX(下位机)的握手信号线上接入74LS14斯密特电路,以提高抗干扰能力。图2 双机通信原理图3.2 ATF1504AS内部原理图由于篇幅有限,仅列出上位机的ATF1504AS的内部原理图如图3,下位机的ATF1504AS的内部原理图与此相类似。图3 ATF1504AS内部原理图4 系统工作原理4.1 上位机输入数据如图3所示。在输入数据以前,通过对U1(74173)给U2(D触发器)进行初始化,即对U2的CLRN端输入一上升沿的脉冲,使U2清零。此时上位机 SRYX端为低电平,ZDQQ端为高电平。此时为接收数据做好准备。当下位机接收到上位机的SRYX端输出的低电平时,就可以发送数据到锁存器中,紧接着给上位机的SRZB端输出一个上升沿脉冲,U2的Q端(SRYX端)输出正脉冲,ZDQQ端经过反相器输出负脉冲。上位机在检测到ZDQQ端为低电平时,将数据线上的数据取出。紧接着通过对UI给U2进行进行初始化,完成对一个字节的读取,并为读取下一个字节做好准备。上位机输入数据信号波形图如图5所示。图4 上位机输出数据时信号波形图图5 上位机输入数据时信号波形图4.2 上位机输出数据如图3所示在输出数据以前,通过对U1 (74173)给U3(D触发器)进行初始化,即对U3的PRN端输入一上升沿的脉冲,使U3输出置1。此时上位机的SCZB端经反相器输出低电平,U3 的Q端为高电平。此时为发送数据做好准备。当上位机的SCYX端接收输入的上升沿脉冲时,U3的Q端为低电平,当CPU检测到Q端为低电平时,就可以发送数据到锁存器中,紧接着通过上位机的SCZB端向下位机SRZB端输出一个上升沿脉冲。表示已发送数据,接着通过对U1给U2进行进行初始化。完成对一个字节的输出,并为输出下一个字节做好准备,上位机输出数据信号波形图如图4所示。5 软件设计 5.1 程序流程设计图6示出输入数据流程图,图7示出输出数据流程图。图6 输入数据流程图7 数据输出程序流程图5.2 部分程序清单(1) 输入数据程序清单ORG 0000HJMP STARTORG 0003HJMP RESEVESTART: MOV TCON,#0 ;设置中断INT0MOV TMOD,#11HCALL SZSRDK ;设置输入端口MOV IE,#81HMOV IP,#1 ;开中断。.。.。.RESEVE: CLR EA ;开中断PUSH PSWPUSH DPHPUSH DPLRESEV1: JB ZDQQ,RESEV1;判ZDQQ是否为低MOV DPTR,#ADDR0;为U5(输入数据端口)的地址MOVX A, DPTR。.。.CALL SZSRDKPOP DPLPOP DPHPOP PSWSETB EARETISZSRDK: CLRN EQU 2CH.0CLR CLRN ;MOV DPTR,#ADDR1;为U1的地址MOV A,2CHMOVX DPTR,ASETB CLRNMOV A,2CHMOV DPTR,#ADDR1MOVX DPTR,ARET(2) 输出数据程序清单SEND: MOV DPTR,#ADDR3MOVX A,DPTRJB ACC.0,SEND;为U3的Q端输出MOV DPTR,#ADDR4;为U4(输出端口)的地址MOVX DPTR,ACALL SZSCDKRETSZSCDK: PRN EQU 2CH.1SETB PRNMOV DPTR,#ADDR1;为U1的地址MOV A,2CHMOVX DPTR,ACLR PRNMOV DPTR,#ADDR1MOV A,2CHMOVX DPTR,ARET6 结束语设计中采用了AT1504AS器件,该器件实现了硬件设计软件化,方便了硬件设计,缩短了设计周期,降低了设计成本,应用也十分方便,该系统经过采取以上措施后,以达到最初的设计要求。现产品已投放市场,市场的反映良好。四、PIC单片机软件开发技巧项目是有关机器人控制的实现。控制部分采用PIC16F7X系列单片机,运用汇编语言编程,运行速度较快,能够达到系统的要求。在这里使用的大多是数字信号的控制,电机的控制只有开和合两种状态。在动作的过程中需要两只手臂、身体、头部、脚部等的协调动作。整个控制系统比较复杂,因而在PIC程序编写和空间分配方面需要注意一些问题。1 动作标志位的使用在整个控制中,组合的动作很多,当所有动作定位都通过光电开关控制时,在程序编写上就有一些问题。如要求左手上升到鼓掌位、右手上升到举手位(手初始位置在最下的放下位),光电开关0有效(即为0时是挡住),到达正确位置。用简单的理解可以写成下面的程序:list P=16c73call lefthandupcall righthandupLO call readinsignalbdss csl_v,1efthandligbtscall lefthandstopbtfsc csl_v,righthandlight4goto L0call righthandstopL1 call readinsignalbtfsc csl_v,lefthandlight3goto L1call lefthandstop:lefthandlight表示光电开关,由此判断是否到相应的位置。1表示在手臂最下面的位置;2表示在手臂的握手位置;3表示在手臂的鼓掌位置;4表示在手臂的高举手位置。上面程序描写左手臂上升到举手位置和右手臂上升到鼓掌位置并停止的过程。先判断左手到达否,到达则左手停止,接着看右手是否到达举手位,到达则停止,否则循环上述的检测,直到左手到达鼓掌位,右手到达举手位。注意,这里的3,4表示的就是鼓掌位,举手位。经过循环检测可以让手臂停在各位上,然而机械动作是有惯性的,机械停止位可能在该位的上一点或下一点,这就影响下面动作的进行,可能在若干动作后机械动作出现失常,也就是程序没法正常的运行。在此情况下,需要修改程序的编写方式,采用标志位来控制动作的进行。如果采用控制标志位,一定要在动作子函数中对标志位置零。程序如下:list p=16c73:actlonstopflag equ Ox6e ;位定义lefthandfla8 cqu 0x0 ;0表示停止左手动作rightbandflag equ Oxl ;O表示停止右手动作:movlw Ox03movWf actionstopflagcall lefthanduocall righthandupL2 call readinsignalbtfss csl_v,lefthandhght3call lefthatldotopbtfss csl_v,righthandlight4call righthandstopmovlw Ox00subwf actionstopflag,wbtfss status,zgoto L2继续下面的程序actionstopflag表示动作标志位参数,给动作标志位赋值,动作停止函数中将清零标志位的值。上述程序和前面所述程序的功能一样,实现两支手臂的动作。上面程序描写左手是否到达鼓掌位,到达停止,右手是否到达举手位,到达停止。看动作标志位是否为零,不是,不断地循环检测;是,执行下面的程序。2 GOTO,cALL指令的不同使用在PIC的汇编程序中,CALL与GOT0指冷使用的场合不同。一般情况下,在于程序与主程序之间大多用CALL指令;而状态转换模块之间大多用GOTO指令,即由此状态进入另一种状态不需返回。由于PIC单片机的堆栈有限,在程序中,不能无止境地使用GOTO语句,这样会使堆栈溢出,程序无法正常运行。各个小程序内部循环占用堆栈的级数不多,使用GOTO指令是可行的,但在大的程序中用GOTO则无法返回到调用前程序的下一条指令。CALL指令完成调用完子程序后返回到调用前的程序。程序如下:list D=16c76start:ca11 setcpucall automatlsn、statelL3 call readinsignalbtfsc cs2_v,ultrasonicdetectlgoto L3goto autonatlsmstate2:automatlsmstate2:returnaua
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 船舶行业安全生产相关要求解读
- 医疗行业招聘面试实战模拟试题:临床医学专业
- 三减健康知识培训心得课件
- 保山医疗岗位申请必 备面试题库
- 临床执业医师能力提升B卷题库及完整答案详解【夺冠】
- 如何制定自己的学习计划
- 人才争夺战:大厂人资面试题库精 编
- 小儿艾柱灸课件
- 期货从业资格之《期货法律法规》通关测试卷及答案详解(基础+提升)
- 大学电子商务专业实习生自我鉴定
- 医院综合门诊部综合管理体系建设
- 2025年中医师承出师考试题库
- uom无人机考试题库及答案2025
- 陕西省专业技术人员继续教育2025公需课《党的二十届三中全会精神解读与高质量发展》20学时题库及答案
- 机修钳工培训
- 血透室消毒隔离制度课件
- 调节阀计算书(带公式)
- 医德医风建设培训课件
- 通信工程竣工资料模板(通用版)
- 中国半导体行业投资深度分析与展望
- 应急中心组织架构
评论
0/150
提交评论