ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:216.13KB ,
资源ID:8316120      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8316120.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理课程设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机原理课程设计.docx

1、微机原理课程设计微机原理与接口技术课程设计 设计题目: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,L

2、10红灯亮,L6,L12绿灯亮循环第二章 硬件设计 2.1实验装置介绍 本设计用到的实验装置有IBM PC机(586)和CES-86通用微机实验装置。IBM PC机是基于DOS操作系统的PC机,可用于汇编语言的编译,运行,调试;CES-86型通用实验装置的特点是“单板积木式”电路,其表现方式为在表面铜箔板上腐蚀出具有21个独立电路的印刷电路块。它可以和任何一种PC机相连组成系统,相连后即可以再此装置上进行硬件拼接,组成各种实验系统。这21块积木在试验箱上面分布如图: “单积木式”示意图 本设计主要选用其中K:可编程并行通信接口(8255A)电路;I:发光二极管(LED)显示电路;M:十六进制键

3、盘电路来实现具体功能。 2.2硬件电路设计 2.2.1电路图红绿灯闪烁实验台接线图2.2.2芯片介绍8255是40引脚双列直插式芯片,片内有A,B,C3个8位I/O端口,可提供24条可编程输入/输出端口线。其内部结构由与CPU接口电路,内部控制逻辑电路和与外设的输入/输出接口电路三部分组成。引脚信号介绍如下:D7D0:三态,双向数据线,与CPU数据总线链接,用来传输数据。CS:片选信号,低电平有效时,芯片被选中。A1,A0:地址线,用来选择内部端口。RD:读出信号线,低电平有效时,允许数据读出。WR:写入信号线,低电平有效时,允许数据写入。RESET:复位信号线,高电平有效时,将所有内部寄存器

4、清零。PA7PA0:A口输入/输出信号线。PB7PB0:B口输入/输出信号线。PC7PC0:C口输入/输出信号线。VCC:+5V电源。GND:电源地线。8255A芯片有0,1,2三种工作方式。其中A,B,C三个端口都可以工作在方式0;A,B两端口可工作在方式1;仅有A口可工作在方式2。第三章 软件设计3.1主程序 3.1.1主程序及注释 LIGHTS MACRO PB,PC ;宏定义两个变量 MOV DX,CTL MOV AL,80H ;写入控制字 OUT DX,AL MOV DX, DB55 MOV AL,PBOUT DX,ALMOV DX, DC55MOV AL,PCOUT DX,ALCA

5、LL DELAY3 ;调用延时子程序ENDM ;宏定义结束DATA SEGMENT ;数据段 DA55 EQU 318H ;端口A地址DB55 EQU 319H ;端口B地址DC55 EQU 31AH ;端口C地址CTL EQU 31BH ;控制端口地址TABLE DW 0101H,0102H,0104H,0108H,0110H,0120H,0140H,0180H DW 0201H,0202H,0204H,0208H,0210H,0220H,0240H,0280H ;键盘代码CHAR DBCDEFBA9845673210 ;字符表CRT DBPLAY ANY KEY IN THE SMALL

6、KEYBOARD !,0AH,0DH DBIT WILL BE ON THE SCREEN! END WITH E,0AH,0DH,$ ;显示信息MESS DBOVER,0AH,0DH,$DATA ENDSSTACK SEGMENT PARA STACKSTACK ;堆栈段STA DW 50 DUP(?)STACK ENDSCODE SEGMENT ;代码段MAIN PROC FAR ;主程序ASSUME CS: CODE, DS:DATASTART: MOV AX, DATAMOV DS, AX ;数据段寄存器装入数据段首地址 MOV DX, OFFSET CRT ;显示提示信息MOV AH

7、,09HINT 21HLOP: CALL KEY ;键盘扫描CMP DL, E ;是字符E吗?JE LP ;是的,就跳转到LP JNZ LOP ;不是执行LOP CALL SHOW ;调用宏定义LP: MOV AX, 4C00HINT 21H ;返回 DOSRETMAIN ENDP ;主程序结束3.1.2主程序功能: 主程序很短,原因是设立了一个宏定义,这样大大地减少了程序的冗余。通过主程序调用宏定义来实现整个程序,从而使LED按我们程序设计的要求来显示。 3.1.3流程图 3.2子程序 3.2.1子程序及注释 KEY PROC NEAR ;子程序内容LP1: MOV AL, 82H MOV

