河北科技大学

课程设计报告

目 录

一、课程设计的目的……………………………………………………1

二、设计题目……………………………………………………………1

三、设计内容要求………………………………………………………2

四、设计成员及分工……………………………………………………2

五、课程设计的主要步骤………………………………………………2

六、课程设计原理及方案………………………………………………3

七、实现方法……………………………………………………………3

八、实施结果……………………………………………………………8

九、总结…………………………………………………………………8

十、体会感受……………………………………………………………8

一、 课程设计的目的

课程设计是以自己动手动脑,亲手设计与调试的。它将基本技能训练、基本工艺知识和创新启蒙有机结合,培养我们的实践和创新能力。课程设计的意义,不仅仅是让我们把所学的理论知识与实践相结合起来,提高自己的实际动手能力和独立思考的能力。作为信息时代的大学生,基本的动手能力是一切工作和创造的基础和必要条件。

课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识解决实际工程设计和应用问题的能力的重要教学环节,它具有动手、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一种较好方法。

《微机原理及应用》是一门应用性、综合性、实践性较强的课程,没有实际的有针对性的设计环节,学生就不能很好的理解和掌握所学的技术知识,更缺乏解决实际问题的能力。所以通过有针对性的课程设计,使学生学会系统地综合运用所学的理论知识,提高学生在微机应用方面的开发与设计本领,系统的掌握微机硬软件设计方法。

通过课程设计实践,不仅要培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅专业资料、工具书或参考书,掌握工程设计手段和软件工具,并能以图纸和说明书等表达设计思想和结果的能力。培养学生事实求是和严肃认真的工作态度。

通过设计过程,要求学生熟悉和掌握微机系统的软件设计的方法、设计步骤,使学生得到微机开发应用方面的初步训练。让学生独立或集体讨论设计题目的系统方案论证设计、编程、软件调试、查阅资料、编写说明书等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。通过本次课程设计使学生熟练的熟练掌握微机系统的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的软件调试方法和步骤,熟悉微机系统的软件开发工具的使用方法。

二、 设计题目

字符串动画显示

三、 设计内容要求

1、菜单

内容包括:①输入字符串;②字符串动画显示;③退出。

2、输入字符串

选择该项后,可以输入一个字符串。该字符串即为动画显示时所显示的字符串。

3、字符串动画显示

所显示字符串在一矩形框内从无到有,一半从左另一半从右向中间移动,当两半相遇时停止移动,当按下R键后重复从两边到中间移动的动作,直到按下Q键,停止字符串动画显示返回到主菜单。

4、在主菜单中选择退出项,则结束程序返回DOS。

四、 设计成员及分工

我主要负责程序的生成和初步调试

五、 课程设计的主要步骤

课程设计可以分为硬件设计和软件设计两个部分,其设计过程可以归纳为以下所述的四个步骤:

1.总体设计

本阶段的任务是通过调查研究,查阅资料来初步确定系统结构的总体方案,其中主要涉及到硬件和软件的功能划分。

应用系统中硬件和软件具有一定的互换性,即某些功能既可以用硬件实现也可以用软件实现。一般说来,用硬件实现的优点是可以提高系统的工作速度,但会增加电路的复杂性和硬件成本;而用软件代替某些硬件的功能可以使电路简化,便于修改设计,降低硬件成本,但软件工作量增大。

总体设计时,必须在硬件和软件之间权衡,分工明确,然后分头开始设计

2.硬件设计过程

利用实验箱的硬件资源,结合课程设计题目,设计硬件原理图,搭建硬件电路。

3.软件设计过程

(1)采用模块化程序结构设计软件,可将整个软件分成若干功能模块。

(2)画出程序流程图。

(3)根据流程图,编写源程序。

(4)上机调试程序

4.软、硬件联调

六、 课程设计原理及方案

主程序流程图

七、 实现方法

CODE SEGMENT

ASSUME CS:CODE,DS:CODE

START: MOV AX,CODE

MOV DS,AX

MOV AX,0B800H

MOV ES,AX

微机原理课程设计实验报告

CLD

