微机原理接口课程实习Word格式文档下载.docx

上传人:b****6 文档编号:21091869 上传时间:2023-01-27 格式:DOCX 页数:12 大小:89.58KB
下载 相关 举报
微机原理接口课程实习Word格式文档下载.docx_第1页
第1页 / 共12页
微机原理接口课程实习Word格式文档下载.docx_第2页
第2页 / 共12页
微机原理接口课程实习Word格式文档下载.docx_第3页
第3页 / 共12页
微机原理接口课程实习Word格式文档下载.docx_第4页
第4页 / 共12页
微机原理接口课程实习Word格式文档下载.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

微机原理接口课程实习Word格式文档下载.docx

《微机原理接口课程实习Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《微机原理接口课程实习Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。

微机原理接口课程实习Word格式文档下载.docx

实验系统8235的计数器2的CLK2接OPCLK,频率为1.19318MHZ;

GATE2已接+5V;

定时采用软硬件相结合的方式实现。

3.用实验系统的发光二极管模拟红绿灯。

注:

8259A的端口地址为:

20H、21H8255A的端口地址为:

端口A-60H、端口B-61H、端口C-62H、控制端口-63H8253的端口地址为:

计数器0-40H、计数器1-41H、计数器2-42H、控制寄存0-43H。

设计思想

设计数器2的计数初值为59520,由于CLK2接脉冲信号,频率为1.193MHZ,所以每50ms中断一次。

利用CX对不同的状态时间计数,用来实现计数器2对1秒,3秒钟定时。

中断子程序分为数码显示刷新部分和红绿黄灯,各种状态切换部分。

每20次中断即刷新LED显示。

交通灯由8255的C端口输出的数字量控制。

⏹线路图设计

⏹流程图设计

⏹详细设计

设计源程序

1.数据段定义

T1DB00H

T2DB03H

LEDTALDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

用T1作为个位取数的指针

用T2作为十位取数的指针

2.芯片及其端口的初始化

INAL,21H;

ANDAL,08H

OUT21H,AL

MOVAL,80H;

初始化8255,A,B,C三口均工作在方式0

OUT63H,AL

MOVAL,0B6H;

初始化8253,计数器#2工作在方式3,产生方波信号

OUT43H,AL

MOVAX,59500;

OUT42H,AL;

C口传出数据,先传低4位,然后传高4位

MOVAL,AH

OUT42H,AL

3.写IRQ6和IRQ7

PUSHDS

MOVAX,0000H

MOVDS,AX

MOVAX,OFFSETIRQ7

ADDAX,2000H

MOVSI,003CH

MOV[SI],AX

MOVAX,0000H

MOVSI,003EH

POPDS

CLI

PUSHAX

MOVAX,OFFSETIRQ6

MOVSI,0038H

MOV[SI],AX

MOVSI,003AH

POPDS

POPAX

4.显示红绿灯主程序的设计

分别设了用于显示南北道和东西道的不同段,DEC_60表示在南北方向通向,DEC_45表示在东西方向同行,由于篇幅问题,代码查看下面源程序附件。

⏹调试与运行

程序是一开始几个人一起商量后实现的,无论是在语法上和逻辑上都没有大的问题。

接着用G=0000:

2000运行程序,查看验证结果是否和预想的一样。

⏹结果

经装载入程序后,数码管开始显示30,代表交通灯的二极管,显示东西红灯,南北绿灯亮,每一秒数码管减一,减到3时,南北绿灯闪烁直到零换道显示,东西绿灯亮,南北红灯亮,直到数码管计数到3,绿灯闪烁,如此不断循环。

当按下KK+的时候,无论数码管计数到何数值都重新从30秒开始计数。

⏹总结与体会

初学《微机原理》时,感觉摸不着头绪。

面对着众多的术语、概念及原理性的问题不知道该如何下手。

在了解课程的特点后,我发现,应该以微机的整机概念为突破口,在如何建立整体概念上下功夫。

由于自己没有学号汇编语言,所以在代码理解上非常吃力,有时一些稍复杂的代码都要想很久,这是没有打好基础的缘故。

另外,由于我们是参考了别人的程序设计,所以也没有遇到什么很大的问题。

从这次课程设计中,个人也觉得团队的重要性,分工合作不仅能促进办事效率,往往能事半功倍,一起交流还能获得一些未有的知识与见解。

⏹参考文献

[1]林志贵.微型计算机原理与接口技术.北京:

机械工业出版社,2010

⏹附件

源程序:

STACKSEGMENTSTACK

DB64DUP(0)

STACKENDS

DATASEGMENT

LEDTALDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,73H;

发光二极管序列化

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

START:

CLI