8、DX, CTL OUT DX,ALWAIT1: MOV AL ,00 MOV DX, DA55 ;输出到A口 OUT DX, AL MOV DX,DB55 IN AL, DX CMP AL, 0FFH JZ WAIT1 PUSH AX ;AX出桟 PUSH AXMOV CX, 1000HLP2: LOOP LP2 ;循环执行LP2MOV DX, CTLMOV AL, 90HOUT DX, ALMOV DX, DB55POP AXOUT DX, ALMOV DX, DA55IN AL, DXPOP BX ;BX出桟MOV AH, BLNOT AXMOV SI,OFFSET TABLEMOV DI

9、,OFFSET CHARMOV CX,16LP3: CMP AX,SIJZ LP4 ;AXSI=0 ,则转到执行LP4DEC CX ;CX-1JZ LP1ADD SI,2INC DIJMP LP3LP4: MOV DL , DIMOV AH, 02 INT 21H PUSH DX MOV AL,82H MOV DX,CTL OUT DX,AL WAIT2: MOV AL,00 MOV DX,DA55 OUT DX,AL MOV DX,DB55 IN AL,DX CMP AL,0FFH J NZ WAIT2 POP DX RET KEY ENDP ;小键盘扫描程序结束 SHOW PROC NEA

10、R TOP: CMP DL,4 ;测试的新数据和4比较 JLE TOP4 ;如果小于等于则跳转到TOP4 JMP FF1 ;否则跳转至FF1 TOP4: JE DONE4 ;如果等于4则执行DONE4 CMP DL ,2 ;DL是否等于2 JLE TOP2 如果小于等于则跳转至TOP2; JMP DONE3 ;否则跳转至DONE3 FF1: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MESS MOV AH,09H INT 21H MOV AX,4C00H INT 21H TOP2: JE DONE2 ;如果等于则执行TOP2 CMP DL,1 ;DL与1比较 JE

11、 SP1 ;等于则执行SP1 JMP DONE0 ;否则跳转至DONE0 DONE4: MOV CX,0005H L4: LIGHTS 0FFH,0FFH LIGHTS 10101111B,10101010B ;黄灯L2.L8亮红灯L4.L10亮,绿灯L6.L12亮 LOOP L4 ;循环5次 CALL KEY ;扫描键盘 JMP TOP DONE3: MOV CX,0005H L3: LIGHTS 0FFH,0FFH LIGHTS 0FFH,01111111B LIGHTS 11101111B, 0FFH LIGHTS 0FFH,11110111B LIGHTS 0FFH,10111111B

12、 LIGHTS 11011111B,0FFH LIGHTS 0FFH,11111011B LIGHTS 0FFH,11011111B LIGHTS 10111111H,0FFH LIGHTS 0FFH.11111101B LIGHTS 0FFH,11101111B LIGHTS 01111111B,0FFH LIGHTS 0FFH,11111110B ;从L1,L12依次循环亮 LOOP L3 ;循环5次 CALL KEY JMP TOP SP1: JMP DONE1 DONE2: MOV CX,0005H L2: LIGHTS 0FFH ,0FFH ;所有灯都灭 LIGHTS 00H,0FF

13、H ;将黄灯开 LOOP L2 CALL KEY JMP TOP DONE1: MOV CX,0005H L1: LIGHTS 0FFH,0FFH LIGHTS 0FFH,0F0H ;将绿灯开 LOOP L1 CALL KEY JMP TOP DONE0 : , MOV CX,0005H L0: LIGHTS 0FFH,0FFH LIGHTS 0FH,0FFH ;将黄灯开 LIGHTS 0FH,0FH ;将黄灯开,且红灯也开 LIGHTS 0FH,00H ;所有灯都开 LOOP L0 CALL KEY JMP TOP DELAY1 PROC NEAR ;延时子程序开始 PUSH CX MOV

