微机原理课程设计报告--数据采集系统三(中断法)
更新时间:2024-06-21 13:24:01 阅读量: 综合文库 文档下载
课程设计报告纸
微机原理课程设计
课设题目:数据采集系统三(中断法) 实验者姓名: 实验者学号: 学院:
- 1 -
课程设计报告纸
数据采集系统三(中断法)
一、实验目的
进一步掌握微机原理知识,了解微机在实时采集过程中的应用,学习、掌握编程和程序调试方法。
二、实验内容
1、用中断法,将ADC 0809通道0外接0 ~ 5V电压,转换成数字量后,在七段LED数码管上,以小数点后两位(几十毫伏)的精度,显示其模拟电压的十进值;0809通道0的数字量以线性控制方式送DAC0832输出,当通道0的电压为5V时,0832的OUT为0V, 当通道0的电压为0时,0832的OUT为2.5V;此模拟电压再送到ADC 0809通道1,转换后的数字量在CRT上以十六进制显示。 2、ADC 0809 的CLK 脉冲,由定时器8254的OUT0提供;ADC 0809的EOC信号,用作8259中断请求信号。
3、要有较好的人机对话界面;控制程序的运行。
三、总体设计
1 、ADC 0809的IN0采集电位器0 — 5V电压,IN1采集0832输出的模拟量。 2 、DAC 0832将ADC 0809的IN0数字量后重新转换成模拟量输出。 3、8259用于检测ADC 0809转换是否结束和向CPU发送INTR信号 4、 8255为七段LED数码管显示提供显示驱动信息。 5、七段LED数码管显示ADC 0809的IN0的值。 6、8254提供ADC 0809的采样时钟脉冲。
7、有良好的人—机对话界面。系统运行时,显示主菜单,开始数据采集, 在数据采集时, 主键盘有键按下, 退出返回DOD系统。
四、硬件设计
因采用了PC机和微机实验箱, 硬件电路设计相对比较简单, 主要利用微机实验箱
上的8255并行口、ADC 0809、DAC 0832、七段LED数码管单元、8254定时/计数器、74LS574输出接口、电位器等单元电路, 就构成了数据采集系统, 硬件电原理框图4-3-1所示。
- 2 -
12 3课程设计报告纸 4XD0-XD7/Y2DXIOWXD0-XD7XIOWXIORXA2XA3/Y3XD0-XD7XIOWXIORC/Y0XD0-XD7XIOWXIORINTR/Y7XD0-XD7XIOWXIORXA2XA3/Y1XA5XA6XA7D0-D7CSWRD0-D7WRRDA0A1CSD0-D7WRRDCSD0-D7WRRDINTRCSD0-D7WRRDA0A1CSABCRfe083208324Iout12Iout23A1LM32465+5V1.8432MHZ4B7LM32411GATE011OUT10K+5V8254CLK0OUT0CLKABCIN0IN1EOCIR00809XA2XA3XA48259A0A2PA0-PA5L1-L68255PB0-PB7A,B-G,Dp数码管键盘单元B74138/G/Y0/Y1/Y2/Y3/Y4/Y5/Y6/Y7 A 12TitleSizeBDate:File:NumberRevision 8-Jan-2011 Sheet of - 3 - D:\\protel 99se\\Library\\Sch\\sy.ddbDrawn By:3 4
课程设计报告纸
五、软件设计
本设计通过软件编程,实现模/数转换器0809分别对IN0 0-5V直流电压的采样,和
经0832线性控制后输出电压的IN1采样,IN0的值转换成十进制后,在七段数码管上显示; IN1的值在显示器上显示。CPU 根据IN0的值,使八位发光二极管根据题目的要求,指示相应的范围。 1、设计思想
数据采集系统分成四个功能模块,分别是主程序模块、量纲转换模块、数码管显示模块、中断服务子程序模块。 (1)主程序模块
根据题目要求,采用中断方式实现数据采集,因此可把读取IN0的值并保存,和此数字量经线性控制后送给0832输出, 作为0809 IN1的模拟电压和IN1的启动、读取以及IN0的BCD码转换, 放在中断服务子程序模块中完成。所以,在主程序模块上主要实现启动0809 IN0、显示模块的调用、和中断结束部分程序。 (2) 键盘扫描模块
设置键盘扫描模块,采用行列反转发,先PC4-PC7输出低电平,然后读入PC0-PC3.再让PC0-PC3输出低电平,读入PC4-PC7.合并扫描值,获得按键值。 (3) 量纲转换模块
量纲转换模块在中断服务程序内完成,只要将IN0的数字量分别除以51, 商存入显示IN0的个位存储单元; 余数乘以十,再除以51, 商存入十分位存储单元; 余数再乘以十,除以51, 若余数大于25,则商加1, 小于25则舍去, 这样就达到四舍五入的精度, 再把商存入百分位存储单元; 以供七段数码管显示时调用,BCD码转换模块可参考图10所示的流程图。
(4) 数码管显示模块
数码管显示模块比较简单,自编程序可参考实验指导书图1-6所示的流程图,也可参考实验8255并行口中的显示模块,应注意的是在显示个位时, 要加上小数点的显示,这可以在查表获取个位段码后,再加上80H来实现,注意每一位显示后要适当延迟时间。 (5) 中断服务子程序模块
考虑到0832的输出是0809 IN1的输入,因此,为防止在执行中断服务子程序时,二次进入中断服务子程序, 故在进入中断服务子程序后,应关闭中断,而在退出中断前开中断,以便下次中断进入。中断服务子程序模块主要完成对IN0数据的读取和保存,对IN1的启动和读取,对IN0数据的BCD转换等任务。
1、 程序流程图
数据采集三主程序流程图如图4-3-2所示; 中断服务子程序如图4-3-3所示。数码管显示子程序流程图如图3-4-7所示,键盘扫描流程图如图 4-3-4所示。
- 4 -
课程设计报告纸
初 始 化 显示提示信息 关中断 保存原中断向量表内容 设置新的中断向量表 保存原中断屏蔽寄存器值 允许IRQ2中断 8254初始化 开中断 启动0809 IN0 FLAG=0FFH IN0值量纲转换后送显存 调用数码管显示子程序 将IN1的值进行ASCII码转换 显示器显示IN1的值 N 有键按下吗? Y 恢复原中断屏蔽寄存器值 恢复原中断向量表内容 结 束
图4-3-2 数据采集三主程序流程图
- 5 -
课程设计报告纸
- 6 -
返回主程序 发中断结束命令 保护现场 ; 关中断 Y FLAG=01H ? 读IN0值, 保存 N 读IN1值, 保存 IN0值按要求变换后,送0832输出 启动IN1 FLAG=0 恢复现场 ; 开中断 图4-3-3 中断服务子程序流程图
课程设计报告纸
N 返回 N CX=0? CX-1 N DL+1,SI+1 AL=[SI]? Y 键值=DL 键值缓冲区移位 AL=0? Y 行值为0,读列值,屏蔽低四位后保存 列值为0,读行值,屏蔽高四位后保存 AL=合并行列后取反 SI=键盘扫描码首址,CX=16,DL=0 N 图4-3-4 键盘扫描程序流程图
- 7 -
课程设计报告纸
六、试验所遇问题及解决方法
问题:在转动电位器,始终没有反应,电路也检查多遍。
分析:电路连接可能存在不稳定性,也有可能是机器有些损坏啥的。 解决方法:换了个微机实验机器,然后把线路很稳定的连接,转动电位器终于出现正确的反应。
七、心得体会及建议
体会:通过这次微机原理的课程设计,实验制作,让我了解了设计电
路的程序,也让我了解了关于数据采集系统三(中断法)的原理和设计理念,加强了自身动手、思考和解决问题的能力。在此次的数据采集设计过程中,我更进一步的熟悉了机箱的结构及掌握了各芯片的工作原理和其具体的使用方法,巩固和加强了课本知识。认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。
通过课程设计,我真正领悟到了“苦中作乐”这词的真正含义,设计连接电路确实有些辛苦,但是还是很有乐趣的,当一个一个的问题被自己发现,然后自己一步一步的按照实验原理去解决问题,知道最后完全解决问题之后,一种难以言明的喜悦心情和成就感瞬间充斥整个大脑和身体,我想这也算是课程设计的乐趣所在了。
通过这次课程设计我还知道了,理论与实际相结合是和重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来才能更好的提高我们的能力,更好更全面地发展我们的各项能力,可以说,这次课程设计,我受益匪浅。
- 8 -
课程设计报告纸
建议:1.希望老师们能在上课期间增加必要的试验箱器件知识,同时在课外
增加一些汇编语言在生活中应用的相关知识介绍,帮助学生提高工程意识,在后期学习当中有一种将知识运用于实践的思想。
2.希望老师可以提前布置和安排微机原理课设的任务,老师们也知道,一方面;我们也可以多多准备一下,另一方面,随着期末考试的紧逼,后续课程的复习也是大家要付出很多时间的。
以上两点建议希望老师们能接纳,先谢谢老师了。
八、源程序
;*************回车宏定义********* CRLF MACRO
MOV DL, 0DH MOV AH,02H INT 21H ;宏定义了回车
ENDM ;*********端口地址定义*********** Y0 EQU 3000H ;片选Y0对应的端口始地址,0809,0832 Y2 EQU 3040H ;片选Y2对应的端口始地址 IN1 EQU Y0+01H*4
ADCS EQU Y0 ;AD0809的端口地址 DACS EQU Y2 ;DAC0832的端口地址 Y3 EQU 3060H
TIMER0 EQU Y3+00H*4 ;8254计数器0端口地址,8254 TIMER1 EQU Y3+01H*4 ;8254计数器1端口地址 TIMER2 EQU Y3+02H*4 ;8254计数器2端口地址 TCTL EQU Y3+03H*4 ;8254控制寄存器端口地址 Y1 EQU 3020H ;片选Y1对应的端口始地址,8255 PA55 EQU Y1+00H*4 ;8255的A口地址 PB55 EQU Y1+01H*4 ;8255的B口地址 PC55 EQU Y1+02H*4 ;8255的C口地址 PCTL EQU Y1+03H*4 ;8255的控制寄存器地址
INTR_IVADD EQU 01C8H ;INTR对应的中断矢量地址,8259 INTR_OCW1 EQU 0A1H ;INTR对应PC机内部8259的OCW1地址 INTR_OCW2 EQU 0A0H ;INTR对应PC机内部8259的OCW2地址
- 9 -
课程设计报告纸
INTR_IM EQU 0FBH ;INTR对应的中断屏蔽字
Y7 EQU 30E0H ;片选Y7对应的端口始地址
MY8259_ICW1 EQU Y7+00H ;实验系统中8259的ICW1端口地址 MY8259_ICW2 EQU Y7+04H ;实验系统中8259的ICW2端口地址 MY8259_ICW3 EQU Y7+04H ;实验系统中8259的ICW3端口地址 MY8259_ICW4 EQU Y7+04H ;实验系统中8259的ICW4端口地址 MY8259_OCW1 EQU Y7+04H ;实验系统中8259的OCW1端口地址 MY8259_OCW2 EQU Y7+00H ;实验系统中8259的OCW2端口地址 MY8259_OCW3 EQU Y7+00H ;实验系统中8259的OCW3端口地址
;*********************************堆栈段定义**************************************** STACK1 SEGMENT STACK DW 256 DUP(?) STACK1 ENDS
;*********堆栈段定义***************************************************************** DATA SEGMENT
DCTBL DB 3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh ;数码管的段码表 DB 77h,7Ch,39h,5Eh,79h,71h,00H N DB 2
IN0IN DB ? IN1OUT DB ? A3 DB ? B DB 3 DUP(?) D1 DB 0AH E1 DB 33H
FLAG DB ? MES4 DB 0DH,0AH,'++++++ WELCOME TO WEI JI YUAN LI KE SHE: ++++++',0DH,0AH,'$' MES0 DB 0DH,0AH,'******** DATA COLECTION SYSTEM ********',0DH,0AH,'$' MES1 DB 0DH,0AH,'------------ ZUO ZHE :LIU JING AND WANG ZHI MING',0DH,0AH,'$' MESS DB 0DH, 'PRESS ANY KEY TO END THE SYSTEM!',0DH,0AH,0DH, 0AH,'$' MES2 DB 0DH, 'IN1OUT DATA : $',0DH,'$' CS_BAK DW ? ;保存INTR原中断处理程序入口段地址的变量 IP_BAK DW ? ;保存INTR原中断处理程序入口偏移地址的变量 IM_BAK DB ? DATA ENDS
;*********代码段定义*********** CODE SEGMENT
ASSUME CS:CODE,SS:STACK1,DS:DATA
START: MOV AX, DATA MOV DS, AX
- 10 -
;保存INTR原中断屏蔽字的变量
课程设计报告纸
MOV AL, 10000000B ;8255初始 MOV DX, PCTL OUT DX, AL
MOV DX, OFFSET MES4
MOV AH, 9 ;显示MES4 INT
21H
MOV DX, OFFSET MES0
MOV AH, 9 ;显示MES0 INT 21H
MOV DX, OFFSET MES1
MOV AH, 9 ;显示MES1 INT
21H
MOV DX, OFFSET MESS
MOV AH, 9 ;显示MESS INT 21H
CLI ; 8259初始 MOV MOV MOV MOV MOV MOV MOV ADD MOV MOV MOV
AX, 0000H
ES, AX ;替换INTR的中断矢量
DI, INTR_IVADD ;保存INTR原中断处理程序入口偏移地址 AX, ES:[DI]
IP_BAK,AX
AX, OFFSET MYISR ;设置当前中断处理程序入口偏移地址 ES:[DI],AX DI, 2
AX, ES:[DI] ;保存INTR原中断处理程序入口段地址 CS_BAK,AX
AX, SEG MYISR ;设置当前中断处理程序入口段地址
MOV ES:[DI],AX
MOV DX, INTR_OCW1 ;设置中断屏蔽寄存器,打开INTR的屏蔽位 IN AL, DX ;保存INTR原中断屏蔽字 MOV AND OUT MOV MOV OUT
MOV MOV OUT MOV MOV OUT
IM_BAK,AL
AL, INTR_IM ;允许PC机内部8259的IR2中断 DX, AL
DX, MY8259_ICW1 ; 初始化实验系统中8259的ICW1 AL, 13H ;边沿触发、单片8259、需要ICW4 DX, AL
DX, MY8259_ICW2
AL, 08H ;初始化实验系统中8259的ICW2 DX, AL
DX, MY8259_ICW4 ;初始化实验系统中8259的ICW4 AL, 01H DX, AL
- 11 -
;非自动结束EOI
MOV DX,MY8259_OCW3
课程设计报告纸
MOV AL, 0AH
OUT DX, AL
MOV DX, MY8259_OCW1 ;初始化实验系统中8259的OCW1 MOV
AL, 0FCH
;打开IR0的屏蔽位
OUT DX, AL
MOV DX, TCTL ;8254初始 MOV AL, 17H OUT DX, AL MOV DX, TIMER0; MOV AL,2 OUT DX,AL STI S33:
MOV AL, 0
MOV DX, ADCS OUT DX,
AL
;启动0809 IN0
MOV FLAG,0FFH
CALL DISPINT0
MOV DX, OFFSET MES2
MOV AH, 9 ;显示MES2 INT 21H MOV AL,IN1OUT CALL DISPINT1 MOV DL,0FFH MOV AH,6 INT 21H JZ S33 QUIT: CLI MOV MOV MOV MOV MOV ADD MOV MOV MOV MOV
AX, 0000H
;恢复INTR原中断矢量
ES, AX
DI, INTR_IVADD ;恢复INTR原中断处理程序入口偏移地址 AX, IP_BAK ES:[DI],AX DI, 2
AX, CS_BAK ES:[DI],AX
DX, INTR_OCW1
AL, IM_BAK ;恢复INTR原中断屏蔽寄存器的屏蔽字
;恢复INTR原中断处理程序入口段地址
OUT DX, AL
STI EXIT: MOV AH, 4CH INT
21H
;返回到DOS
- 12 -
课程设计报告纸
;***********************数码管显示INT1**************************** DISPINT1 PROC
PUSH AX
MOV BL,AL ; 屏幕显示 AND AL, 0F0H MOV CL, 4 ROR AL, CL CALL CRT1 MOV AL, BL AND AL, 0FH CALL CRT1 CRLF POP AX RET
DISPINT1 ENDP CRT1
PROC
AL, 30H AL, 39H
D0
AL, 7 ;在屏幕上显示一位16进制字符
ADD
CMP JBE ADD
; 显示高位
;显示低位
D0: MOV DL, AL
MOV AH, 2 INT 21H RET CRT1 ENDP
;***********************数码管显示INT0**************************** DISPINT0 PROC PUSH DS
PUSH AX MOV AL,IN0IN ;转换IN0个位 十分位 百分位 MOV AH,0 DIV E1
MOV SI,OFFSET B MOV [SI],AL MOV AL,AH MOV AH,0 MUL D1 DIV E1 INC SI MOV [SI],AL MOV AL,AH MOV AH,0
- 13 -
课程设计报告纸
MUL D1 DIV E1 INC SI
CMP AH,19H JNBE S11 MOV AL,0 JMP S2 S11: INC AL
S2: MOV [SI],AL
MOV CL, 8 ;从最左边开始显示 MOV MOV
SI, OFFSET B
AL, [SI]
LEA BX, DCTBL XLAT ;输出段码 ADD AL,80H MOV DX, PB55 OUT MOV MOV OUT CALL INC MOV LEA XLAT MOV OUT MOV MOV OUT CALL INC ROL MOV LEA XLAT MOV OUT MOV MOV OUT CALL
DX, AL
DX, PA55
AL, CL ;输出位码 DX, AL
DELAY
SI ;段码地址+1 AL, [SI] BX, DCTBL DX, PB55
DX, AL DX, PA55
AL, CL ;输出位码 DX, AL
DELAY
SI ;段码地址+1 CL, 1 ;位码向左移1位 AL, [SI] BX, DCTBL DX, PB55
DX, AL DX, PA55
AL, CL ;输出位码 DX, AL DELAY ;输出三位码
- 14 -
ROL CL, 1 ;位码向左移1位
课程设计报告纸
MOV SI, OFFSET B
MOV AL,[SI] CMP AL,2 JB A2 MOV MOV OUT JMP G3
A2:MOV DX, PC55 MOV AL, 00H OUT DX, AL MOV DX, TCTL ;8254计数器1控制蜂鸣器 MOV AL, 77H OUT DX, AL MOV DX, TIMER1; MOV AL,00 OUT DX,AL MOV AL,01 OUT DX,AL G3: POP POP
AX DS
DX, PC55
AL, 0FFH DX, AL
RET
DISPINT0 ENDP MYISR PROC
NEAR ;中断处理程序MYISR
PUSH AX
PUSH DX
CLI ;关中断 MOV DX,MY8259_OCW3 IN AL,DX AND AL,03H CMP AL,01H JE IROISR JMP OVER IROISR: CMP FLAG,0FFH JE S MOV DX,IN1
IN AL,DX MOV IN1OUT,AL ; A2为IN1 AD后的值 JMP OVER S: MOV DX,ADCS
IN AL, DX MOV IN0IN, AL ; A1为IN0 MOV AH,0
- 15 -
课程设计报告纸
DIV N ; IN0 AD后线性转换给0832的值 NEG AL ADD AL,80H MOV BL,AL CMP BL,40H JB SS1 SUB BL,4 SS1: MOV AL,BL
MOV A3,AL MOV DX,DACS OUT DX,AL MOV DX,IN1 ; 启动IN1 OUT DX,AL MOV AL,0
MOV FLAG,AL
OVER: MOV DX,INTR_OCW2 ; 向PC机内部8259发送中断结束命令 MOV OUT MOV
AL, 20H
DX, AL
AL, 20H
OUT 20H, AL STI
POP DX POP AX IRET MYISR ENDP DELAY PROC PUSH MOV
NEAR ;延时
CX
CX, 0FFFFH
LOOP $ POP CX RET DELAY ENDP CODE ENDS END START
- 16 -
课程设计报告纸
DIV N ; IN0 AD后线性转换给0832的值 NEG AL ADD AL,80H MOV BL,AL CMP BL,40H JB SS1 SUB BL,4 SS1: MOV AL,BL
MOV A3,AL MOV DX,DACS OUT DX,AL MOV DX,IN1 ; 启动IN1 OUT DX,AL MOV AL,0
MOV FLAG,AL
OVER: MOV DX,INTR_OCW2 ; 向PC机内部8259发送中断结束命令 MOV OUT MOV
AL, 20H
DX, AL
AL, 20H
OUT 20H, AL STI
POP DX POP AX IRET MYISR ENDP DELAY PROC PUSH MOV
NEAR ;延时
CX
CX, 0FFFFH
LOOP $ POP CX RET DELAY ENDP CODE ENDS END START
- 16 -
正在阅读:
2015年考研英语一真题及其答案06-04
三(1)家长会流程表,主持槁,发言稿12-25
18秋学期《中国近代史纲要》在线作业303-08
第2章正弦交流电路习题解答06-18
永昌镇白云小学校园欺凌和校园暴力问题集中排查整治工作组织机构03-12
EndNote_X6使用方法03-18
教案《西安这座城》11-03
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 数据采集
- 微机
- 中断
- 原理
- 课程
- 报告
- 设计
- 系统
- 电气线路绝缘强度测试记录
- CPU性能排名
- 有线电视前端设备常见故障汇总
- 江苏省职业教育教学改革研究课题结题鉴定表
- 铝焊常见缺陷及原因
- 达州2016届一诊语文
- 四环路主线桥桩基专项施工方案
- 2014-2018年中国汽车弹簧行业共预测及发展前景分析报告
- 藻类名称拉丁文
- 监狱法学综合自检自测题(一)
- 水利水电工程施工企业安全生产三类人员继续教育题库答案
- 长输管线施工方案
- 最新关于订货会发言稿范文通用版
- 机械工艺夹具毕业设计167盘角齿轮盘角齿轮及钻孔夹具设计
- 特种作业人员电工考试卷子
- 关于印发重庆市国有建设用地使用权供应价款确定技术规则(试行)的
- 施工现场安全技术资料内封皮之一
- 第四章 局域网技术基础 讲义
- 天然橡胶瓶塞项目融资商业计划书(包括可行性研究报告+资金方案
- 2016电大形考02格力电器运营能力分析