跑马灯微机课程设计

2024-05-01

跑马灯微机课程设计(精选6篇)

篇1:跑马灯微机课程设计

微机原理课程设计走马灯

运用8086最小模式和8255等芯片设计出一个跑马灯电路,要求至少有5中花式,在ISIS 7 Professional软件中运行。

设计电路图如图所示:

源代码

DATA SEGMENT DATA ENDS CODE SEGMENT

ASSUME CS:CODE ,DS:DATA

START :MOV AX,DATA

MOV DS,AX

MOV AL,10010000B

OUT 96H,AL

A0:

IN AL,90H

NOT AL

MOV BL,AL

OUT 92H,AL

CMP AL,1

JNZ A3

A2:

MOV DL,AL

;第一个开关实现从上至下的流水

OUT 92H,AL

IN AL,90H

NOT AL

CMP AL,BL

JNZ A0

MOV CX,50000

A1:

LOOP A1

MOV AL,DL

ROL AL,1

JMP A2

A3:

CMP AL,2

JNZ A6

MOV AL,80H

A5:

MOV DL,AL

OUT 92H,AL

MOV CX,50000

A4:

LOOP A4

IN AL,90H

NOT AL

CMP AL,BL

JNZ A0

;实现第二个开关从下至上的流水

MOV AL,DL

ROR AL,1

JMP A5

A6:

CMP AL,4

;第三个开关实现相隔的两个灯自上而下流水

JNZ A9

MOV AL, 05H

A8:

MOV DL,AL

OUT 92H,AL

MOV CX,20000

A7:

LOOP A7

IN AL,90H

NOT AL

CMP AL,BL

JNZ A0

MOV AL,DL

ROL AL,1

JMP A8

A9:

CMP AL,8

;第四个开关实现相隔的两个灯从下而上流水

JNZ A12

MOV AL,0A0H

A11: MOV DL,AL

OUT 92H,AL

MOV CX,20000

A10: LOOP A10

IN AL,90H

NOT AL

CMP AL,BL

JNZ A0

MOV AL,DL

ROR AL,1

JMP A11

A12:

CMP AL,10H

JNZ A17 A16:

MOV AL,18H;第五个开关实现从中间向两边流水

A14:

MOV DL,AL

OUT 92H,AL

MOV CX,20000 A13:

LOOP A13

IN AL,90H

NOT AL

CMP AL,BL

JNZ A0

MOV AL,DL

CMP AL,81H

JZ A16

AND AL,0F0H

MOV CX,0

MOV CH,AL

ROL CH,1

MOV AL,DL

AND AL,0FH

MOV CL,AL

ROR CL,1

ADD CH,CL

MOV AL,CH

JMP A14 A17:

CMP AL,20H;第六个开关实现从两边向中间流水

JNZ A0 A19:

MOV AL,81H A20:

MOV DL,AL

OUT 92H,AL

MOV CX,20000 A18:

LOOP A18

IN AL,90H

NOT AL

CMP AL,BL

JNZ A0

MOV AL,DL

CMP AL,18H

JZ A19

AND AL,0F0H

MOV CX,0

MOV CH,AL

ROR CH,1

MOV AL,DL

AND AL,0FH

MOV CL,AL

ROL CL,1

ADD CH,CL

MOV AL,CH

JMP A20

RET

CODE ENDS

END START 运行后程序如图所示:

篇2:跑马灯微机课程设计

num1dw 0

data1db 0FEh,0FDh,0FBh,0F7h,0EFh,0DFh,0BFh,7Fh data2db 7Fh,0BFh,0DFh,0EFh,0F7h,0FBh,0FDh,0FEh data3db 7Eh,0BDh,0DBh,0E7h,0E7h,0DBh,0BDh,7Eh

data4db 0fch,0f9h,0f3h,0e7h,0e7h,0cfh,09fh,03fh data5db 03fh,09fh,0cfh,0e7h,0e7h,0f3h,0f9h,0fch

dseg ends

code segment assumecs:code,ds:dseg start:

movax,dseg movds,ax mov dx,406h mov al,36h outdx,al mov ax,20000 mov dx,400h outdx,al moval,ah mov dx,400h out dx,al;初始化8253 mov dx,0206h

;取8255A的控制端口的地址

mov al,8bh

;初始化8255A的A口为输出模式,B口为输入模式,c输入 outdx,al mov dx,0200h

;取8255的端口A的地址 mov al,0FFh

;使8255的PA0-PA7全为1 outdx,al mov dx,0202h

;取8255的端口B的地址 in al,dx

;检测B口输入信号 mov dx,0200h

;取8255的端口A的地址 mov al,0FFh

;使8255的PA0-PA7全为1 out dx,al

;使所有的灯LED全灭

ledflashproc

;检测开关闭合,以便确定哪种闪烁方式

mov dx,0202h

;取8255A的端口B的地址

in al,dx

;检测B口输入信号 choice1:

incnum

;改变数字变量的值 cmp num,09h je exit

call delay jmpledflash exit:

mov num,0 jmpledflash ret ledflashendp

delayproc near dl4: mov dx,0204h inal,dx and al,01h cmp al,1

jz dl4

ret

delay endp

篇3:跑马灯微机课程设计

1课程设计思路

研究性课程是一种校本课程,它是学生研究性学习的基本内容。在汇编语言与微机原理课程教学中,通过在常规课程内容教学过程中渗透研究性学习的内容即研究性课程,并在教学实践中使用Proteus和Keil工具实现微机系统的软、硬件设计, 在此基础上,开展课外专题研究性教学。从而实现在培养学生的一般性能力的基础上,加强学生的研究性素质、创新精神、意志品质和性格的培养,提高学生探索问题、解决问题能力[1,2]。

2教学设计的关键点

构建研究性课程的关键点是:

1)基于物联网工程专业的课程目标和培养研究性素质目标,合理选择规划课程的知识点,构建研究性学习的内容( 即研究性课程) 与非研究性学习的内容( 即常规的课程知识),制定适应普通本科应用型人才培养要求的知识模块。采用互相包容和渗透的教学方法[3]。

2)构建研究性学习的内容( 即研究性课程) 与非研究性学习的内容( 即常规的课程知识)相结合的教学模式。另外,教学中综合运用类比法、动画演示方法、比喻教学法、讨论教学法,对课程知识点内容进行整理,依据不同知识点的特点设计相应的教学设计。并将课堂教学、自主学习有机地结合起来,设计丰富的教学手段。

3)基于虚拟仿真实验系统Emu8086的汇编语言教学设计、 基于proteus的微机原理教学设计。制定合适的基础实验和应用开发实验项目,设计探索性的课外拓展实践项目。

3教学内容与教学方法

《汇编语言与微机原理》课程是物联网工程专业的专业课程之一,课程内容比较繁杂、抽象,是一门基础性、理论性非常强的课程,也是一门实践性很强的综合性课程。

课程从微机技术的特点和知识建构的基本规律出发,以培养学生的应用开发能力和创新素质为目标,以“学生为主体,教师为主导”为指导思想,通过构建研究性课程,基于课程知识体系和学生兴趣合理选择研究性教学内容,不断改进教学方法、注重理论联系实际,改善实践教学条件和丰富实践教学内容,加强实践能力的培养,激发学生的学习兴趣等改革措施,以期提高课程教学质量和学生的学习效果[4]。

