课程设计基于AT89C52单片机出租车计价器设计Word文档下载推荐.docx

上传人:b****1 文档编号:3305443 上传时间:2023-05-01 格式:DOCX 页数:16 大小:108.88KB
下载 相关 举报
课程设计基于AT89C52单片机出租车计价器设计Word文档下载推荐.docx_第1页
第1页 / 共16页
课程设计基于AT89C52单片机出租车计价器设计Word文档下载推荐.docx_第2页
第2页 / 共16页
课程设计基于AT89C52单片机出租车计价器设计Word文档下载推荐.docx_第3页
第3页 / 共16页
课程设计基于AT89C52单片机出租车计价器设计Word文档下载推荐.docx_第4页
第4页 / 共16页
课程设计基于AT89C52单片机出租车计价器设计Word文档下载推荐.docx_第5页
第5页 / 共16页
课程设计基于AT89C52单片机出租车计价器设计Word文档下载推荐.docx_第6页
第6页 / 共16页
课程设计基于AT89C52单片机出租车计价器设计Word文档下载推荐.docx_第7页
第7页 / 共16页
课程设计基于AT89C52单片机出租车计价器设计Word文档下载推荐.docx_第8页
第8页 / 共16页
课程设计基于AT89C52单片机出租车计价器设计Word文档下载推荐.docx_第9页
第9页 / 共16页
课程设计基于AT89C52单片机出租车计价器设计Word文档下载推荐.docx_第10页
第10页 / 共16页
课程设计基于AT89C52单片机出租车计价器设计Word文档下载推荐.docx_第11页
第11页 / 共16页
课程设计基于AT89C52单片机出租车计价器设计Word文档下载推荐.docx_第12页
第12页 / 共16页
课程设计基于AT89C52单片机出租车计价器设计Word文档下载推荐.docx_第13页
第13页 / 共16页
课程设计基于AT89C52单片机出租车计价器设计Word文档下载推荐.docx_第14页
第14页 / 共16页
课程设计基于AT89C52单片机出租车计价器设计Word文档下载推荐.docx_第15页
第15页 / 共16页
课程设计基于AT89C52单片机出租车计价器设计Word文档下载推荐.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

课程设计基于AT89C52单片机出租车计价器设计Word文档下载推荐.docx

《课程设计基于AT89C52单片机出租车计价器设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《课程设计基于AT89C52单片机出租车计价器设计Word文档下载推荐.docx(16页珍藏版)》请在冰点文库上搜索。

课程设计基于AT89C52单片机出租车计价器设计Word文档下载推荐.docx

关键词:

AT89C52,脉冲模拟,I2C总线,动态显示

目 录

前 言

单片机是一种可通过编程操纵的微处置器,虽其自身不能单独用在某项工程或产品上,但当其与外围数字器件和模拟器件结合时即可发挥壮大的功能,此刻单片机已普遍应用于众多领域。

举例如下:

1.工业自动化。

如数据搜集、测控技术。

2.智能仪器仪表。

如数字示波器、数字信号源、感应电流表等。

3.消费类电子产品。

如空调机、微波炉、IC卡、汽车电子设备等。

4.通信方面。

如调制解调器、程控互换技术等。

5.武器装备。

如飞机、军舰、导弹、鱼雷制导、智能武器等。

作为与自动化技术和电子紧密相关的理工科学生,把握单片机是最简单也最基础的要求。

为了进一步丰硕和巩固单片机知识,也为了能更好的联系实际应用,本次毕业设计选择了基于单片机AT89C52操纵的出租车计价器,并力求能做出实物。

鉴于电子技术、运算机技术和各类更先进的仿真软件的显现,利用高级语言如C代替汇编语言进行编程和操纵已成为现实,也成为一种进展趋势。

单片机C语言编程相关于MC51汇编语言编程有如下优势:

1.对单片机的指令系统不需要有很深的明白得就能够够编程操作单片机。