AGAIN: MOV AX,3 INT 10H LEA DX,MENU MOV AH,9 INT 21H

INPUT:

MOV AH,0 INT 16H

CMP AL,’1′ JNZ CP2

CALL SUB01 JMP INPUT

CP2:CMP AL,’2′ JNZ CP3

CALL SUB02 JMP AGAIN

CP3:CMP AL,’3′ JNZ INPUT LEA DX,MESG MOV AH,9 INT 21H

MOV AH,1 INT 21H

MOV AH,4CH INT 21H

DELAY PROC PUSH CX PUSH DX

MOV DX,1000 D1:MOV CX,0FFFFH LOOP $ DEC DX JNZ D1 POP DX POP CX RET

DELAY ENDP

SUB01:

MOV AX,0E0DH INT 10H

MOV AL,0AH INT 10H

LEA DX,STR MOV AH,0AH INT 21H

MOV AX,0E0AH

INT 10H RET

SUB02:

CMP STR+1,2 JNB Y2 JMP QUIT Y2:CALL LINE @Y2:

XOR AX,AX MOV CNT1,AX MOV CNT5,AX MOV DL,60-2 MOV AL,STR+1 SUB DL,AL MOV DH,0 MOV CNT3,DX MOV BL,AL INC AL SHR AL,1 CBW

MOV CNT2,AX SUB BL,AL MOV BH,0 MOV CNT4,BX Y3:

MOV BP,ES PUSH DS POP ES

MOV DI,1000H MOV CX,CNT1 JCXZ U1 MOV AL,20H REP STOSB U1:LEA SI,BUF MOV CX,CNT2 REP MOVSB MOV CX,CNT3 JCXZ U2 MOV AL,20H REP STOSB

U2:MOV CX,CNT4 REP MOVSB MOV CX,CNT5 JCXZ U3 MOV AL,20H REP STOSB U3:

SHOW:

MOV ES,BP MOV AH,0AH MOV SI,1000H MOV DI,LEFT MOV CX,60-2 PPP:

LODSB

STOSW

LOOP PPP

CALL DELAY CMP CNT3,0 JZ @INPUT INC CNT1

INC CNT5

DEC CNT3

CMP CNT3,0 JZ KK2

DEC CNT3

KK2: JMP Y3 @INPUT:

MOV AH,0

INT 16H

CMP AH,10H JZ SSS

CMP AH,13H JNZ @INPUT CMP CNT3,0 JNZ @REP

JMP @Y2

@REP:JMP Y3 SSS:

MOV STR+1,0 QUIT:

LEA SI,CNT1 XOR AX,AX MOV CX,5

KK3:MOV [SI],AX INC SI

INC SI

LOOP KK3

XOR DI,DI MOV CX,80*25 MOV AX,720H REP STOSW RET

LINE:

MOV DI,(18*80+10)*2 MOV AL,201

MOV AH,0EH

STOSW

MOV CX,60-2

MOV AL,205

REP STOSW

MOV AL,187

STOSW

ADD DI,20*2

MOV AL,186

STOSW

MOV LEFT,DI

MOV CX,60-2

MOV AL,20H

REP STOSW

MOV RIGHT,DI

MOV AL,186

STOSW

ADD DI,20*2

MOV AL,200

STOSW

MOV CX,60-2

MOV AL,205

REP STOSW

MOV AL,188

STOSW

RET

MENU DB 5 DUP(0AH)

DB 31 DUP(‘ ‘),’MAIN MENU’,0DH,0AH

DB 25 DUP(‘ ‘),201,21 DUP(205),187,0DH,0AH

DB 25 DUP(‘ ‘),186,’ 1.INPUT A STRING …’,186,0DH,0AH DB 25 DUP(‘ ‘),186,’ 2.DISPLAY MODEL … ‘,186,0DH,0AH DB 25 DUP(‘ ‘),186,’ 3.RETURN TO DOS … ‘,186,0DH,0AH DB 25 DUP(‘ ‘),200,21 DUP(205),188,0DH,0AH

DB 28 DUP(‘ ‘),’CHOICE(1,2,3):$’

