以智能速度里程表为主的多功能任务_第1页
以智能速度里程表为主的多功能任务_第2页
以智能速度里程表为主的多功能任务_第3页
以智能速度里程表为主的多功能任务_第4页
以智能速度里程表为主的多功能任务_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机原理及应用课程设计任务课题:以智能速度里程表为主的多功能任务 班级 学号 学生姓名 指导教师 淮阴工学院电子与电气工程学院一、设计目的1、总体要求(1 独立完成设计任务(2 绘制系统硬件总框图(3 绘制系统原理电路图(4 制定编写设计方案,编制软件框图,完成详细完整的程序清单和注释;(5 制定编写调试方案,编写用户操作使用说明书(6 写出设计工作小结。对在完成以上文件过程所进行的有关步骤如设计思想、指标论证、方案确定、参数计算、元器件选择、原理分析等作出说明,并对所完成的设计作出评价,对自己整个设计工作中经验教训,总结收获和今后研修方向。2 、具体要求本次工程实践的校内部分主要以单片机为

2、基础,进行单片机软件编程,目的是为了提高学生的软件编程和系统设计能力,整个设计系统包括两个部分,硬件及软件部分,硬件部分已经制作成功,学生只需要掌握其原理和焊接相应的元器件,掌握元器件的辨别和元器件的作用以及应用场所即可,另外对所焊接的电路还需要进行仔细的检查,判断是否有焊接错误的地方或者短路的地方,对出现的异常情况要能够根据现象判别原因,并具备解决问题的能力,从而切实提高学生的硬件电子电路的分析、判断能力。软件编程是本次工程实践的重要环节。在为期两周的工程实践中,将占据主要时间,学生要完成的软件编程任务主要包括以下几点:1)、熟悉Keil C51编程平台及Proteus软件仿真;2)、编写、

3、调试蜂鸣器、继电器动作、方波程序并进行软硬件联调;3)、编写、调试LED流水灯(循环显示)程序并进行软硬件联调;4)、编写、调试键盘扫描子程序并进行软硬件联调;5)、编写、调试数码管动态扫描程序并进行软硬件联调;3、以智能速度里程表为主的多功能任务设计1)切实完成第2部分的具体要求,熟悉单片机语言子程序,编写子程序代码,实现课题要求。2)本次课程设计要求速度里程表最终能显示所测速度,能够显示累计的总里程数,并且能够对速度进行修改和显示。编写、调试对应的键盘扫描子程序,实现:A) 当按下A按键,实现蜂鸣器或继电器动作。B) 当按下B按键,实现LED流水灯(循环显示)。C) 当按下C按键,实现数码

4、管动态扫描显示(显示内容可以自己确定)。D) 当按下D按键,实现速度里程表上显示所测的速度和总里程数。二 、总体设计2.1 系统组成电子钟是由AT89C52单片机、速度里程表、LED流水灯电路、报警电路时钟电路、动态数码管显示电路所组成,各部分完成功能各异。其中,单片机2.2各部分电路控制该设计运用汇编语言来控制单片机AT89C52来实现LED流水灯、报警器、动态数码显示、速度里程表功能。其中速度里程表设计能实时地将所测的速度显示出来,同时也能够累计显示总里程数。该速度里程表能将传感器输入到单片机的脉冲信号的宽度(传感器将车速转变成相应宽度的脉冲信号)实时地测量出来,然后通过单片机计算出速度和

5、里程,再将所得的数据存储到串口数据存储器,并由串口液晶显示模块实时显示出所测速度。2.2 设计原理图图2 速度里程表电路原理图四、硬件单元设计4.1 LED灯显示本次课程设计中,“程序语言”通过“翻译”软件“翻译”成单片机所需的二进制代码,单片机可工作。要用外加电源和分压电阻来控制低电平驱动点亮,因为单片机不能直接高电平驱动LED灯。如图D1-D8和R1、R2以及R6-R11连接到单片机IO口,当P1口某脚变低时相应LED发光。实现LED灯的闪烁,只需利用编程方法依次从低位到高位逐个变为低电平,等待少许时刻再变高即可。图6 LED灯显示电路图4.2 时钟控制石英晶体振荡器它的基本构成大致是:从

