2022年扬大微机课设报告-数据采集 .pdf

上传人:Che****ry 文档编号:34864813 上传时间:2022-08-19 格式:PDF 页数:13 大小:228.29KB
返回 下载 相关 举报
2022年扬大微机课设报告-数据采集 .pdf_第1页
第1页 / 共13页
2022年扬大微机课设报告-数据采集 .pdf_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《2022年扬大微机课设报告-数据采集 .pdf》由会员分享,可在线阅读,更多相关《2022年扬大微机课设报告-数据采集 .pdf(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、扬 州 大 学微机原理及应用课程设计报告2015.07.10目录题目数据采集班级学号姓名同组成员指导教师成绩精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 13 页微机原理课程设计-信息采集系统- 1 - 一、课程设计的任务2 二、总体设计方案2 三、部分电路设计2 四、硬件接线图3 五、 软件设计流程图4 六、 程序段功能汇总7 七、程序清单9 八、实验结果及分析13 九、课程设计体会和总结13一、课程设计的任务1掌握 8255A的工作原理及使用方法2进一步了解 ADC0809 的性能及编程方法。精选学习资料 - - - - - -

2、- - - 名师归纳总结 - - - - - - -第 2 页,共 13 页微机原理课程设计-信息采集系统- 2 - 3进一步掌握七段数码管显示数字的原理及编程方法。二、总体设计方案通过电位器 RW1输出 05V直流电压,送入 ADC0809 的通道 0(IN0)。1实验要求(1)编程采集 IN0输入的电压,并把转换后的数据以十六进制的形式在七段数码管上显示,范围00FFH 。(2) 把转换后的数据以十进制的形式在七段数码管上显示,范围 0.0 5.0V。(3)当采集到的电压值超过4. 5V时,喇叭发声报警。2实验原理(1)如图 1.1 、图 1.2 所示, 8255A的 PA0PA6分别与七

3、段数码管的段码驱动输入端 ag 相连, 8255A的 PB0、PB1、PB2与位码驱动输入端X1、X2、X3相连,控制数码管的选通。(2) ADC0809的转换结束信号 EOC 与 8255A的 PC7相连,通过查询方式判断ADC0809 的通道 0(IN0)是否转换结束。三、部分电路设计LED 显示单元的接线:A/D 转换单元:8255连接LED ADC0809连接880386 及输入电压PA0 - A D0D7-XD0XD7 PA1 -B A、B、C-GND PA2-C IN0-ADJ(05V) PA3-D WR-IOW# PA4-E RD-IOR# PA5-F CS-IOY1 PA6-G

4、 CLK-CLK PA7-DP 串行单元的接线:喇叭报警器:8255连接80386 8254 连接 80386,ADC0809D0D7-XD0XD7 D0D7-XD8XD15 PB0PB5-X1X6 A0A1-XA1XA2 CS-IOY3 CS-IOY2 A0A1- XA1XA2 CLKO-CLK WR-IOW# WR-WR 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 13 页微机原理课程设计-信息采集系统- 3 - RD-IOR# RD-RD GATE0-+5V OUT0-SPK 四、硬件接线图CLOCKADDCEOCVCCVRE

5、F(+)IN7ADDBADDAGNDADC0809VREF( )IN6IN5IN4IN3IN2IN1IN0+5V1112131610D7D6D5D4D3D2D1D0PC7D7D6D5D4D3D2D1D0(MSB)(LSB)267232425172120191815148CLKADJ2269640HSTARTOECS 1ALE 1IOWIOR41326574LS02RW+5V图 1 ADC0809连线图图 2 8255A 连线图精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 13 页微机原理课程设计-信息采集系统- 4 - 8254OUT

6、0GATE0CLK011109CS21680H686H1MHZPC3J1图 3 8254 连线图五、软件设计流程图1. 根据功能需求,系统主程序主要包括初始化程序、A/D 转换子程序、显示子程、 BCD 转换子程序和报警子程序。主程序流程图见图4 所示图四:主程序流程图2.A/D 转换子程序用来控制对ADC0809 对电压数据的采样和模拟输入电压的转换,并将对应的数值存放到相应的数据段BCD字节单元,供CPU取出显示到精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 13 页微机原理课程设计-信息采集系统- 5 - LED单元。数据的读取

7、方式可以采用延时等待的方式,ADC0809 的转换控制如下:选择通道并启动转换等待中断读取转换结果。A/D转换子程序的程序流程图如图5 所示。图 5: AD 转换3显示子程序跟 BCD 码转换子程序显示子程序采用动态扫描法实现三位数码管的数值显示。测量所得的A/D 转换数据放在数据段BCD 字节存储单元, 测量数据在显示时需要转换为十进制 BCD 码放在 TABLE1 表中。由于 ADC0809 是将模拟信号转换为数字信号,所以要将数字信号转换为对应的电压值,公式为VDATA/51 。转换时取一位整数和两位小数,再将数据转换为显示码就可以输出显示了。三位数据显示程序流程图如图6 所示。显示子程

8、序中调用了BCD码转换子程序, BCD码转换程序是将数据转换为 BCD 码值。 显示子程序是将数据一次性输出, 主要是将对应的段码和位码输出,注意小数点的处理。延时子程序利用8254 计时,用 8255 来查询计时是否完成。BCD 码转换子程序流程图见图7 所示。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 13 页微机原理课程设计-信息采集系统- 6 - Y N N Y Y 图 7 BCD 转换子程序流图N 图 6 三位数据显示程序流程图开始结束给位码赋值BCD 的地址送段码小数点处判断显示的数据是否为第一输出位码输出段码调用延时子

9、程取下一个数判断 3 为数据是否显示完位码又移一位开始BCD 的地址送TABLE 地址送把 AX 除 51 查表结果送SI 除后的余数送SI+1 前进结束判断是否除了 3 次精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 13 页微机原理课程设计-信息采集系统- 7 - 4报警子程序报警子程序是接受 8254的信号来发出警告的。当采样的平均值超过4.5V时,8254将会发一路信号给SPK喇叭,喇叭发出声响警告。报警子程序流程图如图 8 所示。N Y 图 8 报警子程序流程图六、程序段功能汇总(1)ADC0809 的 IN0端口地址为:

10、640H ,8255A的端口地址为: A口:6C0H 、B口:6C2H 、C口: 6C4H、控制口: 6C6H 。(2)首先启动一次 A/D 转换,将转换结束后将采集数据保存到存储器中。;A/D 转换子程序GET: MOV BX, 0 MOV CX, 5 LOOP1: MOV DX, 0640H ;AD 转换器的端口地址OUT DX, AL ;启动 AD 转换器CALL DALL Y ;等待延迟IN AL, DX ;从 AD 转换器的端口地址读出数据开始读入 5个数的平判 断 平 均值是否大于 4.5 初始化 8254 为方调用延时程序结束精选学习资料 - - - - - - - - - 名师

11、归纳总结 - - - - - - -第 8 页,共 13 页微机原理课程设计-信息采集系统- 8 - XOR AH, AH ;AX 高八位 AH 清 0 ADD BX, AX ;将读出的数据进行累加LOOP LOOP1 ;读 5 次数据进行累加MOV AX, BX MOV DL, 5 ;为了数据精确求取5 次的平均值DIV DL MOV A VERAGE, AL ;送入变量单元内LEA SI, AVERAGE (3)将采集到的数据转换为十进制数,转换好的三位十进制数据分别保存于存储器的显示缓冲区中。;BCD 转换子程序CHBCD: LEA BX, TABLE1 LEA SI, BCD MOV

12、CX,3 ;实现三位数码管的数值显示,依次送个位和小数点后的两位MOV AL, A VERAGE XOR AH, AH LOOP2:MOV DL, 51 ;(X/5)256= 得到的二进制电压值,变成十进制数的话是逆过程,256/5=51,所以除以51 得到十进制电压DIV DL ;平均值除以51 XLAT MOV SI, AL ;求 bcd 码送入对应BCD 单元INC SI MOV AL, AH XOR AH, AH MOV DL, 10 MUL DL LOOP LOOP2 ;精确到小数点后两位(4)8254初始化, 8254 的端口地址设为 680H 686H ,通道 0 的工作方式设定

13、为方式 3,初值为 1000,8255A的 PC3初始电平设为低电平。( 5 ) 数 据 显 示 完 毕 之 后 , 判 断 缓 冲 中 采 集 数 据 是 否 大 于(4.5/5)*255=229(用数字 0255的范围来模拟电压05V的范围,4.5V 相当于十进制数的 229),如果是则将PC3置位高电平, 8254 输出方波驱动扬声器发声报警。;报警程序段JUG: PUSH CX PUSH AX MOV AL, A VERAGE ;取出之前存入的平均值,放进AL CMP AL, 0E5H ;4.5V 占比重 0.9,256*0.9=226 用 16 进制表示为0E5H JNB NEXT2

14、 ;超过 4.5V 的警戒值,启动报警MOV DX, 0686H MOV AL, 36H OUT DX, AL 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 13 页微机原理课程设计-信息采集系统- 9 - MOV AL,0 OUT DX,AL JMP NEXT3 NEXT2:MOV DX, 0686H ;8254 的端口初始化,MOV AL, 36H ;00110110B 计数器 0,读写高低位,采用方式3 二进制计数OUT DX, AL MOV AX,2000 MOV DX, 0680H ;计数器 0 送初值OUT DX, AL

15、MOV AL,AH OUT DX,AL CALL DALL Y NEXT3: POP AX POP CX RET 七、程序清单SSTACK SEGMENT STACK DW 64 DUP(?) SSTACK ENDS PUBLIC BCD DATA SEGMENT TABLE1 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;数码管表;对应0 1 2 3 4 5 数码管共阴极BCD DB 0,0,0 AVERAGE DB 0 DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DA TA START: MOV AX, DA

16、 TA MOV DS, AX CALL GET CALL JUG ;判断是否大于4.5 CALL CHBCD Call PRT1 CALL PRT ;调用显示子程序JMP START ;BCD 转换子程序CHBCD: LEA BX, TABLE1 LEA SI, BCD MOV CX,3 ;实现三位数码管的数值显示,依次送个位和小数点后的两位精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 13 页微机原理课程设计-信息采集系统- 10 - MOV AL, A VERAGE XOR AH, AH LOOP2:MOV DL, 51 ;(X

17、/5)256= 得到的二进制电压值,变成十进制数的话是逆过程,256/5=51,所以除以51 得到十进制电压DIV DL ;平均值除以51 XLAT MOV SI, AL ;求 bcd 码送入对应BCD 单元INC SI MOV AL, AH XOR AH, AH MOV DL, 10 MUL DL LOOP LOOP2 ;精确到小数点后两位;A/D 转换子程序GET: MOV BX, 0 MOV CX, 5 LOOP1: MOV DX, 0640H ;AD 转换器的端口地址OUT DX, AL ;启动 AD 转换器CALL DALL Y ;等待延迟IN AL, DX ;从 AD 转换器的端口

18、地址读出数据XOR AH, AH ;AX 高八位 AH 清 0 ADD BX, AX ;将读出的数据进行累加LOOP LOOP1 ;读 5 次数据进行累加MOV AX, BX MOV DL, 5 ;为了数据精确求取5 次的平均值DIV DL MOV A VERAGE, AL ;送入变量单元内LEA SI, AVERAGE MOV BL, SI ;源程序,显示程序段PRT: MOV DX, 06C6H ;初始化 8255 MOV AL, 80H ;10000000B ABC 输出方式OUT DX, AL MOV CX, 100H LOOP3: LEA SI, BCD MOV AH, 0FEH ;

19、置位码LOOP4: MOV AL, AH MOV DX, 06C2H ;初始化 B 口OUT DX, AL MOV AL, SI CMP AH, 0FEH 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 13 页微机原理课程设计-信息采集系统- 11 - JNZ NEXT1 OR AL, 80H ;最高位置1 小数点点亮NEXT1: MOV DX, 06C0H ;初始化 A 口OUT DX, AL CALL DALL Y ROL AH, 1 INC SI CMP AH, 0F7H JNZ LOOP4 LOOP LOOP3 RET DA

20、LL Y: PUSH CX ;延时程序PUSH AX MOV CX, 10H A77:MOV AX, 10H A88:DEC AX JNZ A88 LOOP A77 POP AX POP CX RET ;报警程序段JUG: PUSH CX PUSH AX MOV AL, A VERAGE ;取出之前存入的平均值,放进AL CMP AL, 0E5H ;4.5V 占比重 0.9,256*0.9=226 用 16 进制表示为0E5H JNB NEXT2 ;超过 4.5V 的警戒值,启动报警MOV DX, 0686H MOV AL, 36H OUT DX, AL MOV AL,0 OUT DX,AL

21、JMP NEXT3 NEXT2:MOV DX, 0686H ;8254 的端口初始化,MOV AL, 36H ;00110110B 计数器 0,读写高低位,采用方式3 二进制计数OUT DX, AL MOV AX,2000 MOV DX, 0680H ;计数器 0 送初值OUT DX, AL MOV AL,AH OUT DX,AL CALL DALL Y 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 13 页微机原理课程设计-信息采集系统- 12 - NEXT3: POP AX POP CX RET CODE ENDS END ST

22、ART 八、实验结果及分析实验是通过转动ADJ 单元上的旋钮调节输入的电压的,旋钮输出的电压经过AD 转换器后转换成具体的数值。当输入的电压平均值在4.5v 以下时喇叭没有警告的声音发出。当转动旋钮使电压超过4.5v 时,喇叭有报警的声音发出。报警声音的音调跟送入的频率有关,频率越高音调越高。实验成功。九、课程设计体会和总结此次的微机原理课程设计,在学期基础实验的基础上提高了我们对于微机原理的实际应用要求, 在不断的深入理解理论知识的基础上,我们这组同学通过不断的修改和调试最终成功的运行了我们的程序,达到了老师对于此次课程设计的要求。通过这一个星期的课程设计,我对于微机原理这门课程的掌握程度以

23、及实际的应用能力都有了一定程度上的提高。组员之间的共同合作,不同的分工,我们各司其职,默契配合,共同解决面临的难题,共同分享成功的喜悦。在实践的检验中,我们学到的知识得到了有效的巩固,动手的能力,独立思考的能力,团队合作的能力都得到了有效的锻炼。在设计的过程当中我们也遇到了很多的问题。一开始的时候我们的接线遇到了问题,碰到 LED 的显示的时候并不知道怎么办才好。经过学习之后懂得了LED 灯的原理终于有所突破。至于 8255A 芯片和 8254 我们都很熟悉根本不算什么难的问题。接线图完成之后就开始进行编程。 汇编的东西我们又重新的温习了一边。在编程的过程当中我发现单独的模块来说我们都可以很好

24、地完成但是涉及到系统性的东西就很不容易,后来想了想原因就是我们很少写完整的程序都是写的具体的某一个功能的程序片段。这次涉及到完整的程序我们的进度显然是慢了些。 但是后来经过数次的调整终于没有了大的问题。就在即将验收的时候我们忽略了一个重要的问题,就是我们没有将十六进制的采集到的电压在LED 灯上显示,只是显示了转换成BCD 码的数值,后来又经过一番的调整终于完成了。我们大家都很高兴。尽管这次的设计过程很简单,但是我们每个人心中都是很开心的。这次课程设计培养了我们的动手能力,系统的运用了我们之前学过的知识,加深了我们对于微机原理的理解。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共 13 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