3.1常规教学内容和研究性知识内容

《汇编语言与微机原理》课程原有课程体系下的基本内容主要分为:汇编语言和微机原理两部分:

1)汇编语言部分包括:微机的基本软硬件组成、8086微处理器、8086操作数的寻址方式、汇编语言及程序设计基础、8086指令系统、汇编语言程序结构及设计。

2)微机原理部分包括:存储系统、输入输系统、中断系统、 微机总线和接口技术。

通过构建研究性课程,我们将课程知识内容划分为两部分:研究性学习的内容与非研究性学习的内容( 即常规的课程知识)。其中:

1)研究性学习的内容包括:8086指令系统、汇编语言程序结构及设计、输入输系统、中断系统和接口技术。

2)常规的课程知识包括:微机的基本软硬件组成、8086微处理器、8086操作数的寻址方式、8086操作数的寻址方式、汇编语言及程序设计基础、存储系统、微机总线。

另外,基于物联网工程专业应用型人才培养目标,对课程理论性较强的内容适当缩减。基于课程知识内容的选择和划分,为实现实践能力的培养目标,针对研究性学习内容,在教学中以应用实践案例、实践任务开发为任务驱动,结合课程实验和课外实践环节,强化学生的实际软硬件应用编程能力。

在各个研究性学习内容的实施过程中,尽可能的丰富基于知识点的实际案例的仿真演示,让学生通过直观的感性认识学习理解知识点。

3.2教学方法

首先,教学中将研究性学习的内容( 即研究性课程) 与非研究性学习的内容( 即常规的课程知识)相结合。在课堂教学中引入研究性问题,使得学生在学习基本的常规课程知识基础上,积极主动的深入课程内容,促进学生自主研究问题、探索知识的方法和能力的提高。

其次,针对本课程知识的抽象性和繁杂性,为了降低学生理解知识的难度,需要对课程的难点重点知识模块进行不同的教学方法,比如采用比拟法讲解、讨论法和实例演示等进行深入讲解,从而化解课程内容的枯燥性、复杂性和抽象性。

第三,在课堂教学过程中引入了仿真软件进行教学。比如采用debug、emu8086、Proteus和Keil等软件和仿真工具对课程的原理知识点讲解、演示,对系统软硬件设计进行辅助教学,在教学中坚持理论联系实际,实现“教”、“学”、“做”的有机结合。

第四,引入专题研究性教学,积极开展课外自主学习,设置具有创新性的实践项目,充分发挥学生的主观能动性,学生独立查阅资料、制订方案、分组实施,最后总结整理、交流评价。

3.3教学案例设计Proteus K

采用Proteus和Keil软件结合的硬件仿真平台进行微机原理的教学,设计相关知识模块的案例。对于教学知识点,通过案例教学法,引入知识点相关的项目案例、借助仿真实验软件演示微机硬件设计和汇编语言程序的运行结果,调动学生的学习兴趣,提高微机原理的软硬件知识的理解和掌握[5,6]。在研究性教学中引入的仿真案例如下:

1)微机原理案例项目:开关控制led流水灯、NMI中断实验、 数码管实验、点阵屏实验、8255A并行接口实验。

2)汇编语言案例项目:选择分支、字符匹配、统计负数个数、查找A的地址、密码明文密文转换实验。

3.4专题研究性案例设计

针对应用性人才培养目标和教学改革的设计情况,在理论课时压缩的情况下,通过虚拟仿真实验开发平台开展课外专题案例实验提高学生微机应用实践能力。为学生设计合适的、具有挑战性的创新实验项目,充分调动学生的课外学习积极性, 并培养学生的自主学习能力和团队协作开发能力。实验项目如:8255A交通灯实验、行列式键盘实验、8254A定时器实验、 8259A中断实验、图形字符块输出实验、小车移动实验。

4教学反思

本课程通过构建研究性课程,应用案例法、比喻教学法等教学方法,并在教学实践中引入微机仿真实验平台,加强理论和实践有效互动,提升学生课程学习积极性。通过基于仿真开发工具的案例教学和课内外实践,更加直观深刻理解微机硬件原理和应用软件开发过程,提升微机应用系统实践动手能力。 教学中还需要继续做好研究性课程的教学设计。在仿真案例教学和实践中,还需要设计更实用的案例,并加强学生课外专题实践的管理和过程考评,切实提高学生的主观能动性和工程实践应用能力。

参考文献

[1]张红民.微机原理及应用教材与教学内容改革思考[J].理工高教研究,2009,28(5):105-107.

[2]王志军,杨延军,王道宪.微机原理实验课程内容的层次化设计[J].实验室研究与探索2012,31(1):105-107.

[3]刘民岷.微机原理及接口技术课程教学及实验改革实践[J].实验科学与技术,2013,11(1):64-67.

[4]雷艳静,古辉,陈琦,陈志杨.微机接口技术课程教学改革与实践[J].计算机教育,2013(10):27-31.

[5]李珍香,李全福.基于CDIO模式的微机原理与接口技术课程实验教学改革与实践[J].实验室科学,2013,16(1):65-68.

[6]陈越,顾晖,梁惺彦.Proteus虚拟仿真在微机原理教学中的应用[J].电子技术应用,2012,38(1):106-108.

篇4:微机原理课程设计的改革与实践

关键词:微机原理;课程设计;教学方法;考核体系

课程设计是一种课程形式,也是一种教学方法[1],其基本教学目的是加深学生对课程基础理论和基本知识的理解与掌握,培养学生综合运用基础理论和技能分析与解决实际问题的实践能力以及勇于探索的创新精神。微型计算机原理与接口技术是计算机硬件基础的重要组成部分,是高等学校很多专业都开设的一门基础性课程,也是一门应用性、实践性很强的课程。由于其开设量大,受益面广,国内高校都加强了该课程的建设,深化课程改革。一方面,缩短了课堂授课学时,加大实验学时,特别是加大课程设计学时;另一方面,加大课程设计的改革力度,不断更新设计内容,改革教学方法和考核方法,突出学生的自主性、主动性,激发学生的创新意识,注重学生设计能力的培养和工程能力的训练[2]。

天津大学电气与自动化工程学院开设的微机原理课程设计,基于多个围绕微机原理课程设计的天津大学教改课题的实践成果,结合学科前沿和工程实际,创新微机原理课程设计平台,不断优化和更新设计内容。结合学生特点和兴趣,注重引导、激发学生的创造激情和对知识的渴望,创新教学方法和手段。并且将创新性与工程规范纳入考核体系,改革考核和成绩评定方法,引导学生从注重结果转变到注重过程,从注重成绩转变到注重成效。

一、创新微机原理课程设计平台与内容

1.微机接口实验系统综合设计项目开发

基于“通用微机接口实验系统”,利用实验系统的外扩展接口,开发利用各种外扩展板,构建多种新的微机接口综合设计系统。主要包括以下几个方面:

(1)开发了GPS(全球定位系统)导航系统扩展实验板[3],并与“通用微机接口实验系统”系统连接,以及与液晶显示系统或LED键盘控制实验板互联,构成全新的综合设计实验系统。设计并开设基于导航系统实验扩展板的综合设计性实验,与学科前沿相结合,增加了设计深度与广度,丰富了实验教学内容。

