微机原理上机实验七+十四实验报告 8253方波实验 电子钟设计实验.docx

上传人:b****7 文档编号:16296386 上传时间:2023-07-12 格式:DOCX 页数:15 大小:48.48KB
下载 相关 举报
微机原理上机实验七+十四实验报告 8253方波实验 电子钟设计实验.docx_第1页
第1页 / 共15页
微机原理上机实验七+十四实验报告 8253方波实验 电子钟设计实验.docx_第2页
第2页 / 共15页
微机原理上机实验七+十四实验报告 8253方波实验 电子钟设计实验.docx_第3页
第3页 / 共15页
微机原理上机实验七+十四实验报告 8253方波实验 电子钟设计实验.docx_第4页
第4页 / 共15页
微机原理上机实验七+十四实验报告 8253方波实验 电子钟设计实验.docx_第5页
第5页 / 共15页
微机原理上机实验七+十四实验报告 8253方波实验 电子钟设计实验.docx_第6页
第6页 / 共15页
微机原理上机实验七+十四实验报告 8253方波实验 电子钟设计实验.docx_第7页
第7页 / 共15页
微机原理上机实验七+十四实验报告 8253方波实验 电子钟设计实验.docx_第8页
第8页 / 共15页
微机原理上机实验七+十四实验报告 8253方波实验 电子钟设计实验.docx_第9页
第9页 / 共15页
微机原理上机实验七+十四实验报告 8253方波实验 电子钟设计实验.docx_第10页
第10页 / 共15页
微机原理上机实验七+十四实验报告 8253方波实验 电子钟设计实验.docx_第11页
第11页 / 共15页
微机原理上机实验七+十四实验报告 8253方波实验 电子钟设计实验.docx_第12页
第12页 / 共15页
微机原理上机实验七+十四实验报告 8253方波实验 电子钟设计实验.docx_第13页
第13页 / 共15页
微机原理上机实验七+十四实验报告 8253方波实验 电子钟设计实验.docx_第14页
第14页 / 共15页
微机原理上机实验七+十四实验报告 8253方波实验 电子钟设计实验.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机原理上机实验七+十四实验报告 8253方波实验 电子钟设计实验.docx

《微机原理上机实验七+十四实验报告 8253方波实验 电子钟设计实验.docx》由会员分享,可在线阅读,更多相关《微机原理上机实验七+十四实验报告 8253方波实验 电子钟设计实验.docx(15页珍藏版)》请在冰点文库上搜索。

微机原理上机实验七+十四实验报告 8253方波实验 电子钟设计实验.docx

微机原理上机实验七+十四实验报告8253方波实验电子钟设计实验

 

微机原理上机实验报告

实验七:

8253方波实验

实验十四:

电子钟

 

微机原理上机实验(七)实验报告

实验七:

8253方波实验

一、实验目的

了解8253的内部结构、工作原理;了解8253与8086的接口逻辑;熟悉8253的控制寄存器和初始化编程方法,熟悉8253的6种工作模式。

二、实验内容

1、编写程序:

使用8253的计数器0和计数器1实现对输入时钟频率的两级分频,得到一个周期为1秒的方波,用此方波控制蜂鸣器,发出报警信号,也可以将输入脚接到逻辑笔上来检验程序是否正确。

2、连接线路,验证8253的功能,熟悉它的使用方法。

三、实验原理图

四、实验步骤

1、连线说明:

C4区:

CS、A0、A1

——

A3区:

CS2、A0、A1

C4区:

CLK0

——

B2区:

2M

C4区:

OUT0

——

C4区:

CLK1

C4区:

OUT1

——

F8区:

Ctrl(蜂鸣器)

2、测试实验结果:

蜂鸣器发出时有时无的声音;用逻辑笔测试蜂鸣器的输入端口,红绿灯交替点亮。

实验代码

COM_ADDR

EQU

0263H

T0_ADDR

EQU

0260H

T1_ADDR

EQU

0261H

_STACK

SEGMENT

STACK

DW

