微机原理课程设计.docx

上传人:b****5 文档编号:8316120 上传时间:2023-01-30 格式:DOCX 页数:20 大小:216.13KB
下载 相关 举报
微机原理课程设计.docx_第1页
第1页 / 共20页
微机原理课程设计.docx_第2页
第2页 / 共20页
微机原理课程设计.docx_第3页
第3页 / 共20页
微机原理课程设计.docx_第4页
第4页 / 共20页
微机原理课程设计.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

微机原理课程设计.docx

《微机原理课程设计.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计.docx(20页珍藏版)》请在冰豆网上搜索。

微机原理课程设计.docx

微机原理课程设计

微机原理与接口技术

课程设计

设计题目:

8*2小键盘控制LED亮灭

 

设计人:

专业班级:

自动化0703

学号:

2009年12月

 

第一章绪论

1.1设计题目简介

1.1.1设计背景

经过一个学期《微机原理与接口技术》的学习,我们掌握了很多有关各种芯片和编程的知识,为了更好地将我们的知识学以致用,我们做了下面的课程设计小键盘控制红绿灯。

1.1.2设计功能

小键盘上0,1,2,3,4号键控制红绿灯的亮灭情况:

按‘0’,则黄灯先亮接着红灯亮,接着绿灯亮最后都亮开始循环

按‘1’,则绿灯亮开始闪烁。

按‘2’,则黄灯亮开始闪烁。

按‘3’,则从L1至L12依次循环亮起

按‘4’,则L2,L8黄灯亮,L4,L10红灯亮,L6,L12绿灯亮循环

 

第二章硬件设计

2.1实验装置介绍

本设计用到的实验装置有IBMPC机(586)和CES-86通用微机实验装置。

IBMPC机是基于DOS操作系统的PC机,可用于汇编语言的编译,运行,调试;CES-86型通用实验装置的特点是“单板积木式”电路,其表现方式为在表面铜箔板上腐蚀出具有21个独立电路的印刷电路块。

它可以和任何一种PC机相连组成系统,相连后即可以再此装置上进行硬件拼接,组成各种实验系统。

这21块积木在试验箱上面分布如图:

“单积木式”示意图

本设计主要选用其中K:

可编程并行通信接口(8255A)电路;I:

发光二极管(LED)显示电路;M:

十六进制键盘电路来实现具体功能。

2.2硬件电路设计

2.2.1电路图

 

红绿灯闪烁实验台接线图

 

2.2.2芯片介绍

 

 

8255是40引脚双列直插式芯片,片内有A,B,C3个8位I/O端口,可提供24条可编程输入/输出端口线。

其内部结构由与CPU接口电路,内部控制逻辑电路和与外设的输入/输出接口电路三部分组成。

引脚信号介绍如下:

D7~D0:

三态,双向数据线,与CPU数据总线链接,用来传输数据。

CS:

片选信号,低电平有效时,芯片被选中。

A1,A0:

地址线,用来选择内部端口。

RD:

读出信号线,低电平有效时,允许数据读出。

WR:

写入信号线,低电平有效时,允许数据写入。

RESET:

复位信号线,高电平有效时,将所有内部寄存器清零。

PA7~PA0:

A口输入/输出信号线。

PB7~PB0:

B口输入/输出信号线。

PC7~PC0:

C口输入/输出信号线。

VCC:

+5V电源。

GND:

电源地线。

8255A芯片有0,1,2三种工作方式。

其中A,B,C三个端口都可以工作在方式0;A,B两端口可工作在方式1;仅有A口可工作在方式2。

 

第三章软件设计

3.1主程序

3.1.1主程序及注释

LIGHTSMACROPB,PC;宏定义两个变量

MOVDX,CTL

MOVAL,80H;写入控制字

OUTDX,AL

MOVDX,DB55

MOVAL,PB

OUTDX,AL

MOVDX,DC55

MOVAL,PC

OUTDX,AL

CALLDELAY3;调用延时子程序

ENDM;宏定义结束

DATASEGMENT;数据段

DA55EQU318H;端口A地址

DB55EQU319H;端口B地址

DC55EQU31AH;端口C地址

CTLEQU31BH;控制端口地址

TABLEDW0101H,0102H,0104H,0108H,0110H,0120H,0140H,0180H

DW0201H,0202H,0204H,0208H,0210H,0220H,0240H,0280H;键盘代码

CHARDB’CDEFBA9845673210’;字符表

CRTDB’PLAYANYKEYINTHESMALLKEYBOARD!

’,0AH,0DH

DB’ITWILLBEONTHESCREEN!