14、CX,0FFFFH CCC: LOOP CCC POP CX RET DELAY1 ENDP ;延时程序结束 DELAY3 PROC NEAR ;延时程序开始 PUSH AX PUAH CX MOV CX,00F0H VVV: CALL DELAY1 LOOP VVV POP CX POP AX RET DELAY3 ENDP ;延时程序结束 SHOW ENDP CODE ENDS END START ; 程序结束 KEY PROC NEAR ;子程序内容LP1: MOV AL, 82H MOV DX, CTL OUT DX,ALWAIT1: MOV AL ,00 MOV DX, DA55 ;

15、输出到A口 OUT DX, AL MOV DX,DB55 IN AL, DX CMP AL, 0FFH JZ WAIT1 PUSH AX ;AX出桟 PUSH AXMOV CX, 1000HLP2: LOOP LP2 ;循环执行LP2MOV DX, CTLMOV AL, 90HOUT DX, ALMOV DX, DB55POP AXOUT DX, ALMOV DX, DA55IN AL, DXPOP BX ;BX出桟MOV AH, BLNOT AXMOV SI,OFFSET TABLEMOV DI,OFFSET CHARMOV CX,16LP3: CMP AX,SIJZ LP4 ;AXSI=0

16、 ,则转到执行LP4DEC CX ;CX-1JZ LP1ADD SI,2INC DIJMP LP3LP4: MOV DL , DIMOV AH, 02 INT 21H PUSH DX MOV AL,82H MOV DX,CTL OUT DX,AL WAIT2: MOV AL,00 MOV DX,DA55 OUT DX,AL MOV DX,DB55 IN AL,DX CMP AL,0FFH J NZ WAIT2 POP DX RET KEY ENDP ;小键盘扫描程序结束 SHOW PROC NEAR TOP: CMP DL,4 ;测试的新数据和4比较 JLE TOP4 ;如果小于等于则跳转到T

17、OP4 JMP FF1 ;否则跳转至FF1 TOP4: JE DONE4 ;如果等于4则执行DONE4 CMP DL ,2 ;DL是否等于2 JLE TOP2 如果小于等于则跳转至TOP2; JMP DONE3 ;否则跳转至DONE3 FF1: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MESS MOV AH,09H INT 21H MOV AX,4C00H INT 21H TOP2: JE DONE2 ;如果等于则执行TOP2 CMP DL,1 ;DL与1比较 JE SP1 ;等于则执行SP1 JMP DONE0 ;否则跳转至DONE0 DONE4: MOV C

18、X,0005H L4: LIGHTS 0FFH,0FFH LIGHTS 10101111B,10101010B ;黄灯L2.L8亮红灯L4.L10亮,绿灯L6.L12亮 LOOP L4 ;循环5次 CALL KEY ;扫描键盘 JMP TOP DONE3: MOV CX,0005H L3: LIGHTS 0FFH,0FFH LIGHTS 0FFH,01111111B LIGHTS 11101111B, 0FFH LIGHTS 0FFH,11110111B LIGHTS 0FFH,10111111B LIGHTS 11011111B,0FFH LIGHTS 0FFH,11111011B LIGH

19、TS 0FFH,11011111B LIGHTS 10111111H,0FFH LIGHTS 0FFH.11111101B LIGHTS 0FFH,11101111B LIGHTS 01111111B,0FFH LIGHTS 0FFH,11111110B ;从L1,L12依次循环亮 LOOP L3 ;循环5次 CALL KEY JMP TOP SP1: JMP DONE1 DONE2: MOV CX,0005H L2: LIGHTS 0FFH ,0FFH ;所有灯都灭 LIGHTS 00H,0FFH ;将黄灯开 LOOP L2 CALL KEY JMP TOP DONE1: MOV CX,00

20、05H L1: LIGHTS 0FFH,0FFH LIGHTS 0FFH,0F0H ;将绿灯开 LOOP L1 CALL KEY JMP TOP DONE0 : , MOV CX,0005H L0: LIGHTS 0FFH,0FFH LIGHTS 0FH,0FFH ;将黄灯开 LIGHTS 0FH,0FH ;将黄灯开,且红灯也开 LIGHTS 0FH,00H ;所有灯都开 LOOP L0 CALL KEY JMP TOP DELAY1 PROC NEAR ;延时子程序开始 PUSH CX MOV CX,0FFFFH CCC: LOOP CCC POP CX RET DELAY1 ENDP ;延