2.寄放器分派、不同存储器的寻址及数据类型等细节完全由编辑器自动处置。

3.程序有标准的结构,可分为不同的函数,可使程序结构化。

4.库中包括许多标准子程序,具有较强的处置能力,利用方便。

5.具有方便的模块化编程技术,使已编好的程序便于移植,可极大缩短开发时刻,增加程序的可读性和可保护性。

事实上,现今许多硬件的开发都已开始用C语言编程,如各类单片机、DSP、ARM等,用C语言进行工业操纵也已成为一种趋势,为了更好的适应现今社会形势,为了更好的面对挑战、把握机缘,这次毕业设计决定尝试用C语言编程完成。

也希望能在进一步熟悉单片机操纵的同时,对数字电子技术、模拟电子技术、计算操纵技术和经常使用外围芯片有更深层次的了解,提高自己的综合能力。

综上:

基于单片机AT89C52设计的出租车计价器不仅可方便的用软件代替硬件,降低本钱,具有一样计价器的计算里程和显示总金额的功能,还具有了掉电维持,白天、夜晚单价切换,而且还可很方便的扩展为速度测试仪,具有专门好市场前景。

功能要求

1.设计一个出租车计价器,并利用脉冲信号模拟车轮转动和单片机内集成的计数器测试出出租车运行里程。

2.要求单价可调,里程精准到0.1千米,并要求对等待时刻进行计时。

3.利用I2C总线通过EEPROM对存储空间进行扩展,使其具有掉电存储功能。

4.有完整的软件仿真结果和硬件电路,并用Protel设计系统原理图。

2整体设计方案的论证与比较

2.1整体设计方案的论证与比较

方案一:

采纳PLC操纵。

其原理方框图如图2.1所示。

采纳传感器件,输出脉冲信号,通过放大整形作为移位寄放器的脉冲,实现计价,可是考虑到这种电途经于简单,性能不够稳固,而且不能调剂单价,也不能依照天气调剂计费标准,电路不够有效。

方案二:

采纳单片机操纵。

利用单片机丰硕的IO端口,及其操纵的灵活性,实现大体的里程计价功能和价钱调剂、时钟显示功能。

其原理方框图如图2.2所示。

采纳模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试,关于模式的切换需要用到机械开关,机械开关时刻久了会造成接触不良,功能不易实现。

通过比较以上两种方案,单片机有较大的活动空间,利用单片机丰硕的IO端口,及其操纵的灵活性,不但能实现大体的里程计价功能和价钱调剂、时钟显示功能,而且能在专门大的程度上扩展功能,还能够方便的对系统进行升级。

为此咱们采纳了单片机进行设计,相对来讲功能壮大,用较少的硬件和适当的软件彼此配合能够很容易的实现设计要求

第1章系统工作原理

1.1功能要求

出租车计价器是依照乘客乘坐汽车行驶距离和等候时刻的多少进行计价的,并在行驶中同步显示本次消费、运行里程、运行单价和等待时刻等信息。

从起步开始,当汽车行驶里程未满3千米时,均按起步价计算。

超过3千米后,实现每1千米单价收费,中间碰到暂停时,计程数再也不增加,开始计时收费,计程收费和计时收费的和便组成了一名乘客的车费。

同时,白天和夜晚价钱不同,能够进行切换。

白天单价、夜晚单价、等待单价和起步价钱都可通过独立键盘进行调剂。

(默许起步价为5元/3千米,里程单价白天为2.5元/千米,夜晚为3.5元/千米,等待计时单价为1元/1分钟)

为提高计时、计价精度,确保乘客对自己消费的知情权,出租车计价器应做到里程数精准到0.1千米,同时为减少司机朋友来回调整单价和停车后需重设单价的麻烦,计价器应具有掉电维持功能,即当从头启动后维持原有数值(包括总金额、等待时刻、行驶里程、单价)不变,直至强制按下清零键,计价器显示起步价(刚起步时对应总金额)、运行单价,为下一次计价做预备。

