计程车计价器设计计算机硬件技术基础课程设计.doc
《计程车计价器设计计算机硬件技术基础课程设计.doc》由会员分享,可在线阅读,更多相关《计程车计价器设计计算机硬件技术基础课程设计.doc(26页珍藏版)》请在沃文网上搜索。
1、计程车计价器设计 目 录1. 绪论2课题背景和意义22. 设计方案22.1设计思路22.1.1硬件设计22.1.2软件设计32.2系统按键操作说明32.3操作方法说明33. 硬件模块简介43.1可编程定时/计数器825443.1.1 8254基本功能43.1.2 8254工作方式43.1.3 8254方式控制字43.1.4 8254初始化43.1.5 8254工作原理图:53.2可编程并行I/O接口芯片8255A53.2.1 8255A工作方式53.2.2 8255A控制字53.2.3 8255A初始化63.2.4 8255A的中断应用:73.3中断控制器8259A73.3.1 8259初始化
2、命令字73.3.2 8259初始化83.4 LED显示9数码管字型编码表:94. 硬件电路设计10总体方案与框图105. 软件程序设计115.1系统的主程序设计11系统的主程序流程图115.2系统的各子程序设计13键盘扫描子程序136. 软硬件联调147. 总结(含分工)147.1分工147.2心得体会14参考文献17附录一:程序代码181. 绪论课题背景和意义在学习计算机硬件技术基础的过程中,我们学习了80486微处理器的指令系统,学习了汇编语言的程序设计,学习了输入/输出方式与接口芯片,还学习了外设接口技术,并结合课程实验,熟悉了汇编语言在计算机硬件中的应用,并对8254、8255A、82
3、59A等器件或单独、或配合使用有了一定的了解,还对显示器、键盘等设备的运用有了初步的掌握。在这种背景下,并考虑到计算机硬件技术在自动化专业后续工作学习中的重要地位,进行一次综合性的课程设计的意义自然不言而喻,将所学的知识综合运用起来,既是对这么课程本身的一次复习,更加是对学生个人能力的一次提升。本小组的课题是计程车计价器设计,相比较基于单片机的出租车计价器而言,本次设计是基于实验室的试验箱来进行的原理性实验,最终的实物没有基于单片机的计价器直观,但是却能充分体现出设计的原理与功能,这与汇编语言能够让程序员更加清晰地体现设计思路的初衷是不谋而合的。2. 设计方案2.1设计思路2.1.1硬件设计根
4、据任务书的要求,计程车的启停、起步价、每公里单价、行驶过程中车速的调整、白天以及夜间价格的切换、乘客上课时目标公里数的输入都可以用键盘来完成。要将键盘的按键信息输入的系统中,自然需要用到I/O接口芯片,实验箱上自然是选择8255A。需要将价格等信息实时显示出来,要用到三色LED以及单色LED。车费的计算方式是三公里内算起步价,三公里以上起步价+单价*超出部分的距离,超出部分的距离或者说距离可以由一个由键盘输入的车速*运行时间来实现,因此必须要用到定时/计数器8254,另外通过使用8254能实现计价过程中每停车5s总费用增加一次单价。在计费过程中,通过键盘改变速度时,需要用到中断控制器8259A
5、。2.1.2软件设计通过硬件部分的分析可以很快发现,主体程序为计价,在这个过程中,需要用到键盘扫描程序,更改速度程序,输入起步价与单价程序,计价程序,中断程序,延时程序,初始化程序。定时/计数程序,LED显示程序,为了使程序更加灵活,可以用键盘的按键来改变起步价、单价、速度、目标公里数。2.2系统按键操作说明K0 EQU 0EEH ; 白天计价,按下三色LED显示为红色K4 EQU 0DEH ; 夜间计价,按下三色LED显示为绿色K1 EQU 0EDH ; 起步价加1K5 EQU 0DDH; 起步价减1K9 EQU 0BDH ; 单价加1KD EQU 7DH; 单价减1K2 EQU 0EBH;
6、 速度增加K6 EQU 0DBH; 速度减少KA EQU 0BBH; 距目的地公里数加1KE EQU 7BH; 距目的地公里数减1K3 EQU 0E7H; 开始计价K7 EQU 0D7H; 停车KB EQU 0B7H; 停止计价2.3操作方法说明第一步:按K0/K4键来选择计费模式,即白天还是夜间。第二步:按K1/K5键设置想要的起步价;按K9/KD键设置单价。第三步:按KA/KE键设置目标公里数。第四步:按K3键开始计价。第五步:按K2/K6键设置速度。第六步:按K7键停车。第七步:按KB键停止计价。3. 硬件模块简介3.1可编程定时/计数器82543.1.1 8254基本功能 有3个独立的
7、16位计数器。每个计数器可按二进制或十进制(BCD)计数。每个计数器可编程工作于6种不同工作方式。8254每个计数器允许的最高计数频率为10MHz(8253为2MHz)。 8254有读回命令(8253没有),除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容。 计数脉冲可以是有规律的时钟信号,也可以是随机信号。3.1.2 8254工作方式 方式0:计数到0结束输出正跃变信号方式。 方式1:硬件可重触发单稳方式。 方式2:频率发生器方式。 方式3:方波发生器。 方式4:软件触发选通方式。 方式5:硬件触发选通方式。 3.1.3 8254方式控制字 图1 8254方式控制字3.1.4 8
8、254初始化向控制寄存器端口写入控制字,对使用的计数器规定其工作方式。向使用的计数器端口写入计数初值。3.1.5 8254工作原理图: 图2 8254定时/计数器原理图3.2可编程并行I/O接口芯片8255A3.2.1 8255A工作方式8255内部有三个I/O端口,A口可以工作在方式0、方式1或方式2;B口可以工作在方式0或方式1;C口可以工作在方式0.方式0是基本型输入/输出。用这种方式和外设交换数据时,8255端口与外设之间不使用联络线。方式1为选通型输入/输出。用这种方式和外设交换数据时,端口和外设之间要有联络信号。方式2是双向数据传送,仅A口有此功能。当A口工作在方式2时,B口仍可以
9、工作在方式0或方式1,但此时的B口方式1只能用查询方式与CPU交换信息。3.2.2 8255A控制字a.方式选择命令字的格式及每位作用: 图3 方式选择控制字b.C口置1/置0命令字的格式及每位的作用如下图所示: 图4 8255C口置1/置0命令字的格式3.2.3 8255A初始化8255有两个命令字,即方式选择控制字和C口置0/置1控制字,初始化编程的步骤是:向8255控制寄存器写入“方式选择控制字”,从而预置端口工作方式。当端口预置为方式1或者方式2时,再向控制寄存器写入“C口置0/置1控制字”。这一操作的主要目的是使相应端口的中断 允许触发器置0,从而禁止中断,或者使相应端口的中断允许触
10、发器置1,从而允许端口提出中断请求。3.2.4 8255A的中断应用: 图5 中断允许触发器与控制位对照表3.2.5 8255并口模块原理图:图6 8255并口模块原理图3.3中断控制器8259A3.3.1 8259初始化命令字a. ICW1格式和功能如下图所示,该命令字必须送偶地址端口 图7 ICW1格式和功能b. ICW2格式和功能如下图所示 图8 ICW2格式和功能c. ICW3格式和功能如下图所示 图9 ICW3格式和功能d. ICW4格式和功能如下图所示 图10 ICW4格式和功能3.3.2 8259初始化初始化过程就是按照严格的初始化步骤分别向ICW1ICW4写入初始化命令字,初始
11、化过程如下: 图11 8259初始化3.4 LED显示 数码管字型编码表:图12 数码管字型编码表3.5键盘接口技术 4x4键盘结构示意图: 图13 4x4键盘结构示意图4x4键盘作为输入装置,通过可编程并行I/O接口芯片8255A与CPU交换数据,如图示P10P13与P14P17分别与8255的端口连接。4. 硬件电路设计 总体方案与框图 图14 功能流程图该功能流程图依据任务书画出的,描述了基本功能与各模块之间的逻辑关系,概括了本次软硬件设计的基本思想。其中a. 路程算法一:计价过程中,出租车因红绿灯、堵车等情况暂停行驶,若停车时间大于5s,则每5s路程增加一公里。b. 路程算法二:出租车
12、未停车,路程=速度*行驶时间。c. 计价算法一:路程大于3公里,每增加一公里在起步价的基础上增加一次单价。由于需要精确到角,则可以每增加0.1公里增加十分之一次单价。d. 计价方法二:路程小于三公里,总价=起步价。e. 停止计价算法:按下停止计价键后,LED再显示5s后关闭。5. 软件程序设计5.1系统的主程序设计系统的主程序流程图 图15 系统主程序流程图5.2系统的各子程序设计 键盘扫描子程序 图16 键盘扫描子程序程序图6. 软硬件联调软件编写完成后,连接硬件电路,将程序经过编译连接后下载到实验装置。对硬件电路进行操作,观看实现现象。若未实现预想功能,或未达到预想的效果,则需要检查硬件电
13、路的连接,并检查软件是否出现问题。不断地调试,直到到达预想效果。7. 总结(含分工)7.1分工吴子宁:主要负责程序的编写,软件的设计,程序的调试。张纪炜:主要负责硬件电路的设计,协同编写程序与软硬件联调。杨健:主要负责前期相关资料的收集,流程图的绘画,部分子程序的编写与调试,后期设计报号的撰写。7.2心得体会XXX这两周的课程设计,我与张纪炜还有杨建一组。我们在两周的时间里完成了课程设计的基本要求,在这次试验中,我们不仅学到了许多书本中的知识,还掌握了许多以前未曾掌握的要点。两周的课程设计时间里,我主要负责汇编语言的编写,在编写的过程中,我遇到了许多许多的问题,例如,单色led灯在显示不同数字
14、的时候需要无限循环,但是无限循环怎么加在主程序中的问题。之后,我采用了跟键盘扫描一起,如果按键,则跳出循环,如果不按键,则继续循环的方法,达到可以同时显示不同数字的方法。但是这个方法在实际的操作中也遇到了许多问题。我们在把这段子程序放入主程序之后,总是产生乱码,无论我怎么改动参数,我们总是无法把他完善。后来,我们选择了只显示一位速度来解决的方法来实现单色LED的亮灭。这次的经历让我学到了很多,首先,如果我能考虑的更加周到,在编写程序的时候就考虑到出错的可能性,在每条程序后面都加上他意义的解释,那么,我在修改程序的时候就会轻松很多,也能发现很多以前不能发现的问题,说不定就能很好的解决这些看似难以
15、解决的问题。其次,我认为我的学习和生活,需要更多的耐心来帮助我们获得更多的机会去解决很多难以解决的问题,在现实的生活中,困难总是无处不在的,我们需要困难来磨砺我们的意志,只有在无限的困难磨砺之后,我们在能拥有在任何困境中不放弃的勇气。在生活中,我们绝不缺少勇气,但是我们缺少的是无时无刻,陷入绝望时还有的坚强勇气。生活的压力不会去观察我们的状态,换言之,我们不得不以各种各样的状态面对生活中的一切,无论是满分的身体情况还是濒死的身体情况,我们都不得不接受他的挑战,也就是说,在逆境中的勇气,才更能推动我们走向成功。说实话,这次的课程设计时间不算很长,但是他给予了我充足的时间去审视自己的学习状态,良好
16、的学习状态才能促使我不断的进步,不断的走向成功。未来的路还很长,只有安安静静的提升自己才是正道,希望我可以将从这次课程设计里面学到的知识用到我日后的生活中,为生活添彩。XXX两个星期的课程设计让我学到了很多东西,无论是精彩的专业知识还是与同学之间的沟通交流,都让我受益匪浅。这两周我跟杨健和吴子宁三个人一个小组,在短暂的分工之后,我们三个人就迅速开始了课程设计的工作。吴子宁与我两人主要负责汇编方面的问题,而杨建则主要负责整理综合之后编写实验报告部分的工作。班长发给我们的题目是“计价器”,我和吴子宁很快确定了编程的主体,在充分阅读了试验要求之后,我们选择了使用8255,8254,8259,单色LE
17、D灯以及三色LED灯。我们选择使用一片8255作为主体,用来控制单色LED灯和键盘。并且选择中断的方式加入计数。在实验的过程中,我认为我们学到更多了并不是课本知识,不光光是对计价器的了解。我认为,在这次试验中,我们收获更多的是自主学习的能力,以及面对问题的耐心程度。在试验中,我们很多次遇到写的程序没有错误,但是在硬件上实验的时候发生了错误的问题,这让我们十分的恼火,不得不一步步的检查程序的可行性,这花费了我们大量的时间,如果没有良好的耐心,我们很难完成这么多的任务。并且,这样的经历也告诉了我们,我们在编写程序的时候,一定要分成子程序一步步的来,这样可以方便我们在试验的过程过查错。因为在实验的过
18、程中,一个赋值的错误也可能引起整个功能的崩溃。实验中遇到的问题是非常的多的,而我们必须要有着迎难直上的勇气以及不放弃的精神,才能从困难中走出来。但是,虽然苦难让我们深受煎熬,但,他也是指引我们进步的唯一方法,如果没有困难的磨砺,我们也不会一次有一次的翻阅书籍,了解到自己的不足以及发现我们的潜力。生活中,我们肯定会遇到各种各样的问题,比如说,我们在答辩前的星期三,我们还有单色LED灯出错的问题,如果我们不能摆正心态,努力完成任务,我们也有可能就此放弃这个,导致我们课程设计的失败,也正是我们的加班加点,才让我们得意攻克一个个的难关。生活也是如此,他总是给我们开各种各样的玩笑,给我们各种各样不公平的
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计程车 计价器 设计 计算机硬件 技术 基础 课程设计