(2)实现了“通用微机接口实验系统”与LCD(液晶显示系统)连接[4]。新的实验系统可完成主要内容包括各种字符与图形的编程与显示、薄膜按键开关实验等。实验系统还可与电机等执行元件相连,通过编程在液晶显示器上显示输入输出及控制和执行信息等综合设计性实验内容。

(3)实现了“通用微机接口实验系统”与LED(发光二极管)键盘控制实验板的连接[5]。该实验系统通过8279芯片等的应用完成了综合设计性实验题目的开发,主要包括总线控制以及对控制对象进行显示、管理和操作,使课程设计内容更符合电气与自动化专业对控制技术的要求。

(4)学生自主进行创新设计。实验室提供红外收发、温湿度或压力传感器等实验扩展板及相关技术资料,在课程设计中学生利用实验室的各种设备与“通用微机接口实验系统”相结合,自定课题进行创新设计与实践。

2.微机接口实验系统综合设计性实验应用

拓展设计内容,更新设计项目,做好设计实验之间的科学衔接,使学生在课堂上更多地接触前沿技术,为他们未来接触工程实际奠定良好的基础。注意将本课程所学知识与“电子技术”、“自动控制原理”、“检测技术”和“机器人学”等相关课程内容融会贯通,提高学生综合运用和工程应用能力。

(1)课程设计内容的设立。根据微机原理课程设计的要求,不断进行实验系统选题的设计与开发,精心设计课程设计内容,注重先进性和开放性,并与学科的前沿技术相结合,在课程设计的综合性、设计性环节给予学生更多的选择。设计课题包括基础性选题和扩展性选题两部分。

基础性选题主要包括:自定义字符显示编程,汉字字符显示编程,图形显示编程,特效显示编程,总线控制LED显示实验,微机接口、键盘、LED综合实验,GPS通讯实验,GPS编程实验,GPS手持机实验,各种外扩展板设计实验。这些设计内容与微机接口技术紧密相关,并具有一定的深度与广度,同学们通过硬件连接、软件设计,软硬件调试完成集采集、显示、存储等功能于一体的设计内容。

同时,我们还给出了多个综合设计性扩展选题。此类选题没有固定的要求,只是给出一些提示,学生可以根据自己的设想进行硬件选择、软件设计,达到自己的设计目标。极大地发挥了学生的主观能动性和创新性。

(2)课程设计教程的编写。微机原理课程设计综合设计性选题的主要知识点依托微机原理接口技术并结合与之相关的学科前沿。为此,根据课程设计要求,编写了相关的设计教程,提供参考文献与网站,使学生在实验前对相关的扩展知识有个初步了解。根据历届学生的具体情况,教师不断总结实践教学经验,逐步完善指导书的编写,使之更适应于学生的实践与创新。在指导书编写中按知识点模块化编写,设计实验内容从易到难编排,每个设计实验都给出了预习要求和达到目标。对于创新性设计实验我们给出一部分选题,同时鼓励同学们结合系统,将扩展板进行多种组合,自己设计课题,进行实践创新。

二、探索新的实践教学方法和手段

1.加强引导与鼓励,激发学生的创造激情和对知识的渴望

在微机原理课程设计教学实践中,首先了解不同学生的特点和学习兴趣,在此基础上有针对性地指导学生选题及团队组合。在设计过程中,鼓励学生独立思考,通过网络、图书馆、资料室等各种渠道进行信息检索和资料查询。教师在指导实验时,从实践应用的角度出发去引导学生的设计方法和技术路线,注重培养学生发现问题、思考问题及解决问题的方法和思路以及创新意识。

教师在课堂上注重学生课程设计过程,鼓励学生以灵活多样的方式和不同的角度完成自己的选题,激发学生的创造激情和对知识的渴望,促使学生从“要我学、要我做”转变为“我要学、我要做”。

2.改革课程设计考核和成绩评定方法

在课程设计的考核中将创新性与工程规范纳入考核体系。指导教师从出勤次数、软硬件设计、上机调试、预习(第一次实验时检查流程图、源程序)与总结报告、创新性等方面对学生进行综合考评。在课程设计的考核与评定过程中细化了预习、设计、创新、实验报告完成各个步骤的考核标准。课程设计过程中为每位同学建立考核表格,其中题目1是基础性选题,题目2是自选的综合设计性扩展选题。按照考核指标体系,在课程设计过程中同步给出各环节考核成绩,做到公平公正,激励学生更好地完成课程设计内容,更多地进行创新性设计。

三、教学效果

2006年以来,我们不断创新微机原理课程设计硬件平台,不断扩展和更新设计内容,边实践、边改革。目前已在电气与自动化工程学院自动化专业和电气自动化专业6届学生(平均每届学生12个班、380人)中进行了教学实践,取得了良好的教学成果。

微机原理课程设计教学过程中,学生付出了很大努力,他们要自学相关知识,查阅资料,进行实验设计、流程设计,搭建硬件平台;并通过软件设计、软硬件调试,完成整个设计,写出设计说明书和总结报告。大部分学生对扩展性选题具有极大兴趣,有学生选用导航扩展板实验系统,通过自学相关知识,实现了GPS地理信息的采集、显示、存储,取得了满意的效果;还有学生偏重理论研究,例如08级的同学在80X86平台上完成了FFT(快速傅里叶变换)的汇编实现,具有较强的理论价值,能在本科阶段做出这样的课程设计成果,得到了师生的广泛好评。

参考文献:

[1] 曾开富,王孙愚. “工程创新人才”培养模式的大胆探索[J]. 高等工程教育研究,2011(5):20-31.

[2] 刘艳莉,孙雨耕,葛宝臻等. 符合工程专业人才培养模式实验教学体系的构建[J]. 中国大学教学,2010(4):75-77.

[3] 金文,陈曦等. “微机原理与接口技术”综合设计性实验的研究与探索——GPS导航实验板的开发与应用[J]. 实验技术与管理,2011(10):151-152.

[4] 金文,陈曦,张惠群. 液晶显示模块用于“微机接口技术”实验的教学研究[J]. 实验研究与探索,2007(9):60-61.

[5] 陈曦,金文,张惠群. 微机接口实验板的开发与应用[J]. 电气电子教学学报,2007(4):117-120.

篇5:微机原理课程设计

间 学 院 专业班级 姓 名 学 号 合 作 者

指导教师

成 绩

2013 年 11 月

摘要

本文针对可燃气体检测模块MQ—K1,综合运用《微机原理》所学知识,选择合适的芯片,如微处理器8086、存储器、可编程并行接口芯片8255、A/D转换芯片ADC0809,LED显示芯片8279以及其它辅助芯片等,设计合理的硬件系统,实现可燃气体浓度的测量与检测结果的显示,设定阈值,超过阈值后报警,并对设计出的硬件系统运用汇编语言完成全部软件系统设计及调试。

关键词:可燃气体传感器、LED数码管显示、LCD液晶模块、语音报警

Abstract In this paper, combustible gas detection module MQ-K1, integrated use of “Computer Architecture” the knowledge, choosing the right chip, such as the 8086 microprocessor, memory, programmable parallel interface chip 8255, A / D conversion chip ADC0809, LED display chip 8279 as well as other auxiliary chips, designed hardware system, combustible gas concentration measurement and test results show that the set threshold, exceeds the threshold alarms, and design the hardware system using assembly language software system design and complete all debugging.Keywords: combustible gas sensor, LED digital display, LCD liquid crystal module, voice alarm