MESG DB 0DH,0AH,0DH,0AH,9,’PRESS ANY KEY TO EXIT …$’

CNT1 DW 0

CNT2 DW 0

CNT3 DW 0

CNT4 DW 0

CNT5 DW 0

NUM DW 2

LEFT DW 0

RIGHT DW 0

STR DB 21

DB 0

BUF DB 0DH,20 DUP(0)

CODE ENDS

END START

八、 实施结果

所显示字符串在一矩形框内从无到有,一半从左另一半从右向中间移动,当两半相遇时停止移动,当按下R键后重复从两边到中间移动的动作,直到按下Q键,停止字符串动画显示返回到主菜单。

九、 总结

总的来说,在整个设计的过程中,对文件的知识有了相当程度的了解掌握,基本上学会了对图的操作等。在对文件的自学过程中也认识 ,在学习的过程中要灵活的把所学的知识运用到实践当中,并且还要巩固练习和运用,这样才可以牢牢的记住。试验也对数据结构的知识进行了复习,尤其是结构体的定义、地址与引用的合理使用以及记录指针的使用也认识到数据结构在实践运用中的重要性,在对程序不断的修改和逐步改进提升的过程中,积累了不少经验,为在以后的学习和实践应用奠定了一定的基础。

十、 体会感受

通过对这程序的制作,使我对汇编语言的基本知识的使用更加熟练,同时也增加了我对汇编语言的一些认识,在作业完成过程中通过和同学的交流,也增加了合作的技巧。通过查阅资料也学到了一些课本上没有的东西,拓宽了自己的知识面,增加了学好汇编语言的信心。

在这次课程设计中,我真正体会到了合作的重要性,遇到很多问题时,当我看书查资料不能解决时,这是去找同学讨论一下,收获很大,可以使很多问题迎刃而解,直到问题最终解决。

不可否认,本程序存在不少缺点和不足,但通过这次课程设计的却找出了自己在学习上的不足,对以后的工作也有指导作用。我相信在以后的学习中会克服这些不足,达到熟练掌握汇编语言的目的。

这次课程设计受益非浅,学到了不少知识,同时也认识到自身的不足,需要加强自身训练,学以致用,学会自我总结,吸取教训,积累经验,在学习和实践中来不断的提升自己。

第二篇:微机原理 课程设计 15400字

电子信息工程专业

微机原理课程设计报告

课题名称: 出租车计价器 学生班级: 自动化1班 学生学号:

学生姓名:

指导教师:

成绩评定:

20xx年 元 月 1日

电子系微机原理与接口技术课程设计报告

摘 要

当有人乘车时,司机按“开始键START”同时开动汽车。通过转速传感器装置,这个装置可以在车轮转动时产生源脉冲,源脉冲经过修整后,送至具有计数和显示功能的主体模块。其中显示部分有三个部分:里程显示、价格显示、以及等时显示。要求设定里程从零开始计,价格从起步价(可以设定为5元)开始计,而且在不大于起步里程(设定为5公里)时,价格一直是起步价5元,若超过起步里程,计价显示在原有起步价基础之上然后加上相应的里程费用。设单位里程一公里价格2元。当在运作过程中是由于红灯或者客人需要的有效等待时,主题模块30S如果没有检测到脉冲信号,则计价显示工作,并且每隔30S计价器就增加一元。这便是出租车计价器的原理和设计思路。

关键词:

模块化设计 8086CPU 汇编程序设计

目录

摘要 …………………………………………………………………………………………………………………….. 2 关键字 ………………………………………………………………………………………………………………………. 2

正文 …………………………………………………………………………………………………………………….. 3 前言 ………………………………………………………………………………………………………………………….. 3 本论 ………………………………………………………………………………………………………………………….. 3

一、开题论证 ………………………………………………………………………………………………… 3

二、系统整体论证 ……………………………………………………………………………………………… 4

三、硬件方案选择部分 ………………………………………………………………………………………. 4

四、软件编写部分 ……………………………………………………………………………………………… 5

