




免费预览已结束,剩余38页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计(论文)课题: 基于单片机的抢答器设计学生: 系部: 电子信息系班级: 电信095 学号: 指导教师: 装订交卷日期:2012年4月23日装订顺序: (1)封面(2)毕业设计(论文)成绩评定记录(3)标题、中文摘要及关键词(4)正文(5)附录(6)参考文献毕业设计(论文)成绩评定记录表指导教师评语(包含学生在毕业实习期间的表现):成绩(平时成绩): 指导教师签名:年 月 日评阅教师评语:成绩(评阅成绩): 指导教师签名:年 月 日总评成绩:注:1.此表适用于不参加毕业答辩学生的毕业设计(论文)成绩评定;2.平时成绩占40%、卷面评阅成绩占60%,在上面的评分表中,可分别按40分、60分来量化评分,二项相加所得总分即为总评成绩,总评成绩请转换为优秀、良好、中等、及格、不及格五等级计分。教务处制毕业设计(报告)成绩评定记录表指导教师评语(包含学生在毕业实习期间的表现):成绩(平时成绩): 指导教师签名:年 月 日评阅教师评语:成绩(评阅成绩): 评阅教师签名:年 月 日答辩情况记录:答辩成绩:答辩委员会主任(或答辩教师小组组长)签名:年 月 日总评成绩:注:1.此表适用于参加毕业答辩学生的毕业设计(报告)成绩评定;2.平时成绩占20%、卷面评阅成绩占50%、答辩成绩占30%,在上面的评分表中,可分别按20分、50分、30分来量化评分,三项相加所得总分即为总评成绩,总评成绩请转换为优秀、良好、中等、及格、不及格五等级计分。教务处制郑重申明本人呈交的毕业实习报告(设计),是在导师的指导下,独立进行实习和研究工作所取得的成果,所有数据、图片资料真实可靠。尽我所知,除文中已经注明引用的内容外,本毕业实习报告(设计)的成果不包含他人享有著作权的内容。对本毕业实习报告(设计)所涉及的实习和研究工作做出贡献的其他个人和集体,均已在文中以明确的方式标明。本毕业实习报告(设计)的知识产权归属于作者与培养单位。学生签名日期2012.04摘要随着计算机技术的高速发展,单片机以其自身的特点,已广泛应用于智能仪器、工业控制、家用电器、电子玩具等各个领域。在知识竞赛中,特别是做抢答题目的时候,同样需要单片机来控制整个过程。在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。如果在抢答中,靠视觉是很难判断出哪组先答题。利用单片机系统来设计抢答器,使以上问题得以解决,即使两组的抢答时间相差几微秒,也可分辨出哪组优先答题。这样使得选手们都站在同一个起跑线上,体现了公平公正的原则。 本系统设计的8路抢答器主要是采用atmel公司的at89c52单片机作为核心,控制系统的四个模块分别为:显示模块、存储模块、语音模块、抢答开关模块。抢答组数可以在八组以内任意使用。通过本系统的设计后,主持人可以很快的判断出是谁最快抢答成功,又是谁抢答过早,以及应该给于的惩罚。关键词:单片机;at89c52;抢答器目录第1章 绪论4第2章整体设计方案与论证5第3章系统硬件设计73.1单片机的选择73.1.1单片机的概念7 3.1.2 at89c52单片机简介73.1.3锁存器93.2时钟电路和复位电路113.2.1时钟电路113.2.2 复位电路:113.3键盘扫描电路123.4显示电路123.5 功能键及发声系统设计133.6整机设计电路14第4章软件设计15 4.1 抢答器流程图154.2主程序174.3中断程序204.3.1什么是中断204.3.2 中断所用到的寄存器214.3.3 为什么采用中断方式23第5章系统的仿真255.1 proteus软件的介绍及使用255.1.1什么是proteus软件255.1.2 怎样操作proteus仿真软件255.2抢答器protenus软件的仿真30第6章调试功能说明316.1系统的调试316.2系统调试的问题及解决316.3焊接的问题及解决33总 结34参考文献35致谢36附录1电路原理图37附录2元件明细表38第1章绪论二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称pc机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词“智能型”。随着我国经济和文化事业的发展,在很多公开竞争场合要求有公正的竞争裁决,诸如证券、股票交易及各种智力竞赛等,因此出现了抢答器。抢答器一般是由很多电路组成的,线路复杂,可靠性不高,功能也比较简单,特别是当抢答路数很多时,实现起来就更为困难。因此我们设计了以单片机为核心的新型智能的抢答器,在保留原始抢答器的基本功能的同时又增加了数码管显示电路实现了其它功能。抢答器又称为第一信号鉴别器,其主要应用于各种知识竞赛、文艺活动等场合。本系统采用单片机作为整个控制核心。控制系统的四个模块为:显示模块、存储模块、语音模块、抢答开关模块。该系统通过开关电路四个按键输入抢答信号,利用一个数码管来完成显示功能,用按键来让选手进行抢答,在数码管上显示哪一组先答题的,从而实现整个抢答过程。本文主要介绍了单片机抢答器设计及工作原理,以及它的实际用途。系统工作原理本系统采用89c52单片机作为核心。工作时,用按键通过开关电路输入各路的抢答信号,经单片机的处理, 输出控制信号,单片机控制的智能抢答器设计。 第2章 整体设计方案和论证方案一:系统各部分采用中小规模集成数字电路,用机械开关按钮作为控制开关,完成抢答输入信号的触发。该方案的特点是中小规模集成电路应用技术成熟,性能可靠,能方便地完成选手抢答的基本功能,但是由于系统功能要求较高,所以电路连接集成电路相对较多,而且过于复杂,并且制作过程工序比较烦琐,使用不太方便。方案二:该系统采用8051系列单片机89c52作为控制核心,该系统可以完成运算控制、信号识别以及显示功能的实现。由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩张和更改。mcs-51单片机特点如下: 可靠性好:单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的cpu,程序指令和数据都可以写在rom里,许多信号通道都在同一芯片,因此可靠性高,易扩充。单片机有一般电脑所必须的器件,如三态双向总线,串并行的输入及输出引脚,可扩充为各种规模的微电脑系统。 控制功能强:单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳跃指令。方案比较及其选用依据,显然方案二比方案一简单的多,不但从性能上优于方案一,而且在使用上及其功能的实现上都较方案一简洁,并且由于单片机具有优越的高集成电路性,使其工作速度更快、效率更高。另外89c52单片机采用12mhz的晶振,提高了信号的测量精度,并且使该系统可以通过软件改进来扩张功能。而方案一采用了中小规模集成电路,有其复杂的电路性能,从而可能会使信号的输入输出产生延时及不必要的误差。依此依据选择方案二比较适合。总原理图见附录2。其原理框图如下:抢答按扭优先编码电路锁存器译码电路译码显示主持人控制开关控制电路报警电路秒脉冲产生电路定时电路译码电路显示电路 图2-1 抢答器的原理框图 第3章 系统硬件设计3.1 单片机的选择3.1.1单片机的概念单片机是指一个集成在一块芯片上的完整计算机系统。尽管它的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:cpu 、内存 、内部和外部总线系统。单片机是将中央处理器,随机存储器。只读存储器,定时器芯片和i/o接口电路集成于一个芯片上的微控制器。3.1.2 at89c52单片机简介 at89c52是8位通用微处理器。采用标准的c51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主ic 内部寄存器、数据ram及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号ir的接收解码及与主板cpu通信等。主要管脚有:xtal1(19 脚)和xtal2(18 脚)为振荡器输入输出端口,外接12mhz 晶振。rst/vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。vcc(40 脚)和vss(20 脚)为供电端口,分别接+5v电源的正负端。p0p3 为可编程通用i/o 脚,其功能用途由软件定义,在本设计中,p0 端口(3239 脚)被定义为n1 功能控制端口,分别与n1的相应功能管脚相连接,13 脚定义为ir输入端,10 脚和11脚定义为i2c总线控制端口,分别连接n1的sdas(18脚)和scls(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板cpu 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。p0 口:p0 口是一组8 位漏极开路型双向i/o 口, 也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8 个ttl逻辑门电路,对端口p0 写“1”时,可作为高阻抗输入端用。 在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。 p1 口:p1 是一个带内部上拉电阻的8 位双向i/o 口, p1 的输出缓冲级可驱动(吸收或输出电流)4 个ttl 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(iil)。 引脚号功能特性p1.0t2,时钟输出p1.1t2ex(定时/计数器2)与at89c51 不同之处是,p1.0 和p1.1 还可分别作为定时/计数器2 的外部计数输入(p1.0/t2)和输入(p1.1/t2ex),参见表1。 flash 编程和程序校验期间,p1 接收低8 位地址。 p2 口:p2 是一个带有内部上拉电阻的8 位双向i/o 口,p2 的输出缓冲级可驱动(吸收或输出电流)4 个ttl 逻辑 门电路。对端口p2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(iil)。 在访问外部程序存储器或16 位地址的外部数据存表1 p1.0和p1.1的功能储器(例如执行movx dptr 指令)时,p2 口送出高8 位地址数据。在访问8 位地址的外部数据存储器(如执行movx ri 指令)时,p2 口输出p2 锁存器的内容。 p3 口:p3 口是一组带有内部上拉电阻的8 位双向i/o 口。p3 口输出缓冲级可驱动(吸收或输出电流)4 个ttl逻辑门电路。对p3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的p3 口将用上拉电阻输出电流(iil)。 p3 口除了作为一般的i/o 口线外,更重要的用途是它的第二功能 p3 口还接收一些用于flash 闪速存储器编程和程序校验的控制信号。 rst:复位输入。当振荡器工作时,rst引脚出现两个机器周期以上高电平将使单片机复位。 ale/prog:当访问外部程序存储器或数据存储器时,ale(地址锁存允许)输出脉冲用于锁存地址的低8 位字节。一般情况下,ale 仍以时钟振荡频率的1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ale 脉冲。 psen:程序储存允许(psen)输出是外部程序存储器的读选通信号,当at89c52 由外部程序存储器取指令(或数据)时,每个机器周期两次psen 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次psen信号。 ea/vpp:外部访问允许。欲使cpu 仅访问外部程序存储器(地址为0000hffffh),ea 端必须保持低电平(接地)。需注意的是:如果加密位lb1 被编程,复位时内部会锁存ea端状态。 如ea端为高电平(接vcc端),cpu 则执行内部程序存储器中的指令。 xtal1:振荡器反相放大器的及内部时钟发生器的输入端。 xtal2 :振荡器反相放大器的输出端。 图3-1pdip封装的at89c52引脚图3.13 锁存器锁存器是一种对脉冲电平敏感的存储单元电路,它们可以在特定输入脉冲电平作用下改变状态。由若干个钟控d触发器构成的一次能存储多位二进制代码的时序逻辑电路,叫锁存器件。 逻辑结构与功能表见图2-4:图3-2 锁存器逻辑结构与功能表8位锁存器74hc373的逻辑图如下图所示。其中使能端g加入cp信号,d为数据信号。输出控制信号为0时,锁存器的数据通过三态门进行输出。 图3-3 74hc373引脚(管脚)图:图3-4 74ls373内部逻辑图图3-5 74ls373真值表3.2时钟电路和复位电路3.2.1时钟电路单片机必须在时钟的驱动下才能工作.由之前所学的单片机原理最小系统内容,在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。晶振电路见图3-6:图3-6晶振电路3.2.2 复位电路:复位电路是必不可少的一部分,复位电路的第一功能是上电复位。一般电路正常工作需要供电电源为5v5%,即4.755.25v。rst端的外部复单片机的第9脚rst为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如下所示: 图3-7复位电路3.3键盘扫描电路在单片机应用中键盘用得最多的形式是独立键盘及矩阵键盘。本实验用的是独立式键盘。键盘扫描电路图见图3-8: 图3-8独立键盘3.4显示电路在单片机应用系统中,对于系统的运行状态和运行结果,通常都需要直观交互显示出来。单片机应用系统中最常用的显示器有led和lcd两种。这两种显示器都可以显示数字、字符及系统的状态,led和lcd数码显示最为普遍,本设计采用的是更为环保的4位led显示器。如图39所示 图3-9显示电路4位数码管动态显示原理与实现:p0.0-p0.6端口接动态数码管的字形码笔段,p2.0-p2.3端口接动态数码管的数位选择端。4位数码管的8个显示笔划a,b,c,d,e,f,g,dp 的同名端连在一起,另外为每个数码管的公共极com增加位选端控制电路,位选端由独立的i/o线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选端控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。就使各个数码管轮流受控显示,这就是动态显示原理。在轮流显示过程中,每位元数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的i/o埠,而且功耗更低。3.5功能键及发声系统设计声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单片机某个口线的“高”电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调,使喇叭发出不同的声音。通过添加一些具体的功能键可以使系统的功能更加完善。功能键及发声系统结构图见图3-10: 图3-10功能键及发声系统结构图3.6整机设计电路图3-11总体结构图第4章 软件设计4.1 抢答器流程图流程图是使用图形表示算法的思路是一种极好的方法,不论采用何种程序设计方法,程序总体结构确定后,一般以程序流程图的形式对其进行描述。总体框图中的各个子模块或各个子任务也应该结合具体的教学模型和算法画出较详细的程序流程图,供后面编写具体程序和阅读程序使用。流程图是由一些图框和流程线组成的,其中图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。流程图的基本结构为顺序结构,分支结构(又称选择结构),循环结构。为便于识别,绘制流程图的习惯做法是:方框表示:要执行的处理(process)平行四边型表示:代表资料输入(input)不规则图形代表资料输出(output)或报表输出(print)菱形表示:决策或判断(例如:if.then.else) 图4-1 抢答器主程序流程图图4-2 抢答器定时器中断流程图 图4-3 外部中断程序图4.2 主程序我们组所设计的抢答器的程序采用的是c程序设计,c语言的显著特点是用二进制来编写程序,程序的各个部分除了必要的信息交流外彼此之间相互独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。c语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。虽然c语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。本次设计的主程序中包括时钟设计程序,定时器中断子程序,led显示程序以及按键控制子程序,程序设计如下:#includesbit k0=p10;sbit k1=p11;sbit k2=p12;sbit k3=p13;sbit d0=p14;sbit d1=p15;sbit d2=p16;sbit d3=p17;sbit b0=p37;sbit l0=p20;sbit l1=p22;sbit l2=p23;sbit l3=p24;sbit kz=p30;unsigned char qiangdanum=0x3f;unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;unsigned char ge=0,shi=0;unsigned int num=0,time=0;void display(); /*显示函数*/void delay(unsigned int);main()tmod=0x01; /*采用方式一,即十六位计数器*/th0=(65536-50000)/256; /*设置初始值*/tl0=(65536-50000)%256;it0=0;ea=1;et0=1; /*开启总中断源*/ex0=1; /*启动外部中断0*/while(1)display();if(kz=0)tr0=1; /*开启定时器0中断*/if(num=20) num=0;time+;if(time=60) /*60秒的计时*/time=0;void exter0() interrupt 0 /*外部中断程序*/ea=0;l0=0;if(k0=0) /*开关0按下*/d0=0;qiangdanum=1;b0=1; /* 1号选手抢答成功,数码管显示1,蜂鸣器响,第1个二极管亮*/if(k1=0) /*开关1按下*/d1=0;qiangdanum=2;b0=1; /* 2号选手抢答成功,数码管显示2,蜂鸣器响,第2个二极管亮*/if(k2=0) /*开关2按下*/d2=0;qiangdanum=3;b0=1; /* 3号选手抢答成功,数码管显示3,蜂鸣器响,第3个二极管亮*/if(k3=0) /*开关3按下*/d3=0;qiangdanum=4;b0=1; /* 4号选手抢答成功,数码管显示4,蜂鸣器响,第4个二极管亮*/void time0() interrupt 1num+;th0=(65536-50000)/256;tl0=(65536-50000)%256; /*1秒定时函数*/void delay(unsigned int z)unsigned int x,y;for(x=z;x0;x-)for(y=110;y0;y-); /*延迟函数*/void display(void)shi=time/10;ge=time%10;p2=0xef;p0=tablege;delay(5);p2=0xf7;p0=tableshi;delay(5);p2=0xfe;p0=tableqiangdanum;delay(5); /*显示函数:来显示0-60的计数*/4.3 中断程序4.3.1 什么是中断中断是指由于某种随机事件的发生,计算机暂停现行的程序的运行,转去执行另一个程序,以处理发生的事件,处理完毕后又自动返回原来的程序继续运行。有五种中断源:外部中断0、外部中断1、定时器中断0、定时器中断1、串行中断。它们的描述如下图所示:表4-4 五种中断源的表示中断源符号名称终端引起的原因中断矢量地址int0外部中断0由p3.2低电平或下降沿信号0003ht0定时器中断0定时/计数器0回零溢出p3.40013hint1外部中断1由p3.3低电平或下降沿信号000bht1定时器中断1定时/计数器1回零溢出p3.5001bhti/ri串行中断串行口接收或发送完帧数据引起的中断0023h中断源符号名称终端引起的原因中断矢量地址int0外部中断0由p3.2低电平或下降沿信号0003ht0定时器中断0定时/计数器0回零溢出p3.40013hint1外部中断1由p3.3低电平或下降沿信号000bht1定时器中断1定时/计数器1回零溢出p3.5001bhti/ri串行中断串行口接收或发送完帧数据引起的中断0023h4.3.2 中断所用到的寄存器介绍定时器/计数器中所介绍的寄存器:(1)定时器/计数器控制寄存器tcontcon的作用是控制定时器的启动停止,标志定时器的溢出和中断情况;(2)中断允许控制寄存器ie对中断源的开放或屏蔽是由中断寄存器ie控制的,地址为0a8h,即可以按字节寻址,也可以按位寻址。当单片机复位时,ie被清零。(3)串行控制寄存器scon定时/计数器的控制方法:在启动定时/计数器工作之前cpu必须将一些命令(称为控制字)写入定时/计数器中,这个过程称为定时/计数的初始化。(定时/计数器的初始化通过定时/计数器的方式寄存器tmod和控制寄存器tcon来完成。定时/计数器方式寄存器tmodgatec/tm1m0gatec/tm1m0 gatec/tm1m0gatec/tm1m0定时器1 定时器0m1m0工作方式功能说明00方式013位计数器01方式116位计数器10方式2自动再装入8位计数器11方式3定时器0:分成两个8位计数器;定时器1:停止计数表4-5 选择定时方式表m1m0工作方式功能说明 00方式013位计数器01方式116位计数器10方式2自动再装入8位计数器11方式3定时器0:分成两个8位计数器;定时器1:停止计数中断程序的编写的步骤:(1)根据要求设置ie(中断允许寄存器)的对应位ea(ea-总中断允许位 ea=1开放所有的中断;ea=0禁止所有的中断),某个中断源还有相应的中断允许位。、当=1时:允许相应中断源的中断;、当=0时:禁止相应中断源的中断;(2)int0、int1设定触发方式it0(外部中断触发方式控制位)当为0时:低电平触发;当为1时:下降沿触发;(3)返回值是void中断函数名() interrupt()4.3.3 为什么采用中断控制方式cpu与外部设备的数据传送方式:(1)无条件传送方式cpu总认为外设处于准备好的状态,外设比较简单(2)程序查询传送方式外设有一个状态(状态存储在寄存器内)缺点:cpu工作效率低,cpu处于等待的状态,为解决此缺点便出现了第三种传送方式。(3)中断传送方式中断是指由于某种随机事件的发生,计算机暂停现行的程序,转去执行另一程序以处理发生的 事件,处理完毕后又自动返回原来的程序继续运行。优点:(1)实现分时操作 cpu分为多个i/o设备服务,提高计算机的利用率(提前安排好的函数而中断不同);(2)实时响应 cpu能够及时处理应用系统的随机事件,系统的实时性大大增强(3)可靠性高 cpu具有处理设备故障及掉电等突发性事件的能力,从而使系统的可靠性提高。定时器的初始化 (1)确定工作方式-对tmod赋值;(2)设置初始值-直接将初值写入tho,tlo;(3)开启定时器的中断-eto=1 ea=1;(4)启动定时器-将tr0或tri置“1”。第5章 系统的仿真5.1 proteus软件的介绍及使用5.1.1 什么是proteus软件 proteus软件是labcenter electronics公司的一款电路设计与仿真软件,它包括isis、ares等软件模块,ares模块主要用来完成pcb的设计,而isis模块用来完成电路原理图的布图与仿真。proteus的软件仿真基于vsm技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如mcs-51系列、pic系列等等,以及单片机外围电路,比如按键、led、数码管等等。通过proteus仿真软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。5.1.2 怎样操作proteus仿真软件 在进行下面的操作前,我先说明一点:我的proteus版本是7.1,如果你使用的是6.9以前的版本,可能你发现在鼠标操作上会略有不同。这主要表现在6.9以前的版本鼠标左右键的作用与一般软件刚好相反,而7.0后已经完全改过。首先我们把压缩文件解压到d盘,然后找到isis manage找到find key 然后再安装即可使用,双击打开桌面是上的那个软件即可使用。下面我们首先来熟悉一下proteus的界面。proteus是一个标准的windows窗口程序,和大多数程序一样,没有太大区别,其启动界面如下图所示:图5-1 proteus 启动界面图如图中所示,区域为菜单及工具栏,区域为预览区,区域为元器件浏览区,区域为编辑窗口,区域为对象拾取区,区域为元器件调整工具栏,区域为运行工具条。下面我们就以建立一个和我们在keil简介中所讲的工程项目相配套的proteus工程为例来详细讲述proteus的操作方法以及注意事项。首先点击启动界面区域中的“p”按钮(pick devices,拾取元器件)来打开“pick devices”(拾取元器件)对话框从元件库中拾取所需的元器件。对话框如下图所示: 图5-2 用proteus软件查找元器件在对话框中的“keywords”里面输入我们要检索的元器件的关键词,比如我们要选择项目中使用的at89c51,就可以直接输入。输入以后我们能够在中间的“results”结果栏里面看到我们搜索的元器件的结果。在对话框的右侧,我们还能够看到我们选择的元器件的仿真模型、引脚以及pcb参数。搜索到所需的元器件以后,我们可以双击元器件名来将相应的元器件加入到我们的文档中,那么接着我们还可以用相同的方法来搜索并加入其他的元器件。当我们已经将所需的元器件全部加入到文档中时,我们可以点击“ok”按钮来完成元器件的添加。添加好元器件以后,下面我们所需要做的就是将元器件按照我们的需要连接成电路。首先在元器件浏览区中点击我们需要添加到文档中的元器件,这时我们就可以在浏览区看到我们所选择的元器件的形状与方向,如果其方向不符合你的要求,你可以通过点击元器件调整工具栏中的工具来任意进行调整,调整完成之后在文档中单击并选定好需要放置的位置即可。接着按相同的操作即可完成所有元器件的布置,接下来是连线。事实上proteus的自动布线功能是如此的完美以至于我们在做布线时从来都不会觉得这是一项任务,而通常像是在享受布线的乐趣。布线时我们只需要单击选择起点,然后在需要转弯的地方单击一下,按照你所需走线的方向移动鼠标到线的终点单击即可。本例我们布线的结果如下图所示(仿真我们在上面的keil操作介绍中的简单例子)。 图5-3 发光二极管发光原理图 因为该工程十分简单,我们没有必要加上复位电路,所以这点在图中予以忽略,请大家注意。除此以外,还会发现,单片机系统没有晶振,这一点你需注意。事实上在proteus中单片机的晶振可以省略,系统默认为12mhz,而且很多时候,当然也为了方便,我们只需要取默认值就可以了。proteus中单片机芯片默认已经添加电源与地,所以我们可以省略。然后在添加电源与地以前,我们先来看一下上面第一个图中区域的对象拾取区,在这里只说明本文中可能会用得到的以及比较重要的工具。(selection mode)。选择模式,通常情况下我们都需要选中它,比如布局时和布线时。(component mode)。组件模式,点击该按钮,能够显示出区域中的元器件,以便我们选择。线路标签模式,选中它并单击文档区电路连线能够为连线添加标签。经常与总线配合使用。文本模式,选中它能够为文档添加文本。总线模式,选中它能够在电路中画总线。关于总线画法的详细步骤与注意事项我们在下面会进行专门讲解。l :终端模式,选中它能够为电路添加各种终端,比如输入、输出、电源、地等等。l :虚拟仪器模式,选中它我们能够在区域中看到很多虚拟仪器,比如示波器、电压表、电流表等等。关于它们的用法我们会在后面的相应章节中详细讲述。添加电源:首先点击,选择终端模式,然后在元器件浏览区中点击power(电源)来选中电源,通过区域中的元器件调整工具进行适当的调整,然后就可以在文档区中单击放置电源了。连接好电路图以后我们还需要做一些修改,由上5-1-3图我们可以看出,图中的r1电阻值为10k,这个电阻作为限流电阻显然太大,将使发光二极管d1亮度很低或者根本就不亮,影响我们的仿真结果。故要进行修改,修改方法:首先我们双击电阻图标,这时软件将弹出“edit component”对话框(见下图所示的对话框),对话框中的“component referer”是组件标签之意,可以随便填写,也可以取默认,但要注意在同一文档中不能有两个组件标签相同;“resistance”就是电阻值了,我们可以在其后的框中根据需要填入相应的电阻值。填写时需注意其格式,如果直接填写数字,则单位默认为;如果在数字后面加上k或者k,则表示k之意。这里我们填入220,表示220。修改好各组件属性以后就要将程序(hex文件)载入单片机了。首先双击单片机图标,系统同样会弹出“edit component”对话框,如下图。在这个对话框中我们点击“program files”框右侧的,来打开选择程序代码窗口,选中相应的hex文件后返回,这时,按钮左侧的框中就填入了相应的hex文件,我们点击对话框的“ok”按钮,回到文档,程序文件就添加完毕了。图5-4 装载程序装载好程序,我们就可以进行仿真了。首先来熟悉一下上面第一个图中区域的运行工具条。因为比较简单,我们只作一下介绍。工具条从左到右依次是“play”、“step”、“pause”、“stop”按钮,即运行、步进、暂停、停止。下面我们点击“play”按钮来仿真运行,效果如下图所示,可以看到系统按照我们的程序在运行着,而且我们还能看到其高低电平的实时变化。如果我们已经观察到了结果就可以点击“stop”来停止运行。5.2 抢答器protenus软件的仿真绘制抢答器的软件仿真图步骤分一下四步:(1)查找所需要的元器件;(2)根据电路图进行连线;(3)是用来写线所对应的坐标,即下图所示的p1.1等坐标;(4)下载所写完的c程序即可以仿真。通过以上步骤,来实现抢答器设计的仿真实现,仿真如下图所示:图5-5 抢答器的proteus仿真图第6章 调试功能说明6.1 系统的调试系统调试包括硬件调试和软件调试,而且两者是密不可分的。我们设计好的硬件电路和软件程序,只有经过联合调试,才能验证其正确性;软硬件的配人情况以及是否达到设计任务的要求,也只有经过调试,才能发现问题并加以解决、完善,最终开发成实用产品。硬件调试分单元电路调试和联机调试,单元电路试验在硬件电路设计时已经进行,这里的调试只是将其制成印刷电路板后试验电路是否正确,并排除一些加工工艺性错误(如错线、开路、短路等)。这种调试可单独模拟进行,也可通过开发装置由软件配合进行,硬件联机调试则必须在系统软件的配合下进行。软件调试一般包括分块调试和联机调试两个阶段。程序的分块调试一般在单片机开发装置上进行,可根据所调程序功能块的入口参量初值编制一个特殊的程序段,并连同被调程序功能块一起在开发装置上运行;也可配合对应硬件电路单独运行某程序功能块,然后检查是否正确,如果执行结果与预想的不一致,可以通过单步运行或设置断点的方法,查出原因并加以改正,直到运行结果正确为止。这时该 程序功能块已调试完毕,可去掉附加程序段。其它程序功能块可按此法进行调试。程序联机调试就是将已调试好的各程序功能块按总体结构联成一个完整程序,在所研制的硬件电路上运行。从而试验程序整体运行的完整性、正确性和与硬件电路的配合情况。在联调中可能会有某些支路上的程序、功能块因受条件制约而得不到相应的输入参数,这时,调试人员应创造条件进行模拟调试。在联调中如发现硬件问题也应及时修正,直到单片机系统的软件、硬件全部调试成功为止。系统调试完成后,还要进行一段时间的试运行,从而检验系统的稳定性和抗干扰能力,验证系统功能是否达到设计要求,是否达到预期的效果。6.2 软件调试问题及解决首先对所用软件及使用方法介绍如下:1、keil是德国开发的一个51单片机开发软件平台,最开始只是一个支持c语言和汇编语言的编译器软件。后来随着开发人员的不断努力以及版本的不断升级,使它已经成为了一个重要的单片机开发平台,不过keil的界面并不是非常复杂,操作也不是非常困难,很多工程师的开发的优秀程序都是在keil的平台上编写出来的。可以说它是一个比较重要的软件,熟悉他的人很多很多,用户群极为庞大,要远远超过伟福等厂家软件用户群,操作有不懂的地方只要找相关的书看看,到相关的单片机技术论坛问问,很快就可以掌握它的基本使用了。2、 总调,即应用软件的链接调试,程序固化,软、硬件结合的应用系统软硬件联合仿真系统由一个硬件执行环境和一个软件执行环境组成,通常软件环境和硬件环境都有自己的除错和控制界面,keil与proteus的整合调试可以实现系统的总调,在该系统中,keil作为软件调试界面,proteus作为硬件仿真和调试界面,下面说一下如何在keil中调用proteus进行mcu外围器件的仿真。(1)安装keil 与 proteus。(2)把安装proteus models目录下 vdm51.dll文件复制到keil安装目录的 c51bin目录中。(3)修改keil安装目录下 tools.ini文件,在c51字段加入tdrv5=binvdm51.dll (proteus vsm monitor-51 driver),保存。(注意:不一定要用tdrv5,根据原来字段选用一个不重复的数值就可以了。引号内的名字随意)3、打开proteus,画出相应电路,在proteus的debug菜单中选中use remote debug monitor4、在keil中编写c语言程序5、进入keil的project菜单option for target 工程名。在debug选项中右栏上部的下拉菜单选中 proteus vsm monitor-51 driver。6、在keil中进行debug吧,同时在proteus中查看直观的结果(如lcd显示)这样就可以像使用仿真器一样调。问题:有时候在自己创建的元器件的管脚上无法实现连线。回答:应该是管脚的间距太小了。因为在isis中,每个元器件的管脚都要占据一块区域(就像自己的保护区一样,不容别人随意侵犯),该区域会排斥外部的走线。解决问题的方法是在走线的同时按住 “ctrl”键,直到走线绕过狭窄的保护区。当然最根本的办法是重新编辑元器件,把其管脚间距调大一些。主持人按键来控制总开关,主持人按下开关那么选手开始抢答,此时数码管开始0-60计数,并且选手们必须在规定的时间内进行抢答,若过了60秒还没抢答那么抢答失效,选手们若有一个在规定的时间内抢答成功则其余的选手不可以再抢答,即该选手抢答成功。6.3 焊接的问题及解决一般来说,造成硬件问题的首要问题就是焊接了,也就是说焊接的好与坏直接响产品的正常运行。造成焊接质量不高的常见原因是:焊锡用量过多,形成焊点的锡堆积;焊锡过少,不足以包裹焊点。冷焊。焊接时烙铁温度过低或加热时间不足,焊锡未完全熔化、浸润、焊锡表面不光亮(不光滑),有细小裂纹(如同豆腐渣一样!)。夹松香焊接,焊锡与元器件或印刷板之间夹杂着一层松香,造成电连接不良。若夹杂加热不足的松香,则焊点下有一层黄褐色松香膜;若加热温度太高,则焊点下有一层碳化松香的黑色膜。对于有加热不足的松香膜的情况,可以用烙铁进行补焊。对于已形成黑膜的,则要吃净焊锡,清洁被焊元器件或印刷板表面,重新进行焊接才行。焊锡连桥。指焊锡量过多,造成元器件的焊点之间短路。这在对超小元器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跨领域项目合作协议
- 工业设计产品设计理念与案例分析
- 航空航天材料工程考试试题集
- 现代管理学基础理论学习题集
- 运动训练理论与实践题
- 2025年工程成本预测试题及答案
- 2024年天然植物纤维及人造纤维编织工艺品项目投资申请报告代可行性研究报告
- 犯罪分析测试题及答案
- 跨部门协作的成功要素计划
- 多元化工作方法的探索计划
- 年处理24万吨焦油常减压蒸馏车间设计书
- GB/T 536-2017液体无水氨
- GB/T 11361-2008同步带传动梯形齿带轮
- GB 5009.121-2016食品安全国家标准食品中脱氢乙酸的测定
- 《电业安全工作规程》
- 处置室工作制度(6篇)
- 二次配线工艺标准守则
- 骨髓穿刺术评分表
- 海底捞火锅店各岗位职责
- 发证机关所在地区代码表
- Q∕GDW 10799.7-2020 国家电网有限公司电力安全工作规程 第7部分:调相机部分
评论
0/150
提交评论