ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:235.87KB ,
资源ID:3853167      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3853167.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(用8031单片机控制出租车计价系统.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

用8031单片机控制出租车计价系统.docx

1、用8031单片机控制出租车计价系统 桂 林 电 子 科 技 大 学单片机最小应用系统 设 计 报 告 指导老师:吴 兆 华 学 生: 严天祥 学 号:092011104机电工程学院2010年6月单片机最小应用系统设计报告一、 设计题目和要求 3二、设计目的 3三、系统硬件图 3四、程序流程图 4五、系统说明与分析 55.1最小系统控制部分 55.2 单片机的I/O接口 65.3 单片机使用的外围电路 75.4 中断控制 95.5 数码管显示模块 115.6电路板的制作 135.7系统连线说明分析 145.8系统调试 15六、源程序 15七、总结 19八、参考文献 19一、 设计题目和要求题目:

2、出租车计价系统。要求:用8031单片机控制出租车计价系统。要求价格=速度*时间*单价。并要求用单片机的定时/计数器控制LED数码管显示总价格和行驶时间。(本例中速度为36km/h,即0.01km/s,单价为白天1元/km,晚上2元/km)二、设计目的1、进一步熟悉和掌握单片机的结构及工作原理,加深对单片机理论知识的理解;2、掌握单片机内部功能模块。如定时/计数器、中断系统、存储器、I/O口等;3、掌握单片机的编程方法,调试方法;4、掌握单片机应用系统的构建和使用,为以后设计和实现单片机应用系统打下良好的基础。5、提高处理实际问题的能力和独立分析思考的能力。三、系统硬件图1、 出租车计价系统的硬

3、件电路原理图如下:图1 电路原理图2、出租车计价系统的硬件电路PCB图如下: 图2 PCB图 四、程序流程图出租车计价系统程序框图如下:五、系统说明与分析5.1最小系统控制部分 最小系统的控制器由单片机AT89S51实现,它是单片机MCS-51高性能8位机系列的一种,广泛应用于各种小型控制系统中,其引脚图如图4所示。图4AT8S51包含128字节RAM、32条I/O 口线、3个16位定时/计数器、6输入4优先级嵌套中断结构、1个串行I/O 口(可用于多机通信I/O扩展或全双工UART以及片内振荡器和时钟电路)。功能结构如图5所示:图5 AT89S51单片机功能结构图5.2 单片机的I/O接口接

4、口电路是单片机必不可少的组成部分,并行输入输出接口是CPU和外部进行信息交换的主要通道。MSC51系列单片有4个8位并行双向I/O口P0P3,共32根I/O线。单片机可以外接键盘、显示器等外围设备还可以进行系统扩展,以解决硬件资源不足问题。4个并行口都是双向口,既可以输入又可以输出。P0、P2口经常作外部扩展存储器时的数据、地址线,P3口除作I/O口外,每一根都有第二功能。现简要介绍P0,P2口的电路如下:(1) P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位

5、。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。图6 P0口的位结构(2) P2口的位结构比P1多了一个控制转换部分,结构与P0口基本相似,如图7所示。P2口改P0推拉式输出驱动电路为上拉电阻式,当控制信号s为低电平,作I/O口使用时,多路开关MUX使锁存器输出端Q与输出驱动输入端接通,构成一个准双向口。此外,当外部扩展存储器时,P2口常做高8位地址线使用。图7 P2口的位结构5.3 单片机使用的外围电路单片机应用系统中,除了基本计算机系统单元电路外还需配备完整的外围电路、以完成复位、掉电保护、提供时钟、节电等功能。(1)时钟电路:单

6、片机内部有一个高增益的反相放大器,通过XTAL1和XTAL2引脚外接石英振于或陶瓷振子、微调电容组成振荡器如图8所示。该振荡器发出的脉冲直接送入内部时钟电路。振荡器若外接的是石英扳子,微调电容通常选择30pF;外接陶瓷娠子时选样47pF。振荡频率范围选择1.212M。MCS5-51系列单片机也可以采用外接时钟,这时XTAL 2脚用来输入外部时钟信号(XTAL2脚为内部时钟电路的输入端),XTALl脚则接地如图8b所示。对于CHM05工艺制造的80C51单片机,则应从XTALl脚输入外部时钟信号,XTAL 2脚悬空。本单片机最小系统设计时采用的是外接石英晶体震荡电路。采用此电路的优点是不用外接时

7、钟,手动制板比较容易制板,调试方便。(2)复位电路:复位使单片机处于起始状态,并从此状态开始运行MCS5-51单片机RST引脚为复位端,该引脚连续保持2个机器周期(24个时钟振荡周期)以上的高电平。可使单片机复位。本论文使用的是外部复位电路,单片机在启动后要从复位状态开始运行,因此上电时要完成复位工作,称上电复位,如图9a所示。上电瞬间电容两端的电压不能发生突变,只RST端为高电平5v,上电后电容通过及RC电路放电RST端电压逐渐下降,直至低电平0V,如图9c所示。适当选择R、C的值,使RST端的高I电平维持2个机器周期以上即可完成复位。单片机L在运行过程中,出于本身或外并干扰的原因会导致出错

8、。这时可按复位键以重新开始远行,按键复位可分为按键电平复位或按健脉冲复位,如图9b所示。按键脉冲复位和上电平复值的原理是一样的,都是利用RC电路的放电原理,如图9d所示。让RST端能保持一段时间的高电平,以完成复位,按键电平复位时,按键时间也应保持在两个机器周期以上。图8(a)外接石英晶体振荡电路 图8(b)外接时钟电路 (a) 上电复位 (b) 按键电平复位(c) RC放电过程 (d) 电平复位过程图9 单片机常用复位电路本实验由于设计的系统简单且对控制系统精度的要求不高而采取了按键电路复位,电路图9(b)所示。这种时钟电路的优点是手动复位操作可以给调试带来方便。 根据要求所最小系统所选用的

9、器件有单片机AT89S51一个、电容30pf的两个、晶振12M一个、100pf电容一个、1K电阻一个。最小系统原理图如图10所示:图10最小系统控制原理图 从上图可以看到除了最基本的外围电路,在单片机PO接口处还加了一个1K上拉电阻R10,此电阻作为上拉电阻使用。上拉电阻就是把不确定的信号通过一个电阻钳位在高电平,此电阻还起到限流的作用。使用时将比较器LM324的输出端与P0口及上拉电阻的一端相连,上拉电阻的另一端与电源VCC相连。上拉电阻的作用为:1、当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平(一般3.5V),这时就需要在TTL的输出端接上拉电阻,

10、以提高输出高电平的值。2、OC门电路必须加上拉电阻,以提高输出的高电平值。3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。4、在COMS芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上拉电阻产生降低输入阻抗,提供泄荷通路。5、芯片的管脚加上拉电阻来提高输出电平,从而提高芯片输入信号的噪声容限增强抗干扰能力。6、提高总线的抗电磁干扰能力。管脚悬空就比较容易接受外界的电磁干扰。7、长线传输中电阻不匹配容易引起反射波干扰,加上下拉电阻是电阻匹配,有效的抑制反射波干扰。在最小系统中使用上拉电阻可以有效提高单片机的带负载能力,从而让单片机很容易的接收到比较器输出端发出的中断信号

11、。另外上拉电阻的选型原则包括:1、从节约功耗及芯片的灌电流能力考虑应当足够大;电阻大,电流小。2、从确保足够的驱动电流考虑应当足够小;电阻小,电流大。3、对于高速电路,过大的上拉电阻可能边沿变平缓。综合考虑以上三点,通常在1k到10k之间选取。故本次设计采用1K的上拉电阻。5.4 中断控制中断:当CPU正在处理某件事情的时候,外部发生的某一件事(如一个电平的变化,一个脉冲沿的发生或定时器计数溢出等)请求CPU迅速去处理,于是CPU暂时中止当前的工作,转去处理所发生的事件。中断服务处理完成事件以后再回到原来被中止的地方,继续原来的工作,这样的过程称为中断。计算机的中断系统可以使CPU与外设同时工

12、作。AT89S51为MCS-51系统的一种单片机,其中断系统具有三类共五个中断源.两个外部中断源,分别通过引脚INT0和INT1引入中断请求信号,且都有相应的中断优先级,优先级排列顺序如下:外中断源有两种中断触发方式:电平触发方式和脉冲触发方式.内部有两个定时器/计数器T0和T1,用于进行定时和计数控制,是内部中断源. T0和T1在内部时钟脉冲(或者外部计数脉冲)的作用下进行定时(或者计数).定时(或者计数)结束时,由硬件产生溢出中断信号向CPU提出中断请求.由CPU对定时(或者计数)结果进行处理.AT89S51有一个全双工异步串行中,用于进行串行通信,是内部中断源.其中定时器/计数器中断被广

13、泛用在各种控制系统中。AT89S51为每个中断源设置了中断请求标志位.检测到中断请求信号后,为相应的中断标志置位,以便在下一个机器周期进行下一步的控制和处理。在相应的中断标志置位后,通过中断允许控制寄存器寄存器,其中使用六位。EA(IE.7)为中断允许总控位,其状态由用户通过程序进行控制.EA=1时中断允许,即为开中断,EA=0时中断禁止,即为关中断。ET1(IE.3)为定时器T1的中断允许控制位,ET1=1时,允许定时器T1中断,ET1=0时,禁止定时器T1中断。ET0(IE.1)为定时器T0的中断允许控制位,ET0=1时,允许定时器T0中断,ET0=0时,禁止定时器T0中断.IE中还有三位

14、用于对其它三个中断源进行中断允许控制。8051系统复位后,IE寄存器中各位均被清0,禁止所有的中断。在应用时,由软件进行设定。既可以使用位操作,也可以使用字节操作来实现对IE的设置。例如开放定时器T1中断,使用位操作为:SETBEASETBET1本实验中当有障碍物出现时,红外线发射接收中断,比较器输出一个高电平,向单片机控制系统发送中断请求。CPU响应中断请求、为中断源事件进行处理,是通过执行中断服务程序实现的.AT89S51在内部ROM中为五个中断源定义了固定的中断服务区,其中:000BH0012H为定时器T0的中断服务区,001BH0022H为定时器T1的为断服务区.响应中断请求后,CPU

15、按照中断源的不同,自动转到各中断区的首地址去执行程序.中断区的首地址也称中断入口地址,是中断控制的要点之一。但8个字节的中断服务区难以存下一般的中断服务程序,解决办法是在中断区的入口地址处存放一条无条件转移指令,将流程转入中断服务程序的真正入口,开始执行中断程序。此外需要注意的是用中断方式进行编程应遵循以下步骤:(1)开中断(2)设置中断优先级(3) TMOD初始化(4)设置定时/计数初值(5)启动定时/计数(6)编写定时/计数中断处理程序5.5 数码管显示模块(1)数码管的分类LED数码管有两种不同的形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED数码管;另一种是8个发光二极

16、管的阴极都连在一起的,称之为共阴极LED数码管。八段LED数码管由8个发光二极管组成。基中7个长条形的发光管排列成“日”字形,另一个圆点形的发光管在显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。四位八段数码管的引脚结构如图11所示:图11 四位八段数码管的引脚结构其中S1,S2,S3,S4为字位选择端口,A,B,C,D,E,F,G,DP为字形选择端口。(2)数码管的显示原理数码管在应用时首先要区分是共阳数码管还是共阴数码管,不同类别的数码管接法不同,并且数码管的显示也分为动态显示和静态显示。静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形

17、码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。动态显示的特点是将所有位数码管的段码并联在一起,由位码控制是哪一位数码管有效。这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。在本次的最小系统设计中我们应用的是动态扫描显示。动态扫描显示接口是单片机中

18、应用最为广泛的一种显示方式之一。其接口电路是把所有显示器的8个笔划段A-H同名端连在一起,而每一个显示器的公共极COM是各自独立地受I/O线控制。CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟那个显示器亮,则取决于COM端,而这一端是由I/O控制的,所以就可以自行决定何时显示哪一位了。所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。(3)TTL电路的驱动电流和

19、数码管的驱动以及关于上拉电阻的作用使用数字集成电路时,拉电流输出和灌电流输出是一个很重要的概念,例如在使用反向器作输出显示时,拉电流输出,即当输出端为高电平时才符合发光二极管正向连接的要求,但这种拉电流输出对于反向器只能输出零点几毫安的电流用这种方法想驱动二极管发光是不合理的(因发光二极管正常工作电流为510mA)。灌电流输出,即当反向器输出端为低电平时,发光二极管处于正向连接情况,在这种情况下,反向器一般能输出510mA的电流,足以使发光二极管发光,所以这种灌电流输出作为驱动发光二极管的电路是比较合理的。因为发光二极管发光时,电流是由电源+5V通过限流电阻R、发光二极管流入反向器输出端,好像

20、往反向器里灌电流一样,因此习惯上称它为“灌电流”输出。在数字电路中我们经常可以看到上、下拉电阻。定义:上拉就是将不确定的信号通过一个电阻嵌位在高电平!电阻同时起限流作用!下拉同理;上拉是对器件注入电流,下拉是输出电流;弱强只是上拉电阻的阻值不同,没有什么严格区分;对于非集电极(或漏极)开路输出型电路(如普通门电路)提升电流和电压的能力是有限的,上拉电阻的功能主要是为集电极开路输出型电路输出电流通道。拉电阻作用:一般作单键触发使用时,如果IC本身没有内接电阻,为了使单键维持在不被触发的状态或是触发后回到原状态,必须在IC外部另接一电阻;数字电路有三种状态:高电平、低电平、和高阻状态,有些应用场合

21、不希望出现高阻状态,可以通过上拉电阻或下拉电阻的方式使处于稳定状态,具体视设计要求而定;一般说的是I/O端口,有的可以设置,有的不可以设置,有的是内置,有的是需要外接,I/O端口的输出类似与一个三极管的C,当C接通过一个电阻和电源连接在一起的时候,该电阻成为上C拉电阻,也就是说,如果该端口正常时为高电平,C通过一个电阻和地连接在一起的时候,该电阻称为下拉电阻,使该口平时为低电平,作用就是当一个接有上拉电阻的端口设为输入状态时,他的常态就为高电平,用于检测低电平的输入;上拉电阻是用来解决总线驱动能力不足时提供电流的。一般说法是拉电流,下拉电阻是用来吸收电流的,也就是我们通常所说的灌电流;接电组就

22、是为了防止输入端悬空;减弱外部电流对芯片产生的干扰;保护cmos内的二极管,一般电流不大于10mA;通过上拉或下拉来增加或减小驱动电流;改变电平的电位,常用在TTL-CMOS匹配;在引脚悬空时有确定的状态;增加高电平输出时的驱动能力;为OC门提供电流。5.6电路板的制作ProtelDXP功能强大,为我们进行电子电路原理图和印制板图的设计提供了良好的操作环境。用ProtelDXP进行电路设计分为两大部分:原理图的设计和电路板的设计。原理图的设计实在SCH系统中进行的,电路原理图是印刷板电路设计的基础,只有设计好原理图才有可能进行下一步的电路板设计。用protelDXP进行电路板设计的第一步是其原

23、理图的设计。显然,原理图决定整个电路的基本功能,也是接下来生成网表和设计印刷板电路的基础。具体步骤如下:(1)图面设置: ProtelDXP允许用户根据电路的规模设置图面的大小,按照偏好和习惯设置图面的样式。实际上,设置图面就是设置了一个工作平面,以后的工作就要在这个平面上进行。所以图面应该设置得足够大,为进一步工作提供一个足够大的工作空间。(2)放置元件: 所谓放置元件就是从元件库中选取所需得元件,将其布置到图面上合适的位置,有时还要重定义元件的编号、封装。元件的封装很重要,要根据元件的实际尺寸和实际封装来决定,要是元件没封装好,将会给以后电路板的制作带来很大的麻烦。这些都是下一步工作的基础

24、。ProtelDXP为用户提供了一个非完备的元件库,并且允许用户对这个元件库进行编辑或者新建自己的元件库。电路板的制作过程(1) 打印:将生成的PCB图打印到热转印纸上,需注意线不能太窄,墨要加重,否则制板时容易断线,如果在操作过程中断了线,可用电烙铁将锡带过。(2) 熨烫:将热转印纸覆在铜板上,用电熨斗进行熨烫,关键要注意熨烫的时间,不能太久,也不能时间太短,否则,太久会把铜板烫坏,不够的话墨迹覆不上去。(3) 腐蚀:把铜板放到三氯化铁溶液中腐蚀,需注意溶液浓度要较高,最好用热水配置,这样腐蚀更快,一般3分钟即可。如果时间过长,需剩下的铜线也可能被腐蚀。(4) 打孔:打孔时注意钻头尺寸,本次

25、用的钻头大小是0.8mm的,最需注意的地方是集成块的管脚,如果打孔误差大,管座就很难插上。(5) 放置元件:放置前应先打磨一下打孔后留下的毛刺,并均匀地涂上松香水(目的是防止铜线氧化,易于焊锡覆着焊盘,但多涂会导致焊接时焊点变黑,影响美观)。放置元件时注意集成块的管脚,二极管和电解电容的正负,这些都是平时比较容易出错的地方。(6) 焊接:焊接技术比较难掌握,焊锡、烙铁与焊盘的位置关系,焊锡熔化时间长短,松香水的浓度,烙铁的温度等等,都是影响焊点美观的因素。(7) 检查:检查是否有虚焊,集成块管脚位置是否正确,电源引线位置是否恰当等。检查完毕就能进行调试了。 5.7系统连线说明分析在本系统中单片

26、机的P0口与2个二位数码管的8个数据输入端相连,P2口与1个四位数码管的8个数据输入端相连,P3口与驱动电路相连,P1.0,P1.1,P1.2,P1.3分别接控制开关,EA端需要与高电平相连,以保证单片机可以在内部存储器存储信息。5.8系统调试调试过程:1、 保证电路板连接正确后,接上电源,打开系统手动复位。2、 首先检查各个管脚、焊点是否损坏或者虚焊,通过系统工作时电压的变化来检查。3、 按下开关,观察数码管是否工作,如果工作,看是否与希望的实验现象相符合。4、 如果系统可以按所编程序完成相应的实验现象则调试成功,否则需要重新检查硬件电路及软件编程,重新调试。调试结果:通过几次调试可以达到自

27、己预先设计的结果,白天跑1s计价0.01元,晚上跑1s 计价0.02元,按暂停键停止计时。实验过程中的问题及改进方法1、制作电路板过程中由于焊接等原因,造成电路连接不通现象,浪费了调试时间。2、忘记把EA端与高电平相连,导致系统不能正常工作。3、开始时比较电路中P2口的数码管显示较暗,加了上拉电阻后显示效果较好,改善了电路性能。3、由于本次实验时间有限,实验所采用的元器件简单,计时的精确度,有效范围都有待于加强,希望在以后的设计中能够有所改进。六、源程序#include reg51.hunsigned char cnt_time,cnt_cost;unsigned char data key_

28、val,key_val_old,flag;unsigned char state_val,timecount,speed;unsigned int m,s,s0,s1,m0,m1;unsigned int fen,jiao,yuan1,yuan2;char code cost_val2=1,2;char code led_seg_code11=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f, 0x67,0x80;/led_seg_code0-9代表0-9/-延时-void delay(unsigned int i)/延时 while(-i); /-初始

29、化变量-void init_variant() /初始化一些变量的内容 cnt_time=0; /时间的计数 cnt_cost=0; /保存总价格 speed=36;/-扫描键盘-unsigned char scan_key() unsigned char i,k; i=P1; if (i=0xff) k=255; /无键按下 else /有键按下 delay(10); /延时去抖动 if(i!=P1) k=255; else switch (i) case 0xfe: k=0; break; /P1.0按下,启动键 case 0xfd: k=1; break; /P1.1按下,清除键 cas

30、e 0xfb: k=2; break; /P1.2按下,切换键 return k;/-数码管动态扫描-void led_show()s=cnt_time%60;s0=s%10;s1=s/10;m=cnt_time/60;m0=m%10;m1=m/10;fen=cnt_cost%10;jiao=cnt_cost/10%10;yuan1=cnt_cost/100%10;yuan2=cnt_cost/1000%10; /-显示时间- P3=0xfe; P0=led_seg_codes0; delay(10); P3=0xfd; P0=led_seg_codes1; delay(10); P3=0xfb; P0=led_seg_codem0; delay(10); P3=0xf7; P0=led_seg_codem1; delay(10); /-显示总价格- P3=0xef; P2=led_seg_codefen; delay(10); P3=0xdf; P2=led_seg_codejiao; delay(10); P3=0xbf; P2=led_seg_codeyuan1; delay(10); P3=0xbf; P2=led_seg_code10; delay(10); P3=0x7

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1