收藏 分销(赏)

微机原理优秀课程设计.doc

上传人:天**** 文档编号:2683853 上传时间:2024-06-04 格式:DOC 页数:27 大小:213.04KB
下载 相关 举报
微机原理优秀课程设计.doc_第1页
第1页 / 共27页
微机原理优秀课程设计.doc_第2页
第2页 / 共27页
微机原理优秀课程设计.doc_第3页
第3页 / 共27页
微机原理优秀课程设计.doc_第4页
第4页 / 共27页
微机原理优秀课程设计.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、电子信息工程专业微机原理课程设计汇报课题名称: 出租车计价器 学生班级: 自动化1班 学生学号: 学生姓名: 指导老师: 成绩评定: 元 月 1日摘 要当有些人乘车时,司机按“开始键START”同时开动汽车。经过转速传感器装置,这个装置能够在车轮转动时产生源脉冲,源脉冲经过修整后,送至含有计数和显示功效主体模块。其中显示部分有三个部分:里程显示、价格显示、和等时显示。要求设定里程从零开始计,价格从起步价(能够设定为5元)开始计,而且在小于起步里程(设定为5公里)时,价格一直是起步价5元,若超出起步里程,计价显示在原有起步价基础之上然后加上对应里程费用。设单位里程一公里价格2元。当在运作过程中是

2、因为红灯或客人需要有效等候时,专题模块30S假如没有检测到脉冲信号,则计价显示工作,而且每隔30S计价器就增加一元。这便是出租车计价器原理和设计思绪。关键词:模块化设计 8086CPU 汇编程序设计 目录摘要2关键字2正文3序言3本论3一、开题论证3二、系统整体论证4三、硬件方案选择部分4四、软件编写部分5五、整体测试情况18结论和感想19谢辞20参考文件20正文序言微机原理和接口技术是一门理论结合实践专业基础课,同时也是考研考察科目。能够毫不夸张说,学好学精微机原理,在就业时就有了很大优势。为了让我们愈加好掌握汇编语言和多种芯片特点和功效,安排了我们这次课程设计。8086 CPU及其对应外围

3、可编程芯片实现对计价器主体功效实现是此次试验目标,需要充足考虑了星研电子ES-PCI环境下硬件条件,我负责这次设计统筹步骤,并负责书写汇报。本论一、 开题论证:设计满足基础要求包含:1、里程显示 价格显示(起步价和起步价以后里程费用显示) 2、等时收费 3、复位。当有些人乘车时,司机按“开始键START”,且开动汽车。经过转速传感器装置,这个装置能够在车轮转动时产生源脉冲,源脉冲经过修整后,送至含有计数和显示功效主体模块。其中显示部分有三个部分:里程显示、价格显示、和等时显示。要求设定里程从零开始计,价格从起步价(能够设定为5元)开始计,而且在小于起步里程(设定为5公里)时,价格一直是起步价5

4、元,若超出起步里程,计价显示在原有起步价基础之上然后加上对应里程费用。设单位里程一公里价格2元。当在运作过程中是因为红灯或客人需要有效等候时,专题模块30S假如没有检测到脉冲信号,则计价显示工作,而且每隔30S计价器就增加一元。增强功效能够设计白天黑夜转换、语音提醒功效。由基础要求,初步设想能够实现基础功效。出租车上含有多位显示计价器(基于单片机)二、 系统整体论证:依据星研试验环境下,包含怎么样去实现开题要求,在现有试验室条件下能否演示,或能否演示其中主体功效。只能依据已学知识利用16位CPU及其对应外围可编程控制芯片实现。三、 硬件方案选择部分:1.脉冲产生电路包含光电式霍尔式也能够用一个

