原创】基于单片机的出租车计费器的毕业论文(20201002125828_第1页
原创】基于单片机的出租车计费器的毕业论文(20201002125828_第2页
原创】基于单片机的出租车计费器的毕业论文(20201002125828_第3页
原创】基于单片机的出租车计费器的毕业论文(20201002125828_第4页
原创】基于单片机的出租车计费器的毕业论文(20201002125828_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、基于单片机出租车计费器的设计摘要2ABSTRACT 31课程设计任务书错误!未定义书签。1.1 课程设计任务 错误!未定义书签。1.2 课程设计方案 错误!未定义书签。2硬件电路设计 错误!未定义书签。2.1 振荡电路 错误!未定义书签。2.2 复位电路设计错误!未定义书签。2.3 键盘接口电路 错误!未定义书签。2.4 显示电路错误!未定义书签。2.4.1 1602LCD的基本参数及引脚功能错误!未定义书签。2.4.2 显示模块采用1602液晶显示接口电路 错误!未定义书签。2.5单片机各引脚功能说明错误!未定义书签。3软件设计错误!未定义书签。3.1 单片机资源使用 错误!未定义书签。3.

2、2 单片机软件模块设计错误!未定义书签。3.2.1 中断子函数 错误!未定义书签。3.2.2 判键子函数错误!未定义书签。3.2.3 显示子程序 错误!未定义书签。3.3 总程序流程框图错误!未定义书签。总结错误!未定义书签。参考文献错误!未定义书签。致谢错误!未定义书签。附录1元件件清单错误!未定义书签。附录2原理图 错误!未定义书签。附录3程序清单错误!未定义书签。本设计的是一个基于单片机 STC89C52的出租车自动计费设计,附有复位电 路,时钟电路,键盘电路等。复位电路是单片机的初始化操作,除了正常的初始化 外,为摆脱困境,通过复位电路可以重新开始。时钟电路采用 12MHZ勺晶振,作为

3、 系统的时钟源,具有较高的准确性。在上电时字符型液晶1602显示最初的起步价,里程收费,等待时间收费三种 收费,通过按键可以调整起步价,里程收费,等待时间收费。通过按键模拟出租 车的运行,暂停,停止。在1602液晶上可以显示运行的时间,运行时暂停的时间, 通过计算可以得出总共的费用和总的路程。在这里主要是以STC89C5单片机为核心控制器,P1 口接1602液晶显示模块。关键字 STC89C52 1602液晶;出租车计费器ABSTRACTThe desig n is based on a mono lithic in tegrated circuit STC89C52 taxi billi n

4、g desig n, with reset circuit, clocking circuit, keyboard circuit. Reset circuit is initialized, besides the normal operation of the initial dilemma, as a foreigner, through the reset circuit can start again. 12MHz adopts the clock circuit, as a system of crystal oscillator, the crystal that the ini

5、tial 1602, charges, fees mileage waiting time, three buttons can be adjusted by charging fees, just waiting time, mileage. Through the simulati on of the taxi, butt tons, stop. Suspe nsion In the liquid crystal display can run 1602, operation time, when suspensioncan be obtained by the computation o

6、f the total cost. = 0,shi;uchar flag_bai_3l_price = 70;晚上3千米内的单价千米7元uint wan_3w_price = 22;晚上3千米外的单价千米2.2元uint wan_wait_price = 10;晚上等待时的单价分钟 1元uint dista nee = 0;行使的距离uint zon g_jia;总的价bit flag_300ms = 0;bit flag_1s ;bit flag_time_e n = 0;#i nclude lcd1602._3l_price % 256);保存数据write_24c02(8,wan_3l_

7、price 256);保存数据write_24c02(9,wan_3w_price % 256);保存数据write_24c02(10,wan_3w_price 256);保存数据write_24c02(11,wan_wait_price % 256);保存数据write_24c02(12,wan_wait_price 256);保存数据*自动初始化保存的数据*void zid on g_chushifa_iic()value = read_24c02(200);value = read_24c02(200); if(value != 0x91)value = 0x91;新的单片机初始单片机内

8、问EEPOMwrite_iic_data(); write_24c02(200,value);delay_1ms(300);保存数据*读出来保存的数据*void read_iic_data()flag_bai_3l_price = read_24c02(8);wan_3l_price = wan_3l_price * 256 + read_24c02 ; wan_3w_price = read_24c02(10);wan_3w_price = wan_3w_price * 256 + read_24c02(9); wan_wait_price = read_24c02(12);wan_wait

9、_price = wan_wait_price * 256 + read_24c02(11);*独立按键处理函数*#defi ne key_io P2uchar key_can;void key()static uchar key_ new = 0,key_old = 0,key_value = 0; key_io |= 0x3f;if(key_new = 0)按键松开if(key_io & 0x3f) = 0x3f)key_value +;elsekey_value = 0;if(key_value = 5)按键松开松手检测key_value = 0;key_new = 1;按键松开后进入等

10、待按键状态elseif(key_io & 0x3f) != 0x3f)按键按下key_value +;elsekey_value =0;if(key_value = 5)按键按下消抖key_value = 0;key_new = 0;按键松开后进入等待松开按键状态key_ca n = 20;if(key_new = 0) & (key_old = 1)switch(key_io & 0x3f)case 0x3e: key_ca n :=1; break;得到按键值case 0x3d: key_ca n :=2; break;得到按键值case 0x3b: key_ca n :=3; break

11、;得到按键值case 0x37: key_ca n :=4; break;得到按键值case 0x1f: key_ca n =:5; break;得到按键值case 0x2f: key_ca n =:6; break;得到按键值write_sfm2(2,0,key_ca n);按键按下显示按键值key_old = key_ new;#i nclude me nu. = 6)dista nee +; write_sfm4(1,0,dista nee);if(key_can = 5)清零 从新计价flag_time_e n = 0;shi = 0;fen = 0;miao = 0;zon g_ji

12、a = 0;dista nee = 0;if(key_ca n = 2)flag_time_e n = flag_time_e n;if(flag_300ms = 1)flag_300ms = 0;if(dista nee = 30)3 公里内的价格if(flag_bai_ = 3)zon g_jia = bai_3l_price;elsezon g_jia = bai_3l_price + (shi * 60 + fen - 3)bai_wait_price; else if(fen = 3)zon g_jia = wan _3l_price;elsezon g_jia = wan _3l_

13、price + (shi * 60 + fen - 3) bai_wait_price;else3公里外的价格if(flag_bai_ = 3)zon g_jia=bai_3l_price+ bai_3w_price* (dista nee30)10 ;elsezon g_jia=bai_3l_price+ bai_3w_price* (dista nee30)10 + (shi* 60 + fen - 3) * bai_wait_price;elseif(fen = 60)miao = 0; fen +;if(fen = 60) fen = 0; shi+;if(shi = 24) shi = 0;*定时器 0 初始化程序 *void timeni t()开总中断定时器0、工作方式1开定时器0中断允许定时

温馨提示

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

评论

0/150

提交评论