《浙大单片机液晶显示模拟多通道数据采集.doc》由会员分享,可在线阅读,更多相关《浙大单片机液晶显示模拟多通道数据采集.doc(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date浙大单片机液晶显示模拟多通道数据采集实验报告专业: 电子信息工程 姓名: 学号: 日期: 6月21日 地点: 东三411 实验报告课程名称: 微机原理与接口技术 指导老师: 陆玲霞 成绩:_实验名称:液晶显示模拟多通道数据采集系统 实验类型:_同组学生姓名:_一、 实验目的1、掌握和理解单片机总线工作模式下各信号线的跳变及相应的时序。特别要了解ALE及RD、WR信号线
2、在总线方式下的时序。2、在总线方式下各相应指令的结构。3、外围接口芯片的地址选择方式。4、了解LCD模块的使用说明及特别是指令说明。二、 实验内容采用总线方式构架一个多路数据采集系统。并将采样数据分二行在液晶显示模块上进行实时显示。随着被采样电压值的变化液晶显示器显示的值跟随变化(即连续采样)。显示数值为实际的电压值。C H 4: xx H CH5:xx HC H 6: xx H CH0:xx H三、 实验要求1、ADC0809 对三路数据【通道4、通道5、通道6】进行采样,同时将通道4的采样结果送人DAC0832进行DA转换,再将DA输出电压接到AD的通道0进行转换并将4个通道的实际值分分二
3、行发送到液晶显示器上进行显示。显示效果如上图所示。2、通过实验建立微处理器总线构架及系统内地址选择的等基本概念3、掌握A/D转换器ADC0809、DAC0832及液晶显示模块的工作原理。4、编写A/D、D/A转换及液晶显示模块的实验程序。四、 LIST文件和注释ORG 0000H0000 2100 AJMP MAIN ORG 0003H0003 4177 AJMP INTDATA;中断服务子程序 ORG 0100H;数据采集程序0100 7830 MAIN:MOV R0,#30H;数据缓冲区首地址0102 7A03 MOV R2,#3;采集三个通道0104 902004 MOV DPTR,#2
4、004H;指向模拟量输入通道40107 C2D5 START:CLR F0;中断发生标志清零0109 F0 MOVX DPTR,A;启动A/D转换010A D288 SETB IT0;设置外部中断0为边沿触发010C D2A8 SETB EX0;允许外部中断0010E D2AF SETB EA;开中断0110 30D5FD LOOP:JNB F0,LOOP;等待中断发生0113 DAF2 DJNZ R2,START;判断3个模拟量是否转换结束 DATRANS:0115 902100 MOV DPTR,#2100H;DA转换0118 E530 MOV A,30H011A F0 MOVX DPTR
5、,A011B 902200 MOV DPTR,#2200H011E F0 MOVX DPTR,A ADAGAIN: ;模拟量通道0输出做AD转换011F 7833 MOV R0,#33H;数据存入数据存储器33H单元0121 902000 MOV DPTR,#2000H;指向模拟量输入通道00124 C2D5 CLR F0;清中断发生标志0126 F0 MOVX DPTR,A;启动A/D0127 D288 SETB IT0;置外部中断0为边沿触发0129 D2A8 SETB EX0;允许外部中断0012B D2AF SETB EA;开中断012D 30D5FD LOOP1:JNB F0,LOO
6、P1;判断中断发生标志是否为0 0130 902300 LCDS:MOV DPTR,#2300H;液晶初始化,指向写指令口0133 C2D5 CLR F00135 12026B INIT:LCALL RDBUSY;判LCD“忙”?0138 7438 MOV A,#38H;系统设置,8位2行57点阵013A F0 MOVX DPTR,A013B 12026B LCALL RDBUSY;判LCD“忙”?013E 7401 MOV A,#01H;清屏0140 F0 MOVX DPTR,A0141 12026B LCALL RDBUSY;判LCD“忙”?0144 7402 MOV A,#02H;光标回
7、到第一行第一列0146 F0 MOVX DPTR,A0147 12026B LCALL RDBUSY;判LCD“忙”?014A 7406 MOV A,#06H;显示地址加1模式014C F0 MOVX DPTR,A014D 12026B LCALL RDBUSY;判LCD“忙”?0150 740F MOV A,#0FH0152 F0 MOVX DPTR,A;打开显示 TRANS:;ASCII码转换程序0153 90028E MOV DPTR,#TABLE;指向ASCII码表首址0156 E530 MOV A,30H;取模拟量通道4的数据0158 75F010 MOV B,#10H;将高低位分开
8、015B 84 DIV AB015C 93 MOVC A,A+DPTR;高位查表存入20H单元015D F520 MOV 20H,A015F E5F0 MOV A,B;低位查表存入21H单元0161 93 MOVC A,A+DPTR0162 F521 MOV 21H,A 0164 E531 MOV A,31H;取模拟量通道5的数据0166 75F010 MOV B,#10H;将高低位分开0169 84 DIV AB016A 93 MOVC A,A+DPTR;高位查表存入22H单元016B F522 MOV 22H,A016D E5F0 MOV A,B;低位查表存入23H单元016F 93 MO
9、VC A,A+DPTR0170 F523 MOV 23H,A 0172 E532 MOV A,32H;取模拟量通道6的数据0174 75F010 MOV B,#10H;将高低位分开0177 84 DIV AB0178 93 MOVC A,A+DPTR;高位查表存入24H单元0179 F524 MOV 24H,A017B E5F0 MOV A,B;低位查表存入25H单元017D 93 MOVC A,A+DPTR017E F525 MOV 25H,A 0180 E533 MOV A,33H;取模拟量通道0的数据0182 75F010 MOV B,#10H;将高低位分开0185 84 DIV AB0
10、186 93 MOVC A,A+DPTR;高位查表存入26H单元0187 F526 MOV 26H,A0189 E5F0 MOV A,B;低位查表存入27H单元018B 93 MOVC A,A+DPTR018C F527 MOV 27H,A DISPLAY1:018E 902300 MOV DPTR,#2300H;指向写指令口0191 12026B LCALL RDBUSY0194 7480 MOV A,#80H;设置数据显示位置为00H0196 F0 MOVX DPTR,A0197 12026B LCALL RDBUSY019A 902302 MOV DPTR,#2302H;指向写数据口01
11、9D 7443 MOV A,#43H;显示“C”019F F0 MOVX DPTR,A01A0 12026B LCALL RDBUSY01A3 7448 MOV A,#48H;显示“H”01A5 F0 MOVX DPTR,A01A6 12026B LCALL RDBUSY01A9 7434 MOV A,#34H;显示“4”01AB F0 MOVX DPTR,A01AC 12026B LCALL RDBUSY01AF 743A MOV A,#3AH;显示“:”01B1 F0 MOVX DPTR,A01B2 12026B LCALL RDBUSY01B5 E520 MOV A,20H;显示通道4转
12、换的数据的高位01B7 F0 MOVX DPTR,A01B8 12026B LCALL RDBUSY01BB E521 MOV A,21H;显示通道4转换的数据的低位01BD F0 MOVX DPTR,A01BE 12026B LCALL RDBUSY01C1 7448 MOV A,#48H;显示“H”01C3 F0 MOVX DPTR,A01C4 12026B LCALL RDBUSY01C7 7420 MOV A,#20H;一个空格01C9 F0 MOVX DPTR,A DISPLAY2:01CA 12026B LCALL RDBUSY01CD 7443 MOV A,#43H;显示“C”0
13、1CF F0 MOVX DPTR,A01D0 12026B LCALL RDBUSY01D3 7448 MOV A,#48H;显示“H”01D5 F0 MOVX DPTR,A01D6 12026B LCALL RDBUSY01D9 7435 MOV A,#35H;显示“5”01DB F0 MOVX DPTR,A01DC 12026B LCALL RDBUSY01DF 743A MOV A,#3AH;显示“:”01E1 F0 MOVX DPTR,A01E2 12026B LCALL RDBUSY01E5 E522 MOV A,22H;显示通道5转换的数据的高位01E7 F0 MOVX DPTR,
14、A01E8 12026B LCALL RDBUSY01EB E523 MOV A,23H;显示通道5转换的数据的低位01ED F0 MOVX DPTR,A01EE 12026B LCALL RDBUSY01F1 7448 MOV A,#48H;显示“H”01F3 F0 MOVX DPTR,A01F4 12026B LCALL RDBUSY01F7 7420 MOV A,#20H;一个空格01F9 F0 MOVX DPTR,A DISPLAY3:01FA 902300 MOV DPTR,#2300H01FD 12026B LCALL RDBUSY0200 74C0 MOV A,#0C0H;换行0
15、202 F0 MOVX DPTR,A0203 12026B LCALL RDBUSY0206 902302 MOV DPTR,#2302H;指向写数据口0209 7443 MOV A,#43H;显示“C”020B F0 MOVX DPTR,A020C 12026B LCALL RDBUSY020F 7448 MOV A,#48H;显示“H”0211 F0 MOVX DPTR,A0212 12026B LCALL RDBUSY0215 7436 MOV A,#36H;显示“6”0217 F0 MOVX DPTR,A0218 12026B LCALL RDBUSY021B 743A MOV A,#
16、3AH;显示“:”021D F0 MOVX DPTR,A021E 12026B LCALL RDBUSY0221 E524 MOV A,24H;显示通道6转换的数据的高位0223 F0 MOVX DPTR,A0224 12026B LCALL RDBUSY0227 E525 MOV A,25H;显示通道6转换的数据的低位0229 F0 MOVX DPTR,A022A 12026B LCALL RDBUSY022D 7448 MOV A,#48H;显示“H”022F F0 MOVX DPTR,A0230 12026B LCALL RDBUSY0233 7420 MOV A,#20H;一个空格02
17、35 F0 MOVX DPTR,A DISPLAY4:0236 12026B LCALL RDBUSY0239 7443 MOV A,#43H;显示“C”023B F0 MOVX DPTR,A023C 12026B LCALL RDBUSY023F 7448 MOV A,#48H;显示“H”0241 F0 MOVX DPTR,A0242 12026B LCALL RDBUSY0245 7430 MOV A,#30H;显示“0”0247 F0 MOVX DPTR,A0248 12026B LCALL RDBUSY024B 743A MOV A,#3AH;显示“:”024D F0 MOVX DPT
18、R,A024E 12026B LCALL RDBUSY0251 E526 MOV A,26H;显示通道0转换的数据的高位0253 F0 MOVX DPTR,A0254 12026B LCALL RDBUSY0257 E527 MOV A,27H;显示通道0转换的数据的低位0259 F0 MOVX DPTR,A025A 12026B LCALL RDBUSY025D 7448 MOV A,#48H;显示“H”025F F0 MOVX DPTR,A0260 12026B LCALL RDBUSY0263 7420 MOV A,#20H;一个空格0265 F0 MOVX DPTR,A0266 120
19、27E LCALL DELAY;调用延时子程序0269 2100 AJMP MAIN;跳转到MAIN重复上述操作 RDBUSY:;判LCD“忙”子程序026B C082 PUSH DPL;DPTR低位入栈026D 902301 MOV DPTR,#2301H;指向状态口 HERE:;读状态是否为“忙”?0270 E0 MOVX A,DPTR0271 20E7FC JB ACC.7,HERE0274 D082 POP DPL;DPTR低位出栈0276 22 RET 0277 E0 INTDATA:MOVX A,DPTR;中断服务子程序:读转换数据0278 F6 MOV R0,A;将数据存入片内数
20、据存储器0279 08 INC R0;存储单元地址加1027A A3 INC DPTR;指向下一个模拟量输入通道027B D2D5 SETB F0;置中断发生位027D 32 RETI DELAY:;延时子程序,防止液晶闪烁027E 7540F0 MOV 40H,#0F0H0281 7541F0 MOV 41H,#0F0H DDELAY: DDDELAY:0284 D541FD DJNZ 41H,DDDELAY0287 7541F0 MOV 41H,#0F0H028A D540F7 DJNZ 40H,DDELAY028D 22 RET 028E 303132 0291 333435 0294
21、363738 0297 394142 029A 434445 029D 46 TABLE:DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,41H,42H,43H,44H,45H,46H;ASCII码表五、心得体会本次实验综合性较强,对单片机初学者来说有一定的难度,但是不失为一次很好的锻炼。通过本次实验,我加深了对理论课上学到的知识的理解,尤其是LCD的使用,在实验中遇到了许多问题,比如液晶显示屏一直闪烁、数据量显示一直为乱码、改变电位器液晶显示不发生变化等。这些问题在耐心寻找问题和询问老师后都得到了解决。在深化对单片机扩展和接口技术理解的同时也收获了信心和成就感。-