计程车计价器设计课程设计报告(编辑修改稿)内容摘要:

就可以了。 在超出 3公里 后, 计价 的思路是 按照 最小价格 行驶 的路程 计价 ,即 每角钱 可以走的 米 数 , 当发现 超出三公里的 部分达到该距离,则价格加一角钱,然后只保留超出该 距离 的部分 , 等待下一次超出。 这次的课程设计 中,我还是 遇到 很多问题。 大的问题 是 ,在超出 3 公里 后不是 像 我想的那样 每隔一秒 记一次,而是一秒之内连续计价,下一秒 又不 计价,而计程车 计价器设计报告 15 且 当速度为 0时 会一直计价而不是每隔 5秒 ,经过 单步 的调试 , 发现原来是一秒钟的判断 时 ,有一个赋值语句没有写,加上了这个赋值语句之后就可以正常 计价了 , 由此看来, 就算是 一个 极小 的疏忽 也可能会 导致大的问题。 至于其他 小的 问题,都是在程序 编译 的 时候 出现的,比如,由于跳转 的 指令 比 较多 ,有时候 跳转的位置 命名 重复了 ; 子程序忘记在程序结尾加上 ret,导致程序 不正常 ; 忘记 添加 use16, 导致链接 时 出现致命 错误, 不过 这些都 是容易找到的。 通过 本次的课程设计,我 又 对计算机硬件 汇编语言 的使用 加深 了印象 , 在编程时,逻辑思路也 更 清晰了。 我觉得 这次的 课程设计, 不仅 让 深化 了 我 对所学知识的运用 , 更重要的是通过团队之间的互帮互助,更是加强了我的团队意思。 在本次计算机硬件技术基础课程设计过程我主要负责报告的撰写,同时也负责初始化和按键设置子程序的编写。 报告的撰写是一项比较简单的任务,但同时也要求有足够的细心,以至于不出现或少出现一些不必要的错误。 当然报告撰写中也包括了对流程图的设计与绘制,这就要求要对整个系统有详细的了解,同时也要对一些子程序的运行过程做必要的了解,这让我体会到做每一项工作,无论是多少都要对整个系统以致整个工程都有着系统的认识。 在编写子程序的过程中,遇到了一些问题,主要原因是对所学知识的掌握不够深,这就说明了对于知识的学习一定要认真,不能 带有一丝的疏忽,同时也要对所学过的知识要不定时的加以复习,这样才不会在自己用到时不那么的难堪。 对于按键程序我个人认为还是有一定的难度的,因为它涉及到了对各个键的扫描的和判断,通过和小组成员的讨论得出了设计方法,就整个键盘部分程序而言在设计过程中是比较繁琐的,这也就要求我们对整个键盘部分进行系统的分析,从扫描到读键值,再到判断功能调取程序做全面的设计分析。 我所写的循环按键程序主要功能是在程序运行过程中对输入的按键进行扫描和判断,为系统提供相应的操作判断。 当然在编写的同时对于 8255 的端口问题要特别的注意,一 定要保证和主程序相对应,显然如果 8255 端口设计出现问题自然整个系统也无法正常运行。 在本次设计过程中通过和小组成员之间的讨论以及思考中获得了不少的经验,也学到了怎么样和小组成员对问题和谐的探讨及解决,最后还是顺利的完成计程车 计价器设计报告 16 了本次课程设计。 本次的 计算机硬件课程设计 要求以小组形式完成任务,我们组的任务是计程车计价器的设计。 我主要负责键盘扫描程序和显示程序。 由于长时间没有使用汇编语言编程序了,刚开始编写的时候,虽然我的思路很清晰,但总是感觉写不出来。 我就重新温习了一下计算机硬件技术基础教材以及实验补充材料。 通过复习,我对教学实验装置上的 5 片 8255A 芯片、非编码键盘以及代码编写有了更深的理解。 在扩展的实验板上有 4行 4列非编码键盘,按键的行、列信号通过插孔引出,行信号通过 P0P3引出,列信号通过插孔 Q0Q3引出。 键盘扫描时需要逐列扫描,判断该列是否有键按下。 先将对应列信号设置为 0,然后读入行信号,如果有键按下,则该行读入为 0,否则为 1。 此外,为使 程序更好 的工作,而不出现明显地误判断,我还增加了去抖动以及判断按键是否弹起的子程序。 去抖动:延时20ms 左右,等按键通、断引起的抖动消失,若还有键闭合,则认为按键已稳定;判断按键是否弹起:如果已判断出按键已按下,就反复地将 Q0Q3 的值与前一刻的值进行比较,如果两者相同,则按键未弹起。 否则,按键已弹起,可进行下一步操作。 实验教学中心自行设计的扩展实验板上, 8255A 并行接口模块中共有 4 片8255A 芯片,每个 8255A 芯片的输出控制了两个共阳极 8 段 LED,通过 PCI 总线接口与其相连。 其中第 5 片 8255A 芯片的 PA0PA7 插孔为扩展的实验板上第 5片 A 口, PB0PB7 插孔和 PC0PC7 插孔分别是第 5 片 8255A 芯片的 B口和 C口。 LED 可以发红光、绿光或黄光,由 LED 的引脚 1 和引脚 5共同控制。 因此,显示程序比较简单,只需向 5 片 8255A 的 C 口写入不同的控制字,并通过 A 口和 B口,就可以在 LED 上以所需的颜色将待显示内容显示出来。 通过 本次的课程设计 ,我对汇编语言以及实验教学中心自行设计的扩展实验板有了更深的理解,为将来的进一步学习打下了良好的基础。 此外,在学习中,我们应该与同伴相互交流相互学习,并且通力合作,只有这 样,才能更快更好的完成任务。 温故而知新,学过的知识应该定期回顾,这样才能灵活应用并且从中获得新的体会。 计程车 计价器设计报告 17 十 、参考文献 杨天怡 《 计算机硬件技术基础 》 重庆大学出版社 杨天怡 《 计算机硬件技术基础实验教程 》 重庆大学出版社 计算机硬件技术基础实验补充资料 附录:程序清单 .486 DATA SEGMENT AT 0200H USE16 SDATA SEGMENT AT 0300H USE16 STACK DB 500 DUP(?) SDATA ENDS CODE SEGMENT USE16 ASSUME CS:CODE,DS:DATA,SS:SDATA ORG 4000H BEG: JMP MAIN fee1 db 00h ;费用小数和个位 fee1s db 00h ; fee1 缓冲 fee2 db 00h ;费用十位和百位 fee2s db 01h ; fee2 缓冲 mess1 db 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H,88H,83H,0C6H,0A1H,86H,8EH ;三色字型码不带小数点 mess2 db 40H,79H,24H,30H,19H,12H,02H,78H,00H,10H,08H,03H,46H,21H,06H,0EH ;三色字型码带小数点 mess3 db计程车 计价器设计报告 18 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,3fh,3fh,3fh,3fh,3fh,3fh ;共阴极 led 字型码 key db 0ffh ;按键缓冲 anjiantz db 0eeh,0edh,0ebh,0e7h,0deh,0ddh,0dbh,0d7h,0beh,0bdh,0bbh,0b7h,7eh,7dh,7bh,77h ;键盘特征值 danjia db 00h ;单价 danjia1 db 00h ;单价缓冲 danjias db 12h ;单价转换缓冲 speed db 00h ;速度( m/s) speed1 db 03h ;速度个位( km/h) speed2 db 00h ;速度十位( km/h) speed2s db 00h ;速度缓冲 flags db 01h ;改变速度个位 /十位标志 flag3 db 01h ; 3 公里标志 ts1 db 00h ; 1s 标志 s1 db 00h ;路程个位十位( m) s2 db 00h ;路程百位千位( m) stopcar db 07h ;停车计时 jiaogl db 00h ;每角钱形式距离( m) MAIN: ; 8255,8254 初始化 mov dx,30ch 第 5 片 8255 初始化 mov al,90h out dx,al mov dx,20ch 4 片 8255 初始化 mov eax,80808080h out dx,eax 计程车 计价器设计报告 19 mov dx,308h 共阴极 LED 全灭 mov al,00h out dx,al mov dx,208h 三色 LED 全灭 mov eax,0f0f0f0fh out dx,eax mov dx,32ch 8254 初始化 mov al,10110110b 计时开始 out dx,al mov dx,328h mov ax,47000 out dx,al mov al,ah out dx,al mov al,00h 起步价、 单价和速度清零 mov s1,al mov s2,al mov speed,al mov fee1,al mov fee2,al mov al,01h 没有 超出 3公里 mov flag3,al ;判断开始键 ss1: call setsaomiao call keyup mov al,key cmp al,0ah ; A键位开始键 计程车 计价器设计报告 20。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。