目录

摘要.........................................................................................................................................................1 Abstract............................................................................................................................................................1 1实验目的......................................................................................................................................................3 2实验内容......................................................................................................................................................3 3实验设备......................................................................................................................................................3 4实验原理......................................................................................................................................................3

4.1系统概述...........................................................................................................................................3 4.2硬件介绍...........................................................................................................................................4 4.3可燃气体传感器.............................................................................................................................6 4.4 LCD显示....................................................................................................错误!未定义书签。4.5语音录放模块.................................................................................................................................9 5设计思路....................................................................................................................................................10 5.1数码管显示....................................................................................................................................10 5.2 LCD显示.......................................................................................................................................10 5.3语音报警.........................................................................................................................................10 6实验测试步骤............................................................................................................................................11 7程序流程....................................................................................................................................................12 8实验程序....................................................................................................................................................15 8.1数码管显示....................................................................................................................................15 8.2 LCD显示..................................................................................................1错误!未定义书签。8.3数码管,LCD显示,语音报警最终程序.................................................................................19 9实验现象及说明........................................................................................................................................26 10实验结论..................................................................................................................................................28 11承担的主要任务......................................................................................................................................28 12结论及设计心得与体会.........................................................................................................................28

1、实验目的

掌握可燃气体传感器的工作原理和测量电路。通过采集气体的浓度,经过模拟量转换为数字量,即A/D转换,AD0809采样输出电压值并在数码管上显示,并改进程序,使在液晶屏上显示可燃气体传感器检测结果转换的电压值,并设定阈值,超过阈值后报警。对所设计的硬件系统运用汇编语言完成全部软件系统设计及调试。

2、实验内容

用打火机靠近可燃气体传感器并喷射少量气体,AD0809采样输出电压值并显示。并改进程序,使在液晶屏上显示可燃气体传感器检测结果转换的电压值。设定阈值,超过阈值后报警。对所设计的硬件系统运用汇编语言完成全部软件系统设计及调试。

3、实验设备

3.1 EL-MUT-III实验箱 3.2 8086CPU板

3.3 霍尔、气体传感器模块 3.4 交叉串口线 3.5 E-LAB-AUDIO-ISD1700

4、实验原理

4.1系统概述

1、微处理器:8086

2、时钟频率:6MHz

3、存储器

6264 系统RAM,地址范围 0~3FFFH,奇地址有效 6264 系统RAM,地址范围0~3FFFH,偶地址有效 27C64 系统ROM,地址范围 FFFFF~FC000H,奇地址有效 27C256 系统ROM,地址范围 FFFFF~FC000H,偶地址有效

4、系统资源分配

本系统采用可编程逻辑器件(CPLD)EPM7128 做地址的编译码工作,可通过芯片的JTAG 接口与PC机相连,对芯片进行编程。此单元也分两部分:一部分为系统CPLD,完成系统器件,如监控程序存储器、用户程序存储器、数据存储 器、系统显示控制器、系统串行通讯控制器等的地址译码功能,同时也由部分地址单元经译码后输出(插孔CS0—CS5)给用户使用,其地址固定,用户不可改变。另一部分为用户CPLD,它完全对用户开放,用户可在一定的地址范围内,进行编译码,输出为插孔LCS0—LCS7,注意,用户的地址不能与系统相冲突,否则将导致错误。1)地址分配

CS0 片选信号,地址04A0~04AF 偶地址有效 CS1 片选信号,地址04B0~04BF 偶地址有效 CS2 片选信号,地址04C0~04CF 偶地址有效 CS3 片选信号,地址04D0~04DF 偶地址有效 CS4 片选信号,地址04E0~04EF 偶地址有效 CS5 片选信号,地址04F0~04FF 偶地址有效 CS6 片选信号,地址0000~01FF 偶地址有效 CS7 片选信号,地址0200~03FF 偶地址有效 8250 片选地址:0480~048F,偶地址有效 8279 片选地址:0490~049F,偶地址有效 2)硬件实验说明

所有实验程序的起始地址为01100H,CS=0100H,IP=0100H,代码段、数据段、堆栈段在同一个64K的地址空间中。4.2硬件介绍

4.2.1整机介绍

EL-MUT-III 型微机教学实验系统由电源、系统板、CPU 板、可扩展的实验模板、微机串口通讯线、JTAG通讯线及通用连接线组成。

图1 系统板结构 4.2.3硬件资源

1.可编程并口接口芯片8255 一片。

2.串行接口两个:8250 芯片一个,系统与主机通讯用,用户不可用。单片机的串行口,可供用户使用。

3.键盘、LED 显示芯片8279 一片,其地址已被系统固定为CFE8H、CFE9H。硬件系统要求编码扫描显示。

4.六位LED 数码管显示。

5.ADC0809 A/D 转换芯片一片,其地址、通道1—8 输入对用户开放。6.DAC0832 D/A 转换芯片一片,其地址对用户开放,模拟输出可调 7.8 位简单输入接口74LS244 一个,8 位简单输出接口74LS273 一个,其地址对用户开放。

8.配有8 个逻辑电平开关,8 个发光二极管显示电路。9.配有一个可手动产生正、负脉冲的单脉冲发生器

10.配有一个可自动产生正、负脉冲的脉冲发生器,按基频6.0MHz 进行1 分频(CLK0)、二分频(CLK1)、四分频(CLK2)、八分频(CLK3)、十六分频(CLK4)输出方波。

11.配有一路0—5V 连续可调模拟量输出(AN0)。

12.配有可编程定时器8253 一个,其地址、三个定时器的门控输入、控制输出均对用户开放。

13.配有可编程中断控制器8259 一个,其中断IRQ 输入、控制输出均对用户开放。

14.2组总线扩展接口,最多可扩展2 块应用实验板。

15.配有两块可编程器件EPM7064,一块被系统占用。另一块供用户实验用。两块器件皆可通过JTAG接口在线编程。使用十分方便。

16.灵活的电源接口:配有PC 机电源插座,可与PC 电源直接接驳。另还配有外接开关电源,提供所需的+5V,±12V,其输入为220V 的交流电。4.3可燃气体传感器

MQ—K1可燃气体传感器主要用于检测空气中CO、CH4、H2等可燃气体的浓度,其原理为传感器的内部阻抗随可燃气体的浓度而变化。MQ—K1的测量范围为100—10000PPM(PPM为体积比例,表示百万分之一),工作环境的温度:-10℃~45℃,湿度≤95%。其引脚及电学参数如下: 可燃气体传感器的工作原理见模块说明,其测量电路如下图所示:

图2 可燃气体传感器测量电路 脚、5脚用于加热,1、3脚和4、6脚接测量电路,RL为负载电阻。

表1-可燃气体传感器标准工作条件

传感器在1000ppm的CH4中的阻抗用R0表示,在各种环境中的动态阻抗用Rs表示。在洁净的空气中Rs/ R0=5,在其它环境中如下表所示:

表2-在各种环境中的阻抗用R0与动态阻抗Rs 的关系

可燃气体传感器电路如下所示:

图3 可燃气体传感器电路

R2(SEN.)用于改变负载电阻的大小,R6(ZERO)用于零位调节,R12(ALARM)用于设置报警电压,VOUT为模拟输出,DOUT为数字输出。

