单片机与接口技术课程设计(论文)-出租车计价器.doc_第1页
单片机与接口技术课程设计(论文)-出租车计价器.doc_第2页
单片机与接口技术课程设计(论文)-出租车计价器.doc_第3页
单片机与接口技术课程设计(论文)-出租车计价器.doc_第4页
单片机与接口技术课程设计(论文)-出租车计价器.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

辽 宁 工 学 院单片机与接口技术 课程设计(论文)题目: 出租车计价器 院(系): 信息科学与工程学院 专业班级: 电气033班 学 号: 030303073 学生姓名: 指导教师: 教师职称: 副 教 授 起止时间:06-06-05至06-06-18 课程设计(论文)任务及评语院(系):信息科学与工程学院 教研室:电气学 号030303073学生姓名常青专业班级电气033班课程设计(论文)题目出租车计价器课程设计(论文)任务该出租车计价器可实现里程计费,设计者完成出租车计价器的硬件和软件设计。任务包括:1车轮转速传感器选择。2车轮转速测量通道设计。3显示电路设计。4 cpu及按键电路设计。5写出程序流程图及汇编程序。指导教师评语及成绩成绩: 指导教师签字: 年 月 日辽 宁 工 学 院 课 程 设 计 说 明 书(论 文)目 录第1章 课程设计目的与要求11.1 课程设计目的11.2 课程设计的实验环境11.3 课程设计的预备知识11.4 课程设计要求1第2章 课程设计内容2第3章 课程设计的考核23.1 课程设计的考核要求23.2 课程性质与学分2第4章 设计34.1 应用单片机技术制作出租车计价器的应用意义34.2 设计任务34.3 系统整体方案论证及总体电路结构图34.4 车轮转速传感器选择44.5 车轮转速测量通道设计54.6 显示电路设计54.7 cpu及按键电路设计54.8 at24c02 掉电存储单元的设计64.9 总体电路原理图74.10程序流程图84.11汇编程序9第五章 课程设计总结13参考文献13第1章 课程设计目的与要求1.1 课程设计目的“单片机与接口技术”课程设计是在教学及实验基础上,对课程所学理论知识的深化和提高。因此,要求学生能综合应用所学知识,设计与制造出具有较复杂功能的小型单片机系统,并在实践的基本技能方面进行一次系统的训练。 能够较全面地巩固和应用“单片机”课程中所学的基本理论和基本方法,并初步掌握小型单片机系统设计的基本方法。 培养独立思考、独立收集资料、独立设计规定功能的单片机系统的能力;培养分析、总结及撰写技术报告的能力。1.2 课程设计的实验环境利用windows操作系统及应用软件进行绘图和编程。1.3 课程设计的预备知识熟悉单片机与接口技术课程的相关知识及电子线路cad工具软件。1.4 课程设计要求按课程设计指导书提供的课题,根据第二章给出的基本要求及参数独立完成设计,课程设计说明书应包括以下内容: 1、对设计课题进行简要阐述,并说明设计任务及具体要求。 2、论述系统设计方案,并画出总体电路结构图及功能分割图。3、能够较熟练地应用电子线路cad工具完成单片机系统的硬件设计任务。4、各功能模块设计说明、设计实现过程及源程序。 5、能够较熟练地应用一种编辑软件编写程序,掌握单片机系统软件设计的基本方法6、课程设计报告应内容完整、字迹工整、图表整齐规范、数据详实。7、课程设计总结8、字数4000左右,有系统电气原理图。第2章 课程设计内容设计技术参数1车轮转速传感器装1只2显示电路显示单价、里程、总价3按键数少于54 cpu采用51兼容型5写出程序流程图及汇编程序。工作量1车轮转速传感器选择。2车轮转速测量通道设计。3显示电路设计。4 cpu及按键电路设计。5写出程序流程图及汇编程序。工作计划第一天第二天第三天第四天第五天第二周车轮转速传感器选择。车轮转速测量通道设计。显示电路设计。cpu及按键电路设计。写出程序流程图及汇编程序。画原理图、打印第3章 课程设计的考核3.1 课程设计的考核要求课程设计采用五级(优、良、中、及格、不及格)评分制。最后成绩依据课程设计论文及平时成绩决定,其中平时考核成绩占20%。3.2 课程性质与学分单片机与接口技术课程设计的课程性质:考查学分:2第4章 设计4.1 应用单片机技术制作出租车计价器的应用意义4.2 设计任务该出租车计价器可实现里程计费,设计者完成出租车计价器的硬件和软件设计。任务包括:1车轮转速传感器选择。2车轮转速测量通道设计。3显示电路设计。4 cpu及按键电路设计。5写出程序流程图及汇编程序。4.3 系统整体方案论证及总体电路结构图根据设计要求我设计的出租车计价器是一种非常实用的计价器。它采用单片机控制,利用单片机丰富的io端口,及其控制的灵活性,实现基本的里程计价功能、路程显示功能和价格调节、时钟显示等功能当车轮每转一圈时,里程传感器就会产生一个信号送给单片机,使单片机产生中断,每当行驶一公里时,单片机就会控制显示电路显示相应的价钱。本设计还有掉电存储电路,可以实现当电源掉电后能自动存储当前的设定信息以保证下次开机后应可继续使用。其总体框图如图1-1所示。 图1-1 总体框图4.4 车轮转速传感器选择 里程计算是通过安装在车轮上的霍尔传感器a44e检测到的信号,送到单片机,经处理计算,送给显示单元的。由于a44e 属于开关型的霍尔器件,其工作电压范围比较宽(4.518v),其输出的信号符合ttl 电平标准,可以直接接到单片机的io 端口上,而且其最高检测频率可达到1mhz。a44e 集成霍耳开关由稳压器、霍耳电势发生器、差分放大器、施密特触发器和oc门输出五个基本部分组成。如图4-2所示,其中,为稳压器,为霍尔电势发生器,为差分放大器,为施密特触发器,为门。图4-2 集成开关型霍尔传感器原理图在输入端输入电源电压,经稳压器稳压后加在霍耳电势发生器的两端,根据霍耳效应原理,当霍耳片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍耳电势差vh输出,该vh 信号经放大器放大后送至施密特触发器整形,使其成为方波输送到oc门输出。当施加的磁场达到工作点时,触发器输出高电压,使三极管导通,此时oc门输出端输出低电压。当施加的磁场达到释放点时,触发器输出低电压,三极管截止,使oc 门输出高电压。这样两次电压变换,使霍耳开关完成了一次开关动作。其集成霍耳开关外形及接线图如图43 所示。图43 集成霍耳开关外形及接线图4.5 车轮转速测量通道设计 我们选择了89s51单片机的p3.2 口作为信号的输入端,内部采用外部中断0,将里程传感器安装在车轴上,车轮每转一圈(我们设车轮的周长是1 米),霍尔开关就检测并输出信号,引起单片机的中断,每当计数值达到1000 次时,也就是1 公里,单片机就会控制显示电路显示相应的金额。其计算公式:金额 = 当前单价 公里数4.6 显示电路设计由于设计要求有单价(2 位)、路程(2 位)、总金额(3 位)显示输出,加上我们另外扩展了时钟显示(包含时分秒的显示),若采用lcd 液晶段码显示,在距离屏幕1 米之外就无法看清数据,不能满足要求,而且在白天其对比度也不能够满足要求,因此我们采用六位led数码管的分屏显示,如图4-4所示:图43 分屏显示示意图4.7 cpu及按键电路设计显示电路的分屏显示是通过按键电路实现的。本设计采用的是89sc51单片机,它可以满足本设计的所有需要。而按键电路有4个按键组成,其中各个按键的功能如下所示:s1:数据的分屏的显示s2:功能设定按键s3:白天晚上切换按键/加s4:中途等待开关/减在出租车不走的时候,按下s1,可以实现数据的分屏显示;车在行走的时候只有总金额和单价在显示屏上显示,当到达目的地的时候,乘客要求查看总的里程的时候,就可以按下s1 切换到里程和单价显示屏,供乘客查询。显示电路的电路原理图如图4-5 所示。图4-5 显示电路原理图从单片机串口输出的信号先送到左边的移位寄存器(74hc164),由于移位脉冲的作用,使数据向右移,达到显示的目的。移位寄存器74hc164还兼作数码管的驱动,插头1接电源,插头2接数据和脉冲输出端。电路中的三个整流管d1-d3 的作用是降低数码管的工作电压,增加其使用寿命。4.8 at24c02 掉电存储单元的设计 掉电存储单元电路的作用是在电源断开的时候,自动存储当前设定的单价信息。以保证在下次开机时不需要重新设定信息。at24c02a 是atmel 公司生产的2kb 字节的电可擦除存储芯片,采用两根串行的总线和单片机通讯,电压最低可以到2.5v,额定电流为1ma,静态电流10ua(5.5v),芯片内的资料可以在断电的情况下保存40 年以上,而且采用8 脚的dip 封装,使用方便。其电路原理如图4-6 所示。图4-6 掉电存储电路原理图84.9 总体电路原理图总体电路原理图如图2-8所示:图2-8总体电路图4.10 程序流程图 主程序流程图如图2-8所示:图2-8 主程序流程图s是否按下 计价程序流程图如图2-9所示按下s4设定白天单价晚上单价按下s4启动计价器有无中断返回时间显示按下s3计费显示里程和单价传感器是否有信号按下s3、显示总价和单价停止计费和计里程图2-9 计费流程图4.11 汇编程序初始化程序如下所示:9org 0000hajmp mainorg 0003hajmp toorg 000bhajmp totimeorg 001bhajmp tostartorg 0030hmain: mov sp,#70hmov tmod, #11hmov th0, #3chmov tl0, #0b0hmov th1, #3chmov tl1, #0b0hmov 22h, #0ahsetbeasetbtr0setbex0setbit0setbet0setbet1mov r7,#34mov r0,#69hloopl:mov r0,#0dec r0djnzr7,looplmov countl, #00h mov counth, #05hmov day_price,#25h mov night_price,#30h mov midway_price,#10h mov start_price, #50h mov s11, #0mov s22, #0mov s33, #0mov s44, #0mov distance, #02hmov hour, #12nig_p: setb f0 lcall t100msdmov lednig_pl, #0ahmov lednig_ph, #0ahlcall pa_dis1lcall pa_disjb s3, key21lcall t10msdjb s3, key21wait13: jnb s3, wait13mov a, #1add a, night_priceda amov night_price,acjne a, #99h,key21mov night_price,#0key21: jb s4, key22lcall t10msdjb s4, key22wait14: jnb s4, wait14mov a, night_priceadd a, #99hda amov night_price,acjne a, #00h, key22mov night_price,#99hkey22: jb s1, key23acall t10msdjb s1, key23wait15: jnb s1, wait15inc s11mov a, s11cjne a, #1,next41lcall day_pnext41: cjne a, #2,lcall nig_pnext42: cjne a, #3,lcall mid_pnext43: cjne a, #4, key23mov s11, #0ljmp key_djkey23: jb s2, key24lcall t10msdjb s2, key24wait30:jnb s2, wait30ljmp key_mainkey24: ajmp nig_pmid_p: setb f0 lcall t100msdmov ledw_pl, #0ahmov ledw_ph, #0ahlcall pa_dis1lcall t100msdlcall pa_disjb s3, key31lcall t10msdjb s3, key31wait16: jnb s3, wait16inc midway_pricemov a, midway_priceadd a, #1da amov midway_price,acjne a, #99h, key31mov midway_price, #00hcjne a, #100, key31mov midway_price, #0key31: jb s4, key32lcall t10msdjb s4, key32wait17: jnb s4, wait17mov a, midway_priceadd a, #99hda amov midway_price,acjne a, #00h, key32mov night_price,#99hkey32: jb s1, key33acall t10msdjb s1, key33wait18: jnb s1, wait18inc s11mov a, s11cjne a, #1,next51lcall day_pnext51: cjne a, #2,next52lcall nig_pnext52: cjne a, #3,next53lcall mid_pnext53: cjne a, #4, key33mov s11, #0ljmp key_djkey33: jb s2, key34lcall t10msdjb s2, key34wait31:jnb s2, wait31ljmp key_mainkey34: ajmp mid_hou_t: setb f0 lcall t100msdlcall t100msdmov ledhl, #0ahmov ledhh, #0ahlcall hms_dis1lcall t100msdmov sec, #0lcall hms_disjb s3, key41lcall t10msdjb s3, key41wait19: jnb s3, wait19mov a, houradd a, #1da amov hour,acjne a, #24h, key41mov hour, #0key41: jb s4, key42lcall t10msdjb s4, key42wait20: jnb s4, wait20mov a, houradd a, #99hda amov hour,acjne a, #99h, key42mov hour, #23hkey42: jb s1, key43acall t10msdjb s1, key43wait21: jnb s1, wait21inc s11mov a, s11cjne a, #1,ljmp hou_tnext61: cjne a, #2,ljmp min_tnext62: cjne a, #3,mov s11, #0ljmp key_sjkey43: jb s2, key44lcall t10msdjb s2, key44wait32: jnb s2, wait32ljmp key_mainkey44: ajmp hou_tmin_t: setb f0 lcall t100msdlcall t100msdmov ledml, #0ahmov ledmh, #0ahlcall hms_dis1lcall t100msdmov sec, #0lcall hms_disjb s3, key51lcall t10msdjb s3, key41wait22: jnb s3, wait22mov a, minadd a, #1da amov min, acjne a, #60h, key51mov min, #0key51: jb s4, key52lcall t10msdjb s4, key52wait23: jnb s4, wait23mov a, minadd a, #99hda amov min, acjne a, #99h, key52mov min, #59hkey52: jb s1, key53acall t10msdjb s1, key53wait24: jnb s1, wait24inc s11mov a, s11cjne a, #1,lcall hou_tnext71: cjne a, #2,lcall min_tnext72: cjne a, #3,setb tr0mov s11, #0ljmp key_sjkey53: jb s2, key54lcall t10msdjb s2, key54wait33: jnb s2, wait33ljmp key_mainkey54: ajmp min_ttotime: push pswpush accmov th0, #3chmov tl0, #0b0hinc ms100mov a, ms100cjne a, #10,returnmov ms100,#0mov a, secadd a, #1da amov sec,acjne a,#60h,returnmov sec,#0mov a, #1hadd a, minda amov min,acjne a,#60h, returnmov min,#0mov a, #1hadd a, hourda amov hour,acjne a, #24h,returnmov hour,#0return: pop accpop pswretito: push pswpush accmov a, r0mov b, #10div abmov 20h,a mov a,#1add a,m100mov m100,amov a, m100cjne a, #100,return1mov m100,#0inc 21hmov a,21hcjne a, #0ah, return1mov 21h,#0mov a, #1add a, distanceda amov distance,aacalldp_dismov a, priceadd a, countlda amov countl,acjne a, #10h,return1mov countl,#0mov a, #1add a, counthda amov counth,acjne a, #99h, return1mov counth,#0;acall cp_disreturn1: pop accpop pswretitostart: push pswpush accmov th1, #3chmov tl1, #0b0hdjnz 22h, return2 mov 22h, #0ahmov a, #1add a, 23hda amov 23h, acjne a, #60h, return2mov 23h, #0mov a, #1add a, 24hda amov 24h,acjne a, #10h, return2mov 24h, #0mov a, start_priceadd a, countlda amov countl,acjne a, #10h, return2mov countl, #0mov a, #1add a, counthda amov counth,acjne a, #99h,return2mov counth,#0return2: pop accpop pswretipushpswsetbrs1mov r0,#sec mov r1,#ledslmov r6,#03hloop1:mov a, r0mov b, aanl a, #0fhmov r1,adec r1mov a, bswapaanl a, #0fhmov r1,adec r1dec r0djnzr6,loop1pop pswpop acchms_dis1: push accpush pswmov r7,#06hmov r0,#ledslloop: mova, r0movdptr,#tabmovca,a+dptrmov sbuf,abk: jbcti,nextsjmpbknext: decr0djnzr7,loopclrrs1poppswpopaccretpush pswsetb rs1mov r0,#counth ;mov r1,#ledcount2mov a, r0mov b, aanl a, #0fhmov r1,adec r1mov a, bswap aanl a, #0fhmov r1,amov ledcount1,countlmov a,ledcount1 mov dptr,#tabmovc a, a+dptrmov sbuf,ajnb ti,$clr timov a,ledcount2 mov dptr,#tabmovc a,a+dptrcpl acc.4mov sbuf,ajnb ti, $clr timov a,ledcount3 mov dptr,#tabmovc a,a+dptrmovsbuf,ajnb ti,$clr ticlr rs1mov sbuf,#0feh jnb ti, $clr timov r0,#pricemov r1,#leddanjialmov r6,#03hmov a, r0mov b, aanl a, #0fhmov r1,adec r1mov a, bswap aanl a, #0fhmov r1,adec r1mov a,leddanjial mov dptr,#tabmovc a,a+dptrmov sbuf,ajnb ti, $clr timov a, leddanjiahmov dptr,#tabmovca,a+dptrcpl acc.4mov sbuf,ajnb ti,$clr tipop pswpop accretpush pswsetb rs1mov r0,#price mov r1,#leddanjialmov a, r0mov b, aanl a, #0fhmov r1,adec r1mov a, bswapaanl a, #0fhmov r1,adec r1mov a,leddanjial mov dptr,#tabmovc a,a+dptrmov sbuf,ajnb ti, $clr timov a,leddanjiah mov dptr,#tabmovc a,a+dptrcpl acc.4mov sbuf,ajnb ti,$clr timov sbuf,#0feh jnb ti, $clr tijnb ti,$clr timov r0,#distancemov r1,#leddistancelmov a, r0mov b, aanl a, #0fhmov r1,adec r1mov a, bswapaanl a, #0fhmov r1,adec r1mov a,leddistancel mov dptr,#tabmovc a,a+dptrmov sbuf,ajnb ti, $clr timov a,leddistanceh mov dptr,#tabmovc a,a+dptrmovsbuf,ajnb ti,$clr ticlr rs1pop pswpop accretpush pswsetb rs1mov r0,#day_price mov r1,#ledday_plmov r6,#03hloop2:mov a, r0mov b, aanl a, #0fhmov r1,adec r1mov a, bswapaanl a, #0fhmov r1,adec r1dec r0djnzr6,loop2pop pswpop accpa_dis1:push accpush pswmov a,ledday_

温馨提示

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

评论

0/150

提交评论