5、固定脉冲2.计数器采取8253计数结束中止方法3.中止控制器采取8259A4.显示控制部分用两种选择采取8255控制显示或8279控制显示5.显示器件 数码管 LCD最终经过相关论证能够绘制出所要硬件原图: D7-D08086CPUM/IOWRRDINTRINTRAWR PA0RD PB0-PB78255CSPC0-PC7INT IR0INTAWR 8259RDA0CSOUT1 VCWR CLK1RD 8253CS741387413874138D7-D0+5V+5VM/IOM/IO显示低四位里程高四位总价说明:以8086CPU为关键,其经过对应地址线和译码器相连实现对外围芯片片选(在星研ESP

6、CI硬件环境下片选能够直接实现),经过低地址数据线完成和外围芯片数据传输(对外围芯片初始化编程、程序监控),计数器采取计数中止结束方法计数,依据现实条件设定一个初始值N,当有N个脉冲经过CLK1时,8253OUT1向8259输出一个脉冲,此时8259向CPU发送一个中止请求,CPU处理中止子程序,对8255进行控制,并经过8255控制显示。四、 软件编写部分:1.系统步骤图 说明:本程序应用8255作为总控制,其中PA口接按键(开启控制),PB接8位数码管显示部分,而PC口接位选,其中PC口高4位显示价钱,低4位显示里程。采取8253技术,其中计数器T0,T1和1MHZ产生1HZ信号,接IR0

7、计数;08H中止一直计数TIME(时间),而09H为信号接收时中止,将里程(COUNT)+1,并将时间(TIME)清0;若无信号输入,09H将不产生中止,此时即为等候状态,08H中止TIME+,当达成30s时,价钱增加2元,并将TIME清0循环。2.源代码及其注释.MODELTINYPCIBAR3 EQU 1CH ; 8位I/O空间基地址(它就是试验仪基地址,也为DMA & 32 BIT RAM板卡上8237提供基地址)Vendor_IDEQU10EBH ;厂商ID号Device_IDEQU8376 ;设备ID号DLYC2 EQU 200 ;显示时间系数.STACK100 .DATACOM_A

8、DDRDW00B3HT0_ADDRDW00B0HT1_ADDRDW00B1HCOM_ADDDW00F3H;控制口偏移量PA_ADDDW00F0H;PA口偏移量PB_ADDDW00F1H;PB口偏移量PC_ADDDW00F2H;PC口偏移量IO8259_0 EQU0E00H ;待定*IO8259_1 EQU0E01H ;*OLDOA1 DD ? ;存放原08H中止地址OLDOA2 DD ? ; 存放原09H中止地址COUNT DW 00H ;里程计数TIME DW 00H ;时间计数DDBB1 DW 4 DUP (0) ;存放里程计数值DDBB2 DW 4 DUP(0) ;存放价钱计数值IO_B

9、it8_BaseAddress DW?msg0DBBIOS不支持访问PCI $msg1DB找不到Star PCI9052板卡 $msg2DB读8位I/O空间基地址时犯错$TB DB 40H,79H,24H,30H,19H DB 12H,02H,78H,00H,18H.CODESTART:MOVAX,DATAMOVDS,AXNOPCALL InitPCICALL ModifyAddress;依据PCI提供基地址,将偏移地址转化为实地址 CLI ;关中止 CALL I8255A ;8255A初始化CALL RD08 ;读出08H中止向量CALL WRITE08 ;写入08H中止向量CALL RD0

10、9 ;读出09H中止向量CALL WRITE09 ;写入09H中止向量CALL I8259 ;开放用户中止STI ;开中止;* MOV DX,PA_ADD ;按键扫描 IN AL,DXAND AL,0FFHCMP AL,0FFHJNZ BBCOUNT DW 00H ;清零TIME DW 00H BB:MOV DX,COM_ADDRMOV AL,34HOUT DX,AL;计数器T0设置在模式2状态,二进制计数MOV DX,T0_ADDRMOV AL,00HOUT DX,ALMOV AL,10HOUT DX,AL;CLK0/1000MOV DX,COM_ADDRMOV AL,76HOUT DX,A

11、L;计数器T1为模式3状态,输出方波,二进制计数MOV DX,T1_ADDRMOV AL,00HOUT DX,ALMOV AL,10HOUT DX,AL;CLK1/1000 ;OUT1输出频率为1S方波MOV DX,COM_ADDRMOV AL,10110000BOUT DX,ALMOV DX,T2_ADDRMOV AL,00HOUT DX,ALMOV DX,T2_ADDRMOV AL,10HOUT DX,AL CALL BCDTO1;将统计数放在存放器BBDD1中CALL DISP1; 调用动态显示,PC低四位显示里程MOV AX, COUNT MOV BX, 02HMUL AX, BXCA

