里程计数器课程设计报告Word文档格式.docx

上传人:b****5 文档编号:19148950 上传时间:2023-01-04 格式:DOCX 页数:24 大小:494.99KB
下载 相关 举报
里程计数器课程设计报告Word文档格式.docx_第1页
第1页 / 共24页
里程计数器课程设计报告Word文档格式.docx_第2页
第2页 / 共24页
里程计数器课程设计报告Word文档格式.docx_第3页
第3页 / 共24页
里程计数器课程设计报告Word文档格式.docx_第4页
第4页 / 共24页
里程计数器课程设计报告Word文档格式.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

里程计数器课程设计报告Word文档格式.docx

《里程计数器课程设计报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《里程计数器课程设计报告Word文档格式.docx(24页珍藏版)》请在冰豆网上搜索。

里程计数器课程设计报告Word文档格式.docx

3.对数据进行处理,要求用LED显示里程总数和即时速度。

利用软件编程,对数据进行处理得到需要的数值。

最终实现目标:

采用单片机作控制,显示电路可显示里程

五、系统硬件设计

1.单片机最小系统[1]及说明

单片机最小系统是单片机应用的最基电路,由芯片AT89C51、电源、时钟电路和复位电路组成。

AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS8位微处理器。

其应用广泛,生活中很多地方都有它的应用,像电子钟、出租车计价器、交通灯等。

其管脚说明如下:

VCC:

供电电压。

GND:

接地。

 

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P0口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。

  

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为低八位地址接收。

P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

  P3口也可作为AT89C51的一些特殊功能口,如下表所示:

P3口管脚备选功能  

P3.0RXD(串行输入口) 

P3.1TXD(串行输出口)  

P3.2/INT0(外部中断0)  

P3.3/INT1(外部中断1)  

P3.4T0(记时器0外部输入)  

P3.5T1(记时器1外部输入)  

P3.6/WR(外部数据存储器写选通)  

P3.7/RD(外部数据存储器读选通)  

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:

每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:

外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:

当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;

当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:

来自反向振荡器的输出。

2.里程信号的采集

里程计算是通过安装在车轮上的霍尔传感器A44E检测到的信号,送到单片机,经处理计算,送给显示单元的。

其原理如图3所示。

图3传感器测距示意图

霍尔传感器是对磁敏感的传感元件,常用于信号采集的有A44E,该传感器是一个3端器件,外形与三极管相似,只要接上电源、地,即可工作,工作电压X围宽,使用非常方便。

A44E的外形如图4所示。

1-VCC2-GND3-OUT

图4A44E外形图

3.显示单元电路设计

由于设计要求有里程数据显示输出,所以采用6位8段LED数码管的分屏显示。

显示电路由8路同相三态双向总线收发器74LS245和6位8段LED数码管组成。

74LS245用于连接51单片机和LED数码管,51单片机的P0.0~P0.7先接LED驱动74LS245再接数码管的A~G和dp,当位P0.0为1时,对应A段点亮,以次类推。

而51单片机的P2.0~P2.5直接与数码管相连,其6个输出口分别接到6个数码管,这样就可以进行控制6个数码管的显示。

如图5所示

图5显示电路

图68子形LED数码管

常用的LED数码管有的共阴和共阳两种,本次用于显示的是8位8段共阴LED显示管

六系统软件设计

1.系统主程序设计

在主程序模块中,需要完成对各接口芯片的初始化、里程计数的初始化、中断向量的设计以及开中断、循环等待等工作。

另外,在主程序模块中还需要设置启动/清除标志寄存器、里程数据寄存器,并对它们进行初始化。

然后,主程序将根据各标志寄存器的内容,分别完成启动和计程等不同的操作。

主程序流程图如图7所示。

当检测到传感器输入信号时,就启动计数,当计数到满后,向单片机申请中断,并把圈数存扫里程寄存器中,单片机将根据里程寄存器中的内容计算行驶里程公里数,再存到相应的寄存器。

数据存到寄存器中后送显示电路显示出来。

中断

图7主程序流程图

2.中断服务程序

当检测到里程信号输入时,计数器就开始计数,当记到10时,相当于1公里,计数器就申请中断,进行中断服务程序,送数据到相应的数据寄存单元,并进行计算。

其程序流程如图8所示。

N

Y

图8中断服务程序

3.显示子程序

里程数据送到相应的寄存器后,就会进行显示。

本次课程设计采用动态扫描显示。

数码管显示里程数程序流程图如图9。

图9显示子程序

七、系统仿真调试与分析

根据系统设计方案,本系统的调试共分为三大部分:

硬件调试,软件调试和软硬件联调。

由于条件的限制。

整体电路采用protues软件进行仿真,先点击开始仿真键,一开始显示为0,随着脉冲的输入,显示的数会增大,由于车轮的周长存在RAM中,单片机复位后显示为0。

单片机如果仿真结果不是这样,应停止仿真进行电路检查,由于本电路图比较简单,出错可能性小,我们可从连线上找,也可分析它的电平是否正确,改正后在进行仿真直到结果跟设计的相符合。

调试工具:

proteus仿真软件[3]

Keil程序仿真软件

1.进行程序编译,修改直到无误

2.开始进行仿真时,显示里程数为0.

3.当里程信号的输入10次,即1公里,显示1公里

4.随着信号的输入,显示的里程变数大

八、设计中的问题及解决方法

本次课程设计设计是基于单片机,主要用到很多单片机的知识,由于涉及知识多,单片机课上半学期已结束,很多东西已忘记,于是把单片机教材浏览了一遍,把忘了的知识重新记起来。

在电路的选择上开始设计时遇到很多问题,单片机有很多新型号,比如AT89C52,AT89S52等,由于电路简单,选择AT89C51就可。

在显示电路上,串行比并行需要的单片机口少得多,本次设计电路简单,选用并行比较简单。

课程设计用到两个软件,KeiluVision和proteus,但这两个软件是比较专用的软件,不易安装好,通过在网上查找和同学的帮助,最终把他们装好。

proteus软件是第一次用,因此很多东西都不知道,一开始画电路图连元器件都找不到,通过《单片机原理及课程设计》一书的介绍和从网上找到的元器件关键字对照表及自己慢慢的摸索,最后把电路图画好。

Proteus仿真时,为了源程序的正确性,先把程序放在KeiluVision中检验,修改,在生成hex文件仿真

仿真时一开始得不到预料的结果,通过检查修改源程序和电路图最终仿真出了预想的结果

九、设计心得

本次课程设计时间两周,在这两周里,我学到了很多东西。

课程设计用到的知识主要是单片机方面的,在课程设计的过程中,我对单片机知识理解加深了,以前不懂的很多东西,通过向同学老师请教,也慢慢的搞懂了。

在过两周就是期末考试了,对于单片机的复习可以说是一举两得。

课程设计用到两个软件:

KeiluVision和proteus,KeiluVision在以前的的单片机实验中就有用到,这次再用,感觉还好,对其的基本功能与操作更熟悉了,proteus是第一次用,一开始感到很难,慢慢熟悉后用起来也就比较顺手。

现在想起来觉得其实就是一些简单的东西,但是了解了proteus的基本操作,还是感到学到了东西。

课程设计虽然只有两周,但我觉得它的意义是重大的,它让我们学到了知识,学会应用知识之间的联系、整合知识。

课程设计还可为以后的毕业设计打基础,如果能顺利的搞好课程设计,就能为我们搞好毕业加码。

十、参考文献

[1]曾屹.单片机原理与应用.XX:

中南大学,2009

[2]X一斌余建坤单片机原理及课程设计XX:

[3]江世明传感技术与应用第二版XX:

[3]王晓君等.MCS-51及兼容单片机原理与选型:

电子工业

[4]X淑清等.单片微型计算机接口技术及其应用:

国防工业

附录:

附录A:

电路图

附录B:

源程序

VSDAEQUP1.5

VSCLEQUP1.4

SLAEQU50H

NUMBYTEQU51H

MTDEQU30H

MRDEQU40H

SLAWEQU0A0H

SLAREQU0A1H

DPHHEQU62H

TH1HEQU6CH

TH1HHEQU6DH

ORG0000H

LJMPSTART

ORG0003H

LJMPINTEX0

ORG000BH

RETI

ORG0013H

LJMPINTEX1

ORG001BH

LJMPINTT1

ORG0023H

ORG002BH

CLEARMEN:

MOVTMOD,#90H

MOVSP,#75H

SETBPX0

SETBIT0

SETBIT1

CLRA

MOV20H,A

MOV6CH,A

MOV6DH,A

MOV70H,A

MOV71H,A

MOV72H,A

MOV73H,A

MOV60H,A

MOV61H,A

MOV62H,A

MOV63H,A

DECA

MOV68H,A

MOV69H,A

MOV6AH,A

MOV6BH,A

MOVP1,A

CLEAR1:

P1.2,KEY1

MOV21H,#0FH

LJMPCLEAR2

KEY1:

P1.3,KEY2

MOV21H,#12H

KEY2:

P1.6,KEY3