6、一块石英晶体上按一定方位角切下薄片,在它的两个对应面上涂敷银层作为电极,在每个电极上各焊一根引线接到管脚上,再加上封装外壳就构成了石英晶体谐振器。其产品一般用金属外壳封装,也有用玻璃壳、陶瓷或塑料封装的。HMOS型MCS-51外部时钟源的接发:在XTLA1和XTLA2两端跨接晶体或陶瓷振荡器,与内部反相器构成稳定的自激振荡器。其发出的时钟脉冲直接送入片内定时控制部件,其中C电容对频率有微调作用。 4.3 数码管显示为了能使电路简单我们采用数码管动态显示方式。数码管不同位显示的时间间隔可以通过调整延时程序的延时长短来完成。数码管显示的时间间隔也能够确定数码管显示时的亮度,若显示的时间间隔长,显示

7、时数码管的亮度将亮些,若显示的时间间隔短,显示时数码管的亮度将暗些。若显示的时间间隔过长的话,数码管显示时将产生闪烁现象。图3 数码管显示图4.4 AT89C52AT89C52是此次课程设计的核心部分。其管脚图如下:图8 AT89C52管脚图AT89C52各管脚功能如下:VCC:供电电压;GND:接地;P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。;P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流;P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部

8、上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流;P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入;P3口管脚功能: P3.0是RXD(串行输入口);P3.1是TXD(串行输出口);P3.2是/INT0(外部中断0);P3.3是/INT1(外部中断1);P3.4是T0(记时器0外部输入);P3.5是T1(记时器1外部输入);P3.6是/WR(外部数据存储器写选通);P3.7是/RD(外部数据存储器读选通);P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振

9、荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许输出电平用于锁存地址的地位字节。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。4.5 扬声器图5 扬声器原理图蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动

10、膜发声的。因此需要一定的电流才能驱动它,单片机IO口输出的电流较小,其TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。程序中通过改变单片机对应IO口输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。另外,改变其占空比,也可以控制蜂鸣器的声音大小。可以有两种驱动方式,即用PNP或NPN三极管电流放大电路驱动。本电路通过一个PNP三极管9012来放大驱动蜂鸣器,当输出高电平时,三极管Q1截止,没有电流流过线圈,蜂鸣器不发声;当输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制IO口输出的电平来使蜂鸣器发出声音和关闭,从而实

11、现各种可能音响的产生。4.6 键盘在MCS-51系列单片机的指令系统中设有散转指令JMP A+DPTR,可看成是专门配合键入程序是整个应用程序的核心部分。图7 键盘电路键盘的操作,无论是按键或键盘都是利用机械触点的合、断作用。一个电压信号通过机械触点的闭合、断开过程。由于机械触点的弹性作用,在闭合及断开瞬间均有抖动过程,会出现一系列负脉冲。抖动时间的长短,与开关的机械特性有关,一般为510ms。三、参考程序ORG 0000H;程序执行开始地址LJMP MAIN ;跳转到标号start执行ORG 0003H ;外部中断0入口地址LJMP EXINT0ORG 001BH ;定时器T1中断程序入口

12、LJMP INTT1 ;跳至INTT1执行ORG 0100HMAIN:MOV SP,#10HSETB IT0SETB EASETB ET1MOV TMOD,#10HMOV TL1,#0B0H ;设置定时时间0.008sMOV TH1,#3CHMOV R0,#14HAJMP STARTSTART: LCALL KEY ;调用按键子程序 AJMP START KEY: MOV P1,#0F0H ; 单片机按键口置位MOV A,P1MOV B,AACALL DELAY2MOV A,P1CJNE A,B,K4 ; 判断是否有键按下,没有则转移CJNE A,#0E0H,K1 ; 判断KEYA键是否按下,

13、没有则转移AJMP KEYA ; KEYA键按下,执行扬声器子程序K1: CJNE A,#0D0H,K2 ; 判断KEYB键是否按下,没有则转移AJMP KEYB ; KEYB键按下,执行流水灯子程序K2: CJNE A,#0B0H,K3 ; 判断KEYC键是否按下,没有则转移AJMP KEYC ; KEYC键按下,执行数码管动态显示子程序K3: CJNE A,#070H,K4 ; 判断KEYD键是否按下,没有则转移AJMP KEYD ; KEYD键按下,执行速度里程表子程序K4: RET;*扬声器*KEYA:MOV R7,0AHLP:MOV R6,#0FFHSETB P3.7DJNZ R6,

14、$MOV R6,#0FFHCLR P3.7DJNZ R6,$DJNZ R7,LPLCALL DELAY1RET;*流水灯*KEYB:MOV P2,#11111110BLCALL DELAY1MOV P2,#11111101BLCALL DELAY1MOV P2,#11111011BLCALL DELAY1MOV P2,#11110111BLCALL DELAY1MOV P2,#11101111BLCALL DELAY1MOV P2,#11011111BLCALL DELAY1MOV P2,#10111111BLCALL DELAY1MOV P2,#01111111BLCALL DELAY1SE