使用前,应先对MQ—K1通电预热3—5分钟,以使输出稳定。在洁净的空气中,通过采样VOUT电压,求出R0;在有可燃气体的环境中,通过采样VOUT电压,求出Rs;用Rs/R0的比值确定空气中可燃气体的浓度。4.4 LCD显示

点阵式LCD显示电路是在系统板上外挂电正式液晶显示模块,模块的数据线、状态、控制线都通过插孔引出。可直接与系统相连。4.4.1 OCMJ2×8液晶模块介绍及使用说明

OCMJ中文模块系列液晶显示器内含 GB 2312 16*16点阵国标一级简体汉字和 ASCII8*8(半高)及8*16(全高)点阵英文字库,用户输入区位码或 ASCII 码即可实现文本显示。也可用作一般的点阵图形显示器之用。提供位点阵和字节点阵两种图形显示功能,用户可在指定的屏幕位置上以点为单位或以字节为单位

进行图形显示。完全兼容一般的点阵模块。OCMJ中文模块系列液晶显示器可以实现汉字、ASCII 码、点阵图形和变化曲线的同屏显示,并可通过字节点阵图形方式造字。本系列模块具有上/下/左/右移动当前显示屏幕及清除屏幕的命令。OCMJ 中文模块所有的设置初始化工作都是在上电时自动完成的,实现了“即插即用”。同时保留了一条专用的复位线供用户选择使用,可对工作中的模块进行软件或硬件强制复位。规划整齐的10个用户接口命令代码,非常容易记忆。标准用户硬件接口采用REQ/BUSY 握手协议,简单可靠。4.4.2硬件接口 接口协议为请求/应答(REQ/BUSY)握手方式。应答BUSY 高电平(BUSY =1)表示 OCMJ 忙于内部处理,不能接收用户命令;BUSY 低电平(BUSY =0)表示 OCMJ 空闲,等待接收用户命令。发送命令到 OCMJ 可在BUSY =0 后的任意时刻开始,先把用户命令的当前字节放到数据线上,接着发高电平REQ 信号(REQ =1)通知OCMJ请求处理当前数据线上的命令或数据。OCMJ模块在收到外部的REQ高电平信号后立即读取数据线上的命令或数据,同时将应答线BUSY变为高电平,表明模块已收到数据并正在忙于对此数据的内部处理,此时,用户对模块的写操作已经完成,用户可以撤消数据线上的信号并可作模块显示以外的其它工作,也可不断地查询应答线BUSY是否为低(BUSY =0?),如果BUSY =0,表明模块对用户的写操作已经执行完毕。可以再送下一个数据。如向模块发出一个完整的显示汉字的命令,包括坐标及汉字代码在内共需5个字节,模块在接收到最后一个字节后才开始执行整个命令的内部操作,因此,最后一个字节的应答BUSY 高电平(BUSY =1)持续时间较长,具体的时序图和时间参数说明查阅相关手册。

4.2.3用户命令

用户通过用户命令调用OCMJ系列液晶显示器的各种功能。命令分为操作码及操作数两部分,操作数为十六进制。共分为3类10条,分别是:

一)、字符显示命令:

1、显示国标汉字;

2、显示8X8 ASCII字符;

3、显示8X16ASCII字符;

二)、图形显示命令:

4、显示位点阵;

5、显示字节点阵;

三)、屏幕控制命令:

6、清屏;

7、上移;

8、下移;

9、左移;

10、右移;(1)显示国标汉字

命令格式: F0 XX YY QQ WW。该命令为5字节命令(最大执行时间为1.2毫秒,Ts2=1.2mS),其中 XX为以汉字为单位的屏幕行坐标值,取值范围00到07、02到09、00到09。YY为以汉字为单位的屏幕列坐标值,取值范围00到01、00到03、00到04。QQ WW为坐标位置上要显示的GB 2312 汉字区位码。

(2)显示8X8 ASCII字符

命令格式:F1 XX YY AS。该命令为4字节命令(最大执行时间为0.8毫秒,Ts2=0.8mS),其中 XX为以ASCII码为单位的屏幕行坐标值,取值范围00到0F、04到13、00到13。YY为以ASCII码为单位的屏幕列坐标值,取值范围00到1F、00到3F、00到4F。AS坐标位置上要显示的ASCII 字符码。(3)显示8X16 ASCII字符

命令格式:F9 XX YY AS。该命令为4字节命令(最大执行时间为1.0毫秒,Ts2=1.0mS),其中 XX为以ASCII码为单位的屏幕行坐标值,取值范围00到0F、04到13、00到13。YY为以ASCII码为单位的屏幕列坐标值,取值范围00到1F、00到3F、00到4F。AS坐标位置上要显示的ASCII 字符码。

(4)清屏

命令格式:F4。该命令为单字节命令(最大执行时间为11毫秒,Ts2=11mS),其功能为将屏幕清空。4.5语音录放模块

语音录放模块由单片语音录放芯片ISD2560 及其外围电路组成。4.5.1 SD2560 芯片介绍

ISD2560 是美国ISD 公司推出的ISD2500 系列语音芯片的一种。ISD2500 系列芯片按录放时间60 秒、75 秒、90 秒和120 秒分成ISD2560、2575、2590 和25120 四个品种。ISD2560 芯片具有抗断电、音质好,使用方便等优点,它使用单一的+5V 供电,录音部分有自动增益控制电路,录音的采样频率可达8KHz。ISD2560 片内有容量为480K 字节的E2PROM,所以录放时间长,可重复录制100000 次且可保持100 年不变。此外ISD2560 芯片支持分段录音和分段播放,有10 个地址输入端,寻址能力可达1024 位,最多能分600 段。芯片设有OVF(溢出)端,便于多个器件级联。4.5.2 模块电路原理图

本电路中ISD2560采用按钮控制操作方式,A9、A8、A6接VCC,A1—A5、A7均接GND,A0由CA0插孔引出,用于控制是否进入检索模式。ISD2560的音频输出端SP+、SP-经过音频功放LM386驱动喇叭。电位器R8(对应于模块上VOLUME电位器)用于调节喇叭的增益。4.5.3 模块的基本测试方法

1、模块上P/-R、PD、CA0插孔分别接至实验箱的K1、K2、K3,EOM接实验箱指示灯L1,CE接单脉冲P-。

2、将K1、K3拨至低电平,K2先高后低。按一下单脉冲P-,L1应熄灭。此时对这麦克风说一段话,然后再按P-,此时L1应被点亮,录音完成。

3、将K1 拨至高电平,K3 拨至低电平,K2 先高后低。按一下单脉冲P-,L1 应熄灭,此时可以听到刚才录的语音片断。播放完成后,L1 应被点亮。

图4 语音模块电路

5、设计思路

5.1数码管显示

通过可燃气体传感器,在有可燃气体的环境中,通过采样VOUT电压,将测试结果通过AD0809采样输出电压,A D转换,并通过8279显示电路使数码管显示相应的转换结果。5.2 LCD显示

通过可燃气体传感器,在有可燃气体的环境中,通过采样VOUT电压,将测试结果通过AD0809采样输出电压,A D转换,并通过LCD液晶屏显示相应的转换结果。5.3 语音报警

通过调节相应的滑阻设置阈值,当电路正常运行时,在可燃气体模块电路的Dout输出端就会有相应的开关量的输出。语音模块提前录好音,当可燃气体浓度超过阈值时,利用Dout输出量控制语音模块输出,即可实现语音报警。