五、整体测试情况 ……………………………………………………………………………………………. 18 结论和感想 ………………………………………………………………………………………………………………. 19 谢辞 ………………………………………………………………………………………………………………………… 20 参考文献 ………………………………………………………………………………………………………………….. 20

第2页

电子系微机原理与接口技术课程设计报告

正文

前言

微机原理与接口技术是一门理论结合实践的专业基础课,同时也是考研的考察科目。可以毫不夸张的说,学好学精微机原理,在就业时就有了非常大的优势。为了让我们更好的掌握汇编语言和各种芯片的特点和功能,安排了我们这次课程设计。8086 CPU及其相应的外围可编程芯片实现对计价器主体功能的实现是本次试验的目的,需要充分考虑了星研电子ES-PCI环境下的硬件条件,我负责这次设计的统筹环节,并负责书写报告。

本论

一、 开题论证:

设计满足的基本要求包括:

1、里程显示 价格显示(起步价以及起步价之后的里程费用的显示)

2、等时收费

3、复位。

当有人乘车时,司机按“开始键START”,且开动汽车。通过转速传感器装置,这个装置可以在车轮转动时产生源脉冲,源脉冲经过修整后,送至具有计数和显示功能的主体模块。其中显示部分有三个部分:里程显示、价格显示、以及等时显示。要求设定里程从零开始计,价格从起步价(可以设定为5元)开始计,而且在不大于起步里程(设定为5公里)时,价格一直是起步价5元,若超过起步里程,计价显示在原有起步价基础之上然后加上相应的里程费用。设单位里程一公里价格2元。当在运作过程中是由于红灯或者客人需要的有效等待时,主题模块30S如果没有检测到脉冲信号,则计价显示工作,并且每隔30S计价器就增加一元。增强功能可以设计白天黑夜转换、语音提示功能。

由基本要求,初步设想可以实现基本功能。

第3页

电子系微机原理与接口技术课程设计报告

出租车上的具有多位显示的计价器(基于单片机)

二、 系统整体论证:

根据星研实验环境下,包括怎么样去实现开题要求,在现有的实验室条件下能否演示,或者能否演示其中的主体功能。只能根据已学知识利用16位CPU及其相应的外围可编程控制芯片实现。

三、 硬件方案选择部分:

1.脉冲产生电路包括光电式霍尔式也可以用一个固定的脉冲

2.计数器采用8253计数结束中断方式

3.中断控制器采用8259A

4.显示控制部分用两种选择采用8255控制显示或者8279控制显示

5.显示器件 数码管 LCD

最后经过相关的论证可以绘制出所要的硬件原图:

第4页

微机原理课程设计
微机原理课程设计

电子系微机原理与接口技术课程设计报告

说明:

以8086CPU为核心,其通过相应的地址线与译码器相连实现对外围芯片的片选(在星研ESPCI硬件环境下片选可以直接实现),通过低地址数据线完成和外围芯片的数据传输(对外围芯片的初始化编程、程序监控),计数器采用计数中断结束方式计数,根据现实条件设定一个初始值N,当有N个脉冲通过CLK1时,8253OUT1向8259输出一个脉冲,此时8259向CPU发送一个中断请求,CPU处理中断子程序,对8255进行控制,并通过8255控制显示。

四、 软件编写部分:

1.系统流程图

微机原理课程设计

第5页

电子系微机原理与接口技术课程设计报告 第6页

微机原理课程设计

电子系微机原理与接口技术课程设计报告

微机原理课程设计

说明:

本程序应用8255作为总控制,其中PA口接按键(启动控制),PB接8位数码管的显示部分,而PC口接位选,其中PC口高4位显示价钱,低4位显示里程。采用8253技术,其中计数器T0,T1与1MHZ产生1HZ信号,接IR0计数;08H中断始终计数TIME(时间),而09H为信号接收时中断,将里程(COUNT)+1,并将时间(TIME)清0;若无信号输入,09H将不产生中断,此时即为等待状态,08H中断TIME++,当达到30s时,价钱增加2元,并将TIME清0循环。

2.源代码及其注释

.MODEL TINY

PCIBAR3 EQU 1CH ; 8位I/O空间基地址(它就是实验仪的基地址,也为DMA &

32 BIT RAM板卡上的8237提供基地址)

