创新设计报告

  • 格式:pdf
  • 大小:570.44 KB
  • 文档页数:11

下载文档原格式

  / 11
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

北京科技⼤学计算机与通信⼯程学院创新设计实验报告

实验题⽬: 定时炸弹计时器

学⽣姓名:_____________xxx_____________

专业:________计算机科学与技术_______

班级:____________xxx _____________

学号:___________xxx_____________

指导教师: 郑 榕 实验成绩:________________________________实验地点:___________机电楼301___________

实验时间:___2017___年__12__⽉__6__⽇

⼀一、实验⽬目的

学习各接⼜芯⽚功能及应⽤特性,能够组合多个接⼜芯⽚,完成设计实验。

⼆二.实验设备(环境)

微机接⼝口实验系统,32位win7系统,8255\8254\8259芯⽚片\8位数码管\蜂鸣器器

三、实验要求

根据已学习各接⼜芯⽚的应⽤特性,参考本讲义前述实验接线图及代码,⾃⼰设计完成综合设计实验。要求所选多个芯⽚或模块的加权值总和≥2.5,权值列表见实验讲义的表3-1。并且,所选芯⽚或模块中必须包含8259或8254芯⽚的其中⼀个作为功能模块部分。

特别要求:

1、2017年创新实验不得设计交通灯或简单流⽔灯(流⽔模式≤4种)。

2、⾄少要实现实验箱的多模块创新设计。

3、同时实现实验箱设计与Proteus仿真设计,获得相应分数,如果仅实现实验箱设计,则⽆法得到仿真设计部分的分数。

四、实验结果与分析

1.设计应⽤场景及实现功能

定时炸弹启动后,计时器开始35秒计时,8位输⼊开关全部打开,其中仅有⼀个开关可以让定时器停⽌计时,当拨动这个正确的开关后,定时器停⽌计时,表⽰炸弹成功解除,当拨动错误的开关时,定时器倒计时速度加快10倍,当归0后炸弹爆炸(蜂鸣器响),若不拨任何开关,则定时器每秒减1,等到归0后炸弹爆炸(蜂鸣器响)

2.设计思路

使⽤8254计数器的两个⼜串联,每⼀秒钟输出⼀次脉冲到8259芯⽚作为其中断源,8259芯⽚采⽤查询⽅式⼯作,每次收到中断启动中断程序,将数码管输出的数

字减1,开始⼯作后通过循环让8位数码管中的两位分别输出3和5,每次循环⼊⼜处检测8位开关是否正确拨动,循环结束时查询8259是否收到了新的中断.若收到则调⽤函数将数码管的显⽰值减⼀.若减为0后则启动爆炸程序,若检测到正确的开关被关闭则启动取消程序

3.设计接线图

4.程序流程图

5.仿真设计实现

6.实验源代码

I8259_1 EQU 2B0H

I8259_2 EQU 2B1H

I8259_3 EQU 2B1H

I8259_4 EQU 2B1H

O8259_1 EQU 2B1H

O8259_2 EQU 2B0H

O8259_3 EQU 2B0H

IO8255_MODE EQU 28BH

IO8255_A EQU 288H

IO8255_B EQU 289H

IO8255_C EQU 28AH

IO8254_MODE EQU 283H

IO8254_COUNT0 EQU 280H IO8254_COUNT1 EQU 281H IO8254_COUNT2 EQU 282H DATA SEGMENT

ONE EQU 110B

TWO EQU 1011011B

THREE EQU 1001111B

FOUR EQU 1100110B

FIVE EQU 1101101B

SIX EQU 1111101B

SEVEN EQU 111B

EIGHT EQU 1111111B

NINE EQU 1101111B

ZERO EQU 111111B

TIME1 DB 1001111B

TIME2 DB 1101101B

CXX DW 1H

AXX DW 1H

DATA ENDS

STACKS SEGMENT

DB 100 DUP(?)

STACKS ENDS

STACK1 SEGMENT STACK

DW 256 DUP(?)

STACK1 ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA, SS:STACKS, ES:DATA

.386

START: MOV AX,DATA

MOV DS, AX

MOV ES, AX

MOV AX, STACKS

MOV SS, AX

MOV DX,IO8255_MODE

MOV AL,89H

OUT DX,AL

MOV DX,IO8254_MODE

MOV AL,27H

OUT DX,AL

MOV AL,67H

OUT DX,AL

MOV DX,IO8254_COUNT0

MOV AL,10H

OUT DX,AL

MOV DX,IO8254_COUNT1

MOV AL,20H

OUT DX,AL

MOV DX, I8259_1

MOV AL, 12H

OUT DX,AL

MOV DX,I8259_2

MOV AL,0B0H

OUT DX,AL

MOV AL,03H

OUT DX,AL

MOV DX, O8259_1

MOV AL, 00H

OUT DX,AL

DISPLAY1: ;程序开始运⾏行行时使⽤用DISPLAY1显示

MOV DX,IO8255_C

IN AL,DX

CMP AL,11111111B ;判断是否有开关按下

JNZ JUDGE

MOV AL,1B

MOV DX,IO8255_B ;⽤用来轮流输出个位和⼗十位上的数字