6、实验测试步骤

6.1 数码管显示

1、实验连线:VOUT接A/D模块的ADIN0,CS0809选择CS3。

2、调节ZERO电位器,将VZERO调为0。将SEN.电位器调到最小,即VOUT输出最小。调节ALARM电位器,将VALARM调到2V。

3、运行实验程序,用打火机靠近可燃气体传感器并喷射少量气体,观察数码管显示的变化。6.2 LCD显示 1、8255 的PA0~PA7接A/D PORT单元的DB0~DB7;2、8255 的PC7接A/D PORT单元的BUSY;3、8255 的PC0接A/D PORT单元的REQ;4、8255CS接CS0;

5、运行实验程序,观察液晶的显示状态。6.3 语音报警

1、实验箱上CS244 接到片选CS2。

2、实验箱上CS273 接到片选CS1。

3、实验箱上244 的输入IN0—IN1 接到实验箱上拨码开关的输出k7 和k8。

4、实验箱上273 的输出O0—O1 到ISD1700 语音模块上的REC 和PLAY。

7、程序流程

7.1数码管显示

7.2 LCD显示

图5 数码管显示程序流程图

图6 LCD液晶屏显示程序流程图

7.3最终程序流程图

开始LCD初始化BUSY为0?Y数据输出“检测结果”REQ置位NNBUSY为1?YREQ复位N数据读完?Y开始AD转换延时读入转换数据读入开关量开关量取反输出至语音模块所读数据低八位赋给BX将BX中数据取高四位数码管显示将BX中数据取高四位LCD显示将BX中数据取低四位数码管显示将BX中数据取低四位LCD显示延时

8、实验程序 8.1数码管显示

CON8279 EQU

0492H

;赋值伪指令给8279控制口地址赋予一个名字

DAT8279 EQU

0490H

;赋值伪指令给8279数据口地址赋予一个名字 CS0809 EQU

04D0H ;赋值伪指令给AD0809通道0控制口地址赋予一个名字

ASSUME CS:CODE

;将CS设置为存放CODE的段地址 CODE SEGMENT

PUBLIC

;PUBLIC,组合类型,逻辑段有相同的段名,集中为一个逻辑段装入内存

ORG

100H

;利用ORG伪指令使程序的起始地址为01100H,CS=0100H,IP=0100H

START: JMP

START1

;JMP无条件转移指令 START1: MOV DX,CS0809

;将CS0809放入DX寄存器中

MOV AX,34H

;任意给一个控制字,启动AD转换

OUT

DX,AX

;AD0809开始转换

WAIT:

MOV CX,0010H

;延时,等待AD转换结束 WAIT1: NOP

NOP

LOOP WAIT1

;CX不为0时转移

MOV

DX,CS0809

IN

AX,DX

;读入AD转换结果到CS0809

AND

AX,0FFH

;保留AX寄存器数据的低八位,高八位清零

MOV

BX,AX

;将AX寄存器数据传送到BX寄存器

NOP

;空操作

DISP:

MOV

DI,OFFSET SEGCOD;取SEGCOD的偏移地址放入变址寄存器DI

MOV

AX,08H

;8279控制字,左端入口,16个字符显示

MOV

DX,CON8279

OUT

DX, AX

;输出8279控制字到CON8279

MOV

AX, 90H ;8279控制字,写显示RAM 0000B内容,地址自加1

MOV

DX, CON8279

OUT

DX, AX

;输出8279控制字到CON8279

MOV

PUSH

AND

MOV

SHR

ADD 据相加

MOV AL寄存器

MOV

OUT

NOP

NOP

MOV 器DI

POP

AND

ADD 数据相加

MOV 到AL寄存器

MOV

OUT DX, DAT8279 ;将DAT8279放入DX BX

;将BX寄存器的数据压入堆栈,保护现场 BX,0F0H

;取BX寄存器数据的高四位

CL,4

;CL寄存器存放移位次数 BX,CL

;逻辑右移4位

DI,BX

;将DI中SEGCOD的偏移地址值与BX中数 AL,CS:[DI]

;将段地址为CS,偏移地址为DI的数据送到 AH,0

;AX寄存器的高八位置零

DX,AX

;将AX寄存器的数据输出到DAT8279端口

DI,OFFSET SEGCOD;取SEGCOD的偏移地址放入变址寄存

BX

;出栈,恢复现场

BX,0FH

;取BX寄存器数据的低4位

DI,BX

;将DI中SEGCOD的偏移地址值与BX中

AL,CS:[DI]

;将段地址为CS,偏移地址为DI的数据送

AH,0

;将AH寄存器置零

DX,AX

;将AX寄存器的数据输出到DAT8279端口

DELAY: MOV

CX, 2A00H

;延时

DELAY1: NOP

NOP

LOOP

DELAY1

;循环2A00H次

JMP

START1

;返回重新采集和转换数据并显示

SEGCOD DB

3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H

;空指令

;七段共阴数码管显示编码,分别对应着0123456789ABCDEF CODE ENDS

;代码段结束 END

START

;源程序结束

8.2 LCD显示

;=;液晶显示

;CS0接CS8255,DB0-DB7接PA0-PA7,BUSY接PC7,REQ接PC0

;CS0片选信号,地址04A0-04AF,偶地址有效

ASSUME

CS:CODE

;将CS设置为存放CODE的段地址 CODE SEGMENT

PUBLIC

;PUBLIC,组合类型,逻辑段有相同的段名,集中成为一个逻辑段装入内存

ORG

100H

;ORG设置指令存储起始地址;= START: MOV DX, 04A6H

;将控制端口地址放入DX

MOV AX, 88H

;88H为工作方式选择控制字,A口方式0输出,PC7~PC4输入,B口方式0输出,PC3~PC0输出

OUT

DX, AX

MOV AX, 70H

OUT

DX, AX

;向控制端口发送工作方式选择控制字

;70H为C口按位置位/复位控制字,PC0复位 ;向控制端口发送C口按位置位/复位控制字

MOV AL, 0F4H

;LCD显示清屏

CALL COMD

;过程调用指令,调用过程COMD CALL DELAY

;过程调用指令,调用过程DELAY START1: MOV SI,OFFSET[TABLE] ;将TABLE的偏移地址送到SI寄存器

MOV CX, 4

;循环次数设定

WR1:

MOV DX, 04A4H

;WR1检查BUSY信号是否为零,将C数据端口地址放入DX

IN

AX, DX

;读入数据

AND

AX, 80H

;保留PC7的输出数据,即busy

JNZ

WR1

;ZF零标志位,ZF非零转移到WR1

MOV

AL, [SI]

;将地址在SI寄存器的数据送到AL

CALL

COMD

;调用过程COMD

INC

SI

;将TABLE的偏移地址缓冲区指针加1

LOOP

WR1

;CX寄存器的内容不为零,则循环WR1

CALL

DELAY

;调用过程DELAY OK:

JMP

START1

;无条件转移到START1;= DELAY: MOV

CX,1000H

;将1000H送入CX寄存器 DLYB: LOOP

DLYB

RET

;过程返回指令,回到原来调用过程的地方;= COMD: MOV

DX, 04A0H

;将A数据端口地址放入DX

OUT

DX, AL

;将相应数据输出

;将控制端口地址放入DX

MOV

DX, 04A6H

MOV