1.2大体原理

计价器系统要紧由五部份组成:

别离为脉冲信号模拟车轮转动的里程检测单元、AT89C52单片机、外扩串行EEPROM-AT24C0二、独立键盘和LED显示。

通过按键操纵脉冲,按下按键,即给出一个脉冲,并把该脉冲交由单片机进行处置,单片机那么依照程序设定,通过计算脉冲个数换算出已行驶里程(里程=脉冲个数*出租车车轮周长),然后再依照从EEPROM-AT24C02中读取的单价等相关数据进行总的消费金额的计算:

当里程小于3千米时,总金额=起步价+等待时刻*等待单价;

当里程大于3千米时,总金额=起步价+(里程-3)*运行单价+等待时刻*等待单价;

计算好的金额、等待时刻、里程和单价等数据信息都可实时地显示在数码管上。

独立键盘能够调整单价等相关数据,当按下某按键,会给单片机相应端口一低电平信号,单片机遇通过循环扫描检测到此信号,并依照预先设置好的程序做出相应的处置;

调整好的数据存储到EEPROM中,掉电后能够使该数据不丢失,下次得电后直接从EEPROM-AT24C02中读到单片机,并通过数码管实时显示。

系统结构图如图1-1所示。

图1-1系统结构图

第2章硬件设计

2.1单片机最小系统单元

主控机系统采纳STC公司生产的STC89C52单片机,它含有512字节数据存储器RAM,内置8K的电可擦除FLASHROM,可重复编程,大小知足主控机软件系统设计,因此没必要再扩展程序存储器。

芯片外围电路最高可接入40MHZ的晶振(AT单片机数值一样为24MHZ)。

复位电路和晶振电路,和P0口接入的10K的上拉电阻便组成了STC89C52单片机工作所需的最简外围电路。

单片机最小系统电路图如图2-1所示。

里程计算要紧通过脉冲信号模拟车轮转动,又通过按键操纵脉冲,出租车车轮每旋转一周,并把该脉冲交由单片机进行处置,单片机那么依照程序设定,通过计算脉冲个数换算出已行驶里程:

里程=脉冲个数*出租车车轮周长。

2.3掉电存储单元

AT24C02的作用是在电源断开的时候,存储当前设定的总金额,等待时刻,运行里程和单价等信息。

AT24C02是Ateml公司的2KB的电可擦除存储芯片,采纳两线串行的总线和单片机通信,电压最低能够到,额定电流为1mA,静态电流10uA(5.5V),芯片内的资料能够在断电的情形下保留40年以上,而且采纳8脚的DIP封装,利用方便。

AT24C02芯片引脚配置如图2-4所示。

图2-4AT24C02引脚配置图

图中R4、R5是上拉电阻,其作用是减少AT24C02的静态功耗。

由于AT24C02的数据线和地址线是复用的,采纳串口的方式传送数据,只用两根线SCL(时钟脉冲)和SDA(数据/地址)与单片机P3.6和P3.7口连接,进行传送数据时遵守I2C总线协议。

每当设定一次单价,系统就挪用存储程序,将单价信息保留在芯片内;

当系统从头上电的时候,自动挪用读存储器程序,将存储器内的单价等信息,读到缓存单元中,供主程序利用。

事实上AT24C02为典型的支持I2C总线的器件,对其进行编程时需遵守I2C总线的时序要求,和I2C委员会对各类I2C芯片的地址分派规那么。

现把I2C总线与AT24C02的通信时序、通信规那么简要介绍如下:

1.I2C总线节点的寻址字节

主机产生起始条件后,发送的第一个字节为寻址字节。

该字节的头七位为从机地址,关于AT24C02来讲高四位为1010,它是I2C总线器件的固有地址,紧接着是A一、A二、A3通过接地或高电平决定外围器件的地址数据,第八位是读写操纵为,当为0是表示主节点向从节点发送数据,当为1时表示要接收数据。