ENDWITHE’,0AH,0DH,’$’;显示信息

MESSDB’OVER’,0AH,0DH,’$’

DATAENDS

STACKSEGMENTPARASTACK’STACK’;堆栈段

STADW50DUP(?

STACKENDS

CODESEGMENT;代码段

MAINPROCFAR;主程序

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX;数据段寄存器装入数据段首地址

MOVDX,OFFSETCRT;显示提示信息

MOVAH,09H

INT21H

LOP:

CALLKEY;键盘扫描

CMPDL,’E’;是字符’E’吗?

JELP;是的,就跳转到LP

JNZLOP;不是执行LOP

CALLSHOW;调用宏定义

LP:

MOVAX,4C00H

INT21H;返回DOS

RET

MAINENDP;主程序结束

3.1.2主程序功能:

主程序很短,原因是设立了一个宏定义,这样大大地减少了程序的冗余。

通过主程序调用宏定义来实现整个程序,从而使LED按我们程序设计的要求来显示。

3.1.3流程图

 

3.2子程序

3.2.1子程序及注释

KEYPROCNEAR;子程序内容

LP1:

MOVAL,82H

MOVDX,CTL

OUTDX,AL

WAIT1:

MOVAL,00

MOVDX,DA55;输出到A口

OUTDX,AL

MOVDX,DB55

INAL,DX

CMPAL,0FFH

JZWAIT1

PUSHAX;AX出桟

PUSHAX

MOVCX,1000H

LP2:

LOOPLP2;循环执行LP2

MOVDX,CTL

MOVAL,90H

OUTDX,AL

MOVDX,DB55

POPAX

OUTDX,AL

MOVDX,DA55

INAL,DX

POPBX;BX出桟

MOVAH,BL

NOTAX

MOVSI,OFFSETTABLE

MOVDI,OFFSETCHAR

MOVCX,16

LP3:

CMPAX,[SI]

JZLP4;AX—[SI]=0,则转到执行LP4

DECCX;CX--1

JZLP1

ADDSI,2

INCDI

JMPLP3

LP4:

MOVDL,[DI]

MOVAH,02

INT21H

PUSHDX

MOVAL,82H

MOVDX,CTL

OUTDX,AL

WAIT2:

MOVAL,00

MOVDX,DA55

OUTDX,AL

MOVDX,DB55

INAL,DX

CMPAL,0FFH

JNZWAIT2

POPDX

RET

KEYENDP;小键盘扫描程序结束

SHOWPROCNEAR

TOP:

CMPDL,’4’;测试的新数据和‘4’比较

JLETOP4;如果小于等于则跳转到TOP4

JMPFF1;否则跳转至FF1

TOP4:

JEDONE4;如果等于‘4’则执行DONE4

CMPDL,’2’;DL是否等于‘2’

JLETOP2如果小于等于则跳转至TOP2;

JMPDONE3;否则跳转至DONE3

FF1:

MOVAX,DATA

MOVDS,AX

MOVDX,OFFSETMESS

MOVAH,09H

INT21H

MOVAX,4C00H

INT21H

TOP2:

JEDONE2;如果等于则执行TOP2

CMPDL,’1’;DL与‘1’比较

JESP1;等于则执行SP1

JMPDONE0;否则跳转至DONE0

DONE4:

MOVCX,0005H

L4:

LIGHTS0FFH,0FFH

LIGHTS10101111B,10101010B;黄灯L2.L8亮红灯L4.L10亮,绿灯L6.L12亮

LOOPL4;循环5次

CALLKEY;扫描键盘

JMPTOP

DONE3:

MOVCX,0005H

L3:

LIGHTS0FFH,0FFH

LIGHTS0FFH,01111111B

LIGHTS11101111B,0FFH

LIGHTS0FFH,11110111B

LIGHTS0FFH,10111111B

LIGHTS11011111B,0FFH

LIGHTS0FFH,11111011B

LIGHTS0FFH,11011111B

LIGHTS10111111H,0FFH

LIGHTS0FFH.11111101B

LIGHTS0FFH,11101111B

LIGHTS01111111B,0FFH

LIGHTS0FFH,11111110B;从L1,L12依次循环亮

LOOPL3;循环5次

CALLKEY

JMPTOP

SP1:

JMPDONE1

DONE2:

MOVCX,0005H

L2:

LIGHTS0FFH,0FFH;所有灯都灭

LIGHTS00H,0FFH;将黄灯开

LOOPL2

CALLKEY

JMPTOP

DONE1:

MOVCX,0005H

L1:

LIGHTS0FFH,0FFH

LIGHTS0FFH,0F0H;将绿灯开

LOOPL1

CALLKEY

JMPTOP

DONE0:

MOVCX,0005H

L0:

LIGHTS0FFH,0FFH

LIGHTS0FH,0FFH;将黄灯开

LIGHTS0FH,0FH;将黄灯开,且红灯也开

LIGHTS0FH,00H;所有灯都开

LOOPL0

CALLKEY

JMPTOP

DELAY1PROCNEAR;延时子程序开始

PUSHCX

MOVCX,0FFFFH

CCC:

LOOPCCC

POPCX

RET

DELAY1ENDP;延时程序结束

DELAY3PROCNEAR;延时程序开始

PUSHAX

PUAHCX

MOVCX,00F0H

VVV:

CALLDELAY1

LOOPVVV

POPCX

POPAX

RET

DELAY3ENDP;延时程序结束

SHOWENDP

CODEENDS

ENDSTART;程序结束

KEYPROCNEAR;子程序内容

LP1:

MOVAL,82H

MOVDX,CTL

OUTDX,AL

WAIT1:

MOVAL,00

MOVDX,DA55;输出到A口

OUTDX,AL

MOVDX,DB55

INAL,DX

CMPAL,0FFH

JZWAIT1

PUSHAX;AX出桟

PUSHAX

MOVCX,1000H

LP2:

LOOPLP2;循环执行LP2

MOVDX,CTL

MOVAL,90H

OUTDX,AL

MOVDX,DB55

POPAX

OUTDX,AL

MOVDX,DA55

INAL,DX

POPBX;BX出桟

MOVAH,BL

NOTAX

MOVSI,OFFSETTABLE

MOVDI,OFFSETCHAR

MOVCX,16

LP3:

CMPAX,[SI]

JZLP4;AX—[SI]=0,则转到执行LP4

DECCX;CX--1

JZLP1

ADDSI,2

INCDI

JMPLP3

LP4:

MOVDL,[DI]

MOVAH,02

INT21H

PUSHDX

MOVAL,82H

MOVDX,CTL

OUTDX,AL

WAIT2:

MOVAL,00

MOVDX,DA55

OUTDX,AL

MOVDX,DB55

INAL,DX

CMPAL,0FFH

JNZWAIT2

POPDX

RET

KEYENDP;小键盘扫描程序结束

SHOWPROCNEAR

TOP:

CMPDL,’4’;测试的新数据和‘4’比较

JLETOP4;如果小于等于则跳转到TOP4

JMPFF1;否则跳转至FF1

TOP4:

JEDONE4;如果等于‘4’则执行DONE4

CMPDL,’2’;DL是否等于‘2’

JLETOP2如果小于等于则跳转至TOP2;

JMPDONE3;否则跳转至DONE3

FF1:

MOVAX,DATA

MOVDS,AX

MOVDX,OFFSETMESS

MOVAH,09H

INT21H

MOVAX,4C00H

INT21H

TOP2:

JEDONE2;如果等于则执行TOP2

CMPDL,’1’;DL与‘1’比较

JESP1;等于则执行SP1

JMPDONE0;否则跳转至DONE0

DONE4:

MOVCX,0005H

L4:

LIGHTS0FFH,0FFH

LIGHTS10101111B,10101010B;黄灯L2.L8亮红灯L4.L10亮,绿灯L6.L12亮

LOOPL4;循环5次

CALLKEY;扫描键盘

JMPTOP

DONE3:

MOVCX,0005H

L3:

LIGHTS0FFH,0FFH

LIGHTS0FFH,01111111B

LIGHTS11101111B,0FFH

LIGHTS0FFH,11110111B

LIGHTS0FFH,10111111B

LIGHTS11011111B,0FFH

LIGHTS0FFH,11111011B

LIGHTS0FFH,11011111B

LIGHTS10111111H,0FFH

LIGHTS0FFH.11111101B

LIGHTS0FFH,11101111B

LIGHTS01111111B,0FFH

LIGHTS0FFH,11111110B;从L1,L12依次循环亮

LOOPL3;循环5次

CALLKEY

JMPTOP

SP1:

JMPDONE1

DONE2:

MOVCX,0005H

L2:

LIGHTS0FFH,0FFH;所有灯都灭

LIGHTS00H,0FFH;将黄灯开

LOOPL2

CALLKEY

JMPTOP

DONE1:

MOVCX,0005H

L1:

LIGHTS0FFH,0FFH

LIGHTS0FFH,0F0H;将绿灯开

LOOPL1

CALLKEY

JMPTOP

DONE0:

MOVCX,0005H

L0:

LIGHTS0FFH,0FFH

LIGHTS0FH,0FFH;将黄灯开

LIGHTS0FH,0FH;将黄灯开,且红灯也开

LIGHTS0FH,00H;所有灯都开

LOOPL0

CALLKEY

JMPTOP

DELAY1PROCNEAR;延时子程序开始

PUSHCX

MOVCX,0FFFFH

CCC:

LOOPCCC

POPCX

RET

DELAY1ENDP;延时程序结束

DELAY3PROCNEAR;延时程序开始

PUSHAX

PUAHCX

MOVCX,00F0H

VVV:

CALLDELAY1

LOOPVVV

POPCX

POPAX

RET

DELAY3ENDP;延时程序结束

SHOWENDP

CODEENDS

ENDSTART;程序结束

3.2.2子程序功能

按‘0’,则黄灯先亮接着红灯亮,接着绿灯亮最后都亮开始循环

按‘1’,则绿灯亮开始闪烁。

按‘2’,则黄灯亮开始闪烁。

按‘3’,则从L1至L12依次循环亮起

按‘4’,则L2,L8黄灯亮,L4,L10红灯亮,L6,L12绿灯亮循环

3.2.3流程图(见下页)

3.3程序清单

LIGHTSMACROPB,PC;宏定义两个变量

MOVDX,CTL

MOVAL,80H;写入控制字

OUTDX,AL

MOVDX,DB55

MOVAL,PB

OUTDX,AL

MOVDX,DC55

MOVAL,PC

OUTDX,AL

CALLDELAY3;调用延时子程序

ENDM;宏定义结束

DATASEGMENT;数据段

DA55EQU318H;端口A地址

DB55EQU319H;端口B地址

DC55EQU31AH;端口C地址

CTLEQU31BH;控制端口地址

TABLEDW0101H,0102H,0104H,0108H,0110H,0120H,0140H,0180H

DW0201H,0202H,0204H,0208H,0210H,0220H,0240H,0280H;键盘代码

CHARDB’CDEFBA9845673210’;字符表

CRTDB’PLAYANYKEYINTHESMALLKEYBOARD!

’,0AH,0DH

DB’ITWILLBEONTHESCREEN!

ENDWITHE’,0AH,0DH,’$’;显示信息

MESSDB’OVER’,0AH,0DH,’$’

DATAENDS

STACKSEGMENTPARASTACK’STACK’;堆栈段

STADW50DUP(?

STACKENDS

CODESEGMENT;代码段

MAINPROCFAR;主程序

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX;数据段寄存器装入数据段首地址

MOVDX,OFFSETCRT;显示提示信息

MOVAH,09H

INT21H

LOP:

CALLKEY;键盘扫描

CMPDL,’E’;是字符’E’吗?

JELP;是的,就跳转到LP

JNZLOP;不是执行LOP

CALLSHOW;调用宏定义

LP:

MOVAX,4C00H

INT21H;返回DOS

RET

MAINENDP;主程序结束

 

第四章课程设计总结

通过一个学期的《微机原理与接口技术》课程的学习,我们基本上掌握了很多内容,并将这些知识运用到了我们的课程设计中。

在课设的几天里我们不停地上机调试程序,不时地再翻阅很多资料,以前总觉的自己WORD,WPS学的还行,但是通过这一次的课设也知道了自己的很多不足之处。

在实践地过程中遇到了很多以前没有见过的问题,就是这些一点一滴的过程才有了我们今天的成果。

在这几天里我们学到的不仅是知识以及实践能力的提高,还有的是团队合作精神。

 

参考文献

1.马春燕,段承宪.微机原理与接口技术.北京:

电子工业出版社,2006

2.马春燕,段承宪.微机原理与接口技术实验与学习辅导.北京:

电子工业出版社,2006

3.张荣标等,微机计算机原理与接口技术,北京:

机械工业出版社,2005

4.毛小平,卢小勇.微型计算机原理与接口技术.北京:

清华大学出版社,北方交

通大学出版社,2002

 

目录

第一章绪论2

1.1设计题目简介2

1.1.1设计背景2

1.1.2设计功能2

第二章硬件设计3

2.1实验装置介绍3

2.2硬件电路设计4

2.2.1电路图4

2.2.2芯片介绍5

第三章软件设计7

3.1主程序7

3.1.1主程序及注释7

3.1.2主程序功能:

8

3.1.3流程图8

3.2子程序9

3.2.1子程序及注释9

3.2.2子程序功能15

3.2.3流程图(见下页)15

3.3程序清单15

第四章课程设计总结19

参考文献19

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

当前位置:首页 > 总结汇报 > 学习总结

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

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