21、时程序结束 DELAY3 PROC NEAR ;延时程序开始 PUSH AX PUAH CX MOV CX,00F0H VVV: CALL DELAY1 LOOP VVV POP CX POP AX RET DELAY3 ENDP ;延时程序结束 SHOW ENDP CODE ENDS END START ; 程序结束 3.2.2子程序功能 按0,则黄灯先亮接着红灯亮,接着绿灯亮最后都亮开始循环 按1,则绿灯亮开始闪烁。 按2,则黄灯亮开始闪烁。 按3,则从L1至L12依次循环亮起 按4,则L2,L8黄灯亮,L4,L10红灯亮,L6,L12绿灯亮循环 3.2.3流程图(见下页) 3.3程序清单

22、 LIGHTS MACRO PB,PC ;宏定义两个变量 MOV DX,CTL MOV AL,80H ;写入控制字 OUT DX,AL MOV DX, DB55 MOV AL,PBOUT DX,ALMOV DX, DC55MOV AL,PCOUT DX,ALCALL DELAY3 ;调用延时子程序ENDM ;宏定义结束DATA SEGMENT ;数据段 DA55 EQU 318H ;端口A地址DB55 EQU 319H ;端口B地址DC55 EQU 31AH ;端口C地址CTL EQU 31BH ;控制端口地址TABLE DW 0101H,0102H,0104H,0108H,0110H,012

23、0H,0140H,0180H DW 0201H,0202H,0204H,0208H,0210H,0220H,0240H,0280H ;键盘代码CHAR DBCDEFBA9845673210 ;字符表CRT DBPLAY ANY KEY IN THE SMALL KEYBOARD !,0AH,0DH DBIT WILL BE ON THE SCREEN! END WITH E,0AH,0DH,$ ;显示信息MESS DBOVER,0AH,0DH,$DATA ENDSSTACK SEGMENT PARA STACKSTACK ;堆栈段STA DW 50 DUP(?)STACK ENDSCODE S

24、EGMENT ;代码段MAIN PROC FAR ;主程序ASSUME CS: CODE, DS:DATASTART: MOV AX, DATAMOV DS, AX ;数据段寄存器装入数据段首地址 MOV DX, OFFSET CRT ;显示提示信息MOV AH,09HINT 21HLOP: CALL KEY ;键盘扫描CMP DL, E ;是字符E吗?JE LP ;是的,就跳转到LP JNZ LOP ;不是执行LOP CALL SHOW ;调用宏定义LP: MOV AX, 4C00HINT 21H ;返回 DOSRETMAIN ENDP ;主程序结束第四章 课程设计总结 通过一个学期的微机原

25、理与接口技术课程的学习,我们基本上掌握了很多内容,并将这些知识运用到了我们的课程设计中。在课设的几天里我们不停地上机调试程序,不时地再翻阅很多资料,以前总觉的自己WORD,WPS学的还行,但是通过这一次的课设也知道了自己的很多不足之处。在实践地过程中遇到了很多以前没有见过的问题,就是这些一点一滴的过程才有了我们今天的成果。在这几天里我们学到的不仅是知识以及实践能力的提高,还有的是团队合作精神。参考文献1.马春燕,段承宪.微机原理与接口技术.北京:电子工业出版社,20062.马春燕,段承宪.微机原理与接口技术实验与学习辅导.北京:电子工业出版社, 20063.张荣标等,微机计算机原理与接口技术,北京:机械工业出版社,20054.毛小平,卢小勇.微型计算机原理与接口技术.北京:清华大学出版社,北方交通大学出版社,2002 目录第一章 绪论 21.1设计题目简介 21.1.1设计背景 21.1.2 设计功能 2第二章 硬件设计 32.1实验装置介绍 32.2硬件电路设计 42.2.1电路图 42.2.2芯片介绍 5第三章 软件设计 73.1主程序 73.1.1主程序及注释 73.1.2主程序功能: 83.1.3流程图 83.2子程序 93.2.1子程序及注释 93.2.2子程序功能 153.2.3流程图(见下页) 153.3程序清单 15第四章 课程设计总结 19参考文献 19

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

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