2.I2C总线数据传输的格式

(1)主控器的写数据格式:

第一由主机发送起始信号—当SCL为高电平常,SDA由高到低有跳变;

然后发一个寻址字节,当收到应答信号后发送数据,其中应答信号为当SCL为高时SDA传送0,并持续4.7us以上;

当主机产生停止信号时,数据传送终止,停止信号是当SCL为高电平常SDA有一个由低到高的跳变。

(2)主控器的读数据格式:

与写数据的不同的地方在于数据发送终止和停止位之间加一个非应答位,表示数据发送终止,格式为当SCL为高时SDA传送1,并持续4.7us以上。

3.要专门注意的是SDA和SCL都是双向传输线,平常均处于高电平备用状态,只有当需要关闭时才使其钳制在低电平,且仅在SCL为高电平常数据才能传送,而当SCL为低电平常才许诺数据发生转变。

键盘调整单元

当单价等信息需要进行修改时,就要用到键盘。

由于调剂信息不多,故采纳5个独立键盘即可,别离实现清零、切换、增大、减小和功能等作用。

电路原理如图2-5所示。

图2-5键盘调整单元接线图

图中,键盘从上至下依次为:

S0:

接P1.0口,对上一次的计费进行清零,为下次载客做预备;

S1:

接P1.1口,通过对功能键S3按下次数的计数,实现单价数据的增大;

S2:

接P1.2口,通过对功能键S3按下次数的计数,实现单价数据的减小;

S3:

接P1.3口,按1次,进入调整白天单价;

按2次,进入调整夜晚单价;

按3次,进入调整等待单价;

按4次,进入调整起步价;

按5次,返回。

S4:

实现白天单价和夜晚单价的切换。

需要注意的时,当按键按下和释放的刹时都有抖动现象,一样来讲,抖动的时刻长短与键盘的机械特性有关,大约为5-10ms[5]。

因此在实际编程时必然要注意键盘的去抖动。

键盘去抖动有专用的延时电路,也有专门的延时芯片,也能够用软件去抖,考虑到电路的难易程度,从简化硬件的角度,本次设计采纳软件去抖动,用一个短延时程序,进行键盘去抖操作。

2.5显示单元

显示单元由两个4位8段共阳数码管组成,电路连接时,公共端接高电平,因此咱们需要点亮哪个发光二极管只需给哪个二极管阴极送低电平,并采纳动态扫描进行显示[6]2.5,用于显示里程,由于需精准到小数位,故最多只能显示9.9千米,但通过添加溢出指示,可计到20千米,在现实中已大体够用;

后面两个数码管别离接P2.6和P2.7,用于显示单价。

由于溢出指示是采纳发光二极管是不是点亮表示,故必需选好参数以确保发光二极管正常工作。

依照元件手册(也可用万用表测量)查得,发光二极管点亮时压降为1.7V,点亮电流为3-20mA,取导通电流为5mA,因此限流电阻可选择为(5-1.7)/5=660,故可选择限流电阻值510Ω。

由于数码管内部二极管点亮时需要5mA以上的电流,而单片机的输出电流还不到1mA,因此数码管与单片机连接时需加驱动电路,能够利用上拉电阻的方式,也能够利用专门的驱动芯片,考虑到复用单片机I/O接口,节省单片机I/O资源,这次设计采纳74HC573锁存器,其输出电流较大,电路接口简单且可直接驱动数码管显示。

74HC573的引脚散布图2-6如下。

图2-674HC573的引脚散布

:

为三态许诺输入端(低电平有效),也可称作输出许诺端;

1D-8D为数据输入端;

1Q-8Q为数据输出端;

LE为锁存许诺端。

74HC573所对应真值表2-1如表。

表2-174HC573真值表

INPUT

OUTPUT

LED

Q

LHL

LLX

HXX

H

Q0

Z

其中:

H—高电平;

L—低电平;