AX, 71H

;71H为C口按位置位/复位控制字,PC0置位

OUT

DX, AX

MON:

MOV

DX, 04A4H

;MON检查BUSY信号是否为零,将C数据端口地址放入DX

IN

AX, DX

;读入数据

;向控制端口发送C口按位置位/复位控制字

AND

AX, 80H

;保留PC7的输出数据,即busy

JZ

MON

;ZF零标志位,ZF非零转移到MON

MOV

DX, 04A6H

;将控制端口地址放入DX

MOV

AX, 70H

;70H为C口按位置位/复位控制字,PC0复位

OUT

DX ,AX

;向控制端口发送C口按位置位/复位控制字

RET

;过程返回指令,回到原来调用过程的地方;= TABLE: DB

0F9H,00D,00D,31H

;在此处输入要显示汉字的命令代码 CODE ENDS

;代码段结束 END

START

8.3 数码管,LCD显示,语音报警最终程序

CON8279 EQU

0492H

;赋值伪指令给8279控制口地址赋予一个名字 DAT8279 EQU

0490H

;赋值伪指令给8279数据口地址赋予一个名字 CS0809

EQU

04D0H

;赋值伪指令给AD0809通道0控制口地址赋予一个名字

ASSUME

CS:CODE

;将CS设置为存放CODE的段地址

CODE SEGMENT PUBLIC ;PUBLIC,组合类型,逻辑段有相同的段名,集中为一个逻辑段装入内存

ORG

100H ;利用ORG伪指令使程序的起始地址为01100H,CS=0100H,IP=0100H START: MOV DX, 04A6H

;将控制端口地址放入DX

MOV AX, 88H

;88H为工作方式选择控制字,A口方式0输

;源程序结束

出,PC7~PC4输入,B口方式0输出,PC3~PC0输出

OUT

DX, AX

;向控制端口发送工作方式选择控制字

MOV AX, 70H

;70H为C口按位置位/复位控制字,PC0复位

OUT

DX, AX

;向控制端口发送C口按位置位/复位控制字 MOV AL, 0F4H

;LCD显示清屏

CALL COMD

;过程调用指令,调用过程COMD

CALL DELAY

;过程调用指令,调用过程DELAY

MOV

CX, 25

;循环次数设定

MOV

SI,OFFSET JCJG ;将JCJG的偏移地址送到SI寄存器

JCJG1: MOV

DX, 04A4H

;JCJG1检查BUSY信号是否为零,将C数据端口地址放入DX IN

AX, DX

;读入数据

AND

AX, 80H

;保留PC7的输出数据,即busy信号

JNZ

JCJG1

MOV

AL, [SI]

CALL

COMD

INC

SI

LOOP

JCJG1

CALL

DELAY

JMP

START1

START1: MOV

DX, CS0809 MOV

AX, 34H

OUT

DX, AX

WAIT:

MOV

CX, 0010H

WAIT1: NOP

NOP

LOOP

WAIT1

MOV

DX, CS0809

IN

AX, DX

AND

AX, 0FFH

MOV

BX, AX

NOP

;ZF零标志位,ZF非零转移到JCJG1

;将地址在SI寄存器的数据送到AL ;调用过程COMD

;将JCJG的偏移地址缓冲区指针加1

;CX寄存器的内容不为零,则循环JCJG1 ;调用过程DELAY

;无条件转移到START1

;将CS0809放入DX寄存器中

;任意给一个控制字

;AD0809开始转换

;延时,等待AD转换结束

;CX不为0时转移

;读入AD转换结果到CS0809

保留AX寄存器数据的低八位,高八位清零

;将AX寄存器数据传送到BX寄存器

;空操作

; yy:

MOV

DX,04C0H

;74LS244地址

IN

AL,DX

;读输入开关量

NOT

AL

;将AL内容取反

MOV

DX,04B0H

;74LS273地址

OUT

DX,AL

;输出值语音模块

DISP:

MOV

DI, OFFSET SEGCOD;取SEGCOD的偏移地址放入变址寄存器DI

MOV

MOV

OUT

MOV

地址自加1

MOV

OUT

MOV

PUSH 场

AND

MOV

SHR

ADD

中数据相加

MOV

据送到AL寄存器

AX, 08H

;8279控制字,左端入口,16个字符显示 DX, CON8279

DX, AX

; 输出8279控制字到CON8279 AX, 90H

;8279控制字,写显示RAM 0000B内容,DX, CON8279

DX, AX

;输出8279控制字到CON8279 DX, DAT8279 ;将DAT8279放入DX BX

;将BX寄存器的数据压入堆栈,保护现 BX,0F0H

;取BX寄存器数据的高四位 CL,4

;CL寄存器存放移位次数

BX,CL

;逻辑右移4位

DI,BX

;将DI中SEGCOD的偏移地址值与BXAL,CS:[DI]

;将段地址为CS,偏移地址为DI的数

MOV

AH,0

;AX寄存器的高八位置零

OUT

DX,AX

;将AX寄存器的数据输出到DAT8279端口

NOP

NOP WR1:

MOV

DX, 04A4H

;WR1检查BUSY信号是否为零,将C数据端口地址放入DX

IN

AX, DX

;读入数据

AND

AX, 80H

;保留PC7的输出数据,即busy

JNZ

WR1

;ZF零标志位,ZF非零转移到WR1 MOV

AL, 0F9H

;显示8X16ASCII字符命令

CALL

COMD

;调用过程COMD

;输入列信息

MOV

AL, 0AH

CALL

COMD

;调用过程COMD

MOV

AL, 00H

;输入行信息

MOV

SI,OFFSET SEGCOD2 ;取SEGCOD2的偏移地址放

CALL

COMD

;调用过程COMD 入变址寄存器SI

ADD

SI, BX

;将SI中SEGCOD2的偏移地址值与BX中数据相加

MOV

AL, [SI]

;将地址在SI寄存器的数据送到AL

CALL

COMD

;调用过程COMD

MOV

DX, DAT8279 ;将DAT8279放入DX寄存器中

MOV

DI,OFFSET SEGCOD;取SEGCOD的偏移地址放入变址寄存器DI

POP

BX

;出栈,恢复现场

AND

BX,0FH

;取BX寄存器数据的低4位

ADD

DI,BX

;将DI中SEGCOD的偏移地址值与BX中数据相加

MOV

AL,CS:[DI]

;将段地址为CS,偏移地址为DI的数据送到AL寄存器

MOV

AH,0

;将AH寄存器置零

OUT

DX,AX

;将AX寄存器的数据输出到DAT8279端口

WR2:

MOV

DX, 04A4H

;WR2检查BUSY信号是否为零,将C数据端口地址放入DX

IN

AX, DX

;读入数据

AND

AX, 80H

;保留PC7的输出数据,即busy

JNZ

WR2

;ZF零标志位,ZF非零转移到WR2

MOV

AL, 0F9H ;显示8X16ASCII字符命令

CALL

COMD

;调用过程COMD

MOV

AL, 0BH

;输入列信息

CALL

COMD

;调用过程COMD

MOV

AL, 00H

;输入行信息

CALL

COMD

;调用过程COMD

MOV

SI,OFFSET SEGCOD2;将SEGCOD2的偏移地址送到SI寄存器

ADD

SI, BX

;将SI中SEGCOD的偏移地址值与BX中数据相加

CALL

COMD

