北京邮电大学 微机原理软件实验(精选10篇)
一、实验内容
用单脉冲发生器的输出脉冲为中断源,每按一次产生一次中断申请,点亮或熄灭发光二极管。二,实验目的
(1)掌握8259的工作原理。
(2)掌握编写中断服务程序的方法。(3)掌握初始化中断向量的方法。三,实验步骤(1)连线
1.单脉冲发生器输出P+与8259的IR0相连; 2.8259的片选CS8259与CS0相连; 3.8259的INT与8086的INT相连; 4.8259的INTA与8086的INTA相连; 5.CS273与CS1相连;
6.00与LED0相连,01与LED1相连,依次将CS273接口与LED相连;其它线均已连好如下图:
DDBUSDD0VccDD1DD2DD3DD4DD5DD6DD7CS825913274LS32VccINTINTAVccIORDIOWRA***2161726D0D1D2D3D4D5D6D7A0CSRDWRSP/ENINTINTA8259IR0IR1IR2IR3IR4IR5IR6IR7***32425IR0IR1IR2IR3IR4IR5IR6IR7CAS0CAS1CAS2121314(2)编辑程序,编译链接后,单步运行,调试程序。
(3)调试通过后,在中断服务程序的NOP处设置断点,运行程序,当接收到中断请求后,程序停在中断服务程序内的断点处,观察寄存器AX的值。四,实验源程序如下
CODE SEGMENT PUBLIC ASSUME CS:CODE ORG 100H START: MOV DX,4A0H
;写ICW1,单片8259A,要写0CW4 MOV AX,13H
OUT DX,AX MOV DX,4A2H;写ICW2 MOV AX,80H
;IR0的中断向量码为80H OUT DX,AX MOV AX,01
OUT DX,AX;一般嵌套,非缓冲方式,非自动EOI MOV AX,0;写OCW1 OUT DX,AX;允许中断
;中断向量存放在(0000H:0200H)开始的四个单元里 MOV AX,0
MOV DS,AX MOV SI,200H
;中断类型号为80H MOV AX,OFFSET HINT;中断服务程序的入口地址 MOV DS:[SI],AX ADD SI,2 MOV AX,CS MOV DS:[SI],AX STI
;开中断,设置IF=1 JMP $
;原地跳转
HINT:
;中断服务程序 XOR CX,0FFH;CX取反
MOV DX,4B0H;CS273接口的地址,与8个LED灯相连 MOV AX,CX;输出高低电平控制LED灯的亮灭 OUT DX,AX MOV DX,4A0H;OCW2的地址
MOV AX,20H;一般EOI命令,全嵌套方式 OUT DX,AX IRET;中断返回
CODE ENDS END START 五,实验思考题 1. 将P0连线连接到IR1—IR7任意一个;重新编写程序。
将P0接到了IR1,在原程序的基础上,把写ICW2的控制字改为81H,再把中断向量的入口地址改为0204H即可。程序如下:
CODE SEGMENT PUBLIC ASSUME CS:CODE ORG 100H START: MOV DX,4A0H
;写ICW1,单片8259A,要写ocw4 MOV AX,13H
OUT DX,AX MOV DX,4A2H;写ICW2 MOV AX,81H
;IR1的中断向量码为81H OUT DX,AX MOV AX,01
OUT DX,AX;一般嵌套,非缓冲方式,非自动EOI MOV AX,0;写OCW1 OUT DX,AX;允许中断
;中断向量存放在(0000H:0204H)开始的四个单元里 MOV AX,0
MOV DS,AX MOV SI,204H
;中断类型号为81H MOV AX,OFFSET HINT;中断服务程序的入口地址 MOV DS:[SI],AX ADD SI,2 MOV AX,CS MOV DS:[SI],AX STI
;开中断,设置IF=1 JMP $
;原地跳转
HINT:
;中断服务程序
XOR CX,0FFH;CX取反
MOV DX,4B0H;CS273的地址
MOV AX,CX;输出高低电平控制LED灯的亮灭 OUT DX,AX
MOV DX,4A0H;OCW2的地址
MOV AX,20H;一般EOI命令,全嵌套方式 OUT DX,AX IRET;中断返回 CODE ENDS END START 实验现象:运行程序,触发脉冲发生器产生中断请求,相应二极管点亮。2. 设置OCW1,屏蔽某个中断请求,运行程序观察现象。
将IR0重新接入LED0,设置OCW1为01H,屏蔽中断IR0,则IR0的中断无法得到响应。程序如下:
CODE SEGMENT PUBLIC ASSUME CS:CODE ORG 100H START: MOV DX,4A0H
;ICW1的地址,写初始化命令字ICW1 MOV AX,13H;上升沿触发,单片8259,要写ICW4 OUT DX,AX MOV DX,4A2H;ICW2的地址,写中断向量码ICW2 MOV AX,80H
;IR0的中断向量码为80H OUT DX,AX MOV AX,01
;写中断结束控制字ICW4 OUT DX,AX;一般嵌套,非缓冲方式,非自动EOI MOV AX,01H
;写中断屏蔽字OCW1 OUT DX,AX;屏蔽IR0中断
;中断向量存放在(0000H:0200H)开始的四个单元里 MOV AX,0
MOV DS,AX MOV SI,200H
;中断类型号为80H MOV AX,OFFSET HINT;中断服务程序的入口地址 MOV DS:[SI],AX ADD SI,2 MOV AX,CS MOV DS:[SI],AX STI
;开中断,设置IF=1 JMP $
;原地跳转
HINT:
;中断服务程序
XOR CX,0FFH;CX取反
MOV DX,4B0H;CS273的地址
MOV AX,CX;输出高低电平控制LED灯的亮灭 OUT DX,AX
MOV DX,4A0H;OCW2的地址
MOV AX,20H;一般EOI命令,全嵌套方式 OUT DX,AX IRET
;中断返回
CODE ENDS END START 实验现象:
每按单脉冲发生器一次产生一次中断申请,但连接的发光二极管一直不亮。3.设置OCW2,了解中断结束方式与设置优先权。将IR0和IR1都连接到P+上,分别连接LED0和LED1到00和01。OCW2将 E0OCW2一般EOI命令,将IR0设置为最低中断优先级。程序如下:
CODE
SEGMENT PUBLIC ASSUME CS:CODE ORG 100H START: MOV DX,4A0H
;ICW1的地址 MOV AX,13H
;上升沿触发,单片8259,要写ICW4 OUT DX,AX MOV DX,4A2H;ICW2的地址 MOV AX,80H;中断向量码为80H,低3位自动写入 OUT DX,AX MOV AX,01
;写ICW4 OUT DX,AX;一般嵌套,非缓冲方式,非自动EOI MOV AX,0
;写OCW1 OUT DX,AX;允许所有中断
;IR0的中断向量存放在(0000H:0200H)开始的四个单元里 MOV
AX,0
MOV
DS,AX MOV
SI,200H MOV
AX,OFFSET HINT1 MOV
DS:[SI],AX ADD
SI,2 MOV
AX,CS MOV
DS:[SI],AX STI
;开中断,设置IF=1;IR1的中断向量存放在(0000H:0204H)开始的四个单元里 MOV
AX,0
MOV
DS,AX MOV
SI,204H MOV
AX,OFFSET HINT2 MOV
DS:[SI],AX ADD SI,2 MOV
AX,CS MOV
DS:[SI],AX JMP $
;原地跳转
HINT1:;中断服务程序1 XOR CX,0F0H;CX高4位取反 MOV DX,4B0H;CS273的地址
MOV AX,CX;输出高低电平控制LED灯的亮灭 OUT DX,AX MOV DX,4A0H;OCW2的地址
MOV AX,E0H;一般EOI命令,IR0优先级最低 OUT DX,AX IRET
;中断返回
HINT2:
;中断服务程序2 XOR CX,00FH;CX低4位取反 MOV DX,4B0H;CS273的地址
MOV AX,CX;输出高低电平控制LED灯的亮灭 OUT DX,AX MOV DX,4A0H;OCW2的地址
MOV AX,E0H;一般EOI命令,IR0优先级最低 OUT DX,AX IRET
;中断返回 CODE ENDS END START 实验现象:CS273的00与LED0相连,01与LED1相连,02与LED2相连,依次下去,直至07与LED7相连。每按单脉冲发生器一次产生一次中断申请,由于IR0的优先级比IR1低,故先响应IR1,后响应IR0,观察到低4位的LED灯先点亮或熄灭,高4位的LED灯后点亮或熄灭。六,实验心得
1、传统教学中存在的问题
在课堂教学中, 由于微机原理课程涉及的知识面广、内容难度较大, 实例讲解也比较抽象, 没有有效的演示方法, 学生听讲时难以接受和理解。通常对于复杂的电路, 用板书画图耗时费力, 用ppt演示时, 大电路无法清晰的显示全, 教学效率低。另外, 实例都比较枯燥, 学生提不起学习的兴趣。
在实践教学中, 传统方法多数是利用硬件实验箱来完成, 这存在着很多的不足。首先, 实验箱上线路基本都已经连接好, 芯片已经固定, 所以一般实验以验证性为主, 学生只能依葫芦画瓢, 不能自由灵活地设计实验, 影响了学生的积极性;第二, 因实验箱的限制, 实验个数有限, 实验内容比较固定, 难以随技术的发展有所更新, 学生也很难进行创新设计, 拓展应用, 创新能力得不到培养;第三, 实验箱价格昂贵, 容易损坏;最后, 实验箱只有专业实验室才有, 如果有学生在课余时间进行实验或创新设计就比较困难。
2、Proteus仿真软件在微机原理教学中的应用
近年来, 一些学校的老师开始在教学过程中引入仿真软件。Proteus软件是英国Labcenter公司开发的一款仿真平台, 可以进行实物仿真和印制电路板设计。Proteus软件可以对8086CPU及相关接口芯片提供支持, 还提供了示波器、信号发生器等虚拟仪表, 支持汇编语言, 是一个全开放性的仿真实验平台, 相当于一个设备齐全的综合性实验室。借助proteus可以辅助教师的教学, 对学生进行实验、课程设计、毕业设计等都有很大的帮助。
(1) 在理论教学中的应用
在微机原理课堂教学中可以用proteus仿真软件进行实例演示, 使抽象、乏味的理论教学变得直观、生动、易于学生理解和掌握。下面以DAC0832芯片为例, 介绍proteus仿真软件在课堂教学中的应用。
DAC0832芯片是CMOS工艺制成的8位双缓冲型D/A转换器, 可以将8位的数字量转换成模拟量, 通过编程可以输出三角波、方波等。在教学过程中, 首先在Proteus的原理图编辑窗口中搭建仿真电路, 如图1所示, 该电路中采用了8086CPU、DAC0832、示波器、1458两级运算放大器等等, 输出为双极性电压。然后讲解电路的工作原理, 重点是译码电路及DAC0832芯片的功能和应用。接下来分析输出模拟三角波的算法, 编写相应的汇编语言程序, 主要程序如下:
最后利用外部编译器对程序进行编译, 运行仿真后, 模拟示波器可以观察到输出的三角波, 输出在-5V~+5V之间变化, 如图2所示。用投影仪将该实例进行演示, 学生直接观察到结果, 大大激发了他们的学习兴趣。
教学时, 还可以更改部分程序段, 对本实例进行拓展应用, 比如编程实现输出反向锯齿波, 主要程序段如下:
上段程序中, 把“INC AL”改成“DEC AL”, 输出波形为正向锯齿波。课后, 可以布置相关的作业, 例如要求学生更改部分电路和程序, 输出0V~+5V的波形, 或者实现波形的切换等。通过课堂分析讲解和课后作业, 学生对DAC0832性能及编程更加理解, 而且印象深刻。
(2) 在实践教学中的应用
在实践教学中, 利用proteus仿真软件构建虚拟实验室, 可以进行实验、课程设计、毕业设计, 并具有以下几个优点:
(1) 开放性好
在软件实验室环境下, 只需一台安装了proteus软件的电脑, 即可运用该软件的仿真功能, 完成课程教学计划中规定的实验及课程设计。学生在实验室上机实验, 可以做到一人一机, 单独使用实验资源, 同时提高了学生独立思考的能力, 加深了对理论知识的理解和掌握。利用软件, 学生做实验、课程设计等不需要局限于学校机房, 下载安装proteus软件之后, 在家里或宿舍里同样可以进行操作, 不受时间和空间的限制。
(2) 实验内容丰富
因proteus软件的强大功能, 老师可以安排丰富的实验, 实验内容由简到繁, 由浅入深, 循序渐进, 使学生在课堂上学到的理论知识在实验中得到验证。
(3) 操作简单, 实验结果直观
proteus仿真软件实验平台, 使用方便, 操作简单, 不需要实际电路板、芯片、线路焊接等;调试方便, 实验结果学生一目了然, 学生通过成功的实验, 可以提高成就感, 使学生做实验的兴趣越来越浓厚。
软件仿真并不会降低学生实际的动手能力, 对于学有余力、并且兴趣浓厚的学生, 可以在软件仿真的基础上, 搭建硬件电路, 下载实验数据, 验证实验结果。
3、总结
经过近两年的教学改革, 从教学效果来看, 利用proteus软件之后, 学生的学习兴趣和主动性有了较大的提高, 加深了学生对微机原理课程的理解, 取得了较好的教学效果。同时, 解决了传统硬件实验操作繁琐、内容固定、器件损坏率高、实验效果差等问题, 也提高了学生的动手能力和利用软硬件的综合开发能力。
参考文献
[1]顾晖等.微机原理与接口技术——基于8086和Proteus仿真[M].北京:电子工业出版社, 2011.
[2]张秀国.Proteus在电路分析教学中的应用[J].珠海城市技术学院学报, 第13卷第1期.
【关键词】仿真软件 虚拟实验 实验平台
一、引言
“微机原理及应用”是电气类、电子信息类、机电类等非计算机专业的一门重要的专业基础课,该课程涵盖了微型计算机原理、汇编语言、接口技术三个方面的内容,课程本身具有内容繁杂、概念抽象、汇编指令系统多且难记忆、软件和硬件混杂在一起的特点,在传统的理论教学中,教师注重讲解微机系统中的基本概念、基本原理和基本方法,学生普遍感到内容抽象难懂、学习枯燥,失去学习兴趣,在实验教学中,大多数学校选用实验箱为实验平台,由于受到硬件资源的限制,开设的实验多为验证性实验,学生学习积极性不强,实验效果不好[1],不能有效培养学生的动手能力和创新能力。目前,教师已逐渐将仿真软件引入到微机原理的课程教学中,使教学过程变得生动、直观,激发学生的学习兴趣,加深对知识点的理解,提高教学效果。
二、仿真软件简介
在微机原理课程教学中常用的仿真软件有以下两种:
1. Proteus 软件
Proteus 软件是英国 Labcenter Electronics 公司开发的EDA工具软件,是目前唯一能够对各种处理器及接口电路进行实时仿真、调试的仿真软件。Proteus软件中有30多个元器件库,可提供超过27000个仿真元器件,元件库中的元器件可直接用于模拟电路、数字电路及微处理器控制电路的搭建,Proteus还提供了示波器、信号发生器、逻辑分析仪、电压表等仿真仪器仪表,并且这些虚拟仪器仪表接近实际仪表的效果。Proteus仿真结果用色点显示芯片引脚的数字电平,导线亦用不同颜色表示其对地电压大小,使仿真更加直观生动。
2009年Labcenter公司推出了Poteus7.5 SP3软件,支持8086微处理器与8255A、8253、8259、8251等接口芯片的系统仿真,从而使得Poteus软件在微机原理教学中得到广泛应用。
2. EMU8086软件
EMU8086 是一种集编辑器、组译器、反组译器、除错功能的软件模拟工具。该软件包含了汇编语言的全部内容,能够编译源代码,并在模拟器上一步一步的执行,在执行程序的同时还可观察CPU寄存器,标志位、内存单元及算术和逻辑运算单元(ALU)的工作状况。EMU8086软件界面友好,操作简单,对于刚开始学习汇编语言的学生非常有帮助。
三、仿真软件在教学中的应用
1. 在理论教学中的应用
在微机原理的理论教学过程当中,应用仿真软件在课堂上边讲解理论知识,边进行实例演示,把抽象的理论知识变得更为直观,应用仿真软件展示各芯片的硬件连线和软件控制方法,将理论教学与实践操作相结合,给学生感性的认知,激发学习兴趣。如,在学习汇编语言程序设计时,利用EMU8086软件在课堂上讲解程序编制调试的过程,通过观察程序执行结果,帮助学生理解和掌握汇编指令;又如在学习接口技术时,利用Proteus仿真软件在课堂上搭建接口芯片的应用电路,动态仿真芯片的工作过程,加强学生的感性认识,增强讲课的生动性,提高学生对知识点的理解和掌握。
2. 在实验教学中的应用
微机原理实践教学是微机原理教学的重要环节,应用仿真软件建立微机原理的仿真实验平台,方便学生进行微机原理的虚拟实验,仿真实验平台具有操作简单、功能强和开放性较好的特点,在安装了仿真软件的电脑上,学生可以随时地在仿真实验平台上搭建实验电路,编制程序、仿真运行和观察实验结果。在仿真实验平台上可以进行的实验有以下三类:
1)汇编语言程序设计实验
利用EMU8086软件进行汇编语言程序设计实验,使学生掌握8086汇编指令、8086汇编语言中的伪指令、汇编语言程序设计的方法和程序调试的方法。
2)接口芯片实验
微机接口技术部分涉及的可编程接口芯片有很多,如定时计数芯片8253、并行接口芯片8255A、串行接口芯片8251等,在接口芯片的实验中既要进行接口芯片的硬件电路设计,也要通过汇编语言编写相应的控制程序,因此,利用Proteus仿真软件进行接口应用的电路设计,完成芯片元器件间的连接,利用EMU8086软件编写对应的控制程序,将编译调试好的控制程序装载到微处理器中,最后在Proteus中进行仿真运行,观察运行结果。
3)创新性实验
在完成基本软件设计实验和基本的接口芯片实验后,学生已具备了基本的微机系统的软硬件开发能力,可以选择一些综合性、趣味性及实用性的设计课题,如交通灯控制器设计、电子时钟设计、步进电机的控制等,让学生根据要求,利用仿真软件自行完成系统的硬件和软件设计,培养学生灵活运用所学知识解决生活实际问题的能力。
四、结论
CODE
SEGMENT
ASSUME
CS:CODE;初始化8255A,A口工作方式0,输出 START: MOV
DX,63H
MOV
AL,08BH
MOV
BL,OAH
OUT
DX,AL DY:
MOV
CX,30C4H;置定时外循环初始值 MM:
MOV
BH,0AH;置定时内循环初始值
DEC
LP:
MOV
IN
DEC
CMP
JZ
CMP
JZ
CMP
JZ
CMP
JZ
CMP
JZ
CMP
JZ
CMP
JZ
CMP
JZ
CMP
JZ
CMP
JZ
CMP
JZ
JMP
LP1:
MOV
MOV
JMP
LP2:
MOV
MOV
JMP
LP3:
MOV
MOV
CX DX,62H AL,DX;读取C口值 BH BH,00H MM CX,0000H XD;转向剩余时间显示程序 AL,00H;判断是否有键按下 LP AL,01H;判断是否是1号键按下 LP1 AL,02H;判断是否是2号键按下 LP2 AL,04H;判断是否是3号键按下 LP3 AL,08H;判断是否是4号键按下 LP4 AL,10H;判断是否是5号键按下 LP5 AL,20H;判断是否是6号键按下 LP6 AL,40H;判断是否是7号键按下 LP7 AL,80H;判断是否是8号键按下 LP8 LP AL,86H AH,01H EN
;显示1号抢答成功者并锋鸣
AL,0CBH AL,02H EN
;显示2号抢答成功者并锋鸣
AL,0CFH AH,0CFH
JMP
EN
;显示3号抢答成功者并锋鸣 LP4:
MOV
AL,0E6H
MOV
AH,08H
JMP
EN
;显示4号抢答成功者并锋鸣 LP5:
MOV
AL,0EDH
MOV
AH,10H
JMP
EN
;显示5号抢答成功者并锋鸣 LP6:
MOV
AL,0FDH
MOV
AH,20H
JMP
LP7:
MOV
MOV
JMP
LP8:
MOV
MOV
JMP
EN:
MOV
OUT
MOV
MOV
OUT
JMP
XD:
DEC
CMP
JZ
CMP
JZ
CMP
JZ
CMP
JZ
CMP
JZ
CMP
JZ
CMP
JZ
CMP
JZ
CMP
JZ
CMP
JZ
XD9:
MOV EN
;显示6号抢答成功者并锋鸣 AL,87H AH,40H EN
;显示7号抢答成功者并锋鸣 AL,0FFH AH,80H EN
;显示8号抢答成功者并锋鸣 DX,60H DX,AL DX,61H AL,AH DX,AL MD BL
;判断剩余时间并转向显示程序 BL,09H XD9 BL,08H XD8 BL,07H XD7 BL,06H XD6 BL,05H XD5 BL,04H XD4 BL,03H XD3 BL,02H XD2 BL,01H XD1 BL,00H XD0 AL,6FH;显示剩余9秒
JMP
EN1 XD8:
MOV
AL,7FH;显示剩余8秒
JMP
EN1 XD7:
MOV
AL,07FH;显示剩余7秒
JMP
EN1 XD6:
MOV
AL,7DH;显示剩余6秒
JMP
EN1 XD5:
MOV
AL,6DH;显示剩余5秒
JMP
EN1 XD4:
MOV
JMP
XD3:
MOV
JMP
XD2:
MOV
JMP
XD1:
MOV
JMP
XD0:
MOV
JMP
EN1:
MOV
OUT
CMP
JZ
JMP
MD:
MOV
IN
CMP
JZ
JMP
MOV
INT
CODE
ENDS
END
AL,66H;显示剩余4秒
EN1 AL,4FH;显示剩余3秒
EN1 AL,4BH;显示剩余2秒
EN1 AL,06H;显示剩余1秒
EN1 AL,3FH;显示剩余0秒,结束。
课程设计
课
程:微机原理与接口技术设计
专业班级:计算机科学与技术班
学
号:2
姓
名:
一、设计题目及要求:
利用 8259A中断,实现对8253多种计数初值的设定: 1.在中断服务程序中设定8253的计数初值。
2.开关K1用于设定0.5秒方波的计数初值,K2用于设定1秒方波的计数初值,K3用于设定2秒方波的计数初值。
3.用8253的输出信号,控制一个发光二极管,以演示修改效果。
二、设计思想:
整体设计:
①利用8259A芯片设定IR1、IR2、IR3三个中断,分别用三个开关的高低电平触发中断。
②在三个终端的中断服务子程序里面为8253芯片通道0设定不同频率的方波计数初值,使得在触发不同中断时8253芯片产生周期为0.5秒、1,秒、2秒的方波。③将8253的输出端口与发光二极管连接,通过二极管的亮灭显示出8253内部方波的频率。
部分设计:
①8253芯片方式3初值确定:根据分频电路T(n)=T/2*公式以及0.5s、1s、2s方波的频率计算出初值分别为2580H、4B00H、9600H。
②8253芯片和8259芯片的片选方法:设定8259A和8253芯片的端口号分别为0FFE0H、0FFE1H,以及0FFFCH—0FFFFH,使得在连接138译码器时,A连A2,B连A3,C连A4,T0连接8259A芯片的CS端,T7连接8253芯片的CS端。
③8259A中断向量表写入以及芯片初始化:根据8259A各个中断在中断向量表中的地址,将IR0、IR1、IR2的中断服务程序入口地址写入向量表中;ICW4设定除中断0、1、2外其他位屏蔽。
④手动设置中断结束:为了不影响各个中断之间的交替响应,在每个中断服务程序结束之前写入中断结束方式,将20H输出到8259端口,将当前中断结束响应后再响应下一个中断。
三、功能流程图:
四、结果讨论:
附录:实验代码:(完整的源程序)
CODE
SEGMENT
ASSUME CS:CODE,DS:CODE,ES:CODE
ORG 3400H Port0
EQU 0FFE0H
;8259芯片的端口号 Port1
EQU 0FFE1H START:
CALL F8259 P0:
CLI
MOV AX,OFFSET INT0
MOV BX,0020H
MOV [BX],AX
MOV BX,0022H
MOV AX,0000H
MOV [BX],AX
STI
P1:
CLI
MOV AX,OFFSET INT1
MOV BX,0024H
MOV [BX],AX
MOV BX,0026H
MOV AX,0000H
MOV [BX],AX
;CALL F8259
STI
P2:
CLI
MOV AX,OFFSET INT2
MOV BX,0028H
MOV [BX],AX
MOV BX,002AH
MOV AX,0000H
MOV [BX],AX
;CALL F8259
STI P:
JMP P;-----F8259: MOV AL,1BH
;8259的初始化00011011 icw1
MOV DX,Port0
OUT DX,AL
MOV AL,08H
;00001000 icw2
MOV DX,Port1
OUT DX,AL
MOV AL,01H
;00000001 icw4
OUT DX,AL
MOV AL,00H
;屏蔽只留IR0,IR1,IR2。OCW1
OUT DX,AL
RET;---------------------------INT0:
CLI
CALL FB0
STI
MOV DX,Port0
MOV AL,20H
OUT DX,AL
IRET
INT1:
CLI
CALL FB1
STI
MOV DX,Port0
MOV AL,20H
OUT DX,AL
IRET
INT2:
CLI
CALL FB2
STI
MOV DX,Port0
MOV AL,20H
OUT DX,AL
IRET
FB0:
MOV DX,0FFFFH
MOV AL,00110110B
OUT DX,AL
MOV AL,80H
MOV DX,0FFFCH
OUT DX,AL
MOV AL,25H
OUT DX,AL
RET
FB1:
MOV DX,0FFFFH
MOV AL,00110110B
OUT DX,AL
MOV AL,00H
MOV DX,0FFFCH
OUT DX,AL
MOV AL,4bH
OUT DX,AL
RET
FB2:
MOV DX,0FFFFH
MOV AL,00110110B
OUT DX,AL
MOV AL,00H
MOV DX,0FFFCH
OUT DX,AL
MOV AL,96H
OUT DX,AL
RET
;--------------------------DONE: CODE
ENDS
“微机原理”是我院理工类必修的专业基础课程。由于计算机工作原理抽象,工作过程难以理解,作为微机原理课程重要组成部分的实验教学在对学生对知识的掌握和能力培养方面起着理论教学不可替代的作用。由于种种原因,我们的实验教学环节非常薄弱,导致了实验教学不能与实际专业教学体系很好融合,学生的实验还停留在验证性的初级阶段,影响了该课程的教学效果,必须对实验教学进行探索和改革,以提高教学质量。
二、现状分析
我校微机原理实验课是面向全校工科类学生的,有计算机类的、汽车工程类的、通信类的,还有机械类的,各个专业要求的层次不一样,用统一的同一种教学模式去对待不同的学生,主次轻重不分,导致有些专业根本没有达到要求,有些专业甚至是“赶鸭子上架”,使教师头痛,学生痛苦。
实验教学方式实行的是教师讲解并操作演示,学生动手操作验证、课后学生完成报告教师批阅的模式,实验课以教师为中心,学生跟着教师指导走,机械地照搬实验指导接线图进行连线,学生缺乏主观能动性,不利于学生解决问题的能力和创新能力的培养。
实验设备集成度高,实验项目模块化高,硬件操作减少,软件接口驱动程序完善,基本上学生处于验证性操作。这当然有有利的一面,如:实验过程快;设备损坏率低;实验成功率高,增强学生完成实验的信心等。但是也包含不利的一面,让学生离素质教育相去甚远,如:由于设备连线限制,实验内容大多为验证性,使学生处于被动接受的地位,无法发挥学生的主动性,严重影响了学生发挥创造性的积极性。
三、措施及方法
1. 根据专业优化实验内容
精选实验内容是优化实验项目的重要环节,根据不同专业知识体系的不同特点,并针对不同的专业,开设不同的实验项目,灵活调整实验课的重心,并采取不同的实验方法,使每个实验项目都能达到课程规定的培养目标。按照学生专业知识结构与实验项目考查的知识点相结合的原则,将微机原理实验教学分为3个层次。
第1层次是验证实验部分。验证实验完成了支撑基础知识的作用,任何专业都要完成基本验证性实验,目前保留的验证性实验内容有:并行接口电路8255实验;定时/计数器8253实验;键盘/显示控制器8279实验;中断控制器8259实验;串行通信控制器8250实验;存储器6264扩展实验。通过本层次的实验,学生对微机知识会有一个基本的了解和掌握。
第2层次是设计性实验部分。根据专业特点的不同,在较好完成验证性单元实验的基础上,引入与专业知识结合性较强的设计性实验。教师只提供基本的设计思想和设计方法,不提供具体的、详细的电路与程序。学生自己查阅有关资料,自定设计方案,自行设计、调试接口电路和控制程序。例如自动化专业教学中,让学生自己完成设计步进电机驱动实验。将前面学习的条件输出实验、循环程序设计、DOS中断调用等内容结合起来。此类设计性实验,可以提高学生独立分析问题、解决问题的能力。
第3层次综合性实验。综合性实验的目的是要将学生学过的主要功能部件有机地结合起来,形成一个有意义的整体。因此我院将该类实验安排在课程设计阶段。综合性实验是由教师根据不同专业给出实验项目,学生根据所掌握的知识,跳开实验仪器的限制,通过不同的方法和不同的途径来完成实验。例如数据采集与处理系统、交通灯控制系统等。这类综合性实验能够使得学生对微机原理与接口这门课程有一个全新的认识。
2. 改革教学方式
实验教学内容的改革要求实验教学与指导方法也要相应地进行调整,这是实现教学内容改革的关键环节。根据实验的三个层次,分别采取不同的方法进行实验指导,在实验安排上采取统一安排与实验室开放相结合的方法。
首先在验证性实验部分,采用扶持的教学模式。在此阶段由教师“扶着”学生走。这时的学生由于刚接触微机软硬件相结合的实验,往往会感到无从下手,实验中遇到故障往往不知如何排除。因此,教师需耐心细致地向学生传授软硬件设计方法,协助学生排除故障,使其掌握程序调试及故障分析与排除的基本方法和技能,培养其严谨、规范的实验作风,为后续实验奠定基础。
其次在设计性实验部分,采用预先设计加抽查讲解的办法。实验前学生进行理论上设计,实验时随机让学生讲解实验的基本原理、操作过程,教师进行点评与更正,然后开始实验操作。让学生在实验开始之前对于实验过程有一个非常透彻的理解,对于实验预习中遇到的问题会主动去查阅理论教材,对于理论课上所学的相关知识是一个很好的复习巩固过程。同时,采用学生自己上讲台讲课的方式,能够充分调动学生的积极性。
再次在综合性实验阶段,采用开放式实验室教学模式。学生根据自己的时间表进行实验设计、实验调试。教师要放手让学生自己摸索,相信学生,鼓励学生,培养学生敢试敢闯的精神。教师只作技术上的咨询和结果上的考核验收,使学生的聪明才智得到充分发挥。
3. 建立网络虚拟实验室平台
微机原理课程的实验,对于不同专业的学生,完成实验难度不同,大部分专业的学生完成实验有一定的困难。为了帮助学生更好地理解接口技术实验的实质,掌握设计的基本方法,在实验中教师要充分利用多媒体课件辅助实验教学,可制作基于网络平台的“微机原理实验”多媒体课件。课件以课程要求的实验为蓝本,利用多媒体技术,介绍实验,调试实验电路和实验程序。通过多媒体课件,学生可以感受到实验的整个过程,可以通过网络不受时间和地点的限制反复进行虚拟实验。
四、结语
《微机原理及应用》课程实验教学大纲
一、制定实验教学大纲的依据
根据本校《2004级本科指导性培养计划》和《微机原理及应用A》课程教学大纲制定
二、本课程实验教学在培养实验能力中的地位和作用
《微机原理及应用A》课程是自动化、电气工程及其自动化专业的一门必修的专业基础课。其作用是使学生从应用的角度了解计算机的基本原理、基本组成、接口技术及硬件连接和汇编语言编程方法,建立微机工作的整体概念,培养学生具有进行软件和硬件设计开发的基本能力。它的主要教学内容是学习掌握微型计算机的原理及接口技术,使学生毕业后能熟练地应用微机技术设计自动控制系统。
本实验课是配合理论教学内容,帮助学生加深理解和掌握本门课程内容的重要手段。由于本课程具有理论与实际结合紧密的特点,通过实验使学生掌握微型计算机的组成原理及接口电路的设计应用技术。
三、本课程应讲授的基本实验理论
1、微型计算机的内部结构组成2、机器代码在内存中的存储方法及执行过程
3。CPU对接口电路操作时的工作过程
四、本课程实验应达到的实验能力标准
1、掌握微型计算机的基本组成原理以及接口应用技术的方法。
2、能够用汇编语言编写汇编应用程序,并上机调试。
3、掌握常用接口电路的工作原理及一般电路设计方法。
五、学时、教学文件
学时:本课程总学时为64学时,其中实验为14学时,占总学时的22%。
教学文件:校编《微机原理及接口技术实验指导书》;实验报告学生自拟。
要求学生实验前预习实验指导书,并写出预习报告。指导教师应概述实验的原理、方法及设备使用等,具体测试步骤和实际数据处理由学生独立完成。
六、实验考核办法与成绩评定
实验课成绩占本课程总成绩20%。对无故缺实验者,本门课程实验成绩以零分计。
七、仪器设备及注意事项
仪器设备:Dais-958PH+教学实验系统,PC机
注意事项:注意保护设备
八、实验项目的设置及学时分配
序号 实 验 项 目 学 时 实验类型 要求 适用专业显示字符串的程序 2 验证 必做 自动化分支程序设计 2 验证 必做 自动化多位二进制加法程序 2 验证 必做 自动化求最大值 2 验证 必做 自动化多位十进制数加法 2 验证 必做 自动化十进制数转化为二进制数程序设计 2 设计 必做 电气、电技、微电、通信、电子存储器接口扩展实验 2 验证 必做 自动化8086中断系统的使用 2 验证 必做 自动化、电气、电技、微电、通信、电子8255并行接口应用系统 2 验证 必做 自动化异步串行通信系统设计 2 验证 必做 自动化、电气、电技、微电、通信、电子8253计数器/定时器实验 2 验证 必做 自动化8088最小系统综合实验 2 设计 必做 自动化8088最小系统综合实验 2 设计 必做 自动化
求最大值程序 2 验证 必做 电气、电技、微电、通信、电子
多位十进制数加法程序设计与调试 2 验证 必做 电气、电技、微电、通信、电子
8255并行接口应用系统设计 2 验证 必做 电气、电技、微电、通信、电子
8253定时计数器应用系统设计 2 综合 必做 电气、电技、微电、通信、电子
一、简答题(6×8分=48分)
1.不使用立即数,也不用任何存储单元中的数据,写一段程序(限六条指令之内),完成如下操作:-1→AX,0→BX,1→CX。答:XOR BX,BX XOR CX,CX INC CX XOR AX,AX DEC AX
2.试说明8086CPU工作在最大和最小模式下系统基本配置的差异。
解:8086CPU可以工作在两种工作模式,即最小工作模式和最大工作模式。最小工作模式用于单机系统,系统中所有总线控制信号全部由8086直接提供,因此系统中的总线控制电路可减到最少;最大工作模式用于多处理机系统,8086作为主处理器,其它的处理器为协处理器,协助主处理器工作。在最大工作模式下,系统所需要的控制信号均由总线控制器8288提供。
8086具体工作在最大模式还是最小模式,完全由硬件连接决定。当将CPU的 *密* 路所产生的中断的优先级别由8259A管理产生。CPU只根据标志位IF的状态决定是否响应INTR。
内部中断:8086的内部中断产生的过程完全与硬件电路无关,是CPU根据软件中某条指令或软件对PSW中的标志设置而产生的。内部中断可分为两大类型:一类是内部已硬件设置好的类型0~类型4,它们依次为除法出错、单步中断、NMI、断点中断和溢出中断;另一类是8086的中断系统中有一条两字节的中断指令INT n。n 即为中断类型码,CPU根据中断类型码即可找到中断服务程序入口。
4.试说明8086/8088CPU中有哪些寄存器?各有哪些用途?
答:寄存器组有(1)数据寄存器,含AX、BX、CX、DX四个通用寄存器,用来暂时存放计算过程中所遇到的操作数,结果和其它信息。(2)指针及变址寄存器,含SP、BP、SI、DI四个十六位寄存器,它们可以像寄存器一样在运算过程中存放操作数只能以字为单位使用。还用来在段内寻址时提供偏移地址。(3)段寄存器,含CS、DS、SS、ES,用来专门存放段地址。(4)控制寄存器,包括IP和PSW两个16为寄存器。IP是指令指针寄存器,用来存放代码段中的偏移地址。
PSW为程序状态字寄存器,由条件码标志和控制标志构成。条件码标志用来纪录程序运行结果的状态信息。包括OF、SF、ZF、CF、AF、PF。控制标志位有三个寄存器DF、IF、TF组成。
5.下面两条指令执行后,标志寄存器中CF,AF,ZF,SF和OF分别是什么状态? MOV DL,86 ADD DL,0AAH 答: 0101,0110 + 1010,1010 = 1,0000,0000 CF=1 AF=1 ZF=1 SF=1 OF=1
*密* 6.下面哪些指令是非法的?(假设OPl,OP2是已经用DB定义的变量)(1)CMP l5,BX(2)CMP OPl,25(3)CMP OPl,OP2(4)CMP AX,OPl 答:(1)CMP 15,BX 非法,两个操作数不能一个为字,一个为字节
(2)CMP OP1,25 正确
(3)CMP OP1,OP2 正确
(4)CMP AX,OP1 非法,两操作数不能一个为字,一个为字节
二、程序题(2×11分=22分)1.试按下列要求分别编制程序段:(1)把标志寄存器中符号位SF置‘1’。
*密*(2)寄存器AL中高低四位互换。
(3)由寄存器AX,BX组成一个32位带符号数(AX中存放高十六位),试求这个数的负数。
(4)现有三个字节存储单元A,B,C。在不使用ADD和ADC指令的情况下,实现(A)+(B)=>C。
(5)用一条指令把CX中的整数转变为奇数(如原来已是奇数,则CX中数据不变,如原来是偶数,则(CX)+1形成奇数)。答:(1)MOV AH, 80H SAHF(2)MOV BL, 0FH AND BL, AL SAL 4 SHR 4 XOR AL, BL(3)MOV DX, 7FH SUB AX, DX MOV DX, 0FFH SUB DX, BX MOV BX, DX(4)MOV AH, FFH MOV BL, [B] SUB AH, BL MOV BH, [A] SUB BH, AH MOV [C], BH(5)MOV AX, CX NOT AX
*密* TEST 01H JNZ NEXT HLT NEXT: INC CX HLT
2.DAC0832与微机接口电路已正常工作,为单缓冲方式,其口地址为380H,执行以下程序:
MOV DX,380H A2: MOV AL,-1 OUT DX,AL CALL MS100 ;延时 NOT AL A0: OUT DX,AL INC AL CMP AL,-1 JNE A0 A1: OUT DX,AL DEC AL CMP AL,0 JNE A1 JMP A2(1)画出输出端波形示意图;
(2)若将最后一条指令改为JMP A0,画出输出端波形示意图;(3)若将最后一条指令去掉,会出现什么情况?
三、设计题(2×15分=30分)
*密* 1.32位存储器组织将内存分为4个存储体,地址总线32位,画出每个存储体的地址分配图。
解:在32位数据总线的微处理器中,直接输出A31~A032位地址,低2位A1、A0由内部编码产生4个字节选择信号BE3~BE0,以选择不同的字节。由4个字节选择信号把主存储器分为4个存储体,依次存放32位数据中的4个字节,每个体的8位数据依次并行连接到外部数据线D31~D0上,由BE3~BE0选中每个存储体,每个体的地址范围如下图所示。
2.设8255A接到系统中,端口A、B、C及控制口地址分别为220H、221H、222H及223H,工作在方式0,试编程将端口B的数据输入后,从端口C输出,同时,将其取反后从端口A输出。解: MOV DX,223H MOV AL,82H OUT DX,AL MOV DX,AL MOV AL,221H IN AL,DX
《微机原理与接口技术》是计算机专业和大多数电类专业的必修课, 同时也是一门实用性和动手性都很强的计算机硬件类课程。在本课程的教学过程中, 实验教学是提高教学质量的重要手段, 学生通过实验, 不仅可以提高对本课程的兴趣, 更重要的是对计算机内部原理和某些芯片的工作流程将会有更直接的感性认识, 为学习者以后走上工作岗位打下坚实的理论基础。在多年的实验教学中, 发现以往的微机原理实验大多是基于各功能芯片设计的孤立实验, 学生只是掌握了各种芯片的使用方法, 而对各功能芯片在一个实际应用系统中的作用理解不深刻。并且, 一直以来微机原理的实验内容主要以验证性实验为主, 验证理论课的教学内容。这种以验证性实验为主、基于单个功能芯片的实验教学很难培养学生的科技创新能力、独立设计软硬件能力和全局观念。针对这一状况, 设计了基于微机原理实验箱的数据采集系统, 该系统综合运用了ADC0809、DAC0832、8253定时器、8255并行接口、七段LED (发光二极管) 等功能芯片, 实现了数据采集的功能, 同时激发了学生的学习能动性, 提高了学生面对实际问题的分析判断、设计应用能力。
1总体设计
1.1设计内容
采用查询法将ADC0809通道0外接0~ 5 V电压, 转换成数字量后, 送DAC0832输出, 用示波器或三用表检测;同时在七段LED数码管上, 以小数点后2位 (几十毫伏) 的精度, 显示其模拟电压的十进制值;在74LS373输出的LED上, 以一定的要求点亮LED。调整电位器, 用示波器观察DAC0832、七段LED数值以及LED的变化。
1.2设计要求
a) 时钟信号:ADC0809 的CLK 脉冲由定时器8253的OUT0提供。
b) EOC信号:采用74LS245检测ADC0809转换是否结束。
c) 8位LED:采用74LS373驱动8位LED管, 使其按要求点亮, 指示当前采样值的范围。
8位LED亮度变化如下:若电压值小于0.5 V, 则最低位 (D0) LED灯亮, 若电压值大于4.5 V, 则最高位 (D7) LED灯亮, 若电压值在0.5 V ~ 4.5 V, 则8位LED由低向高变亮。
d) 具备良好的人机对话界面。用并行口8255的外接小键盘控制程序的运行, 若按下B键时, 开始数据采集, 在数据采集过程中, 若主键盘有键按下, 则停止运行, 等待8255小键盘输入;当键值是E时, 返回DOS, 键值是B时, 再次数据采集, 其他键则等待。
2硬件设计
由于采用了PC机和微机原理实验箱, 硬件电路设计相对比较简单, 主要利用微机原理实验箱上的8255并行口、ADC0809、DAC0832、七段LED单元、8253定时/计数器、74LS245输入接口、74LS373输出接口、电位器等单元电路, 经一定的组合后构成了数据采集系统, 硬件电原理框图如图1所示。
3软件设计
本设计通过软件编程, 实现A/D转换器ADC0809对0号输入通道IN0进行0~5 V直流电压的采样, 并将IN0采样获得的值转换成十进制后, 在七段LED上显示;CPU 根据IN0的值, 使8位LED根据设定的要求, 指示相应的电压范围。
3.1设计思想
数据采集系统分成5个功能模块, 分别是键盘扫描模块、A/D和D/A转换模块、BCD转换模块、LED显示模块和8位LED驱动模块。
1) 键盘扫描模块
键盘扫描模块利用8255并行口单元芯片, 采用行反转法或者行扫描法均可实现。
2) A/D转换和D/A转换模块
采用查询方式实现A/D转换, 在ADC0809的0号通道 IN0启动后, 程序不断地检查74LS245的 IN0位, 直到其为高电平, 就读取ADC0809的IN0的值并保存。此数字量分成两部分输出:一部分送给DAC0832输出, 供示波器或三用表检查;另一部分将此数字量转换成十进制数后, 分别送到个位、十分位、百分位存储单元保存, 以供七段LED显示时调用。
3) BCD转换模块
BCD转换模块较简单, 只需将IN0的数字量分别除以51, 其商存入个位存储单元;余数乘以十, 再除以51, 其商存入十分位存储单元;余数再乘以十, 除以51, 若余数大于25, 则商加1, 小于25则舍去, 这样就达到四舍五入的精度, 再把商存入百分位存储单元, 以供显示时调用。
4) LED显示模块
LED显示模块比较简单, 可参考实验8255并行口中的显示模块或自编, 应注意的是在显示个位时, 要加上小数点的显示, 这可以在查表获取个位段码后, 再加上80H来实现, 注意每一位显示后要有适当的延迟时间。
5) 8位LED驱动模块
8位LED驱动模块可通过某个设定的门限值, 将IN0的数字量与其比较, 确定其指示的范围, 在大于4.5 V和小于0.5 V时, 驱动处理比较简单;在4.5 V与0.5 V之间时, 需考虑如何按要求来驱动8位LED。
3.2主要功能模块的程序设计
整个程序的流程图如图2所示。8253、8255等芯片的控制字根据定义即可确定, 此处不作详细说明。
根据图2重点列出A/D转换、BCD转换模块和数码管显示模块这3个功能模块的程序清单如下:
1) A/D转换模块
LL1:MOV DX, ADIN0 ; ADIN0为ADC0809通道0的地址
OUT DX, AL ; 启动0809转换
LL2:MOV DX, DICS ; DICS为74LS245通道0的地址
IN AL, DX;
TEST AL, 1; 查询EOC=1
JZ LL2; EOC≠1则继续查询
MOV DX, ADIN0;
IN AL, DX ; 转换结果读入AL中
2) BCD转换模块
BCD1:MOV AH, 00H;
MOV BL, 33H ; 33H为1V电压对应的十六进制数字量
DIV BL;
MOV A, AL; A中存放的是个位
MOV AL, AH;
MOV AH, 00H ;
MOV CL, 0AH;
MUL CL;
DIV BL;
MOV B, AL; B中存放的是十分位MOV AL, AH
MOV AH, 00H;
MUL CL;
DIV BL;
CMP AH, 19H ; AH>0.5V?
JB BCD2 ;
INC AL;
BCD2:MOV C, AL ; C中存放的是百分位
3) 数码管显示模块 (仅列出用最低位的数码管显示电压值的个位的程序段)
MOV AL, A;
MOV AH, 00H;
LEA BX, DCTBL; DCTBL中存放的是数码管的段码表
MOV SI, AX ;
MOV AL, [BX+SI];
ADD AL, 80H ; 80H对应于小数点的段码
MOV DX, SEGCS ; SEGCS为数码管段码的片选地址
OUT DX, AL;
MOV DX, BITCS ; BITCS为数码管位码的片选地址
MOV AL, 01H ; 选择最低位的数码管显示电压值的个位
OUT DX, AL;
CALL DELAY;
4结束语
该数据采集系统充分利用了现有微机原理及接口实验箱的硬件资源, 是一个综合性的微机原理实验。不仅加深了学生对微机硬件的感性认识, 而且锻炼提高了学生的设计、实现能力, 激发了学生的实践热情。这一类型的综合性实验是微机原理实验教学过程中一个新的发展思路和方向。
摘要:以16位微机原理及接口实验箱为基础, 设计了一个实现数据采集功能的综合实验。该实验综合运用ADC0809、DAC0832、8253定时器、8255并行接口、七段LED (发光二极管) 等功能芯片, 加深了学生对各功能芯片的认识, 提高了学生的综合设计能力, 激发了学生的创新能动性。
关键词:微机原理,实验箱,数据采集系统
参考文献
[1]吴宁.80X86/Pentium微型计算机原理及应用[M].北京:电子工业出版社, 2000.
[2]冉彦中, 杨可扬.用8255设计LED显示器接口实验[J].学科建设与教学改革, 2008 (13) :89-90.
软件程序设计两个班的同学一起选,每人一个题目,不能重复。题目
1、根据键盘输入的一个数字显示相应的数据螺旋方阵。如输入 4,则显示: 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 共需要显示 4^2=16 个数字。
要求:
1、根据键盘输入的数字(3-20),显示相应的数据方阵。
2、画出设计思路流程图,编写相应程序。题目2 通过键盘输入字母,然后显示相应的图形。
要求:输入 L,之后再输入两个点的坐标值,显示一段直线; 输入 R,再输入两个点的坐标值,显示一个矩形框。
题目3 在屏幕上接收一串带数字、字母及其它字符的字符串,然后统计其中数字、字母 的个数,并显示出来。
题目4 编写一个汇编程序,将键盘输入的小写字母用大写显示出来.若输入的是非字符,显示NON CHAR。
题目5 编程序实现十进制数与十六进制数之间的相互转换。
1、从键盘输入一个十进制数,转换成十六进制数,显示出来。要求:需要检测输入一个规范的十进制数。
2、键盘输入一个十六进制数,转换成十进制数,显示出来。要求:需要检测输入一个规范的十六进制数。
题目6 简易信息检索系统。
在数据区定义 msg0-msg9 共十条信息,然后从键盘接收 0-9 的数字,显示相应的信息。题目7 人名排序程序。
从键盘接收十个人名,人名由四个字母构成。按字母上升次序显示所输入的人名,每一个人名占一行。
题目8 在显示屏中央开一个窗口显示自已的名字(以拼音显示)。要求:窗口的大小(行列的象素数,可由用户输入两个数字调整)题目9 计算字符长度
提示输入字符串;输入任意字符串string,点击Enter结束输入;输出字符串string的长度;点击Enter程序退出。
题目10 字符串大小写字母相互转换(1)提示输入字符串;
(2)输入任意字符串string,点击Enter结束输入;将字符串string中的大写字母转换为小写字母输出;点击Enter程序退出;
(3)输入任意字符串string,点击Enter结束输入;将字符串string中的小写字母转换为大写字母输出;点击Enter程序退出。
题目11 计算字符串中某个字符出现次数
提示输入字符串;输入任意字符串string,点击Enter结束输入;提示输入字符;输入任意字符ch,点击Enter结束输入输出字符串string中字符ch的出现次数点击Enter程序退出。题目12 去除字符串中的某个字符
提示输入字符串;输入任意字符串string,点击Enter结束输入;提示输入字符;输入任意字符ch,点击Enter结束输入将字符串中字符ch去除,输出变化后的字符串string2点击Enter程序退出。
题目13 从字符串中截取指定长度的字符子串
提示输入字符串;输入任意字符串string,点击Enter结束输入;提示输入数字;输入任意数字int,点击Enter结束输入;截取string的前int位输出;点击Enter程序退出。
题目14 将字符串补齐为某个特定长度
提示输入字符串;输入任意字符串string,点击Enter结束输入;提示输入数字;输入任意数字int,点击Enter结束输入;提示输入字符;输入任意字符ch,点击Enter结束输入如果字符串string长度大于int,则截取string的前int位输出;如果字符串string长度小于int,则在string后面添加字符ch,直至使字符串长度等于int;如果字符串string长度等于int,则直接输出字符串。点击Enter程序退出。
题目15 字符游戏 随机显示字符ch,等待用户输入,如果输入字符与ch一致,则随机显示下一个字符ch2;否则显示“输入错误”;如此循环;输入Enter结束。
题目16 查找字符串中给定字符首次出现的位置
要求:字符串给定; 从键盘输入单个字符,Enter 键结束并显示该字符所处的位置。题目17 编密码
按一下规律编码:字母A变为E,a变为e,即变成其后的第4个字母,W变为A,Y变为C,Z变为D,非字母不变。如输入“China”变为“Glmre”。
要求:提示输入一字符串;键盘输入,Enter键结束输入,并换行显示结果。题目18 数组排序
数据段里有一个 N 个字的数组A,利用冒泡排序法对数组进行从大到小的排序,并输出结果。
要求:读出数据段中存放的数组A;换行显示排序后的数组A。题目19 分类统计字符数
从键盘输入一行字符,统计字母、空格、数字、其他字符的个数,并显示。要求:提示输入一行字符串; 键盘输入字符串,Enter键结束输入,并换行显示结果。
题目20 模拟幸运抽号
要求:程序运行时,在屏幕上随机跳出一组十位数字的号码,敲空格键时停止,得到一组幸运号码。
题目21 程序设计 设计一个程序,让计算机屏幕输出40个自然数来,使得其中任意两个数之差均不相等。题目22 查表
将键盘输入的数字月份查表后显示出相应英文字母的缩写形式。
要求:提示输入一个月份数字N;从键盘输入数字,Enter键结束输入,并换行显示查表结果。
题目23 数值比较
提示输入数字1;输入任意数字int1,点击Enter结束输入; 提示输入数字2;输入任意数字int2,点击Enter结束输入。
如果int1大于int2,则输出“int1> int2”;如果int1等于int2,则输出“int1=int2”;如果int1小于int2,则输出“int1< int2”;点击 Enter 程序退出。题目24 数值求和 提示输入数字,输入任意数字int,点击Enter结束输入,输出“1+2+3+„+int”的值; 点击 Enter 程序退出。
题目25 质数判断
提示输入数字;输入任意数字int1,点击Enter结束输入;如果int1是质数,则输出“int1 is aprime number”;如果int1不是质数,则输出“int1 is not aprime number”; 点击Enter程序退出。
题目26 闰年判断
提示输入年份; 输入四位数字 int1,点击 Enter 结束输入; 如果 int1 表示的年份是闰年,则输出“int1 years is a leap year” 如果 int1 表示的年份不是闰年,则输出“int1 years is not a leap year” ; 点击 Enter 程序退出。
题目27 编写程序求函数值
有一函数 x(x<1)y= 2x-1(1≤x<10)3x-11(x≥10)编写程序,实现输入 x 值,输出 y 值。
题目28 把 100-200 之间不能被 3 整除的数输出
要求:提示数据范围为 100-200; Enter 键换行显示结果。题目29 用循环程序,显示乘法表
要求输入 0-10 之间的数值 a,显示1到 a 值的乘法表。题目30 三角形判断
输入 a,b,c 三边后,判断是否能构成三角形,如能构成三角形,输出三角形的周长,否则输出“ERROR”。要求:提示输入三角形三边长度 a b c; 键盘输入,中间空格隔开; Enter 键结束输入z2,并换行显示判断结果。
题目31 要求用户从键盘输入一个不超过 5 位的整数,计算并输出该数的各位之和 要求:提示输入一十进制数; 键盘输入,Enter 键结束输入,并换行显示结果。题目32 计算并打印杨辉三角形 要求打印到第 N 行,N 由键盘输入。要求:提示输入一整数 N; 键盘输入,Enter 键结束输入,并换行显示结果。
题目33 成绩转换
给出一个百分制成绩,要求输出成绩等级 A、B、C、D、E。90 分以上为 A,80-89 分为 B,70-79 分为 C,60-69 分为 D,60 分一下为 E。要求:提示输入一分数 score; 键盘输入,Enter 键结束输入,并换行显示结果。
题目34 成绩统计
输入 10 个学生的成绩按后,依次在界面上显示:及格人数 x 个,不及格人数 y 个。要求:提示输入 10 学生成绩 score,成绩之间空格隔开,键盘送入; 换行输出“10 学生成绩分别为„„” 换行显示结果:及格人数 x 个,不及格人数 y。
题目35 求 2 个正整数 N1 和 N2 的最小公倍数
要求:提示输入两十进制正整数; 键盘输入,两整数之间空格隔开,Enter 键结束输入,并换行显示结果。
题目36 求 2 个正整数 N1 和 N2 的最大公约数
要求:提示输入两十进制正整数; 键盘输入,两整数之间空格隔开,Enter 键结束输入,并换行显示结果。
题目37 打印回文数
如果一个数从左边和从右边读都是相同的数,就称它为回文数,例如 383。求出 500 以内的回文数并输出显示。要求:提示数据范围为 0-500; Enter 键,换行显示结果。题目38 计算平方根
从键盘输入一个正整数,计算其平方根并输出。要求:提示输入一整数; 键盘输入,Enter 键结束输入,并换行显示结果。
题目39 屏幕输出 10 到 200 之间的孪生素数对。孪生素数对指两值相差 2 的一对素数,如 11 与 13。题目40 输出满足条件的数
屏幕输出 1000 以内同时满足如下条件的数:个位数与十位数之和除以 10 所得的余数等于百位数字。
题目41 打印输出所有水仙花数
水仙花数:三位数,各个位数的立方和为数字本身。要求:提示“Enter 键输出所有水仙花”; Enter 键,换行显示结果。
题目42 输出完数
一个数如果恰好等于它的因子之和,这个数就成为“完数“。例如 6 的因子为 1,2,3,且 6=1+2+3,因此 6 为完数。编程找出 10000 以内所有完数并输出。要求:提示“Enter 键输出 10000 以内所有完数”; Enter 键,换行显示结果。
题目43 输出满足条件的数
22求具有 abcd=(ab+cd)性质的 4 位数并输出。例如 3025=(30+25)。要求:Enter 键,输出所有结果。
题目44 输出两个数的平方差
求出两个数的平方差,若是负数,要输出负号。要求:由键盘输入两整数 a、b,中间空格隔开; Enter 键结束输入,并换行显示结果。
题目45 输出满足条件的数
从键盘输入一个以 Enter 结束的十进制数字串(不超过 20 个),按 ASCII 码值的降序显示这个数字串 ASCII 码值最大和最小的两个数字。
微机原理课程设计题目——硬件部分
硬件设计题目以班为单位选题,可以2-3个人一个组,每个组的题目不能相同。
题目一 基于汇编语言的电子秒表设计
(一)设计目的
培养和锻炼在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力。通过课程设计,要求熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,得到微机开发应用方面的初步训练。
本设计要求学生采用8086微处理器完成电子秒表系统的独立设计。通过本次课程设计掌握8255、8259、8253等芯片使用方法和编程方法,进一步理解所学的相关芯片的原理、内部结构、使用方法等,学会相关芯片实际应用及编程,同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,为后续课程和今后的工作实践打下一定的基础。
(二)设计内容
设计一个可任意启动/停止的电子秒表,要求用6位LED数码显示,计时单位为1/100秒。利用功能键进行启/停控制。其功能为:上电后计时器清0,当第一次(或奇数次)按下启/停键时开始计数。第2次(或偶数次)按下该键时停止计时,再一次按启/停键时清零 后重新开始计时。可用开关控制,也可用按键控制
(三)设计要求
1、基本要求:
1)设计可以显示1~60秒的无存储功能的秒表,最小单位为毫秒。
2)通过键盘按键控制秒表清零、暂停、继续,退出等。其中数字0控制清零,数字1控制继续和退出。
3)软硬件设计最后通过proteus软件仿真验证。
2、提高要求:
1)秒表可以分组存储、批量显示、倒计时等。
2)采用图像显示,界面精美,设置报警声等
题目二 用8255、8253实现交通灯的模拟控制
一、设计目的
通过该设计,掌握8255并行接口芯片的使用和数码管的使用,并掌握相应的程序设计和电路设计的技能。是对8255并行接口芯片章节理论学习的总结和补充,为后续的硬件课程的学习打下基础。
二、设计内容
南北方向和东西方向的红绿黄灯由对应的2组LED表示,这6个LED灯由8255端口A控制。
三、基本原理
1、交通灯分红黄绿,红灯禁止通行,黄灯减速,绿灯通信。开始南北方向绿灯亮(东西方向应立即变为红灯),时间为60秒,时间到0后,黄灯亮3秒后(东西方向红灯的时间为63秒),红灯亮,红灯为33秒。东西方向绿灯为此0秒,黄灯为3秒。
2、延时1秒可以采用软件延时实现。3、8255端口A与LED连接图如右: 4、8255A控制数码管的原理见项目5。
四、设计步骤
1.电路设计:根据设计内容,通过分析,设计出相应的电路图。2、8255控制字设计:根据要求,设计出各自8255的控制字。
3、程序设计:根据要求,设计程序流程图,并设计相应的程序。
4、验证:用Proteus软件进行仿真测试和验证。
题目三 基于PROTEUS的跑马灯系统设计及仿真
(一)跑马灯的控制
1.通过8255A并口来控制LED发光二极管的亮灭。2.A口作为输出控制LED灯的亮灭,B口作为按键信号的输入作为跑马灯方式选择。
3.用按键控制不同的跑马灯方式。
(二)设计要求
第一种灯光变换效果:L1→L2→L3→L4→L5→L6→L7→L8,如图6所示。
第二种灯光变换效果:L8→L7→L6→L5→L4→L3→L2→L1; 第一种变换效果反向即为第二种效果。
第三种灯光变换效果:L1L8→L2L7→L3L6→L4L5→L3L6→L2L7→L1L8,如下 图所示。
图7 LED第三种变换效果
步骤
1.电路设计:根据设计内容,通过分析,设计出相应的电路图。2、8255控制字设计:根据要求,设计出各自8255的控制字。
3、程序设计:根据要求,设计程序流程图,并设计相应的程序。
4、验证:用Proteus软件进行仿真测试和验证。
题目四 基于PROTEUS的8 个 LED 灯循环闪烁
要求:首先是 1,3,5,7 号 LED 灯依次亮 1 秒钟,当第 7 号 LED 亮后,这四个灯同时 闪烁 5 下; 然后是,2,4,6,8 号依次亮 1 秒钟,当第 8 号 LED 亮后,这四个灯同时闪 烁 5 下。
硬件设计提示:构建8086最小系统,然后设计基于8255A的LED灯控制系统。
设计报告:写出主要设计思路,工作原理;画出硬件接线图;调试出现的问题及解决方法;提交程序清单。
题目五 抢答器控制模拟程序
设计任务:用汇编语言模拟设计一抢答器工作的程序。抢答开始后,显示各抢答输入的 时间,并将最快抢答标识为红色,且闪烁。
基本要求: 具有8个抢答输入(由8个开关代替,其它按键不起作用);显示抢答剩余时间(初始10秒);显示抢答成功者(显示数字);抢答成功后,有声音提示;时间分辨率小于10ms;
设计报告:写出主要设计思路,工作原理;画出硬件接线图;调试出现的问题及解决方法;提交程序清单。
题目六 电子钟的制作
一、设计目的
通过该设计,掌握8255并行接口芯片的使用,和数码管的使用,并掌握相应的程序设计和电路设计的技能。是对8255并行接口芯片章节理论学习的总结和补充,为后续的硬件课程的学习打下基础。
二、设计内容
利用6位数码管显示分和秒,分秒的数字之间用数码管上的小数点隔开。要求秒钟显示从00-59,分钟显示从00-59,60秒后,分钟要进1。
三、基本的技术原理
2、数码管的原理见下图。
数码管由8255端口B和端口C联合控制,端口B负责控制某个数码管中的那些段码的显示和小数点的显示(PB7)。端口C的PC4,PC5,PC6发送的信号通过译码后,负责选择6个数码管中的1个显示,即某时刻只有1个数码显示,如果要让几个同时显示,则采用来回扫描显示的方法,且当某个数码管显示时,必须要有一定的延时,约在100ms左右,太短显示不明显(发光不够),太长会产生闪烁。数码管的控制如下图所示:
3、延时1秒可以采用软件延时实现,也可以利用8253对1MHz的信号分频得到。
四、实验步骤
1.电路设计:根据设计内容,通过分析,设计出相应的电路图。2、8255控制字设计:根据要求,设计出各自8255的控制字。
3、程序设计:根据要求,设计程序流程图,并设计相应的程序。
4、验证:用Proteus软件进行仿真测试和验证。题目七 数字秒表的设计
一、设计目的
通过该设计,掌握8255并行接口芯片、8253定时计数芯片的使用和数码管的使用,并掌握相应的程序设计和电路设计的技能。是对8255并行接口芯片章节理论学习的总结和补充,为后续的硬件课程的学习打下基础。
二、设计内容
利用8253计数器2和计数器1,实现1Hz信号的产生,然后计数器采用硬件触发选通方式计数,CPU读取计数结果,并转换为读秒计数,并把读秒计数的结果用数码管显示出来(2位)。
三、基本原理
1、数码管的工作原理参见项目5。2、8253的连接图如下:
四、设计步骤
1.电路设计:根据设计内容,通过分析,设计出相应的电路图。2、8255控制字设计:根据要求,设计出各自8255的控制字。
3、程序设计:根据要求,设计程序流程图,并设计相应的程序。
【北京邮电大学 微机原理软件实验】推荐阅读:
北京邮电大学软件工程答辩须知01-07
南京邮电大学通信原理06-15
北京邮电大学教育简介07-04
07-11北京邮电大学传播学真题06-19
北京邮电大学历史沿革及历任校10-07
2024年北京邮电大学自主招生自荐信12-11
南京邮电大学公共号码12-21
邮电服务人员礼仪11-16