X—任意电平;

Z—高阻态,既不是高电平也不是低电平,其电平状态由与它相连接的其它电气状态决定;

Q0—上次的电平状态。

由真值表能够看出,当

为高电平常,不管LE与D端为何电平状态,其输出均为高阻态,现在芯片处于不可控状态。

做设计时必需使其处于可控状态,即

应该接低电平。

为低电平常,假设LE为H,那么D与Q同时为H或L,数据实现直通传送;

而当LE为L时,不管D为何状态Q都维持上一次的数据状态,数据被锁存住,利用此特性即可实现对数码管的操纵。

本次设计中:

段选信号LE接P1.5,对应图中标号P1.5;

位选信号LE接P1.6,对应图中标号P1.6。

操纵显示时先给P1.5高电平,使通道打开,接着送字码,然后把P1.5电平拉低,使字码维持住;

以后打开P1.6(送高电平),紧接着送位码,操纵要显示的位,然后把P1.6拉低,数据被维持。

最后延时5ms;

依次循环扫描;

利用数码管点亮后的余晖和人眼视觉暂留效应即可实现动态显示。

数码管动态显示电路如图2-7所示。

第3章软件设计

3.1系统主程序

在主程序模块中,需要完成对各参量和接口的初始化、出租车起步价和单价的初始化和中断、计算、循环等工作。

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

然后,主程序将依照各标志寄放器的内容,别离完成启动、清除、计程和计价等不同的操作。

当出租车运行后,就启动计价器,依照里程寄放器中的内容计算和判定行驶里程是不是已超过起步价千米数。

假设已超过,那么依照里程值、每千米的单价值和起步价来计算出当前的总金额,并将结果存于总金额寄放器中;

半途等待时,无脉冲输入,不产生中断,那时刻超过等待设定值时,开始进行计时,并把等待金额加到总金额里,然后将总金额、里程、等待时刻和单价送数码管显示出来。

程序流程如图3-1所示。

图3-1主程序流程图

3.2里程计数中断程序

每当霍尔传感器输出一个低电平信号,单片机按时器0(工作在计数模式)就对其计数一次,相应的变量设为inter就自加1,当里程计数器inter对里程脉冲计满500次时,对其自身进行清零操作,为下一次计数做预备,同时进入里程计数中断效劳程序中,里程变量加1,总金额依照现在所设单价做出相应的转变。

里程中断子程序如图3-2所示。

图3-2里程中断效劳子程序

3.4计算程序

计算程序依照里程数别离进入不同的计算公式。

若是里程大于3千米,那么执行公式:

总金额=起步价+(里程-3)*单价+等待时刻*等待单价;

不然,执行公式:

总金额=起步价+等待时刻*等待单价。

程序流程图如图3-4所示。

图3-4计算程序流程图

3.5显示程序

由于8位数码管所有段选皆有8位的P0口进行操纵,因此,在每一刹时,8位LED会显示同一个数字。

要想每位显示不同的字符,就必需采纳动态扫描的方式连番点亮列位LED,即在每一时刻只使某一名显示字符。

在此刹时,段选操纵I/O口输出相应字符段选码(字符码),而位选那么操纵I/O口在该显示的位送入选通电平,以保证该位显示显示相应字符。

如此循环操作,使每位分时显示该位应该显示的字符[7]。

在本次设计中显示程序利用延时程序,每隔5ms刷新一次,相应的数码管点亮,显示一名数据,利用主函数内的循环,实现动态扫描显示,同时依照数码管余晖和人眼暂留现象,给人看上去每一个数码管老是在亮,以实现动态显示。

3.6键盘程序

键盘采纳查询的方式,放在主程序中,当有按键按下的时候,在相应I/O口产生一次低电平,当单片机查询出该低电平后便转入进行处置,处置终止返回。

按键检测流程图3-6所示。

图3-6按键检测子程序流程图

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

当前位置:首页 > 考试认证 > 其它考试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2