微机原理课程设计.docx
- 文档编号:12701250
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:18
- 大小:88.35KB
微机原理课程设计.docx
《微机原理课程设计.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计.docx(18页珍藏版)》请在冰点文库上搜索。
微机原理课程设计
、
微机原理课程设计
—数据采集系统(查询法)
#
(
一、课设目的
进一步掌握微机原理只是,了解危机在实时采集过程中的应用,学习、掌握编程和程序调试方法。
,
二、课设内容
用查询法,将ADC0809通道0外接0~5V电压,转换成数字量后,在七段LED数码管上,以小数点后两位(几十毫伏)的精度,显示其模拟电压的十进值;0809~道0的数字量以线性控制方式送DAC0832输出,当通道O的电压为5V时,0832的OUT为0v,当通道O的电压为0时,0832的OUT为2.5V;此模拟电压再送到ADC0809通道1,转换后的数字量在CRT上以十六进制显示;通道0的数字量经74LS574输出到八位LED上,且以一定的要求,点亮LED指示灯。
调整电位器,用示波器或三用表观察0832的变化,观察七段LED数码管数值的变化,观察LED灯的变化,
ADC0809的CLK脉冲,由定时器8254的OUT0提供;ADC0809的EOC信号,用8255的PC0检测;74LS574外接的LED灯变化如下:
若电压值小于0.5V,则最低位(DO)’LED灯亮,若电压值大于4.5V,则最高位LED灯亮,若电压值在0.5V~4.5V,则八位LED灯由低向高变化亮,且高位LED灯亮时低位灯全亮。
要有较好的人机对话界面;控制程序的运行。
三、硬件设计
1、电原理框图
见附件1
2、电原理框图工作过程的简要说明
【
(1)、ADC0809的INO采集电位器0—5V电压,INl采集0832输出的模拟量。
(2)、DAC0832将ADC0809的INO数字量后重新转换成模拟量输出。
(3)、8255用于检测ADC0809转换是否,为七段LED数码管显示提供显示驱动信息。
(4)、七段LED数码管显示ADC0809的INO的值。
(5)、74LS574驱动八位发光二极管,使它们按要求点亮:
来指示当前采样值的范围。
(6)、8254提供ADC0809的采样时钟脉冲。
(7)、74LSl38译码器为各芯片提供地址信息。
四、软件设计
【
首先进行程序初始化显示提示信息,判断是否有键按下,按下1则继续往下执行,按下2则退出。
首先对8254进行初始化选择工作方式及赋初值,然后启动0809的IN0,接着初始化8255,并检测PA7的状态检测转换是否,否继续检测直至EOC为1,然后读采样值并保存,将其经线性转换后送0832,启动0809的IN1,然后重新对8255初始化及检测PA7的EOC状态端口,直至为1,读IN1的采样值并保存,将读出值经线性转换后送往CRT显示,然后将保存的INO采样值进行量纲转换,调用数码显示子程序。
然后对保存的IN0采样值进行比较,若小于,74574只驱动最低位,最低位亮,若大于则只有最高位亮,在中间值依次点亮一位,如大于小于则最低两位亮,在至间低三位亮,在至间低三位亮等。
在和间选择六个值依次控制选择点亮LED灯.最后判断主键盘是否有键按下,有结束,无重新回到启动0809的IN0程序段。
最后列写数码管显示的子程序、CRT显示子程序、延时子程序。
1、主程序流图
见附录2
2、程序
DATASEGMENT
MES1DB'PRESS1TOBEGIN!
',0DH,0AH
DB'PRESS2TOQUIT!
',0DH,0AH,0DH,0AH,'$'
MES2DB'IN1DATA=','$'
【
MES3DB0DH,0AH,'$'
K0DB
K1DB
SDB3DUP()
DCTBL1DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,3EH
DCTBL2DB0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0DFH
S1DB01H
【
S2DB80H
DATAENDS
STACK1SEGMENTPARASTACK'STACK'
DB256DUP()
STACK1ENDS
CODESEGMENT
)
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
LEADX,MES1
MOVAH,9
INT21H
LOP1:
MOVDL,0FFH
/
MOVAH,6
INT21H
JZLOP1
CMPAL,'1'
JZDA
CMPAL,'2'
JZEXIT1
JMPSTART
—
DA:
MOVAL,36H;8254初始化
MOVDX,306CH
OUTDX,AL
MOVAL,00H;8254赋初值
MOVDX,3060H
OUTDX,AL
MOVAL,01H
$
MOVDX,3060H
OUTDX,AL
BE:
MOVAL,00H;启动0809的IN0
MOVDX,3000H
OUTDX,AL
L1:
MOVAL,90H;8255初始化
。
MOVDX,302CH
OUTDX,AL
MOVDX,3020H;8255的PA7检测EOC状态
INAL,DX
TESTAL,80H
JZL1
MOVDX,3000H;读0809采样值
INAL,DX
/
MOVK0,AL;保存0809采样值
MOVAL,K0;线性控制方式转换电压,计算公式-1/2(X-5)
SUBAL,0FFH
RORAL,1
NEGAL
MOVK1,AL
·
MOVDX,30E0H;把IN0计算值送给0832
OUTDX,AL
MOVAL,10H;启动0809的IN1
MOVDX,3004H
OUTDX,AL
L2:
MOVAL,90H;8255PA7检测EOC状态
MOVDX,302CH
\
OUTDX,AL
MOVDX,3020H
INAL,DX
TESTAL,80H
JZL2
NEXT:
MOVDX,3004H;读IN1采样值
INAL,DX
\
MOVAL,7FH
MOVBL,K0
SHRBL,1
SUBAL,BL
MOVK1,AL;保存IN1
LEADX,MES2
MOVAH,9
—
INT21H
JMPDE
EXIT1:
JMPEXIT
DE:
MOVAL,K1;CRT显示IN1的值
MOVBL,AL
}
ANDAL,0F0H
MOVCL,4
RORAL,CL
CALLCRT1
MOVAL,BL
ANDAL,0FH
CALLCRT1
—
MOVDL,0DH
MOVAH,2
INT21H
MOVAL,K0;量纲转换
MOVAH,00H
MOVBL,51
DIVBL
-
LEASI,S
MOV[SI],AL
INCSI
MOVAL,AH
MOVBL,10
MULBL
MOVBL,51
DIVBL
[
MOV[SI],AL
INCSI
MOVAL,AH
MOVBL,10
MULBL
MOVBL,51
DIVBL
CMPAH,25
&
JAL3
JMPL4
L3:
ADDAL,1
L4:
MOV[SI],AL
CALLDISP
MOVAL,K0
CMPAL,19H
@
JBL5
CMPAL,3BH
JBL6
CMPAL,5DH
JBL7
CMPAL,7FH
JBL8
CMPAL,0A1H
~
JBL9
CMPAL,0C3H
JBL10
CMPAL,0E6H
JBL11
MOVDX,3080H
MOVAL,80H
$
OUTDX,AL
JMPL12
L5:
MOVDX,3080H
MOVAL,01H
OUTDX,AL
JMPL12
L6:
MOVDX,3080H
MOVAL,00000011B
^
OUTDX,AL
JMPL12
L7:
MOVDX,3080H
MOVAL,00000111B
OUTDX,AL
CALLDELAY
JMPEXIT0
L8:
MOVDX,3080H
MOVAL,00001111B
OUTDX,AL
JMPL12
L9:
MOVDX,3080H
MOVAL,00011111B
OUTDX,AL
JMPL12
L10:
MOVDX,3080H
~
MOVAL,00111111B
OUTDX,AL
JMPL12
L11:
MOVDX,3080H
MOVAL,01111111B
OUTDX,AL
L12:
CALLDELAY
。
EXIT0:
MOVDL,0FFH
MOVAH,6
INT21H
JNZEXIT
JMPBE
EXIT:
MOVAH,4CH
!
INT21H
DISPPROCNEAR
PUSHDS
PUSHCX
PUSHDX
PUSHAX
PUSHBX
…
MOVAL,B;8255初始化
MOVDX,302CH
OUTDX,AL
DIS1:
MOVSI,OFFSETS;七段数码管显示IN0转换为十进制后的个位、十分位、百分位的值
MOVAL,[SI];显示个位
LEABX,DCTBL2
%
XLAT
MOVDX,3024H
OUTDX,AL
MOVAL,000001000B
MOVDX,3020H
OUTDX,AL
CALLDELAY
INCSI
—
MOVAL,[SI];显示十分位
LEABX,DCTBL1
XLAT
MOVDX,3024H
OUTDX,AL
MOVAH,000010000B
MOVAL,AH
-
MOVDX,3020H
OUTDX,AL
CALLDELAY
INCSI
MOVAL,[SI];显示百分位
LEABX,DCTBL1
XLAT
【
MOVDX,3024H
OUTDX,AL
MOVAL,100000B
MOVDX,3020H
OUTDX,AL
CALLDELAY
POPBX
>
POPAX
POPDX
POPCX
POPDS
RET
DISPENDP
CRT1PROC;CRT显示子程序
-
PUSHAX
PUSHDX
ADDAL,30H
CMPAL,39H
JBED0
ADDAL,7
D0:
MOVDL,AL
MOVAH,2
^
INT21H
POPDX
POPAX
RET
CRT1ENDP
DELAYPROCNEAR;DELAY子程序
PUSHCX
【
PUSHBX
MOVBX,18H
DEL1:
MOVCX,0FFFFH
LOOP$
DECBX
JNZDEL1
POPBX
:
POPCX
RET
DELAYENDP
CODEENDS
ENDSTART
五、编程和调试中遇到的问题
刚开始的时候LED数码管不亮,经检查发现是插线一端接错位置,改正后数码管亮,但发现调整电位器时,八位发光二极管的点亮次序与预计值不同,且LED数码管还会不停闪动。
经检查发现是排线接触不良,对可能接触不良的排线进行排查更换,最终LED和发光二极管正常显示。
~
编译时,程序报错AddressOutofRange,即跳转时超程。
在程序中间位置加入中继跳转,同时在程序顺序运行时命令其跳过“中继跳转”指令运行。
六、运行结果
1.运行程序后,屏幕输出
PRESS1TOBEGIN!
PRESS2TOQUIT!
2.按键盘‘1’后,屏幕显示
【
PRESS1TOBEGIN!
PRESS2TOQUIT!
IN1DATA=00
7段数码管显示;LED灯最高位点亮
3.旋动电位器直至极限位置,屏幕显示
PRESS1TOBEGIN!
【
PRESS2TOQUIT
IN1DATA=7F
7段数码管显示;LED灯最低位点亮
附录1:
电原理框图
附录2:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 课程设计