微机原理串行数据传送控制课程设计.docx
《微机原理串行数据传送控制课程设计.docx》由会员分享,可在线阅读,更多相关《微机原理串行数据传送控制课程设计.docx(14页珍藏版)》请在冰豆网上搜索。
![微机原理串行数据传送控制课程设计.docx](https://file1.bdocx.com/fileroot1/2022-12/15/7fce0e49-8f2c-4ce2-9fcc-c925e47a7fba/7fce0e49-8f2c-4ce2-9fcc-c925e47a7fba1.gif)
微机原理串行数据传送控制课程设计
目录
1、设计目的········································
2、设计要求·······································
3、设计过程·······································
1、开关控制LED显示模块··························
2、中断读取开关状态模块·························
3、8250串行发送数据模块·························
4、定时器控制中断模块···························
5、动态扫描显示模块·····························
4、器件连接图····································
5、源程序········································
6、设计总结······································
7、参考文献·········································
一、设计目的
微机课程设计是《微机原理与应用》课程的一个重要实践教学环节,主要目的是提高学生综合运用微机软硬件技术的能力,加深对微机结构和接口原理的理解,熟练地掌握汇编程序的编写、调试和接口技术应用的水平;为后续课程的应用打好基础。
二、设计要求
(1)设计一个串行数据传送控制的程序
(2)用8255的B口接实验箱1的8个钮子开关,采用方式1输入中断方式,读取开关状态,并
控制8个LED上显示。
(3)将读取开关状态值,通过实验箱的8250和RS232口,串行发送到实验箱2的8250中。
(4)在实验箱2上,将串行收到的开关状态值,采用8255的B口和C口低4位驱动2个七段LED数码管,用动态扫描方式显示开关状态的16进制数(参考题目一)。
3、设计思路
本设计是进行串行通讯,在一台实验箱上实现开关状态的控制、显示和读取,利用可编程并行I/O接口芯片8255,B口输入开关状态,A口输出LED实现开关状态的控制和显示。
用可编程中断控制器8259,中断读取开关状态量送入CPU,CPU把开关量送入串行通讯控制器8250,串行发送到另一台实验箱的8250中,在其上用可编程计数器/定时器8253及8259定时中断读取开关状态量,通过8255的B口和C口接七段LED数码管,通过动态扫描的方式使开关量在数码管上显示出来。
主要用到的芯片有可编程并行I/O接口芯片8255,可编程中断控制器8259,串行通讯控制器8250,可编程计数器/定时器8253。
4、设计过程
1、开关控制LED显示模块
8255初始化程序:
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:
MOVAX,CS
MOVDS,AX
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
DATDB?
CODEENDS
ENDSTART
接收程序
APORTEQU70H
BPORTEQU71H
CPORTEQU72H
CONTREQU73H
COM1EQU60H
COM2EQU61H
COM3EQU63H
CODESEGMENT
ORG1000H
ASSUMECS:
CODE
START:
MOVDX,CS
MOVDS,DX
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
TAB1DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB7FH,6FH,77H,7CH,39H,5EH,79H,71H
BUFDB1,2
BITDB0FEH
DADB?
CODEENDS
ENDSTART
八、设计总结
经过繁忙而又紧张的课程设计,终于顺利的完成了设计任务。
虽然在这段时间里每天都那么繁忙,但是在这忙碌的过程中却得到了许多的收获。
经过课程设计,在查阅资料的过程中,学习了汇编语言程序设计,了解了串行通信的基本知识,熟悉了8255、8259、8253,8250等芯片的初始化和基本应用,对于以后的学习和工作都有很大的益处。
在学习的过程中,也遇到了一些困难。
如开关状态量的读取,中断的初始化等,经过查阅资料,请教老师,被一一克服了。
设计还存在一些不足和缺憾,希望还有机会能进一步学习。
通过这次课程设计,锻炼了自己独立思考的能力和动手能力。
9、参考文献
《汇编语言与接口技术》王让定编著清华大学出版社
《微机原理与接口技术》郭兰英编著清华大学出版社
《微机原理及接口技术》王惠中编著机械工业出版社
《PC机汇编语言与接口技术》李恒文编著中国科学技术出版社