计算机接口技术课程设计.doc
- 文档编号:30579210
- 上传时间:2023-08-17
- 格式:DOC
- 页数:24
- 大小:3.16MB
计算机接口技术课程设计.doc
《计算机接口技术课程设计.doc》由会员分享,可在线阅读,更多相关《计算机接口技术课程设计.doc(24页珍藏版)》请在冰豆网上搜索。
成绩
南京工程学院
课程设计说明书(论文)
题目双机串行通信系统设计
课程名称计算机接口技术A
院系
专业
班级
学生姓名
学号
设计地点
指导教师
设计起止时间:
2010年6月12日至2010年6月18日
南京工程学院
课程设计任务书
课程名称计算机接口技术A
院(系、部、中心)电力工程学院
专业电气工程及其自动化(电网监控)
班级
起止日期2010年6月12日~18日
指导教师
1.课程设计应达到的目的
1)通过课程设计加深理解课堂教学内容,掌握计算机接口技术的基本应用方法。
2)掌握常用接口电路的设计,掌握8255A、8253、8259A、8251A、ADC0809等接口芯片的应用和编程方法,做到理论联系实际。
2.课程设计题目及要求
一、课题名称:
双机串行通信系统设计
二、课题要求
设计一个双机串行通信系统,在星研实验系统上实现。
具体要求:
1)通过8251A实现甲、乙两台实验装置之间异步串行数据的收发。
甲机用ADC0809采集0~5V直流电压并送乙机数码管显示,乙机根据甲机发送来的电压值(数字量)进行判断并发控制信号给甲机的发光二极管显示。
发光二极管有关显示规律如下:
如果采集到的电压值低于2V,则从最低位开始按顺序使LEDi(i=1~8)亮;如果采集到的电压值高于3V,则从最先亮的LED开始按顺序使其灭。
即先亮的先灭,后亮的后灭。
如果采集到的电压值高于等于2V且低于等于3V,则维持LED现状。
如果无LED可亮(8个LED已全亮)或无LED可灭(所有LED已全灭),则维持。
2)8251A的发送/接收时钟信号由8253分频提供,波特率可选择9600(供参考)或其他;数码管和LED分别通过8255A接入。
3)采用查询法方案实现。
三、分组情况
2人1组(自由搭配)。
3.课程设计任务及工作量的要求〔包括课程设计计算说明书、图纸、实物样品等要求〕
本次课程设计进行双机串行通信系统的设计。
预习要求:
1)复习《计算机接口技术A》课程实验。
2)预习本任务书,根据设计任务,预先画出电路原理图、程序流程图,初步编写实验程序。
设计报告要求:
1)画出接口部分电路原理图,并阐述系统工作原理。
2)绘制程序流程图(Visio绘制),给出源程序清单。
3)调试过程和结果分析。
4)心得体会。
5)要求用WORD撰写报告,上交打印版和电子稿(电子稿全班统一刻盘)。
4.主要参考文献
1、星研公司.StarES8688使用说明书.
2、李干林,李升.微机原理及接口技术实验指导书.南京工程学院,2009.
3、刘星.计算机接口技术.北京:
机械工业出版社,2003.
4、李继灿.新编16/32位微型计算机原理及应用(第3版).北京:
清华大学出版社,2004.
5、周荷琴,吴秀清.微型计算机原理与接口技术(第三版).合肥:
中国科学技术大学出版社,2004.
5.课程设计进度安排
起止日期
工作内容
2010年6月12~13日
6月13日下午
6月14~28日
上机调试
验收答辩
撰写课程设计报告
6.成绩考核办法
上机调试表现占30%,验收答辩表现占30%,设计报告占40%。
教研室审查意见:
同意。
教研室主任签字:
鞠阳
2010年6月7日
院(系、部、中心)意见:
同意。
主管领导签字:
李先允
2010年6月8日
1.设计方案
1.1功能简介
本双机串行通信系统由甲、乙两台主机组成。
甲机将所采集到的模拟电压经模数转换后发送到乙机,并在乙机的数码管上显示出电压大小。
同时乙机在收到电压信号后发送一个反馈控制信号给甲机,在甲机LED上显示在某一电压范围内调整电压的次数。
如果电压小于2伏,则LED依次点亮,直到无灯可亮就保持全亮状态不变。
如果电压大于2伏小于3伏,则LED保持当前状态不变。
如果电压大于3伏,则LED从最先点亮的开始一次熄灭,直到无灯可灭就保持全灭状态。
1.2工作原理
各芯片功能分配如下:
8251:
串行异步通信
8253:
分频提供8251的发送/接收时钟信号
8255:
控制数码管或LED显示
ADC0809:
将模拟电压量转化为数字量
8259:
发送、接收中断控制(中断法使用)
为避免电压波动产生的干扰,系统采用多次采样(采样200次或100次)并求平均值的方法加以控制。
同时,为了消除电压调整过程中的中间变化量,程序将当前采样值与上一次发送的数字电压值(LastAD)比较,若不同说明电压发生了调整,这时将采样值送给LastAD,将发送标志FLAG置0,说明准备发送,但若采样值不是一个稳定值,则暂缓发送。
继续采样并求平均值,将平均值与LastAD比较,这时如果相同,则将发送标志FLAG置1,并发送结果。
甲机将发送的电压模拟量经AD0809转换成数字量后发送给乙机,乙机接收到甲机发来的数字量后,将其转化为BCD码,因为转换电路对输入模拟电压的分辨率为5V/255=19.5mV,所以数码管采用四位小数的精确度。
通过分别查表找出个位和小数点后各位对应的字型码,存入显示字符缓存,同时送给8255,采用动态扫描技术在数码管上显示对应的模拟电压电压大小。
乙机收到数字电压信号显示后,将发送一个反馈控制信号控制甲机LED(1-8)的显示,显示规律在功能概述部分已给出。
因为要循环显示,电压调整次数过多时会出现LED显示不规律的问题,解决方法如下:
建查询表TAB,其内容为01H,02H,04H,08H,10H,20H,40H,80H。
因为初始化时LED全灭则,所以控制信号为全1,当要点亮或熄灭LED只要依次减去或加上相应位的查表结果。
建立两个互不影响的指针FROUNT和REAR,当电压小于2伏时,判断FROUNT是否大于7,若大于则将FROUNT置0(表示第8个LED已经点亮,需要从第一个开始循环点亮),若小于7则判断LED是否已全亮,若全亮则不操作,若不是则点亮FROUNT所指的LED,FROUNT加1。
当电压大于3伏时,判断REAR是否大于7,若小于7则判断LED是否全部熄灭,若熄灭则不操作。
如果REAR大于7则将REAR置0(表示第8个LED已经熄灭,需要从第一个开始循环熄灭),并判断REAR是否与FROUNT相同,若相同则不操作,若不同则熄灭REAR所指位置的LED,REAR加1。
这样就保证了LED能按照要求的规律显示电压在一定范围内调整的情况。
采用查询法时,发送前先查TxRDY的值是否为1,若等于1则开始发送;接受前查RxRDY的值是否等于1,若等于1则开始接收。
1.3硬件设计
1.3.1查询方式系统硬件接线图
甲机接线图
乙机接线图
1.3.2查询方式系统硬件引脚连线
甲机连线说明(查询法)
C5区(8251):
CS
——
A3区:
CS2
C5区(8253):
CS
——
A3区:
CS1
C5区:
A0/A1/C/D
——
A3区:
A0/A1/A0
C5区:
OUT0
——
C5区(8251):
TxC/RxC
C5区:
GATE0
——
C1区:
VCC
C5区:
CLK0(8253)/CLK(8251)
——
B2区:
2MHz/4MHz
C5区:
RxRDY/TxRDY
——
B3区:
IR1/IR0
C5区:
RXD/TXD
——
乙机C5区:
TXD/RXD
B4区:
CS/A0/A1
——
A3区:
CS3/A0/A1
B4区:
GND
——
C1区:
GND
B4区:
PA口
——
G6区:
LED(1-8)
G4区:
CS/ADDA/ADDB/ADDC
——
A3区:
CS5/A0/A1/A2
G4区:
CLK
——
B2区:
500KHz
G4区:
IN0
——
D2区:
0-5V
甲机C1区:
GND
——
乙机C1区:
GND
乙机连线说明(查询法)
C5区(8251):
CS
——
A3区:
CS2
C5区(8253):
CS
——
A3区:
CS1
C5区:
A0/A1/C/D
——
A3区:
A0/A1/A0
C5区:
OUT0
——
C5区(8251):
TxC/RxC
C5区:
GATE0
——
C1区:
VCC
C5区:
CLK0(8253)/CLK(8251)
——
B2区:
2MHz/4MHz
C5区:
RxRDY/TxRDY
——
B3区:
IR1/IR0
C5区:
RXD/TXD
——
甲机C5区:
TXD/RXD
B4区:
CS/A0/A1
——
A3区:
CS3/A0/A1
B4区:
GND
——
C1区:
GND
B4区:
PA口
——
G6区:
LED(1-8)
B4区:
PA口/PB口
——
G5区:
C/B
1.4软件设计
1.4.1芯片功能
(1)8251:
串行异步通信
方式控制命令字
操作命令控制字
状态字
(2)8253:
分频提供8251的发送/接收时钟信号
0—二进制计数
1—十进制计数
00—选择计数器0
01—选择计数器1
10—选择计数器2
11—非法
00—将减1计数器CE中的数据
锁存到OL中(锁存功能)
01—对计数器的低8位读或写
10—对计数器的高8位读或写
11—计数器16位操作(先低8
位,后高8位读或写)
000—方式0
001—方式1
´10—方式2
´11—方式3
100—方式4
101—方式5
D0
D7
D6
D5
D4
D3
D2
D1
数制
工作方式
读写格式
计数器选择
(3)8255:
控制数码管或LED显示
1.4.2流程图
甲机乙机
2.查询法程序清单
甲机代码:
;片选地址分布
;CS1 0F000H~0FFFFH CS5 0B000H~0BFFFH
;CS2 0E000H~0EFFFH CS6 0A000H~0AFFFH
;CS3 0D000H~0DFFFH CS7 09000H~09FFFH
;CS4 0C000H~0CFFFH CS8 08000H~08FFFH
DATASEGMENT
C_8253EQU0F003H
T0_8253EQU0F000H
C_8251EQU0E001H
D_8251EQU0E000H
C_8255EQU0D003H
PA_8255EQU0D000H
PB_8255EQU0D001H
ADD_0809EQU0B000H
LastADDB0
FLAGDB0
DATAENDS
STASEGMENTSTACK
ST1DB100DUP(?
)
STAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STA
START:
MOVAX,DATA
MOVDS,AX
CALLINIT_8253
CALLINIT_8251
CALLINIT_8255
XORAL,AL
AD1:
MOVCX,200 ;采样200次
MOVBX,0 ;累计200次的采样值
AD2:
CALLDO_AD0809
XORAH,AH
ADDBX,AX
LOOPAD2
MOVAX,200
XCHGAX,BX
DIVBL ;200次的平均值
CMPAL,LastAD
JZAD3
AD4:
MOVLastAD,AL
MOVFLAG,0
PUSHCX
MOVCX,0FFFH
AD5:
CALLDLTime;采样间隔延时
LOOPAD5
JMPAD1
AD3:
CMPFLAG,1
JZGOON
MOVFLAG,1
CALLSEND
GOON:
JMPAD1
DO_AD0809PROCNEAR
PUSHCX
MOVAL,0
MOVDX,ADD_0809
OUTDX,AL
MOVCX,200
LOOP$ ;延时,等待AD转换完成
MOVDX,ADD_0809
INAL,DX
POPCX
RET
DO_AD0809ENDP
SENDPROCNEAR
MOVDX,C_8251
WAIT2:
INAL,DX
ANDAL,01H;判断TxRDY是否为1
JZWAIT2
MOVAL,LastAD
MOVDX,D_8251
OUTDX,AL
CALLDLTIME
MOVDX,C_8251
WAIT1:
INAL,DX
ANDAL,02H;判断RxRDY是否为1
JZWAIT1
MOVDX,D_8251
INAL,DX
MOVDX,PA_8255
OUTDX,AL;将收到的控制量送8255显示
RET
SENDENDP
INIT_8253PROCNEAR
MOVDX,C_8253
MOVAL,37H;00110111B计数器0方式3BCD计数
OUTDX,AL
MOVDX,T0_8253
MOVAL,26H
OUTDX,AL
MOVAL,0
OUTDX,AL
RET
INIT_8253ENDP
INIT_8251PROCNEAR
CALLRESET_8251
MOVDX,C_8251
MOVAL,7EH;波特率系数168位数据一位停止偶校验
OUTDX,AL
CALLDLTIME
MOVAL,15H;允许接收和发送清除错误
OUTDX,AL
CALLDLTIME
RET
INIT_8251ENDP
RESET_8251PROCNEAR;复位8251
MOVDX,C_8251
MOVAL,0
OUTDX,AL
CALLDLTIME
OUTDX,AL
CALLDLTIME
OUTDX,AL
CALLDLTIME
MOVAL,40H
OUTDX,AL
CALLDLTIME
RET
RESET_8251ENDP
DLTIMEPROCNEAR
MOVBX,1
LP:
SUBBX,1
JNZLP
RET
DLTIMEENDP
INIT_8255PROCNEAR
MOVDX,C_8255
MOVAL,80H
OUTDX,AL;初始化8255均为基本输出方式0
RET
INIT_8255ENDP
CODEENDS
ENDSTART
乙机代码:
;片选地址分布
;CS1 0F000H~0FFFFH CS5 0B000H~0BFFFH
;CS2 0E000H~0EFFFH CS6 0A000H~0AFFFH
;CS3 0D000H~0DFFFH CS7 09000H~09FFFH
;CS4 0C000H~0CFFFH CS8 08000H~08FFFH
DATASEGMENT
C_8253EQU0F003H
T0_8253EQU0F000H
C_8251EQU0E001H
D_8251EQU0E000H
C_8255EQU0D003H
PA_8255EQU0D000H
PB_8255EQU0D001H
LastADDB0;接收缓存
LastCONDB0FFH;发送缓存
FROUNTDB0;队首指针
REARDB0;队尾指针
FLAGDB0
TABDB01H,02H,04H,08H,10H,20H,40H,80H
LEDMAPDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;LED字型码
BUFFERDB5DUP(?
)
DATAENDS
STASEGMENTSTACK
ST1DB100DUP(?
)
STAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STA
START:
MOVAX,DATA
MOVDS,AX
CALLINIT_8253
CALLINIT_8251
CALLINIT_8255
GOON:
MOVDX,C_8251
INAL,DX
ANDAL,02H;判断RxRDY是否为1
JZNEXT2
CALLRECV
NEXT2:
CALLDISLED
JMPGOON
CHANGE_CONPROCNEAR;修改控制信号
LP0:
MOVFLAG,0
CMPLastAD,66H;将接收的电压与2V门限比较
JANEXT0
CMPFROUNT,7
JBENEXT3
MOVFROUNT,0
NEXT3:
CMPLastCON,00H;判断当前8个LED是否为全亮
JZENND
LEABX,TAB
MOVAL,FROUNT
XLAT
SUBLastCON,AL
INCFROUNT
JMPENND
NEXT0:
CMPLastAD,99H;将接收的电压与3V门限比较
JANEXT1
JMPENND
NEXT1:
CMPREAR,7
JBENEXT4
MOVREAR,0
MOVAL,FROUNT
CMPREAR,AL;判断队首指针是否与队尾指针相同
JBENEXT4
JMPEN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 接口 技术 课程设计