12、LL B2TOBCD;将二进制转换为BCD码MOV BX,0006H ;给予起步价6元CMP AX,BX ; 若计数值小于6元,交换AX,BXJA TTXCHG AX,BX TT: CALL BCDTO 2 ;将统计数分别放入存放器BBDD2中 CALL DISP2 ;调用动态显示,PC高四位显示价钱 CALL RESTER08H ;恢复08H,09H型中止 CALL RESTER09H;*DL20msPROCNEARPUSHAXPUSHDXMOVDX,20;延时20msMOVAH,0FFH;星研企业提供软中止INT21HPOPDXPOPAXRETDL20msENDP;* I8255A PRO

13、C MOV DX,COM_ADD MOV AL,10010000B ;PA输入,PB PC输出 OUT DX,AL MOV DX, PC_ADD MOV AL,0FFH ;关数码管 OUT DX,AL RETI8255A ENDP;*RD08 PROC MOV AH,35H MOV AL,0AH INT 21H MOV WORD PTR OLD0A1,BX MOV WORD PTR OLD0A1+2,ES RETRD08 ENDP;*WRITE08 PROC PUSH DS MOV AX,CODE MOV DS,AX MOV DX,OFFSET SERVICE1 MOV AX,2508H IN

14、T 21H POP DS RETWRITE08 ENDP;*RD09 PROC MOV AH,35H MOV AL,09H INT 21H MOV WORD PTR OLD0A2,BX MOV WORD PTR OLD0A2+2,ES RETRD09 ENDP;*WRITE09 PROC PUSH DS MOV AX,CODE MOV DS,AX MOV DX,OFFSET SERVICE2 MOV AX,2509H INT 21H POP DS RETWRITE09 ENDP;*;*I8259 PROC MOV AL,12H ;单级使用,边缘触发,不需要设计ICW4 OUT 0E00H ,A

15、L; MOV AL,0A0H;一般EOI循环方法,IR0最低级OUT 0E00H,AL; RETI8259 ENDP;* SERVICE 1 PROC PUSH AX PUSH DS MOV AX,DATA MOV DS,AX INC TIME MOV AX,TIME MOV BX,30 CMP AX,BX JNA AA1 TIME DW 00H INC COUNT ;相当于价钱加2元AA1 MOV AL,20H OUT 0E00H,AL ;中止结束中止地址 POP DSPOP AX IRETSERVICE1 ENDP ;* SERVICE 2 PROC PUSH AX PUSH DS MOV

16、 AX,DATA MOV DS,AX INC COUNT MOV AX,COUNT MOV BX,4500 CMP AX,BX JNA AA1 COUNT DW 00H MOV AX,COUNT AA2: CALL B2TOBCD MOV AL,20H OUT 0E00H,AL ;中止结束中止地址 POP DSPOP AX IRETSERVICE2 ENDP ;*RESTER08H PROC PUSH DS MOV DX,WORD PTR OLDOA1 MOV DS,WORD PTR OLDOA1+2 MOV AH,25H MOV AL,08H INT 21H POP DS RETRESTER

17、08H ENDP;*RESTER09H PROC PUSH DS MOV DX,WORD PTR OLDOA2 MOV DS,WORD PTR OLDOA2+2 MOV AH,25H MOV AL,09H INT 21H POP DS RETRESTER09H ENDP;*B2TOBCD PROC NEAR CMP AX,9999 ;AX9999,则CF置1 JBE TRAN STC JMP EXITTRAN: PUSH CX PUSH DX SUB DX,DX ;DX清0 MOV CX,1000 ;计算千位数 DIV CX XCHG AX,DX ;商在DX中,余数在AX中 MOV CL,4

