下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、岀租车计价器 一、方案设计 1.1 功能要求 1. 用前4位数码管实时显示里程数(Z),单位为公里,最后一位为小数位;用 后4位数码管时时显示金额数(J),单位为元,最后一位为小数位。 2. 规定出租车单程价格为2元/公里,往返则价格为1.5元/公里;单程/往返分 别由“单程”按键和“往返” 按键设定。 3. 车速V 5公里/小时的时间累积为总等待时间 T (分钟),每5分钟等待时间相 当于里程数增加1公里。 4. 起步公里数为3公里,价格为8元;若实际运行大于3公里,按“设计任务 2”计算价格。 5. 必须充分利用比赛指定的硬件平台上的资源进行设计。 6. 用单片机控制电机转动,并用光电传感
2、器检测转盘转动模拟车速,车速与转 盘转速成正比。转盘转速为5转/秒对应车速为5公里/小时,转盘转速为50转/ 秒对应车速为50公里/小时,依此类推。 7. 要求公里数检测误差不超过土 10%。 8. 到达目的地后,按“暂停” 键,计价器可暂停计价。 9. 按“清除”键,计价器能将记录数据(里程、等待时间与价格等)自动清 0。 10. 按“查询”键,能自动显示总等待时间 T,再按下该键回到显示里程数、金 额状态。 1.2 系统工作原理及其组成 出租车计价是根据车所行驶的路程以及乘客乘车的方式综合决定的。 出租车 行驶总路程可以通过车轮的周长乘车轮旋转圈数得到。即可计算得到车轮旋转几 周出租车能行
3、驶一公里的路程。因此,使用槽型光耦的目的就是方便地计量车轮 旋转的圈数。可在车轮转轴涂上白色条纹,其余部分涂成黑色,发光管照射转轴。 当转轴转动时,反光与不岀租车计价器 反光交替出现,所以槽型光耦间断地接收光的反射信号,岀租车计价器 1 输出电脉冲。再经过整形电路,输出标准 TTL信号。输出的脉冲信号被接入到 STC89C52单片机系统中,通过计算接收到的脉冲个数,计算出当前所行驶的路 程。同时,根据不同的收费标准,选择相应的起步价、单价等收费标准进行计算。 HD7279管理键盘和数码显示,通过键盘能够实现启动、暂停、停止计价器、切 换显示当前的行驶里程和需支付的车费。 出租车计价器用于记录里
4、程、等待时间、是否往返、起步公里数与价格的关 系,它能有效地避免司机与乘客间的矛盾,保障双方的利益。 模拟出租车计价器能根据总里程数、总等待时间长短、是否往返、起步公里数的 情况作出相应报价等。当然实际的出租车计价器还具有能打印出车票等功能。 总 体模块如图1.2所示。 图1.2电路的组成部分岀租车计价器 2 二、硬件设计 2.1 单片机最小系统单元 主控机系统采用了 Atmel公司生产的STC89C52单片机,它含有256字节 数据存储器,内置8K的电可擦除FLASH ROM可重复编程,大小满足主控机软 1件系统设计,所以不必再扩展程序存储器。复位电路和晶振电路是 STC89C352工 作所
5、需的最简外围电路。单片机最小系统电路图如图 2.1所示。 JP1 图2.1单片机最小系统图 STC89C52的复位端是一个史密特触发输入,高电平有效。 RST端若由低电平上 升到高电平并持续2个周期,系统将实现一次复位操作。在复位电路中,按一下 复位开关就使在RST端出现一段时间的高电平,外接11.0592M晶振和两个30pFC2 3 0pf VCC C1 10uf clo ck 2 data 3 key 4 VCC 15 14 19 18 17 P10 P0 P11 P01 P12 P02 P13 P03 P14 P04 P15 P05 P16 P06 P17 P07 INT1 P20 IN
6、T0 P21 P22 T1 P23 T0 P24 P2 EA/VP P26 P27 X1 X2 RESET RXD TXD RD ALE/P WR PSEN R2 39 38 37 36 34 33 32 21 22 23 24 25 26 27 28 10 11 30 1 2MHZ 1 cs 5 6 31 岀租车计价器 3 电容组成系统的内部时钟电路 2.2 光电开关单元 传耦合器以光为媒介输电信号。它对输入、输出电信号有良好的隔离 作用,所以,它在各种电路中得到广泛的应用。目前它已成为种类最多、 用途最广的光电器件之一。光耦合器一般由三部分组成:光的发射、光的 接收及信号放大。输入的电信号
7、驱动发光二极管( LED),使之发出一定波 长的光,被光探测器接收而产生光电流,再经过进一步放大后输出。这就 完成了电一光一电的转换,从而起到输入、输出、隔离的作用。由于光耦 合器输入输出间互相隔离,电信号传输具有单向性等特点,因而具有良好 的电绝缘能力和抗干扰能力。又由于光耦合器的输入端属于电流型工作的 低阻元件,因而具有很强的共模抑制能力。所以,它在长线传输信息中作 为终端隔离元件可以大大提高信噪比。在计算机数字通信及实时控制中作 为信号隔离的接口器件, 可以大大增加计算机工作的可靠性。而槽型光耦为 中断槽隙透视式光电传感器。 槽型光耦的特点: 信号单向传输,输入端与输出端完全实现了电气隔
8、离, 输出信号对输入端无 影响,抗干扰能力强,工作稳定,无触点,使用寿命长,传输效率高。光耦合器 是70年代发展起来产新型器件,现已广泛用于电气绝缘、电平转换、级间耦合、 驱动电路、开关电路、斩波器、多谐振荡器、信号隔离、级间隔离 、脉冲放大 电路、数字仪表、远距离信号传输、脉冲放大、固态继电器 (SSR)、仪器仪表、 通信设备及微机接口中。在单片开关电源中,利用线性光耦合器可构成光耦反馈 电路,通过调节控制端电流来改变占空比,达到精密稳压目的。 槽型光耦的工作原理: 槽隙两边分别装有红外发射器和接收器。当槽内无物体时,红外发射 管的光直接照在硅光敏三极管的窗口上,从而产生大的电流输出;当有物
9、 体经过槽隙时,切断了光路,阻挡了信号的传输,这时光敏三极管无输出, 这样可以辨别物体的有无。 槽型光耦的应用: (1) 在逻辑电路上的应用 光电耦合器可以构成各种逻辑电路,由于光电耦合器的抗干扰性能和 隔离性能比晶体岀租车计价器 4 管好,因此,由它构成的逻辑电路更可靠。 (2) 作为固体开关应用 在开关电路中,往往要求控制电路和开关之间要有很好的电隔离,对 于一般的电子开关来说是很难做到的,但用光电耦合器却很容易实现。 (3) 在触发电路上的应用 将光电耦合器用于双稳态输出电路,由于可以把发光二极管分别串入 两管发射极回路,可有效地解决输出与负载隔离地问题。 (4) 在脉冲放大电路中的应用
10、 光电耦合器应用于数字电路,可以将脉冲信号进行放大。 (5) 在线性电路上的应用 线性光电耦合器应用于线性电路中,具有较高地线性度以及优良地电 隔离性能。 (6) 特殊场合的应用 光电耦合器还可应用于高压控制,取代变压器,代替触点继电器以及 用于A/D电路等多种场合。 光电脉冲的转换电路如图2.2所示: 槽型光耦用VCC=5V电源(如图2-2),可以安装在出租车车轮处。当出租车 在行进过程中,则车轮就会不断对它遮挡,从而产生一系列脉冲。由于这些脉冲 可能会被干扰,或者电平不稳定,因此就需要增加一个三级管( Q1对信号进行 放大。而74LS14是作为反相器的功能来使用,可以使0U口输出的脉冲符合
11、TTL 电平,岀租车计价器 5 直接可输入到 STC89C52的INTO 口。 计算:由于槽型光耦中的二极管的导通电压为 0.7V,流过的电流为10mA 而电压源为5V电压,故R1两端电压为U=4.3V,流过的电流为l=10mA,因此 R1=U/l=4.3V/10mA=430Q 500Q。 而上拉电阻R2是用来限流,故 R2 10KQ,故R2=10KQ。 设计中以槽型光耦作为传感器元件,并且在实现阶段用函数信号发生器模拟 光电传感器实现计程脉冲的形成。 2.3 键盘调整单元 当单价等信息需要进行修改时,就要用到键盘进行修改。由于调节信息不多, 故采用4个独立键盘即可,分别实现显示金额和公里数、
12、 清零、暂停、单程和 往返功能等作用。 键盘采用4*4矩阵按键,接在STC89C52勺P3 口,当有键按下时,相对应的 接口被置0。矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O 线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。电路 原理图如图2.3所示,行线接P3.0P3.3,列线接P3.4P3.7。 S8:按1次,显示金额和公里数;按2次,进入调整中途等待计价。 S9:对上一次的计费进行清零,为下次载客准备。 S10:停止计价,方便客户查看金额。 S11 :实现单程和往返单价的切换。 岀租车计价器 6 图2.3键盘调整单元接线图 2.4 7279 键盘、
13、显示接口 采用HD7279芯片构成键盘显示电路,HD7279是一片具串行接口的,可同时 驱动8位共阴式数码的智能显示驱动芯片,该芯片同时还可以连接多达 64键的 键盘矩阵,单片即可完成LED显示、键盘接口的全部功能。DIGODIG7和SAS G键盘的列线和行线端口,用来完成对键盘的监视,译码和键值的识别。 DIG( DIG7为8个LED管的位驱动输出端,SASG分别为LED数码管的A段G段的 输出端,DP为小数点的驱动输出端。HD7279与单片机仅需4跟接口线, 其中的CS为片选信号,当单片机访问HD7279即读键号或写指令时,应将片 选端置为低电平,低电平有效。 CLK为数据串行传送的同步时
14、钟输入端,时钟的上升沿表示数据有效。 DATA为串行数据端,当向HD7279发送数据时,DATA为输入端;当HD7279 输出键盘代码时,DATA为输出端。 KEY为按键信号输出端,在无键按下时为高电平;而有键按下时此引脚变为 低电平并岀租车计价器 7 且一直保持到键释放为止。在 64阵列键盘中每个键的键码是用十六进 制表示的,可用读键盘数据指令读出,其范围是 OOH- 3FH HD7279需要一外接的RC震荡电路以供系统工作,其典型值 R=1.5kQ,C=15 pF。RESETS复位端。该端口由低电平变成高电平并保持 25ms即复位结束。HD7 279A片内具有驱动电路, 它可以直接驱动 L
15、ED数码管, 使外围电路变得简单可 靠。HD7279盘、显示接口电路如图 2-4 : 图2.4 7279键盘显示接口电路 三、软件设计 软件是单片机系统的灵魂,根据设计的要求,在本系统中主要有主程序、中 断服务程序和键盘显示子程序、计算子程序等。在主程序中主要完成了寄存器的 初始化部分以及对键盘和显示的控制。 岀租车计价器 8 3.1 系统主程序 在主程序模块中,需要完成对各参量和接口的初始化、 出租车起价和单价的 初始化以及中断、计算、循环等工作。另外,在主程序模块中还需要设置启动 / 清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。然后,主程 序将根据各标志寄存器的内容,分别完
16、成启动、清除、计程和计价等不同的操作。 当汽车运行起来时,就启动计价,根据里程寄存器中的内容计算和判断行驶 里程是否已超过起步价公里数。 若已超过,则根据里程值、每公里的单价数和起 步价数来计算出当前的总金额,并将结果存于总金额寄存器中;中途等待时,无 脉冲输入,不产生中断,当时间超过等待设定值时,开始进行计时,并把等待价 格加到总金额里,然后将总金额、里程和单价、往返价格送数码管显示出来。程 序流程如图3.1所示。岀租车计价器 9 岀租车计价器 10 岀租车计价器 11 3.2 中断程序 每当光电传感器输出一个低电平信号就使单片机中断一次, 当里程计数器对 里程脉冲计满3600次时,进入里程
17、计数中断服务程序中,里程变量加一。主函 数中总金额也相应地变化。在中途等待中断程序中,每1ms产生一次中断,将由 当前里程计算出速度值送入某个缓存变量, 每5分钟将缓存变量中的值和当前速 度值比较,当汽车小于设定的车速,光电传感器5分钟输出信号,当前速度值小 于缓存变量内的值,则进入等待计时,每 5分钟记一次价格。如图3.2 图3.2中断服务程序 3.3 计算程序 计算程序根据里程数分别进入不同的计算公式。如果里程大于 3公里,则执 行公式:总金额=起步价+ (里程-3)*单价+等待时间*等待单价;否则,执行公 式:总金额=起步价+等待时间*等待单价;程序框图如3.3所示。岀租车计价器 12
18、图3.3计算程序框图 3.4 显示程序 程序利用定时器每1ms产生一次中断,相应变量置位,点亮一个数码管, 显示一位数据,利用主函数内的循环,实现动态扫描显示,同时根据数码管余辉 和人眼暂留现象,即可实现显示。 0 x1c,0 x1d,0 x1e,0 x1f,0 x14,0 x15,0 x16,0 x17, 0 x0c,0 x0d,0 x0e,0 x0f,0 x04,0 x05,0 x06,0 x07; / 实际电 路当中所测得键值编码s0-s15岀租车计价器 13 图3.4 键盘显示子程序岀租车计价器 14 四、系统测试 4.1 调试与测试 采用KeilC51编译器进行源程序编译及仿真调试,
19、同时进行硬件电路板的设 计制作。硬件电路制作完毕,用万用表检测有无短路开路等现象, 确定硬件电路 没有问题后,用仿真头与硬件电路相连,运行程序进行调试。 若调试不成功,则可再单独调试程序和硬件电路。程序用软件仿真运行,硬 件电路再次检查有无焊错,或者元件与插座接触不良等方面问题; 确认均无问题 后,再次把软件和硬件联机调试,直至功能正常。把程序烧录进单片机STC89C52 结束调试。 4.2 里程计价测试 采用光电传感器产生外部中断,设定中断间隔为 10ms假定3600个脉 冲为1公里,则此时车速为1km/h=5圈/S.整个系统以此为基础,通过计费程 序完成中金额的计算。表4.1的测试条件是:
20、假设单程的单价是 1.5元,起 步价为8元(包含3公里),分别不公里程测试得数据如表: 表4.1实际金额和里程数 4km 6km 7km 9km 总 金 额 理 论 6.5元 9.5 元 11元 14元 实 际 6.5元 9.5元 11元 14元 行 驶 里 程 理 论 4km 6km 7km 9km 实 际 4km 6km 7km 9km 表4.2的测试条件是:假设在单程运行中的单价 1.5元的情况下行驶了 岀租车计价器 15 10km进行中途等待,分别等待不同的时间(5分钟为一个单位计费1元),起 步价为8元(包含3km)。 表4.2总金额对比 5mi n 10mi n 15mi n 20
21、min 总 金 额 理 论 16.5 元 17.5 元 18.5 元 19.5 元 实 际 16.5 元 17.5 元 18.5 元 19.5 元 岀租车计价器 16 附录 A:系统原理图 JPI vcc clock 2 曲ta 3 kftjr 4 CS, HF 30pf 19 If Cl Mpf ,_yi III2MHZ VCC Cl 卄 OJ234567 dL MHB IX 1* 1 o 用 INTINTTlTOEAXIX2 RESET RD WR STC89C52 P PP PP PP PP PF FP PP P 202122232425M27 pppppppp RXD TXD ALEJ
22、P P3EN 39 38 37 豆 34 33 21 2? 2 21 蓝 互 ST JO TT a 岀租车计价器 17 附录 B:源程序及注释 #in elude #defi ne uchar un sig ned char #defi ne uint un sig ned int /*7279 指令 */ #defi ne com_read 0 x15 / 读键盘数据指令 /*变量及I/O 口定义*/ sbit cs= P1A0; /cs 连接于P1.0,低电平有效 sbit clk=P1A1; /clk 连接于P1.1 sbit key=P1A3; /dat 连接于P1.2 sbit da
23、t=P1A2; /key 连接于P1.3,低电平有效 /*函数原型声明*/ void write7279(uchar,uchar); / 写入到HD7279 uchar read7279(uchar); / 从HD7279读出 void sen d_byte(uchar); / 发送一个字节 uchar receive_byte(void); / 接收一个字节 void short_delay(void); / 延时约8us void Ion g_delay(void); / 延时约50us void delay_10ms(uchar times); / 延时约 times*10ms void
24、 delay_1ms(uchar times) ; / 延时约times*1ms void Ini t_date(); uchar qia nwei,baiwei,shiwei,gewei; uint tt,aa,aaa,wait,de ngdai,g on glijiagejg; bit flag0,flag1,flag2,flag3; uchar Ied=0 x1c,0 x1d,0 x1e,0 x1f,0 x14,0 x15,0 x16,0 x17, 0 x0c,0 x0d,0 x0e,0 x0f,0 x04,0 x05,0 x06,0 x07; 码 s0-s15 /*发送字节函数发送的字
25、节为out_byte*/ void sen d_byte(uchar out_byte) /键值编 岀租车计价器 18 uchar i; cs=O; Ion g_delay(); for(i=0;i8;i+) if(out_byte&0 x80) dat=1; else dat=0; clk=1; short_delay(); clk=0; short_delay(); out_byte=out_byte*2; / dat=0; /*接收字节函数接收的字节in_byte*/ uchar receive_byte(void) uchar i,i n_byte; dat=1; Ion g_
26、delay(); for(i=0;i8;i+) clk=1; short_delay(); in_byte=in_byte*2; if(dat) in_byte=in_byte|0 x01; clk=0;左移一位 岀租车计价器 19 short_delay(); dat=0; return(i n_ byte); /*发送带数据指令函数*/ void write7279(uchar com mon d,uchar date) sen d_byte(com mon d); sen d_byte(date); /*读指令函数*/ uchar read7279(uchar com mond) sen
27、 d_byte(com mon d); return(receive_byte(); /*短延时函数1*/ void short_delay(void) / uchar i; for(i=0;i2;i+); /*短延时函数2*/ void Ion g_delay(void) / uchar i; for(i=0;i12;i+); void zti ng() 延时约8us 延时约50us /停止子程序 岀租车计价器 20 flag仁!flagl; if(flagl) EXO=O; /关闭中断定时器 TRO=O; else EX0=1; TR0=1; uchar read_key_code(voi
28、d) / 读键值 uchar i_code; if(!key) i_code=read7279(0 x15); while(!key); /消除键盘抖动 return i_code; / 读键盘值 else return 0 xff; / 无键盘按下 uchar read_key_ nu mber(void) / 读键盘号 uchar l_o; uchar i; l_o=read_key_code(); if(l_o!=0 xff) /判断是否有键盘按下 岀租车计价器 21 for(i=0;i!=l_o;i+); return i; else retur n Oxff; void keysca
29、 n() uchar k_p; switch(k_p) default :break; if(0=aaa180) gon gli=aaa/6+de ngdai/3000; jiage=jg*(go ngli-30)/10+60; wait=de ngdai/100; void fen li( uint temp,uchar dd,uchar ee,uchar ff,uchar gg) 分离处理 if(temp=9999) temp=9999; qia nwei=temp/1000; baiwei=temp/100%10; shiwei=temp%100/10|0 x80; gewei=temp%10; write7279(dd,qia nwei); write7279(ee
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 淮阴师范学院《田径》2022-2023学年第一学期期末试卷
- 淮阴师范学院《世界现代史》2022-2023学年第一学期期末试卷
- 淮阴师范学院《热力学与统计物理学》2023-2024学年第一学期期末试卷
- 淮阴师范学院《民法》2021-2022学年第一学期期末试卷
- 淮阴师范学院《中国现代政治制度》2021-2022学年第一学期期末试卷
- 淮阴师范学院《管理信息系统》2022-2023学年第一学期期末试卷
- 淮阴工学院《语言程序设计》2021-2022学年期末试卷
- 淮阴工学院《物流工程学1》2022-2023学年第一学期期末试卷
- DB6110-T 63-2024《加油站诚信计量管理规范》
- 电机制造企业的发展策略考核试卷
- CJJ207-2013 城镇供水管网运行、维护及安全技术规程
- 六年级道德与法治期末测试卷加答案(易错题)
- 三位数除以两位数300题-整除-有标准答案
- 办公室装修工程施工方案讲义
- 医院护理人文关怀实践规范专家共识
- 中国农业银行贷后管理办法
- MOOC 陶瓷装饰·彩绘-无锡工艺职业技术学院 中国大学慕课答案
- 小学科学苏教版四年级上册全册教案(2023秋新课标版)
- 信访纠纷化解预案
- 硅晶圆缺陷的化学性质与影响
- 《布的基本知识》课件
评论
0/150
提交评论