100DUP(?

_STACK

ENDS

CODE

SEGMENT

START

PROC

NEAR

ASSUME

CS:

CODE,SS:

_STACK

MOV

DX,COM_ADDR

MOV

AL,35H

OUT

DX,AL

;计数器T0设置在模式2状态,BCD码计数

MOV

DX,T0_ADDR

MOV

AL,00H

OUT

DX,AL

MOV

AL,10H

OUT

DX,AL

;CLK0/1000

MOV

DX,COM_ADDR

MOV

AL,77H

OUT

DX,AL

;计数器T1为模式3状态,输出方波,BCD码计数

MOV

DX,T1_ADDR

MOV

AL,00H

OUT

DX,AL

MOV

AL,10H

OUT

DX,AL

;CLK1/1000

JMP

$

;OUT1输出1S的方波

START

ENDP

CODE

ENDS

END

START

五、实验思考题

1.8253还有其它五种工作方式,其它工作模式下,硬件如何设计?

程序如何编写?

在其他工作模式下,OUT端口和CLK端口的连接方式基本不变,需要对应的修改gate端口的连接。

程序编写上需要注意修改对应的控制字的内容。

2.绘制本实验的详细实验电路图。

 

微机原理上机实验(十四)实验报告

实验十四:

电子钟

一、实验目的

进一步熟悉8253、8259、8279

二、实验内容

1、使用8253定时功能,产生0.5S的定时中断给8259

2、在F5区的数码管上显示时间

3、允许设置时钟初值

三、实验步骤

1、连线说明:

D3区:

CS、A0、A1

——

A3区:

CS1、A0、A1

D3区:

PC0、PC1

——

F5区:

KL1、KL2

D3区:

JP20(PB)、B、C

——

F5区:

A、B、C

B3区:

CS、A0

——

A3区:

CS3、A0

B3区:

INT、INTA

——

A3区:

INTR、INTA

B3区:

IR0

——

C4区:

OUT0

C4区:

CS(8253)、A0、A1

——

A3区:

CS2、A0、A1

(注意连线方向)

2、运行程序,按F5区的F键,设置时钟初值。

3、观察F5区数码管上显示的时间是否正确

四、实验代码

EXTRN

InitKeyDisplay:

NEAR,Display8:

NEAR,GetKeyA:

NEAR,GetKeyB:

NEAR

IO8259_0

EQU

0250H

IO8259_1

EQU

0251H

Con_8253

EQU

0263H

T0_8253

EQU

0260H

_STACK

SEGMENT

STACK

DW

200DUP(?

_STACK

ENDS

_DATA

SEGMENT

WORDPUBLIC'DATA'

halfsec

DB

0

;0.5秒计数

Sec

DB

0

;秒

Min

DB

0

;分

hour

DB

0

;时

buffer

DB

8DUP(0)

;显示缓冲区,8个字节

buffer1

DB

8DUP(0)

;显示缓冲区,8个字节

bNeedDisplay

DB

0

;需要刷新显示

number

DB

0

;设置哪一位时间

bFlash

DB

0

;设置时是否需要刷新

_DATA

ENDS

CODE

SEGMENT

START

PROC

NEAR

ASSUME

CS:

CODE,DS:

_DATA,SS:

_STACK

MOV

AX,_DATA

MOV

DS,AX

MOV

ES,AX

NOP

CALL

InitKeyDisplay

;对键盘、数码管扫描控制器8255初始化

mov

sec,0

;时分秒赋初值23:

58:

00

mov

min,58

mov

hour,23

MOV

bNeedDisplay,1

;显示初始值

CALL

Init8253

CALL

Init8259

CALL

WriIntver

STI

MAIN:

CALL

GetKeyA

;按键扫描

JNB

Main1

CMP

AL,0FH

;设置时间

JNZ

Main1

CALL

SetTime

Main1:

CMP

bNeedDisplay,0

JZ

MAIN

CALL

Display_LED

;显示时分秒

MOV

bNeedDisplay,0

;1s定时到刷新转速

Main2:

JMP

MAIN;循环进行实验内容介绍与测速功能测试

SetTime

PROC

NEAR

LEA

SI,buffer1

CALL

TimeToBuffer

MOV

Number,0

Key:

CMP

bFlash,0

JZ

Key2

LEA

SI,buffer1

LEA

DI,buffer

MOV

CX,8

REP

MOVSB

CMP

halfsec,0

JNZ

FLASH

MOV

BL,number

NOT

BL

AND

BX,07H

LEA

SI,buffer

MOV

BYTEPTR[SI+BX],10H

;当前设置位置产生闪烁效果

FLASH:

LEA

SI,buffer

CALL

Display8

MOV

bFlash,0

Key2:

CALL

GetKeyA

JNB

Key

CMP

AL,0EH

;放弃设置

JNZ

Key1

JMP

Exit

Key1:

CMP

AL,0FH

JZ

SetTime8

SetTime1:

CMP

AL,10

JNB

Key

;无效按键

CMP

number,0

JNZ

SetTime2

CMP

AL,3

;调整时的十位数

JNB

Key

MOV

buffer1+7,AL

JMP

SetTime7

SetTime2:

CMP

number,1

JNZ

SetTime3

CMP

buffer1+7,1

;调整时的个位数

JZ

SetTime2_1

CMP

AL,4

JNB

Key

SetTime2_1:

MOV

buffer1+6,AL

INC

number

JMP

SetTime7

SetTime3:

CMP

number,3

JNZ

SetTime4

CMP

AL,6

;调整分的十位数

JNB

Key

MOV

buffer1+4,AL

JMP

SetTime7

SetTime4:

CMP

number,4

JNZ

SetTime5

MOV

buffer1+3,AL

;调整分的个位数

INC

number

JMP

SetTime7

SetTime5:

CMP

number,6

JNZ

SetTime6

CMP

AL,6

;调整秒的十位数

JB

SetTime5_1

JMP

Key

SetTime5_1:

MOV

buffer1+1,AL

JMP

SetTime7

SetTime6:

MOV

buffer1,AL

;调整秒的个位数

SetTime7:

INC

number

CMP

number,8

JNB

SetTime8

MOV

bFlash,1

;需要刷新

JMP

Key

SetTime8:

MOV

AL,buffer1+1

;确认

MOV

BL,10

MUL

BL

ADD

AL,buffer1

MOV

sec,AL

;秒

MOV

AL,buffer1+4

MUL

BL

ADD

AL,buffer1+3

MOV

min,AL

;分

MOV

AL,buffer1+7

MUL

BL

ADD

AL,buffer1+6

MOV

hour,AL

;时

JMP

Exit

Exit:

RET

SetTime

ENDP

;hourminsec转化成可显示格式

TimeToBuffer

PROC

NEAR

MOV

AL,sec

XOR

AH,AH

MOV

BL,10

DIV

BL

MOV

[SI],AH

MOV

[SI+1],AL

;秒

MOV

BYTEPTR[SI+2],10H

;这位不显示

MOV

AL,min

XOR

AH,AH

DIV

BL

MOV

[SI+3],AH

MOV

[SI+4],AL

;分

MOV

BYTEPTR[SI+5],10H

;这位不显示

MOV

AL,hour

XOR

AH,AH

DIV

BL

MOV

[SI+6],AH

MOV

[SI+7],AL

;时

RET

TimeToBuffer

ENDP

;显示时分秒

Display_LED

PROC

NEAR

LEA

SI,buffer

CALL

TimeToBuffer

LEA

SI,buffer

CALL

Display8

;显示

RET

Display_LED

ENDP

;0.5s产生一次中断

Timer0Int:

PUSH

AX

PUSH

DX

MOV

bFlash,1

INC

halfsec

CMP

halfsec,2

JNZ

Timer0Int1

MOV

bNeedDisplay,1

MOV

halfsec,0

INC

sec

CMP

sec,60

JNZ

Timer0Int1

MOV

sec,0

INC

min

CMP

min,60

JNZ

Timer0Int1

MOV

min,0

INC

hour

CMP

hour,24

JNZ

Timer0Int1

MOV

hour,0

Timer0Int1:

MOV

DX,IO8259_0

MOV

AL,20H

OUT

DX,AL

POP

DX

POP

AX

IRET

Init8253

PROC

NEAR

MOV

DX,Con_8253

MOV

AL,34H

OUT

DX,AL

;计数器T0设置在模式2状态,HEX计数

MOV

DX,T0_8253

MOV

AL,12H

OUT

DX,AL

MOV

AL,7AH

OUT

DX,AL

;CLK0=62.5kHz,0.5s定时

RET

Init8253

ENDP

Init8259

PROC

NEAR

MOV

DX,IO8259_0

MOV

AL,13H

OUT

DX,AL

MOV

DX,IO8259_1

MOV

AL,08H

OUT

DX,AL

MOV

AL,09H

OUT

DX,AL

MOV

AL,0FEH

OUT

DX,AL

RET

Init8259

ENDP

WriIntver

PROC

NEAR

PUSH

ES

MOV

AX,0

MOV

ES,AX

MOV

DI,20H

LEA

AX,Timer0Int

STOSW

MOV

AX,CS

STOSW

POP

ES

RET

WriIntver

ENDP

START

ENDP

CODE

ENDS

END

START

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2