Vendor_ID EQU 10EBH ;厂商ID号

Device_ID EQU 8376 ;设备ID号

DLYC2 EQU 200 ;显示时间系数

第7页

微机原理课程设计

电子系微机原理与接口技术课程设计报告

.STACK 100

.DATA

COM_ADDR DW 00B3H

T0_ADDR DW 00B0H

T1_ADDR DW 00B1H

COM_ADD DW 00F3H ;控制口偏移量

PA_ADD DW 00F0H ;PA口偏移量

PB_ADD DW 00F1H ;PB口偏移量

PC_ADD DW 00F2H ;PC口偏移量

IO8259_0 EQU 0E00H ;待定***********************

IO8259_1 EQU 0E01H ;*****************************

OLDOA1 DD ? ;存放原08H中断地址

OLDOA2 DD ? ; 存放原09H中断地址

COUNT DW 00H ;里程计数

TIME DW 00H ;时间计数

DDBB1 DW 4 DUP (0) ;存放里程计数值

DDBB2 DW 4 DUP(0) ;存放价钱计数值

IO_Bit8_BaseAddress DW ?

msg0 DB ‘BIOS不支持访问PCI $’

msg1 DB ‘找不到Star PCI9052板卡 $’

msg2 DB ‘读8位I/O空间基地址时出错$’

TB DB 40H,79H,24H,30H,19H

DB 12H,02H,78H,00H,18H

.CODE

START: MOV AX,@DATA

MOV DS,AX

NOP

CALL InitPCI

CALL ModifyAddress ;根据PCI提供的基地址,将偏移地址转化为实地址 CLI ;关中断

CALL I8255A ;8255A初始化

CALL RD08 ;读出08H中断向量

CALL WRITE08 ;写入08H中断向量

CALL RD09 ;读出09H中断向量

CALL WRITE09 ;写入09H中断向量

CALL I8259 ;开放用户中断

STI ;开中断

;***************************************************** MOV DX,PA_ADD ;按键扫描

第8页

电子系微机原理与接口技术课程设计报告

IN AL,DX

AND AL,0FFH

CMP AL,0FFH

JNZ BB

COUNT DW 00H ;清零

TIME DW 00H

BB:

MOV DX,COM_ADDR

MOV AL,34H

OUT DX,AL ;计数器T0设置在模式2状态,二进制计数 MOV DX,T0_ADDR

MOV AL,00H

OUT DX,AL

MOV AL,10H

OUT DX,AL ;CLK0/1000

MOV DX,COM_ADDR

MOV AL,76H

OUT DX,AL ;计数器T1为模式3状态,输出方波,二进制计数 MOV DX,T1_ADDR

MOV AL,00H

OUT DX,AL

MOV AL,10H

OUT DX,AL ;CLK1/1000

;OUT1输出频率为1S的方波

MOV DX,COM_ADDR

MOV AL,10110000B

OUT DX,AL

MOV DX,T2_ADDR

MOV AL,00H

OUT DX,AL

MOV DX,T2_ADDR

MOV AL,10H

OUT DX,AL

CALL BCDTO1;将记录数放在存储器BBDD1中

CALL DISP1; 调用动态显示,PC低四位显示里程

MOV AX, COUNT

MOV BX, 02H

MUL AX, BX

CALL B2TOBCD;将二进制转换为BCD码

MOV BX,0006H ;赋予起步价6元

CMP AX,BX ; 若计数值小于6元,交换AX,BX

JA TT

XCHG AX,BX

第9页

电子系微机原理与接口技术课程设计报告

TT: CALL BCDTO 2 ;将记录数分别放入存储器BBDD2中

CALL DISP2 ;调用动态显示,PC高四位显示价钱

CALL RESTER08H ;恢复08H,09H型中断

CALL RESTER09H

;**************************************************************

DL20ms PROC NEAR

PUSH AX

PUSH DX

MOV DX,20 ;延时20ms

MOV AH,0FFH ;星研公司提供的软中断

INT 21H

POP DX

POP AX

RET