MOVAX,DATA

MOVBX,OFFSETLEDTAL

CLI

MOVAX,OFFSETIRQ2

MOVSI,0034H

MOVSI,0036H

POPAX

INAL,21H;

开IRQ7,IRQ6,IRQ2中断源

ANDAL,3BH

MOVAL,80H;

MOVAL,0B6H;

初始化8253,计数器2工作在方式3,产生方波信号

MOVAX,59500;

传入50毫秒的初值

OUT42H,AL;

MLOAD:

MOVT1,00H;

初始值显示30秒,并开始倒计时,个位是0

MOVT2,03H;

设置十位是3

COUNT_1:

MOVCX,14H;

作为1秒的中断次数计数器,南北道倒计时程序

DEC_60:

STI;

开中断

CALLDISP1

CMPT2,00H;

判断十位是否减到0,如果不是则保持南北道绿灯亮

JNZK1

CMPT1,03H;

判断个位是否为3秒,如果是则用全部的灯闪烁表示黄灯

JGK1

MOVAL,33H;

此处灯显示状态不变

OUT62H,AL

CMPCX,0AH;

比较是否是10,进行闪烁。

JGK2

MOVAL,3FH;

绿灯二极管灭

JMPK2

K1:

MOVAL,33H;

显示南北干道绿灯亮通行

K2:

CMPCX,00H;

判断是否到了一秒,然后倒计时减1

JNZDEC_60

如果够1秒,且个位大于3秒

JGLIGHT_60

小于3秒判断十位是否为零?

唔为零,则跳到判断各位是否为零

JNZN1

TESTT1,0FFH;

判断是否个位、十位均减到0

JNZLIGHT_60;

不是则继续倒计时

JMPSLOAD;

是则(标志位ZF=0)跳转到东西干道程序

N1:

TESTT1,0FFH;

此处的功能是判断个位是否为0,且十位不为0

JNZLIGHT_60

MOVT1,09H;

个位为0则使个位为9

DECT2;

十位减1

JMPCOUNT_1

LIGHT_60:

DECT1;

个位减一秒

SLOAD:

MOVT1,00H

MOVT2,03H

COUNT_2:

东西干道倒计时程序

DEC_45:

判断十位是否减到0,如果不是东西道绿灯亮

JNZK3

判断各位是否为3秒,如果是则用全部的灯闪烁表示黄灯

JGK3

MOVAL,0CCH;

CMPCX,0AH

JGK4

MOVAL,0CFH;

JMPK4

K3:

MOVAL,0CCH;

显示东西干道绿灯亮通行

K4:

JNZDEC_45

CMPT1,03H

JNBELIGHT_45

TESTT2,0FFH

JNZN2

JNZLIGHT_45;

JMPMLOAD;

是则(标志位ZF=0)跳转到南北道程序,依次循环

N2:

JNZLIGHT_45

是则使个位为9

JMPCOUNT_2

LIGHT_45:

DECT1

JMPCOUNT_2

IRQ7:

DECCX;

确定是否为1秒的中断服务程序

MOVAL,20H

OUT20H,AL

IRET

IRQ6:

;

kk1控制

MOVT1,00H

MOVT2,03H

MOVAL,20H;

从三十秒重新开始计数

IRET

IRQ2:

MOVT1,00H

MOVT2,00H

MOVAL,21H

OUT20H,AL

MOVAL,0F0H

OUT62H,AL

CALLDELAY

MOVAL,0FFH

JMPIRQ2

IRET

DISP1PROCNEAR;

显示子程序_1,用来显示8段数码管中0-9数字。

MOVDL,0FEH

MOVSI,OFFSETT1;

显示内容首地址送SI

L1:

MOVAL,DL;

点亮最左边的显示器,位码送AL

TESTAL,04H;

判断是否点亮了从右往左的第二个LED

JZEND1;

已经点亮了

OUT60H,AL;

位码送A口

ROLAL,01H;

改变位码

MOVDL,AL;

位码送DL保存

MOVAL,[SI];

去要显示的字符

XLAT;

把显示字符换成相应的8断段码

OUT61H,AL;

显示字符的8段码送端口B

CALLDELAY;

延时,1位显示器点亮的时间

INCSI;

地址加1

JMPL1

END1:

RET

DISP1ENDP

DELAYPROCNEAR;

软件延时子程序_1:

延时5毫秒

PUSHDX

PUSHAX

MOVDX,20

LOOP1:

MOVAX,10

L4:

DECAX

JNZL4

DECDX

JNZLOOP1

POPDX

RET

DELAYENDP

CODEENDS

ENDSTART

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

当前位置:首页 > 外语学习 > 韩语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1