微机原理串行数据传送控制课程设计.docx
《微机原理串行数据传送控制课程设计.docx》由会员分享,可在线阅读,更多相关《微机原理串行数据传送控制课程设计.docx(17页珍藏版)》请在冰豆网上搜索。
微机原理串行数据传送控制课程设计
目录
1、设计目的········································
2、设计要求·······································
3、设计题目·······································
4、设计思路·······································
5、设计过程·······································
1、开关控制LED显示模块··························
2、中断读取开关状态模块·························
3、8250串行发送数据模块·························
4、定时器控制中断模块···························
5、动态扫描显示模块·····························
6、器件连接图····································
7、源程序········································
8、设计总结······································
9、参考文献·········································
一、设计目的
微机课程设计是《微机原理与应用》课程的一个重要实践教学环节,主要目的是提高学生综合运用微机软硬件技术的能力,加深对微机结构和接口原理的理解,熟练地掌握汇编程序的编写、调试和接口技术应用的水平;为后续课程的应用打好基础。
二、设计要求
1.设计内容所覆盖的知识面
微机课程设计是知识综合运用和提高的过程,知识面要覆盖汇编语言编程、定时器、并行口、串行口通信、中断、存储器等内容,设计选题要涉及2-3个接口芯片,题目要有一定的深度与广度,满足一周的工作量,达到知识真正综合运用的目的。
2.设计的基本要求
(1)应用实验箱或扩展板做实验样机,画出硬件接口的连线图;
(2)用汇编语言或C语言,编写应用开发程序,关键程序中要加注释;;
(3)2-3人一组,每人先负责一项内容,最后合成、联接统调;
(4)设计必须通过调试,运行结果由指导老师验收后,才能进入设计说明书的编写;
(5)手工编写或打印设计说明书,每人一份,独立编写。
3.课程设计说明书的基本格式
(1)课程设计任务书(第一页)
(2)指导教师评阅意见(第二页,空)
(3)硬件电路的系统结构,绘制功能框图,配文字说明各块的作用,附录中提供一张A4-A3硬件原理图(贴在最后一页),用Protel软件绘制,不能使用扫描贴图或拷贝图,否则重做;
(4)解决主要问题的软件思路(如七段LED动态扫描的过程、计时方法、通信过程等),手工绘制软件流程图,说明实现本题的方法;
(5)软件程序全部程序,主要语句加注释;
(6)总结(包括收获、不足、改进措施、致谢等)
(7)附录一:
参考文献(包括书籍、论文、编程或器件资料等),不少于4篇;
(8)附录二:
硬件系统原理图;
(9)按组提交软件源程序电子文档。
4.进度安排
课程设计为一周时间,前4天在实验室进行硬件连接、编程与调试、绘图,最后1天编写设计报告(可以在宿舍进行)。
3、设计题目
串行数据传送控制
(1)用8255的B口接实验箱1的8个钮子开关,采用方式1输入中断方式,读取开关状态,并控制8个LED上显示。
(2)将读取开关状态值,通过实验箱的8250和RS232口,串行发送到实验箱2的8250中。
(3)在实验箱2上,将串行收到的开关状态值,采用8255的B口和C口低4位驱动2个七段LED数码管,用动态扫描方式显示开关状态的16进制数。
4、设计思路
本设计是进行串行通讯,在一台实验箱上实现开关状态的控制、显示和读取,利用可编程并行I/O接口芯片8255,B口输入开关状态,A口输出LED实现开关状态的控制和显示。
用可编程中断控制器8259,中断读取开关状态量送入CPU,CPU把开关量送入串行通讯控制器8250,串行发送到另一台实验箱的8250中,在其上用可编程计数器/定时器8253及8259定时中断读取开关状态量,通过8255的B口和C口接七段LED数码管,通过动态扫描的方式使开关量在数码管上显示出来。
主要用到的芯片有可编程并行I/O接口芯片8255,可编程中断控制器8259,串行通讯控制器8250,可编程计数器/定时器8253。
5、设计过程
1、开关控制LED显示模块
8250初始化程序:
MOVAL,CW1;8255
MOVDX,CONTR
OUTDX,AL
MOVAL,00000101B;INTEA
OUTDX,AL
8255逻辑结构图
2、中断读取开关状态模块
8259内部结构
8259初始化程序:
MOVAL,13H;8259ICW1
OUT20H,AL
MOVAL,00001000B;ICW2
OUT21H,AL
MOVAL,00000001B;ICW4
OUT21H,AL
MOVAL,0F7H;OCW1
OUT21H,AL
MOVAX,CS
MOVDS,AX
3、8250串行发送数据模块
8250初始化程序:
MOVAL,80H;初始化8250
MOVDX,COM3
OUTDX,AL
MOVDX,COM2
MOVAL,0
OUTDX,AL
MOVDX,COM1
MOVAL,64H;2MHz时钟信号输入,1250波特率
OUTDX,AL
MOVAL,00001111B
MOVDX,COM3
OUTDX,AL
MOVAL,0FH
MOVDX,COM2
OUTDX,AL
4、定时器控制中断模块
8253初始化程序:
MOVDX,4BH;8253初始化
MOVAL,10110110B;定时器2模式3
OUTDX,AL
MOVDX,4AH
MOVAX,5000;5ms定时发中断
OUTDX,AL
MOVAL,AH
OUTDX,AL
8259初始化程序:
MOVAL,13H;8259ICW1
OUT20H,AL
MOVAL,00001000B;ICW2
OUT21H,AL
MOVAL,00000001B;ICW4
OUT21H,AL
MOVAL,0F3H;OCW1
OUT21H,AL
MOVAX,CS
MOVDS,AX
5、动态扫描显示模块
8255初始化:
MOVAL,10000000B;8255
MOVDX,CONTR
OUTDX,AL
七、源程序
发送实验箱
APORTEQU70H
BPORTEQU71H
CPORTEQU72H
CONTREQU73H
CW1EQU10000110B
COM1=60H
COM2=61H
COM3=63H
CODESEGMENT
ORG1000H
ASSUMECS:
CODE
START:
MOVAL,CW1;8255
MOVDX,CONTR
OUTDX,AL
MOVAL,00000101B;INTEA
OUTDX,AL
MOVAL,80H;初始化8250
MOVDX,COM3
OUTDX,AL
MOVDX,COM2
MOVAL,0
OUTDX,AL
MOVDX,COM1
MOVAL,64H;2MHz时钟信号输入,1250波特率
OUTDX,AL
MOVAL,00001111B
MOVDX,COM3
OUTDX,AL
MOVAL,0FH
MOVDX,COM2
OUTDX,AL
MOVAX,0H;8259中断
MOVDS,AX
MOVES,AX
MOVDI,002CH
LEAAX,INT1
MOV[DI],AX
INCDI
INCDI
MOVAX,CS
MOV[DI],AX
INCDI
INCDI
MOVAL,13H;8259ICW1
OUT20H,AL
MOVAL,00001000B;ICW2
OUT21H,AL
MOVAL,00000001B;ICW4
OUT21H,AL
MOVAL,0F7H;OCW1
OUT21H,AL
MOVAX,CS
MOVDS,AX
STI
DENG:
JMPDENG
INT1PROC
MOVDX,BPORT;取开关值
INAL,DX
OUTCOM1,AL;送给8250;发光LED管
MOVDX,APORT
NOTAL
OUTDX,AL
MOVAL,20H;开放中断对应屏蔽位
OUT20H,AL
STI
IRET
INT1ENDP
BACK:
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
接收实验箱
APORTEQU70H
BPORTEQU71H
CPORTEQU72H
CONTREQU73H
COM1EQU60H
COM2EQU61H
COM3EQU63H
CODESEGMENT
ORG1000H
ASSUMECS:
CODE
START:
MOVAL,10000000B;8255
MOVDX,CONTR
OUTDX,AL
MOVDX,4BH;8253初始化
MOVAL,10110110B;定时器2模式3
OUTDX,AL
MOVDX,4AH
MOVAX,5000;5ms定时发中断
OUTDX,AL
MOVAL,AH
OUTDX,AL
MOVAL,80H;初始化8250
MOVDX,COM3
OUTDX,AL
MOVDX,COM2
MOVAL,0
OUTDX,AL
MOVDX,COM1
MOVAL,64H;2MHz时钟信号输入,1250波特率
OUTDX,AL
MOVAL,00001111B
MOVDX,COM3
OUTDX,AL
MOVAX,0H
MOVDS,AX
MOVES,AX
MOVDI,0028H
LEAAX,INTB
MOV[DI],AX
INCDI
INCDI
MOVAX,CS
MOV[DI],AX
MOVAL,13H;8259ICW1
OUT20H,AL
MOVAL,00001000B;ICW2
OUT21H,AL
MOVAL,00000001B;ICW4
OUT21H,AL
MOVAL,0F3H;OCW1
OUT21H,AL
MOVAX,CS
MOVDS,AX
MOVBP,0
MOVBX,OFFSETTAB1
MOVAL,CS:
[BP+BIT]
OUTCPORT,AL
MOVSI,OFFSETBUF
MOVAL,[SI]
XLAT
OUTBPORT,AL
INCSI
MOVAL,CS:
[BP+BIT]
ROLAL,1
MOVCS:
[BP+BIT],AL
STI
DENG:
MOVAL,65H;接收缓冲寄存器不满,等待
ANDAL,01H
JZDENG
MOVDX,COM1
INAL,DX
MOVAH,AL
ANDAL,0FH
MOVCS:
[BP+BUF],AL
ANDAH,0F0H
MOVCL,4
SHRAH,CL
MOVCS:
[BP+BUF+1],AH
JMPDENG
INTBPROC
MOVBX,OFFSETTAB1;中断程序
MOVAL,CS:
[BP+BIT]
OUTCPORT,AL
MOVAL,[SI]
XLAT
OUTBPORT,AL
INCSI
MOVAL,CS:
[BP+BIT]
ROLAL,1
CMPAL,0FBH
JNZAB
MOVAL,0FEH
MOVSI,OFFSETBUF
AB:
MOVCS:
[BP+BIT],AL
MOVAL,20H
OUT20H,AL
STI
IRET
INTBENDP
TAB1
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
BUFDB1,2
BITDB0FEH
CODEENDS
ENDSTART
八、设计总结
经过繁忙而又紧张的课程设计,终于顺利的完成了设计任务。
虽然在这段时间里每天都那么繁忙,但是在这忙碌的过程中却得到了许多的收获。
经过课程设计,在查阅资料的过程中,学习了汇编语言程序设计,了解了串行通信的基本知识,熟悉了8255、8259、8253,8250等芯片的初始化和基本应用,对于以后的学习和工作都有很大的益处。
在学习的过程中,也遇到了一些困难。
如开关状态量的读取,中断的初始化等,经过查阅资料,请教老师,被一一克服了。
设计还存在一些不足和缺憾,希望还有机会能进一步学习。
通过这次课程设计,锻炼了自己独立思考的能力和动手能力。
9、参考文献
《汇编语言与接口技术》王让定编著清华大学出版社
《微机原理与接口技术》郭兰英编著清华大学出版社
《微机原理及接口技术》王惠中编著机械工业出版社
《PC机汇编语言与接口技术》李恒文编著中国科学技术出版社