MOV21H,#14H

KEY3:

P1.7,ERR

MOV21H,#19H

CLEAR2:

SETBTR1

SETBEA

SETBEX0

SETBET1

SETBP3.1

LCALLVIICREAD

RET

ERR:

CPLP3.1

LCALLDL5S

LJMPCLEAR1

START:

LCALLCLEARMEN

START1:

P3.0,DISPLAYS

LCALLDISPLAYV

START2:

SJMPSTART1

INTEX0:

PUSHACC

PUSHPSW

INC60H

CJNEA,60H,INTEX0OUT

INC61H

CJNEA,61H,INTEX0OUT

INC62H

INTEX0OUT:

LCALLVIICWRITE

SETBEX1

POPPSW

POPACC

RETI

INTEX1:

CLREX1

JNB00H,INTEX11

MOVTL1,#0FFH

MOVTH1,#0FFH

MOV6CH,#0FFH

MOV6DH,#0FFH

INTEX11:

MOV68H,TL1

MOV69H,TH1

MOV6AH,6CH

MOV6BH,6DH

MOVTL1,A

MOVTH1,A

CLR00H

INTT1:

INC6CH

MOVA,6CH

JNZINTT11

INC6DH

MOVA,6DH

SETB00H

INTT11:

POPPSW

POPACC

DISPLAYS:

SETBP1.0

CLRP1.1

SETBP3.7

LCALLSSS

LCALLDISPLAY

LJMPSTART1

DISPLAYV:

CLRP1.0

SETBP1.1

CLRP3.7

LCALLVVV

MOVA,71H

SUBBA,#04H

JNCWARING

V1:

LCALLDISPLAY

RET

WARING:

CLRP3.1

AJMPV1

VIICWRITE:

ACALLWMOV9

MOVSLA,#SLAW

MOVNUMBYT,#09H

LCALLWRNBYT

WMOV9:

MOV5FH,#50H

MOVR0,#MTD

MOVR1,#5FH

MOVR2,#09H

WMOV:

MOVA,R1

MOVR0,A

INCR0

INCR1

DJNZR2,WMOV

DISPLAY:

MOVR1,#70H

MOVR2,#0FEH

PLAY:

MOVA,R2

MOVP2,A

MOVA,R1

ANLA,#0FH

MOVDPTR,#TAB

MOVCA,A+DPTR

MOVP0,A

LCALLDL1MS

MOVA,R2

JNBACC.3,ENDOUT

RLA

MOVR2,A

AJMPPLAY

ENDOUT:

SETBP2.0

SETBP2.1

SETBP2.2

SETBP2.3

TAB:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H

DB7FH,6FH,77H,7CH,39H,5EH,79H,71H

DB00H

SSS:

MOV19H,#64H

MOV18H,#00H

MOV17H,#00H

MOV16H,#00H

MOV11H,#00H

MOV12H,#00H

MOV13H,62H

MOV14H,61H

MOV15H,60H

LCALLDIVST

LCALLBCDST

MOVA,25H

MOV70H,A

SWAPA

MOVA,24H

VVV:

MOV18H,68H

MOV17H,69H

MOV16H,6AH

MOV13H,#36H

MOV14H,#0EEH

MOV15H,#80H

MOV14H,#00H

MOV72H,#00H

MOV73H,#00H

DL1MS:

MOVR6,#14H

DL1:

MOVR7,#19H

DL2:

DJNZR7,DL2

DJNZR6,DL1

DL5S:

MOVR5,#0FFH

DL3:

LCALLDL1MS

DJNZR5,DL3

DIVST:

CLRC

MOVA,13H

SUBBA,18H

MOVA,12H

SUBBA,17H

MOVA,11H

SUBBA,16H

JNCLOOP4

MOVB,#10H

NDIV1:

CLRC

MOVA,15H

RLCA

MOV15H,A

MOVA,14H

MOV14H,A

MOVA,13H

MOV13H,A

MOV12H,A

MOV11H,A

MOVF0,C

CLRC

MOV1AH,A

MOV19H,A

F0,NDIV2

JCNDIV3

NDIV2:

MOV11H,A

MOVA,19H

MOVA,1AH

INC15H

NDIV3:

DJNZB,NDIV1

CLRF0

DIVEND:

LOOP4:

SETBF0

SJMPDIVEND

BCDST:

MOVR7,#10H

MOV25H,#00H

MOV24H,#00H

KKK:

RLCA

ADDCA,25H

DAA

MOV25H,A

ADDCA,24H

MOV24H,A

DJNZR7,KKK

END

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 哲学历史

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

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