DL20ms ENDP

;*************************************************************** I8255A PROC

MOV DX,COM_ADD

MOV AL,10010000B ;PA输入,PB PC输出

OUT DX,AL

MOV DX, PC_ADD

MOV AL,0FFH ;关数码管

OUT DX,AL

RET

I8255A ENDP

;****************************************************************

RD08 PROC

MOV AH,35H

MOV AL,0AH

INT 21H

MOV WORD PTR OLD0A1,BX

MOV WORD PTR OLD0A1+2,ES

RET

RD08 ENDP

;********************************************************************

WRITE08 PROC

PUSH DS

MOV AX,@CODE

MOV DS,AX

MOV DX,OFFSET SERVICE1

MOV AX,2508H

INT 21H

POP DS

第10页

电子系微机原理与接口技术课程设计报告

RET

WRITE08 ENDP

;****************************************************************

RD09 PROC

MOV AH,35H

MOV AL,09H

INT 21H

MOV WORD PTR OLD0A2,BX

MOV WORD PTR OLD0A2+2,ES

RET

RD09 ENDP

;********************************************************************

WRITE09 PROC

PUSH DS

MOV AX,@CODE

MOV DS,AX

MOV DX,OFFSET SERVICE2

MOV AX,2509H

INT 21H

POP DS

RET

WRITE09 ENDP

;****************************************************************

;****************************************************************

I8259 PROC

MOV AL,12H ;单级使用,边沿触发,不需要设计ICW4

OUT 0E00H ,AL;

MOV AL,0A0H;普通EOI循环方式,IR0最低级

OUT 0E00H,AL;

RET

I8259 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元

第11页

电子系微机原理与接口技术课程设计报告

AA1 MOV AL,20H

OUT 0E00H,AL ;中断结束中断地址

POP DS

POP AX

IRET

SERVICE1 ENDP

;*************************************************************** SERVICE 2 PROC

PUSH AX

PUSH DS

MOV 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 DS

POP AX

IRET

SERVICE2 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

RET

RESTER08H ENDP

;***************************************************************************

RESTER09H PROC

PUSH DS

MOV DX,WORD PTR OLDOA2

MOV DS,WORD PTR OLDOA2+2

MOV AH,25H

第12页

电子系微机原理与接口技术课程设计报告

MOV AL,09H

INT 21H

POP DS

RET

RESTER09H ENDP

;**************************************************************** B2TOBCD PROC NEAR

CMP AX,9999 ;AX>9999,则CF置1

JBE TRAN

STC

JMP EXIT

TRAN: PUSH CX

PUSH DX

SUB DX,DX ;DX清0

MOV CX,1000 ;计算千位数

DIV CX

XCHG AX,DX ;商在DX中,余数在AX中 MOV CL,4

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

MOV BH,00H

MOV BL,AL

MOV CL,04H

ROR BX,CL

第13页

电子系微机原理与接口技术课程设计报告

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 ;将记录数百位放在其中

RET

BCDTO ENDP

;************************************************************** DISP1 PROC NEAR

MOV SI,OFFSET DDBB1

MOV AL,[SI] ;显示个位

MOV BX,OFFSET TB

XLAT TB

MOV DX,PB_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 AL, 0FFH

OUT DX,AL

INC SI

MOV AL,[SI] ;显示百位

MOV BX,OFFSET TB

XLAT TB

第14页

电子系微机原理与接口技术课程设计报告

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_ADD ;用PC口做位选

MOV AL,0F7H ;用PC低位显示

OUT DX,AL

MOV CX,DLYC2

LP3: LOOP LP3

MOV AL,0FFH

OUT DX,AL

RET

DISP1 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 LP0

MOV AL, 0FFH

OUT DX,AL

INC SI

MOV AL,[SI] ;显示百位

MOV BX,OFFSET TB

XLAT TB

第15页

电子系微机原理与接口技术课程设计报告

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

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,7FH ;用PC口高位显示

OUT DX,AL

MOV CX,DLYC2

LP3: LOOP LP3

MOV AL,0FFH

OUT DX,AL

RET

DISP2 ENDP

