微机原理课程设计报告数据采集系统三(中断法).doc
《微机原理课程设计报告数据采集系统三(中断法).doc》由会员分享,可在线阅读,更多相关《微机原理课程设计报告数据采集系统三(中断法).doc(17页珍藏版)》请在三一办公上搜索。
1、微机原理课程设计课设题目:数据采集系统三(中断法)实验者姓名: 刘 京 实验者学号: 041010114 学院: 电子信息工程学院 数据采集系统三(中断法)一、实验目的 进一步掌握微机原理知识,了解微机在实时采集过程中的应用,学习、掌握编程和程序调试方法。二、实验内容 1、用中断法,将ADC 0809通道0外接0 5V电压,转换成数字量后,在七段LED数码管上,以小数点后两位(几十毫伏)的精度,显示其模拟电压的十进值;0809通道0的数字量以线性控制方式送DAC0832输出,当通道0的电压为5V时,0832的OUT为0V, 当通道0的电压为0时,0832的OUT为2.5V;此模拟电压再送到AD
2、C 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的值
3、。 6、8254提供ADC 0809的采样时钟脉冲。 7、有良好的人机对话界面。系统运行时,显示主菜单,开始数据采集, 在数据采集时, 主键盘有键按下, 退出返回DOD系统。四、硬件设计 因采用了PC机和微机实验箱, 硬件电路设计相对比较简单, 主要利用微机实验箱上的8255并行口、ADC 0809、DAC 0832、七段LED数码管单元、8254定时/计数器、74LS574输出接口、电位器等单元电路, 就构成了数据采集系统, 硬件电原理框图4-3-1所示。五、软件设计 本设计通过软件编程,实现模/数转换器0809分别对IN0 0-5V直流电压的采样,和经0832线性控制后输出电压的IN1采样
4、,IN0的值转换成十进制后,在七段数码管上显示; IN1的值在显示器上显示。CPU 根据IN0的值,使八位发光二极管根据题目的要求,指示相应的范围。1、设计思想 数据采集系统分成四个功能模块,分别是主程序模块、量纲转换模块、数码管显示模块、中断服务子程序模块。(1)主程序模块 根据题目要求,采用中断方式实现数据采集,因此可把读取IN0的值并保存,和此数字量经线性控制后送给0832输出, 作为0809 IN1的模拟电压和IN1的启动、读取以及IN0的BCD码转换, 放在中断服务子程序模块中完成。所以,在主程序模块上主要实现启动0809 IN0、显示模块的调用、和中断结束部分程序。(2) 键盘扫描
5、模块 设置键盘扫描模块,采用行列反转发,先PC4-PC7输出低电平,然后读入PC0-PC3.再让PC0-PC3输出低电平,读入PC4-PC7.合并扫描值,获得按键值。(3) 量纲转换模块 量纲转换模块在中断服务程序内完成,只要将IN0的数字量分别除以51, 商存入显示IN0的个位存储单元; 余数乘以十,再除以51, 商存入十分位存储单元; 余数再乘以十,除以51, 若余数大于25,则商加1, 小于25则舍去, 这样就达到四舍五入的精度, 再把商存入百分位存储单元; 以供七段数码管显示时调用,BCD码转换模块可参考图10所示的流程图。(4) 数码管显示模块数码管显示模块比较简单,自编程序可参考实
6、验指导书图1-6所示的流程图,也可参考实验8255并行口中的显示模块,应注意的是在显示个位时, 要加上小数点的显示,这可以在查表获取个位段码后,再加上80H来实现,注意每一位显示后要适当延迟时间。(5) 中断服务子程序模块 考虑到0832的输出是0809 IN1的输入,因此,为防止在执行中断服务子程序时,二次进入中断服务子程序, 故在进入中断服务子程序后,应关闭中断,而在退出中断前开中断,以便下次中断进入。中断服务子程序模块主要完成对IN0数据的读取和保存,对IN1的启动和读取,对IN0数据的BCD转换等任务。1、 程序流程图 数据采集三主程序流程图如图4-3-2所示; 中断服务子程序如图4-
7、3-3所示。数码管显示子程序流程图如图3-4-7所示,键盘扫描流程图如图 4-3-4所示。YN初 始 化显示提示信息关中断保存原中断向量表内容设置新的中断向量表保存原中断屏蔽寄存器值允许IRQ2中断8254初始化开中断启动0809 IN0FLAG=0FFHIN0值量纲转换后送显存调用数码管显示子程序将IN1的值进行ASCII码转换显示器显示IN1的值有键按下吗?恢复原中断屏蔽寄存器值恢复原中断向量表内容结 束 图4-3-2 数据采集三主程序流程图NY图4-3-3 中断服务子程序流程图读IN0值, 保存IN0值按要求变换后,送0832输出 启动IN1FLAG=0 读IN1值, 保存发中断结束命令
8、返回主程序恢复现场 ; 开中断保护现场 ; 关中断FLAG=01H ?列值为0,读行值,屏蔽高四位后保存行值为0,读列值,屏蔽低四位后保存 AL=合并行列后取反 AL=0?YSI=键盘扫描码首址,CX=16,DL=0NAL=SI?YN 键值=DL键值缓冲区移位DL+1,SI+1 CX-1NN CX=0? 返回 图4-3-4 键盘扫描程序流程图六、试验所遇问题及解决方法问题1:转动电位器时数码管电压变化不灵敏,有很严重的迟滞现象,且输出不稳定。分析:每次转动电位器都对应一次中断请求,中断数据采集频率对应8254的OUT0输出的600KHZ,即对CLK0输入的1.8432MHZ的三分频。我想问题应
9、该是采样频率太低的原因,输出之所以不稳定也是有可能因为频率不匹配的问题。解决方法:修改8254计数器0的计数初值,将原来的3改为了2,即对应2分频,结果电位器变化与数码管电压变化基本一致。问题2:中断服务子程序中要实现0809通道0的数字量以线性控制方式送DAC0832输出,当通道0的电压为5V时,0832的OUT为0V, 当通道0的电压为0时,0832的OUT为2.5V,但是我们的程序中线性变换结果混乱。分析:设0809通道0的值为X,DAC0832的输出端数据为Y,根据实验所给数据推得X与Y的数值关系式为Y=(5-X)/2。解决方法:将中断服务子程序中的0809通道0的数字量和DAC083
10、2输出量之间的转换函数修改为MOV IN0IN, AL ; A1为IN0 MOV AH,0 DIV N (N=2) ; 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最后0809通道0的数据和0832输出端的数据得到正确的对应关系。七、心得体会及建议 体会: 通过一学期的学习,我发现汇编语言与我之前所学过的C+完全不同,汇编语言是从计算机内部结构出发,立足于CPU存储结构进行编程,更加基础,深入。 为了
11、顺利完成课程设计,在进行编程之前,我把中断控制器8259、并行控制8255、时钟发生器8254以及A/D转换0809和D/A转换0832的工作原理以及工作方式进行了深入的回顾与理解。 结合以前80X86实验内容,我完成了课程设计的编程。接下来是上机调试,经过汇编链接,有几个小问题,经过检查顺利排除。程序已经可以生成.EXE文件执行了,但是转动电位器,屏幕上现实IN0和IN1的值但是关系不正确。后来经过仔细研究IN0经转换后的数字量应该进行的变换,调整了程序,终于实现了功能。验收时,老师让我们修改源程序与试验箱上的接线。这对我来说也是一次挑战,我根据自己的理解,修改了源程序与接线,编译链接之后,
12、实现了转动电位器,在不同电压范围内发出不同频率声音的功能。也顺利通过了老师的验收。通过这次课程设计,自己对编程解决问题不是那么恐惧了,相反还有了很大的兴趣。我发现,当我们把汇编语言当成一种工具,而不是一门考试时,就能更加好的掌握它。建议:1.希望老师们能在上课期间增加必要的试验箱器件知识,同时在课外增加一些汇编语言在生活中应用的相关知识介绍,帮助学生提高工程意识,在后期学习当中有一种将知识运用于实践的思想。2.希望老师可以提前布置和安排微机原理课设的任务,不要等到微机原理课程结束且考试也已经结束的情况下载布置微机课设,老师们也知道,一方面微机原理已经考完大家在微机原理课程上投入的时间肯定不会太
13、多,大家对汇编语言的编写说实话也就少了几分热情;另一方面,随着期末考试的紧逼,后续课程的复习也是大家要付出很多时间的。以上两点建议希望老师们能接纳,先谢谢老师了。八、源程序 ;*回车宏定义*CRLF MACRO MOV DL, 0DH MOV AH,02H INT 21H ;宏定义了回车 ENDM ;*端口地址定义* Y0EQU 3000H ;片选Y0对应的端口始地址,0809,0832Y2 EQU 3040H ;片选Y2对应的端口始地址IN1 EQU Y0+01H*4ADCSEQU Y0 ;AD0809的端口地址DACSEQU Y2 ;DAC0832的端口地址Y3 EQU 3060H TIM
14、ER0 EQUY3+00H*4 ;8254计数器0端口地址,8254TIMER1 EQUY3+01H*4 ;8254计数器1端口地址TIMER2 EQUY3+02H*4 ;8254计数器2端口地址TCTL EQU Y3+03H*4 ;8254控制寄存器端口地址Y1 EQU 3020H ;片选Y1对应的端口始地址,8255PA55 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_IVADDEQU 01C8H;INTR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 课程设计 报告 数据 采集 系统 中断
链接地址:https://www.31ppt.com/p-2392941.html