15、TB P2.7RET ;数码管动态显示KEYC: CLR P1.0MOV P0,#99HSETB P1.3 ACALL DELAY2MOV P0,#0FFHCLR P1.3MOV P0,#0B0HSETB P1.2ACALL DELAY2MOV P0,#0FFHCLR P1.2MOV P0,#0A4HSETB P1.1ACALL DELAY2MOV P0,#0FFHCLR P1.1MOV P0,#0F9HSETB P1.0ACALL DELAY2RET;速度里程表 KEYD:SETB EX0SETB TR1MOV DPTR,#TABLEDISPALY: MOV A,P3ANL A,#08HJN

16、Z S2;MOV 20H,31H;MOV 21H,32H;MOV 22H,33H;MOV 23H,34HMOV P0,#0FFHCLR P1.0MOV A,20HMOVC A,A+DPTRMOV P0,ASETB P1.3 ACALL DELAY2MOV P0,#0FFHCLR P1.3MOV A,21HMOVC A,A+DPTRMOV P0,ASETB P1.2ACALL DELAY2MOV P0,#0FFHCLR P1.2MOV A,22HMOVC A,A+DPTRS3: MOV P0,ASETB P1.1 ACALL DELAY2MOV P0,#0FFHCLR P1.1MOV A,23H

17、MOVC A,A+DPTRMOV P0,ASETB P1.0ACALL DELAY2RETS2:MOV P0,#0FFHCLR P1.0MOV A,31HMOVC A,A+DPTRMOV P0,ASETB P1.3 ACALL DELAY2MOV P0,#0FFHCLR P1.3MOV A,32HMOVC A,A+DPTRMOV P0,ASETB P1.2ACALL DELAY2MOV P0,#0FFHCLR P1.2MOV A,33HMOVC A,A+DPTRCLR ACC.7MOV P0,ASETB P1.1 ACALL DELAY2MOV P0,#0FFHCLR P1.1MOV A,34

18、HMOVC A,A+DPTRMOV P0,ASETB P1.0ACALL DELAY2RETDELAY1: MOV R5,#25 ; 延时0.5sDL1: MOV R4,#100 DL2: MOV R3,#100 DJNZ R3,$ DJNZ R4,DL2 DJNZ R5,DL1 RETDELAY2: MOV R4,#10 ; 延时2msDL3: MOV R3,#100DJNZ R3,$DJNZ R4,DL3RETEXINT0:PUSH PSWPUSH ACCINC 30HMOV A,30HCJNE A,#0AH,LOOP1MOV 30H,#00HINC 31HMOV A,31HCJNE A,

19、#0AH,LOOP1MOV 31H,#00HINC 32HMOV A,32HCJNE A,#0AH,LOOP1MOV 32H,#00HINC 33HMOV A,33HCJNE A,#0AH,LOOP1MOV 33H,#00HINC 34HLOOP1: INC 40HMOV A,40HCJNE A,#0AH,LOOP2MOV 40H,#00HINC 41HMOV A,41HCJNE A,#0AH,LOOP2MOV 41H,#00HINC 42HMOV A,42HCJNE A,#0AH,LOOP2MOV 42H,#00HINC 43HLOOP2: POP ACCPOP PSWRETITABLE:

20、DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;速度计算INTT1: ;计数时间减1MOV TL1,#0B0H ;设置定时时间0.008sMOV TH1,#3CHDJNZ R0,KK1 ;计数时间是否到1S,没到跳转MOV 20H,40HMOV 21H,41HMOV 22H,42HMOV 23H,43HMOV 40H,#0HMOV 41H,#0HMOV 42H,#0HMOV 43H,#0HMOV R0,#14HKK1:RETI;;END五、软件调试与硬件调试5.1 硬件调试1、从桌面或【开始】菜单选择【程序】Keil Uvision命令,打开此软件,进入Keil Uvision界面。打开软件后,在Project菜单中选择New Project命令,打开一个新项目。保存此项目,输入工程文件名后,并保存工程文件的目录。2、为项目文件选择一个目标器件,即选择8051的类型。在Data base 列表框中选择“ATML 89C52”,确定。用鼠标对准项目工作区的目标1,点击右键在弹出的菜单中选择“为目标目标1设置选项”。在为“为目标目标1设置选项”中,点击“调试”菜单,在此菜单中可选择使用硬件仿真或软件仿真,若连接实验箱时则选择硬件仿真,点击硬件仿真选项后面的调试选项,在此对话框中选择串口波特率,波特率为38

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论