《2022年接口课程方案出租车计价器 .pdf》由会员分享,可在线阅读,更多相关《2022年接口课程方案出租车计价器 .pdf(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、个人资料整理仅限学习使用信息科学与技术学院微机原理与接口技术课程设计报告精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 18 页个人资料整理仅限学习使用1.方案选择1.1 题目:出租车计价器1.2 要求:1.计价功能2. 手动设计单价3. 显示里程、单价与总价4. 据时间设定单价精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 18 页个人资料整理仅限学习使用2.程序设计与分析2.1 功能设计2.1.1 输出字符串宏 (str 功能:将字符串定义在宏里面,然后输出。2.1.2 定义
2、光标定位宏功能:指定光标的位置。2.1.3 清屏宏 (clearscreen 功能:设置开始和结尾的行列数以及属性。2.1.4 延时模块功能:延缓每次显示的时间,使之能够准确的输出。2.1.5 数字显示模块功能:显示所有的数字内容,其中包括行驶过程中的价格,和里程的显示。在数据段中定义数字的格式,通过中断显示出数字能容。光标定位,使数字显示在指定的位置。2.1.6 数字自增模块功能:设计程车每走100m,总价格增加0.2 元,起步价为5 元。此时在行驶的里程中,不断的加100m,当达到 3km 的时候,通过cx 的判断,使价格从5元开始,每走 100m 加 0.2元。需要用到延时程序,和跳转功
3、能。2.1.7 设置单价模块功能:手动设置单价,设定每公里要走的单价。在数据段定义后,每输入一精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 18 页个人资料整理仅限学习使用次,通过取数据段的数据,完成定价的功能。2.2 主程序设计2.2.1 主函数2.3 字符串宏模块2.3.1 本设计的方法,计算公式显示字符串是本模块的功能,方法是将字符串传送到 dx 中,然后用 09 中断输出。主函数 main 定义界面公里数自加1 显示总价,显示里程显 示 总 价 , 价 格 增 加0.2 元/100m 显示不响应从键盘输入字符小于三公里停止继续
4、Y Y Y N N N 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 18 页个人资料整理仅限学习使用2.3.2 本模块的流程图 : 2.3.3 本设计的重点、难点和解决方法我认为本设计的重点和难点在于字符串的传送,解决方法在于用09 输出和字符串的定义一起搭配使用。Dx ax 压栈字符 dx ax dx 出栈结束开始输出精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 18 页个人资料整理仅限学习使用2.4 字显示成数的形式的disp 子程序置光标位置取时间 disptime
5、中的十位至al 将 取 得 数字 乘以16 得到 其 对 应在shizi 段的对应显示显示价格字符串地址后移六位输出下一个字符串置光标,并显示字符串精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 18 页个人资料整理仅限学习使用2.5 自加功能:公里数小数位自加1 小数位大于十小数位清零公里数个位加1 直到最后完成最高位进位Y N 结束开始精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 18 页个人资料整理仅限学习使用3.程序运行界面5总结在这次的课程设计中,学到的知识有很多,收
6、获也不小。可以从理论结合实际,可以把身边的一些所涉及到的编程工具自己也能够体会和学习一下。比如这次所做的计程车计价器。由于能力有限不能拿单片机或仿真的工具来做,只是用汇编基础的模拟了一下,其中也了解到了最基本的原理,锻炼了自己的基础知识水平。可以用到将来的实际应用当中。能够体会到其中的乐趣。但是这次也有许多的问题,首先是自己的编程水平不好,所以做起来速度很慢,需要以后多多练习,实验。有些功能还没有能够实现,所以还需要进一步的学习,要学的知识还有很多,还应该花更多的精力在这些方面,这样才能够提高自己的专业水平。汇编语言和微机接口原理也是最基层的计算机语言和最接近硬件的,只有了解了这里的本质,才能
7、更有效准确的运用其他工具。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 18 页个人资料整理仅限学习使用6参考文献:1 IBM-PC 汇编语言程序设计沈美明清华大学出版社2001年8月第2版2 IBM-PC 汇编语言程序设计例题习题集沈美明清华大学出版社 1991 年6月第1版3 微机系统和接口应用技术朱世鸿著清华大学出版社2006年9月第1版7附原程序:data segment valuenum db 00,00,00,.,00,$。distance valuenum3 db 00,00,05,.,00,$。price num1 d
8、b total value,$ num2 db distance,$ num3 db km,$ num4 db yuan,$ stop db *press s to stop!,$ go_on db*press g to go on,$ shuzi db _ ,0dh,0ah,$ db | |,0dh,0ah,$ db |_|,0dh,0ah,$ db ,0dh,0ah,$ db |,0dh,0ah,$ db |,0dh,0ah,$ db _ ,0dh,0ah,$ db _|,0dh,0ah,$ db |_ ,0dh,0ah,$ db _ ,0dh,0ah,$ db _|,0dh,0ah,$
9、db _|,0dh,0ah,$ db ,0dh,0ah,$ db |_|,0dh,0ah,$ db |,0dh,0ah,$ db _ ,0dh,0ah,$ db |_ ,0dh,0ah,$ db _|,0dh,0ah,$ db _ ,0dh,0ah,$ db |_ ,0dh,0ah,$ 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 18 页个人资料整理仅限学习使用 db |_|,0dh,0ah,$ db _ ,0dh,0ah,$ db |,0dh,0ah,$ db |,0dh,0ah,$ db _ ,0dh,0ah,$ db |_|,
10、0dh,0ah,$ db |_|,0dh,0ah,$ db _ ,0dh,0ah,$ db |_|,0dh,0ah,$ db _|,0dh,0ah,$ data ends poscurse macro dh1,dl1 。定义光标定位宏 push ax push bx push dx mov ah,2h mov bh,0h mov dh,dh1 。光标行坐标位置 mov dl,dl1。光标列坐标位置 int 10h。mov ah,2h int 10h是10号中断的 2号功能,设置光标位置 pop dx pop bx pop ax endm code segment assume cS:code,
11、ds:data main proc far mov ax,data mov ds,ax clear macro aL1,bh1,ch1,cl1,dh1,dl1 MOV AH,06H 。初始化屏幕, 10号中断的 6 号功能 mov aL,aL1 mov bh,bh1 mov ch,ch1 mov cl,cl1 mov dh,dh1 mov dl,dl1 INT 10H endm clear 0,01000000b,2,3,20,75 clear 0,00011110b,5,5,18,73 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共
12、 18 页个人资料整理仅限学习使用mov cx,0 B: inc cx cmp cx,32 jz c 。不相等则跳转到c call disp3 call delay call disp2 call delay call delay call inc_2 call delay mov ah,0bh int 21h inc al jnz b mov ah,01h int 21h cmp al,s jnz b jmp a c: clear 0,01000000b,2,3,20,75 clear 0,00011110b,5,5,18,73 call disp1。显示价格 call delay call
13、 inc_1。价格加 2 call delay call disp2。显示里程 call delay call inc_2。里程加 2 call delay mov ah,0bh int 21h 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 18 页个人资料整理仅限学习使用inc al jnz c mov ah,01h int 21h cmp al,s jnz c jmp a m:jmp b a: mov ah,0bh int 21h inc al jnz a mov ah,01h int 21h cmp al,g jnz a mo
14、v al,valuenum cmp al,0 ja c mov al,valuenum+1 cmp al,0 ja c mov al,valuenum+2 cmp al,3 ja c cmp al,3 jnz m jmp c RET main endp 。-output子程序 - output proc near push ax mov ah,09h int 21h pop ax ret output endp 。inc_1 子程序inc_1 proc near 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 18 页个人资料整理仅限
15、学习使用 push ax mov al,valuenum3+4 inc al inc al mov valuenum3+4,al cmp al,0ah jnz return3 mov valuenum3+4,00h mov al,valuenum3+2 inc al mov valuenum3+2,al cmp al,0ah jnz return3 mov valuenum3+2,00h mov al,valuenum3+1 inc al mov valuenum3+1,al cmp al,0ah jnz return3 mov valuenum3+1,00h mov al,valuenum
16、inc al mov valuenum3,al cmp al,0ah jnz return3 mov valuenum3,00h return3:pop ax ret inc_1 endp 。inc_2 子程序inc_2 proc near push ax mov al,valuenum+4 inc al mov valuenum+4,al cmp al,0ah jnz return mov valuenum+4,00h 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共 18 页个人资料整理仅限学习使用 mov al,valuenum+
17、2 inc al mov valuenum+2,al cmp al,0ah jnz return mov valuenum+2,00h mov al,valuenum+1 inc al mov valuenum+1,al cmp al,0ah jnz return mov valuenum+1,00h mov al,valuenum inc al mov valuenum,al cmp al,0ah jnz return mov valuenum,00h return:pop ax ret inc_2 endp 。-delay子程序 - delay proc near push bx push
18、 ax push cx mov bl,75d waitf2: mov cx,1000d waitf1: in al,61h and al,10h cmp al,ah je waitf1 mov ah,al loop waitf1 dec bl cmp bl,0 jnz waitf2 pop cx pop ax 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 14 页,共 18 页个人资料整理仅限学习使用pop bx ret delay endp 。-disp1子程序 , 从 5 开始显示 - disp1 proc near lea dx,num1
19、poscurse 09h,6h 。坐标位置call output 。输出 num1里面的字符串 lea dx,num2 poscurse 0ch,08h call output lea dx,num3 poscurse 0ch,23h call output lea dx,num4 poscurse 09h,23h call output lea dx,stop poscurse 12h,06h call output lea dx,go_on poscurse 12h,30h mov ah,09h 。显示 dx 寄存器地址中的字符串 int 21h mov al,valuenum3 mov
20、bl,12h mul bl mov dx,offset shuzi poscurse 07h,13h add dx,ax call output poscurse 08h,13h add dx,06h call output poscurse 09h,13h add dx,06h call output poscurse 07h,16h mov al,valuenum3+1 mov bl,12h 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 15 页,共 18 页个人资料整理仅限学习使用 mul bl mov dx,offset shuzi po
21、scurse 07h,16h add dx,ax call output poscurse 08h,16h add dx,06h call output poscurse 09h,16h add dx,06h call output poscurse 07h,19h mov al,valuenum3+2 mov bl,12h mul bl mov dx,offset shuzi poscurse 07h,19h add dx,ax call output poscurse 08h,19h add dx,06h call output poscurse 09h,19h add dx,06h ca
22、ll output poscurse 09h,1ch mov dl,2eh mov ah,02h 。调用系统时间 int 21h poscurse 07h,1eh mov al,valuenum3+4 mov bl,12h mul bl mov dx,offset shuzi poscurse 07h,1eh add dx,ax call output poscurse 08h,1eh add dx,06h call output poscurse 09h,1eh 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 16 页,共 18 页个人资料整理仅
23、限学习使用 add dx,06h call output ret disp1 endp 。-disp2子程序 - disp2 proc near push ax mov al,valuenum mov bl,12h mul bl mov dx,offset shuzi poscurse 0ah,13h add dx,ax call output poscurse 0bh,13h add dx,06h call output poscurse 0ch,13h add dx,06h call output poscurse 0ah,16h mov al,valuenum+1 mov bl,12h
24、mul bl mov dx,offset shuzi poscurse 0ah,16h add dx,ax call output poscurse 0bh,16h add dx,06h call output poscurse 0ch,16h add dx,06h call output poscurse 0ah,19h mov al,valuenum+2 mov bl,12h mul bl mov dx,offset shuzi poscurse 0ah,19h 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 17 页,共 18 页个人资料整理
25、仅限学习使用 add dx,ax call output poscurse 0bh,19h add dx,06h call output poscurse 0ch,19h add dx,06h call output poscurse 0ch,1ch mov dl,2eh mov ah,02h int 21h poscurse 0ah,1eh mov al,valuenum+4 mov bl,12h mul bl mov dx,offset shuzi poscurse 0ah,1eh add dx,ax call output poscurse 0bh,1eh add dx,06h call output poscurse 0ch,1eh 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 18 页,共 18 页