;调用过程COMD CALL

DELAY

;调用过程DELAY

DELAY0:

MOV

CX, 2A00H

;延时 DELAY1:

NOP;空指令

NOP

LOOP

DELAY1

;循环2A00H次

OK:

JMP

START1

;返回重新采集和转换数据并显示;= DELAY:

MOV

CX,1000H

;将1000H送入CX寄存器 DLYB:

LOOP

DLYB

RET

;过程返回指令,回到原来调用过程的地方

;= COMD:

MOV

DX, 04A0H ;将A数据端口地址放入DX

OUT

DX, AL

;将相应数据输出

MOV

AL, [SI]

;将偏移地址为SI的数据送到AL寄存

MOV

DX, 04A6H

;将控制端口地址放入DX

MOV

AX, 71H

;71H为C口按位置位/复位控制字,PC0置位

OUT

DX, AX 制字

;向控制端口发送C口按位置位/复位控

MON:

MOV

DX, 04A4H

;MON检查BUSY信号是否为零,将C数据端口地址放入DX

IN

AX, DX

;读入数据

AND

AX, 80H

;保留PC7的输出数据,即busy

JZ

MON

;ZF零标志位,ZF非零转移到MON

MOV

DX, 04A6H

;将控制端口地址放入DX

MOV

AX, 70H

;70H为C口按位置位/复位控制字,PC0复 位

OUT

DX ,AX

;向控制端口发送C口按位置位/复位控制字

RET

;过程返回指令,回到原来调用过程的地方

;= SEGCOD

DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H ;七段共阴数码管显示编码,分别对应着0123456789ABCDEF

SEGCOD2 DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,41H,42H,43H,44H,45H,46H ;0123456789ABCDEF的ASCII码 JCJG

DB 0F0H,00D,00D,28D,76D,0F0H,01H,00H,18D,66D,0F0H,02H,00H,29D,65D,0F0H,03H,00H,25D,91D,0F9H,08H,00H,3AH;显示“检测结果:”

CODE ENDS

;代码段结束 END

START

;源程序结束

9实验现象及说明 9.1 运行数码管显示程序

实验现象:

将打火机靠近气体传感器,数码管会显示相应AD转换结果

当气体浓度超过阈值时,LED灯会亮。

9.2 运行LCD显示程序 实验现象:

将打火机靠近气体传感器,液晶屏会显示相应AD转换结果

9.3 运行数码管,LCD显示,语音报警程序

实验现象:

将打火机靠近气体传感器,数码管,LCD会显示相应AD转换结果,当气体浓度超过阈值时,LED灯会亮,语音报警模块会报警。10实验结论

在完成对已有程序的解读,通过可燃气体传感器检测气体浓度,并在数码管上显示气体浓度转换为的电压值后,我们改进了程序,使其在LCD液晶屏上显示气体浓度转换为的电压值,最后进一步改进,使气体浓度转换为的电压值可以同时在数码管和LCD液晶屏上显示,最后我们加入了语音报警模块,当检测值超过阈值后,会有相应的报警。

11承担的主要任务

在气体传感器模块微机原理课程设计中,我主要进行小组内成员的分工,课程设计进度的调整。以及对气体检测模块相关程序的解读,对已有程序的修改和程序的调试。

12结论及设计心得与体会

通过对气体传感器模块的相应功能的实现,我更深入的了解了微机原理课程的相关知识。通过亲身实践,对汇编语言有了更深入的理解。巩固了上学期学习的微机原理基本知识,当然还认识到自己还有很多不足,比如对汇编语言的理解还比较浅显,有些细节还没有引起自己足够的重视等。我还认识到在进行设计实验时,程序的流程图是十分重要的,在对整个程序的理解方面起着十分关键的作用。在分析程序时,先按照功能将程序分为几个部分,再对每个部分分别在细节上分析是十分有效的方法。

篇6:微机原理课程设计

一、设计内容

设计一个投票统计器,完成投票、计票统计和票数显示等功能。

二、设计原理及方案

在8086最小工作模式下,连接一块8255A芯片。在 8255A的C端口连接8个开关,开关按下表示支持,灯亮,开关不按便是反对,灯不亮,从8255A的C端口输入投票结果,经8086运算统计出结果;在 8255A的A端口连接一块7段LED数码管,将输出结果通过数码管显示出来。电路图:

接口技术课程设计

程序代码: A_PROT B_PROT C_PROT CT_PROT DATA DATA CODE

MOV DX,C_PROT IN AL,DX EQU EQU EQU EQU 200H 202H 204H 206H

;可通过计算获得,连接的是IO1 SEGMENT ENDS SEGMENT MOV AX,DATA MOV DX,AX MOV AL,10001001B MOV DX,CT_PROT OUT DX,AL

;控制字写入

;A端口输出,C端口输入 TAB1 DB 7FH,07H,7DH,6DH,66H,4FH,5BH,06H,3FH ASSUME CS:CODE,DS:DATA

START: MOV DX,C_PROT MOV AL,0 OUT DX,AL

;C端口清零

AGAIN: TJ: XOR AH,AH

MOV CX,8 LOOP1: SAL AL,1

ADC AH,0

LOOP LOOP1

MOV AL,AH

PUSH BX

LEA BX,TAB1

XLAT

MOV DX,A_PROT

OUT DX,AL

PUSH CX

MOV CX,2801 WAIT1: LOOP WAIT1

POP CX

JMP AGAIN

MOV AH,4CH INT 21H CODE ENDS END START

接口技术课程设计

;统计1个数

;进位加CF,以统计出C端口中1的个数

;延时10ms

接口技术课程设计

三、运行结果

程序结果图:

接口技术课程设计

四、设计总结与体会

为期一周的微机原理课程实践终于结束了,回过头来,感慨万千。过了一个多月,书本上的好些知识已然忘却,刚开始拿到课题时,看到一大堆传说中的神器,霎时凌乱了,选来选去,从仅剩的课题中挑了“投票统计器”,上网搜索了一下,大体上把设计的方向搞清了,接下来,便是开始设计了。

画模拟图对于我们来说,还是比较困难的,特别是8086那一块儿,大家参考网上的资料,反复讨论,着实花了不少时间。接下来的画图连线就比较简单了,为了节省时间,在做模拟图的同时,其他两个人便开始编写程序了。将设计流程图简略写下来,对照流程图,分块儿编写程序,显得很有条理,简单轻松些。

就这样,三次课之后,设计的图和程序都好了,只剩下调试程序,查看模拟结果了。这是检错和纠错的过程,轻松但也不轻松,因为那么多东西,如果看不仔细了,你就找不到错误,也就没法儿解决问题了,费事费力还一无所获,这是最伤脑筋的事情。还好,运气不错,只是程序出现了小小的问题,改好之后,得到了很满意的结果。

最后的验收,是对书本与实践知识的融汇总结,本以为毫无问题的我们,没想到被程序中的一个问题给秒杀了,大家四处找资料,和别的组的同学讨论,反复演算了半天,终于会了。当然,就算是会了,我们也只是懂得了微机原理中的一点皮毛而已,学的扎实很重要,因为这样才能把理论知识运用到实践中去,不断地提高自己。

五、参考文献 1.周明德.微型计算机系统原理及应用.北京:清华大学出版社

上一篇:简洁的伤感个性句子下一篇:实绩考核工作总结

本站热搜