;*************************************************** START1: CALL IfExit

JZ START1

JMP Exit

IfExit PROC NEAR

PUSH AX

第16页

电子系微机原理与接口技术课程设计报告

PUSH DX

MOV AH,06H

MOV DL,0FFH

INT 21H

POP DX

POP AX

RET

IfExit ENDP

InitPCI PROC NEAR

MOV AH,00H

MOV AL,03H

INT 10H ;清屏

MOV AH,0B1H

MOV AL,01H

INT 1AH

CMP AH,0

JZ InitPCI2

LEA DX,msg0

InitPCI1: MOV AH,09H

INT 21H

JMP Exit

InitPCI2: MOV AH,0B1H

MOV AL,02H

MOV CX,Device_ID

MOV DX,Vendor_ID

MOV SI,0

INT 1AH

JNC InitPCI3 ;是否存在Star PCI9052板卡 LEA DX,msg1

JMP InitPCI1

InitPCI3: MOV DI,PCIBAR3

MOV AH,0B1H

MOV AL,09H

INT 1AH ;读取该卡PCI9052基地址 JNC InitPCI4

LEA DX,msg2

JMP InitPCI1

InitPCI4: AND CX,0FFFCH

MOV IO_Bit8_BaseAddress,CX

RET

InitPCI ENDP

ModifyAddress PROC NEAR

第17页

电子系微机原理与接口技术课程设计报告

ADD COM_ADDR,CX ADD T0_ADDR,CX ADD T1_ADDR,CX

ADD COM_ADD,CX ADD PA_ADD,CX ADD PB_ADD,CX ADD PC_ADD,CX RET ModifyAddress ENDP Exit: MOV AH,4CH INT 21H END START

连线说明:

微机原理课程设计

3.运行情况

在星研上进行编译,0 wrong 0 waring,程序正确。

五、 整体测试情况:

在理想的情况下,功能可以实现。当有源脉冲的时候,送至具有计数和显示功能的主体模块。其中显示部分有三个部分:里程显示、价格显示、以及等时显示。价格从起步价(可以设定为5元)开始计,而且在不大于起步里程(设定为5公里)时,价格一直是起步价5元,若超过起步里程,计价显示在原有起步价基础之上然后加上单位里程一公里价格2元。

第18页

电子系微机原理与接口技术课程设计报告

当在运作过程中需要等待时,主题模块30S如果没有检测到脉冲信号,则计价显示工作,并且每隔30S计价器就增加一元。

结论和感想

在紧锣密鼓的实验设计中,两个星期的时间转眼就过去了,在这两个星期里,我们把实验室当成我们的自己的家,每天都按时去那里进行着课程设计,有时因为设计进程有了新点子而高兴不已,有时因为程序出错而困惑着急,但是最终还是在王老师和张老师的指导下顺利的完成了设计,感谢老师对我们的悉心指导,我们铭记在心。

两周前,刚刚学完微机原理的我们,对于许多知识还只是停留在较浅的理解,许多问题还没有弄懂。两周里,我们充分感受到了课程设计的意义和团体工作的效率,我们对于8251、8253、8255、8259等芯片的功能和使用有了新的了解,对于8086CPU以及汇编程序也有了进一步的掌握,更学会了团队合作,学会了自学。

这次课程设计我主要是负责统筹工作,在xx同学设计硬件时出谋划策,并负责制图。xxx的软件部分我负责了资料的收集程序的整理,最后负责了报告的书写和整理排版。我们收获颇丰,期待下一次的课程设计,期待下一次的合作。

第19页

电子系微机原理与接口技术课程设计报告

谢辞

感谢审阅本报告的老师的指导并提出意见,再次致谢!

参考文献

周荷琴版《微机原理与接口技术》 王敬生主编的《微机原理与接口技术实验指导书》 王萍主编的《微机原理应用实践》 李恩林 陈斌生主编的《微机接口技术300例》 马群生 温冬婵等编著的《微计算机技术》

第20页 中国科技大学出版社 合肥学院电子信息与电 气工程系 机械工业出版社 机械工业出版社 清华大学出版社

类似文章