《2022年扬大微机课设报告-数据采集.docx》由会员分享,可在线阅读,更多相关《2022年扬大微机课设报告-数据采集.docx(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选学习资料 - - - - - - - - - 扬 州 大 学微机原理及应用课程设计报告题目数据采集班 级学 号姓 名同组成员指导老师成 绩2022.07.10目录名师归纳总结 - - - - - - -第 1 页,共 13 页精选学习资料 - - - - - - - - - 微机原理课程设计-信息采集系统一、课程设计的任务 2 二、总体设计方案 2 三、部分电路设计 2 四、硬件接线图 3 五、软件设计流程图 4 六、程序段功能汇总 7 七、程序清单 9 八、试验结果及分析 13 九、课程设计体会和总结 13一、课程设计的任务1把握 8255A的工作原理及使用方法2进一步明白 ADC080
2、9的性能及编程方法;- 1 - 名师归纳总结 - - - - - - -第 2 页,共 13 页精选学习资料 - - - - - - - - - 微机原理课程设计-信息采集系统3进一步把握七段数码管显示数字的原理及编程方法;二、总体设计方案通过电位器 RW 1 输出 05V 直流电压,送入 ADC0809的通道 0IN 0 ;1试验要求(1)编程采集 IN0 输入的电压,并把转换后的数据以十六进制的形式在七段数码管上显示,范畴00FFH;范畴 0.0 5.0V;(2)把转换后的数据以十进制的形式在七段数码管上显示,(3)当采集到的电压值超过 2试验原理4. 5V 时,喇叭发声报警;(1)如图
3、1.1 、图 1.2 所示, 8255A 的 PA0PA6分别与七段数码管的段码驱动输入端 ag 相连, 8255A的 PB0、PB1、PB2与位码驱动输入端 X1、X2、X3相连,掌握数码管的选通;(2) ADC0809的转换终止信号 EOC与 8255A的 PC7相连,通过查询方式判定ADC0809的通道 0(IN 0)是否转换终止;三、部分电路设计LED 显示单元的接线:A/D 转换单元:8255 连接 LED ADC0809 连接 880386 及输入电压PA0 - A D0D7-XD0XD7 PA1 -B A 、B、C-GND PA2-C IN0-ADJ05V PA3-D WR-IO
4、W# PA4-E RD-IOR# PA5-F CS-IOY1 PA6-G CLK-CLK PA7-DP 串行单元的接线:80386 喇叭报警器:8255连接8254 连接 80386,ADC0809D0D7-XD0XD7 PB0PB5-X1X6 CS-IOY3 A0A1- XA1XA2 D0D7-XD8XD15 A0A1-XA1XA2 CS-IOY2 CLKO-CLK WR-IOW# WR-WR - 2 - 名师归纳总结 - - - - - - -第 3 页,共 13 页精选学习资料 - - - - - - - - - RD-IOR# 微机原理课程设计-信息采集系统RD-RD GATE0-+5
5、V OUT0-SPK 四、硬件接线图CLK+5V12ADC0809219D 71 13PC7V CCMSBD 71120V REF+ V REF GNDD 6 D 5 D 4 D 3D 61319D 51618D 4 D 381510D 2D 214CLOCKLSBD1D 117D0D 023IN 7 IN 6 IN 5 IN 4 IN 3ADDC ADDB ADDAEOC2425722IOWIN 2 IN 1 IN 0ALE START2ADJ2664 1CS6640HOE5IOR74LS02+5VRW图 1 ADC0809连线图图 2 8255A 连线图- 3 - 名师归纳总结 - - -
6、 - - - -第 4 页,共 13 页精选学习资料 - - - - - - - - - 微机原理课程设计-信息采集系统1MHZCLK 09680H686H21CS8254GATE 011PC3J1OUT 010图 3 8254 连线图五、软件设计流程图1. 依据功能需求,系统主程序主要包括初始化程序、A/D 转换子程序、显示子程、 BCD转换子程序和报警子程序;主程序流程图见图 4 所示图四:主程序流程图2.A/D 转换子程序用来掌握对ADC0809对电压数据的采样和模拟输入电压的转换,并将对应的数值存放到相应的数据段BCD字节单元,供CPU取出显示到- 4 - 名师归纳总结 - - - -
7、 - - -第 5 页,共 13 页精选学习资料 - - - - - - - - - 微机原理课程设计-信息采集系统LED单元;数据的读取方式可以采纳延时等待的方式,挑选通道并启动转换 等待中断 读取转换结果;A/D 转换子程序的程序流程图如图 5 所示;图 5: AD 转换3显示子程序跟 BCD码转换子程序ADC0809的转换掌握如下:显示子程序采纳动态扫描法实现三位数码管的数值显示;测量所得的A/D 转换数据放在数据段BCD字节储备单元, 测量数据在显示时需要转换为十进制 BCD码放在 TABLE1表中;由于 ADC0809是将模拟信号转换为数字信号,所以要将数字信号转换为对应的电压值,公
8、式为VDATA/51;转换时取一位整数和两位小数,再将数据转换为显示码就可以输出显示了;三位数据显示程序流程图如图 6 所示;显示子程序中调用了BCD码转换子程序, BCD码转换程序是将数据转换为 BCD码值;显示子程序是将数据一次性输出, 主要是将对应的段码和位码输出,留意小数点的处理;延时子程序利用8254 计时,用 8255 来查询计时是否完成;BCD码转换子程序流程图见图 7 所示;- 5 - 名师归纳总结 - - - - - - -第 6 页,共 13 页精选学习资料 - - - - - - - - - 开头微机原理课程设计-信息采集系统开头给位码赋值 BCD 的地址送BCD 的地址
9、送 TABLE 地址送把 AX 除 51 判定显示的数据是否为第一 查表结果送 SI Y N 段码小数点处除后的余数送输出位码SI+1 前进输出段码 N 判定是调用延时子程否除了 3 次Y 判定 3 为数终止据是否显示完Y 图 7 BCD 转换子程序流图N 取下一个数位码又移一位终止图 6 三位数据显示程序流程图- 6 - 名师归纳总结 - - - - - - -第 7 页,共 13 页精选学习资料 - - - - - - - - - 微机原理课程设计-信息采集系统4报警子程序报警子程序是接受 8254 的信号来发出警告的; 当采样的平均值超过 4.5V时,8254 将会发一路信号给 图如图
10、8 所示;SPK喇叭,喇叭发出声响警告;报警子程序流程开头读入 5 个数的平判 断 平 均 N 值是否大于 4.5 Y 初始化 8254 为方调用延时程序终止图 8 报警子程序流程图六、程序段功能汇总(1)ADC0809的 IN0端口地址为: 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 转
11、换器CALL DALL Y ;等待推迟IN AL, DX ;从 AD 转换器的端口地址读出数据- 7 - 名师归纳总结 - - - - - - -第 8 页,共 13 页精选学习资料 - - - - - - - - - 微机原理课程设计-信息采集系统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)将采集到的数据转换为十进制数,
12、储备器的显示缓冲区中;;BCD 转换子程序CHBCD: LEA BX, TABLE1 LEA SI, BCD 转换好的三位十进制数据分别储存于MOV CX,3 ;实现三位数码管的数值显示,依次送个位和小数点后的两位 MOV AL, A VERAGE XOR AH, AH LOOP2:MOV DL, 51 ;X/5256= 得到的二进制电压值,变成十进制数的话是逆过程,256/5=51,所以除以 51 得到十进制电压DIV DL ;平均值除以51 XLAT MOV SI, AL ;求 bcd 码送入对应BCD 单元INC SI MOV AL, AH XOR AH, AH MOV DL, 10 M
13、UL DL LOOP LOOP2 ;精确到小数点后两位(4)8254 初始化, 8254 的端口地址设为 680H686H,通道 0 的工作方式设 定为方式 3,初值为 1000,8255A的 PC3初始电平设为低电平;( 5 ) 数 据 显 示 完 毕 之 后 , 判 断 缓 冲 中 采 集 数 据 是 否 大 于4.5/5*255=229用数字 0255 的范畴来模拟电压05V的范畴,4.5V 相当于十进制数的 229 ,假如是就将 报警;;报警程序段JUG: PUSH CX PUSH AX PC3置位高电平, 8254 输出方波驱动扬声器发声MOV AL, A VERAGE ;取出之前存
14、入的平均值,放进AL 0E5H CMP AL, 0E5H ;4.5V 占比重 0.9,256*0.9=226 用 16 进制表示为JNB NEXT2 ;超过 4.5V 的戒备值,启动报警MOV DX, 0686H MOV AL, 36H OUT DX, AL - 8 - 名师归纳总结 - - - - - - -第 9 页,共 13 页精选学习资料 - - - - - - - - - 微机原理课程设计-信息采集系统MOV AL,0 OUT DX,AL JMP NEXT3 NEXT2:MOV DX, 0686H ;8254 的端口初始化,3 二进制计数MOV AL, 36H ;00110110B
15、计数器 0,读写高低位,采纳方式OUT DX, AL MOV AX,2000 MOV DX, 0680H ;计数器 0 送初值 OUT DX, AL 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 AV
16、ERAGE DB 0 DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DA TA START: MOV AX, DA 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 ;实现三位数码管的数值显示,依次送个位和小数点后的两位- 9 - 名师归纳总结 - - - - - - -第 10 页,共 13 页精选学习资料 - -
17、- - - - - - - 微机原理课程设计-信息采集系统MOV AL, A VERAGE XOR AH, AH LOOP2:MOV DL, 51 ;X/5256= 得到的二进制电压值,变成十进制数的话是逆过程,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, 0
18、640H ;AD 转换器的端口地址 OUT DX, AL ;启动 AD 转换器 CALL DALL Y ;等待推迟 IN AL, DX ;从 AD 转换器的端口地址读出数据 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 MO
19、V AL, 80H ;10000000B ABC 输出方式 OUT DX, AL MOV CX, 100H LOOP3: LEA SI, BCD MOV AH, 0FEH ;置位码 LOOP4: MOV AL, AH MOV DX, 06C2H ;初始化 B 口 OUT DX, AL MOV AL, SI CMP AH, 0FEH - 10 - 名师归纳总结 - - - - - - -第 11 页,共 13 页精选学习资料 - - - - - - - - - 微机原理课程设计-信息采集系统JNZ NEXT1 OR AL, 80H ;最高位置 1 小数点点亮 NEXT1: MOV DX, 06C
20、0H ;初始化 A 口 OUT DX, AL CALL DALL Y ROL AH, 1 INC SI CMP AH, 0F7H JNZ LOOP4 LOOP LOOP3 RET DALL 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 0E5H CMP AL, 0E5H ;4.5V 占比重 0.9,256*0.9=226 用
21、 16 进制表示为JNB NEXT2 ;超过 4.5V 的戒备值,启动报警MOV DX, 0686H MOV AL, 36H OUT DX, AL MOV AL,0 OUT DX,AL JMP NEXT3 NEXT2:MOV DX, 0686H ;8254 的端口初始化,3 二进制计数MOV AL, 36H ;00110110B 计数器 0,读写高低位,采纳方式OUT DX, AL MOV AX,2000 MOV DX, 0680H ;计数器 0 送初值 OUT DX, AL MOV AL,AH OUT DX,AL CALL DALL Y - 11 - 名师归纳总结 - - - - - - -
22、第 12 页,共 13 页精选学习资料 - - - - - - - - - 微机原理课程设计-信息采集系统NEXT3: POP AX POP CX RET CODE ENDS END START 八、试验结果及分析试验是通过转动ADJ 单元上的旋钮调剂输入的电压的,旋钮输出的电压经过AD 转换器后转换成详细的数值;当输入的电压平均值在4.5v 以下时喇叭没有警告的声音发出;当转动旋钮使电压超过 4.5v 时,喇叭有报警的声音发出;报警声音的音调跟送入的频率有关,频率越高音调越高;试验胜利;九、课程设计体会和总结此次的微机原理课程设计,在学期基础试验的基础上提高了我们对于微机原理的实际应用要求,
23、 在不断的深化懂得理论学问的基础上,我们这组同学通过不断的修改和调试最终胜利的运行了我们的程序,达到了老师对于此次课程设计的要求;通过这一个星期的课程设计,我对于微机原理这门课程的把握程度以及实际的应用才能都有了肯定程度上的提高;组员之间的共同合作,不同的分工,我们各司其职,默契协作,共同解决面临的难题,共同共享胜利的欢乐;在实践的检验中,我们学到的学问得到了有效的巩固,动手的才能,独立摸索的才能,团队合作的才能都得到了有效的锤炼;在设计的过程当中我们也遇到了许多的问题;一开头的时候我们的接线遇到了问题,碰到 LED 的显示的时候并不知道怎么办才好;经过学习之后懂得了 LED 灯的原理最终有所
24、突破;至于 8255A 芯片和 8254 我们都很熟识根本不算什么难的问题;接线图完成之后就开头进行编程; 汇编的东西我们又重新的温习了一边;在编程的过程当中我发觉单独的模块来说我们都可以很好地完成但是涉及到系统性的东西就很不简洁,后来想了想缘由就是我们很少写完整的程序 都是写的详细的某一个功能的程序片段;这次涉及到完整的程序我们的进度明显是慢了些; 但是后来经过数次的调整最终没有了大的问题;略了一个重要的问题,就是我们没有将十六进制的采集到的电压在就在即将验收的时候我们忽 LED 灯上显示,只是显示了转换成 BCD 码的数值,后来又经过一番的调整最终完成了;我们大家都很兴奋;尽管这次的设计过程很简洁,但是我们每个人心中都是很高兴的;这次课程设计培育了我们的动手才能,系统的运用了我们之前学过的学问,加深了我们对于微机原理的懂得;- 12 - 名师归纳总结 - - - - - - -第 13 页,共 13 页