18、SHL DX,CL ;DX左移4位 MOV CL,100 ;计算百位数 DIV CL ADD DL,AL ;百位数加到DL中,DX左移4位 MOV CL,4 SHL DX,CL XCHG AL,AH ;余数保留在AL中 SUB AH,AH MOV CL,10 ;计算十位数 DIV CL ADD DL,AL ;十位数加到DL中,DX左移4位 MOV CL,4 SHL DX,CL ADD DL,AH ;加个位数 MOV AX,DX ;结果送到AX中 POP DX POP CX EXIT1: RET B2TOBCD ENDP ;*BCDTO PROC NEAR MOV SI,OFFSET DDBB

19、MOV BH,00H MOV BL,AL MOV CL,04H ROR BX,CL MOV SI+1,BL ;将统计数十位放在其中 SHR BH,CL MOV SI,BH ;将统计数个位放在其中 SUB BH,BH MOV BL,AH MOV CL,04H ROR BX,CL MOV SI+3,BL ;将统计数千位放在其中 SHR BH,CL MOV SI+2,BH ;将统计数百位放在其中 RETBCDTO ENDP;* DISP1 PROC NEAR MOV SI,OFFSET DDBB1 MOV AL,SI ;显示个位 MOV BX,OFFSET TB XLAT TB MOV DX,PB_

20、ADD ;用PB口做动态扫描 OUT DX,AL MOV DX,PC_ADD ;用PC口做位选 MOV AL,0FEH ;用PC口低位显示 OUT DX,AL MOV CX,DLYC2 LP0: LOOP LP0 MOV AL, 0FFH OUT DX,AL INC SI MOV AL,SI ;显示百位 MOV BX,OFFSET TB XLAT TB MOV DX,PB_ADD ;用PB口做动态扫描 OUT DX,AL MOV DX,PC_ADD ;用PC口做位选 MOV AL,0FDH ;用PC口低位显示 OUT DX,AL MOV CX,DLYC2 LP1: LOOP LP1 MOV A

21、L, 0FFH OUT DX,AL INC SI MOV AL,SI ;显示百位 MOV BX,OFFSET TB XLAT TB MOV DX,PB_ADD;用PB口做动态扫描 OUT DX,AL MOV DX,PC_ADD ;用PC口做位选 MOV AL,0FBH ;用PC口低位显示 OUT DX,AL MOV CX,DLYC2 LP2: LOOP LP2 MOV AL, 0FFH OUT DX,AL INC SI MOV AL,SI ;显示千位 MOV BX,OFFSET TB XLAT TB MOV DX,PB_ADD ;用PB口做动态扫描 OUT DX,AL MOV DX,PC_AD

22、D ;用PC口做位选 MOV AL,0F7H ;用PC低位显示 OUT DX,AL MOV CX,DLYC2 LP3: LOOP LP3 MOV AL,0FFH OUT DX,AL RETDISP1 ENDP ;* DISP2 PROC NEAR MOV SI,OFFSET DDBB2 MOV AL,SI ;显示个位 MOV BX,OFFSET TB XLAT TB MOV DX,PB_ADD ;用PB口做动态扫描 OUT DX,AL MOV DX,PC_ADD ;用PC口做位选 MOV AL,0EFH ;用PC口高位显示 OUT DX,AL MOV CX,DLYC2 LP0: LOOP LP

23、0 MOV AL, 0FFH OUT DX,AL INC SI MOV AL,SI ;显示百位 MOV BX,OFFSET TB XLAT TB MOV DX,PB_ADD ;用PB口做动态扫描 OUT DX,AL MOV DX,PC_ADD ;用PC口做位选 MOV AL,0DFH ;用PC口高位显示 OUT DX,AL MOV CX,DLYC2 LP1: LOOP LP1 MOV AL, 0FFH OUT DX,AL INC SI MOV AL,SI ;显示百位 MOV BX,OFFSET TB XLAT TB MOV DX,PB_ADD ;用PB口做动态扫描 OUT DX,AL MOV DX,PC_ADD ;用PC口做位选 MOV AL,0BFH ;用PC口高位显示 OUT DX,AL MOV CX,DLYC2 LP2: LOOP LP2 MOV AL, 0FFH OUT DX,AL

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服