您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 制造加工工艺 > 浙大单片机液晶显示模拟多通道数据采集
实验报告课程名称:微机原理与接口技术指导老师:陆玲霞成绩:__________________实验名称:液晶显示模拟多通道数据采集系统实验类型:________________同组学生姓名:__________一、实验目的1、掌握和理解单片机总线工作模式下各信号线的跳变及相应的时序。特别要了解ALE及RD、WR信号线在总线方式下的时序。2、在总线方式下各相应指令的结构。3、外围接口芯片的地址选择方式。4、了解LCD模块的使用说明及特别是指令说明。二、实验内容采用总线方式构架一个多路数据采集系统。并将采样数据分二行在液晶显示模块上进行实时显示。随着被采样电压值的变化液晶显示器显示的值跟随变化(即连续采样)。显示数值为实际的电压值。三、实验要求1、ADC0809对三路数据【通道4、通道5、通道6】进行采样,同时将通道4的采样结果送人DAC0832进行DA转换,再将DA输出电压接到AD的通道0进行转换并将4个通道的实际值分分二行发送到液晶显示器上进行显示。显示效果如上图所示。2、通过实验建立微处理器总线构架及系统内地址选择的等基本概念3、掌握A/D转换器ADC0809、DAC0832及液晶显示模块的工作原理。4、编写A/D、D/A转换及液晶显示模块的实验程序。四、LIST文件和注释ORG0000H00002100AJMPMAINORG0003H00034177AJMPINTDATA;中断服务子程序ORG0100H;数据采集程序01007830MAIN:MOVR0,#30H;数据缓冲区首地址01027A03MOVR2,#3;采集三个通道0104902004MOVDPTR,#2004H;指向模拟量输入通道40107C2D5START:CLRF0;中断发生标志清零0109F0MOVX@DPTR,A;启动A/D转换010AD288SETBIT0;设置外部中断0为边沿触发专业:电子信息工程姓名:学号:日期:6月21日地点:东三—411CH4:xxHCH5:xxHCH6:xxHCH0:xxH010CD2A8SETBEX0;允许外部中断0010ED2AFSETBEA;开中断011030D5FDLOOP:JNBF0,LOOP;等待中断发生0113DAF2DJNZR2,START;判断3个模拟量是否转换结束DATRANS:0115902100MOVDPTR,#2100H;DA转换0118E530MOVA,30H011AF0MOVX@DPTR,A011B902200MOVDPTR,#2200H011EF0MOVX@DPTR,AADAGAIN:;模拟量通道0输出做AD转换011F7833MOVR0,#33H;数据存入数据存储器33H单元0121902000MOVDPTR,#2000H;指向模拟量输入通道00124C2D5CLRF0;清中断发生标志0126F0MOVX@DPTR,A;启动A/D0127D288SETBIT0;置外部中断0为边沿触发0129D2A8SETBEX0;允许外部中断0012BD2AFSETBEA;开中断012D30D5FDLOOP1:JNBF0,LOOP1;判断中断发生标志是否为00130902300LCDS:MOVDPTR,#2300H;液晶初始化,指向写指令口0133C2D5CLRF0013512026BINIT:LCALLRDBUSY;判LCD“忙”?01387438MOVA,#38H;系统设置,8位2行5×7点阵013AF0MOVX@DPTR,A013B12026BLCALLRDBUSY;判LCD“忙”?013E7401MOVA,#01H;清屏0140F0MOVX@DPTR,A014112026BLCALLRDBUSY;判LCD“忙”?01447402MOVA,#02H;光标回到第一行第一列0146F0MOVX@DPTR,A014712026BLCALLRDBUSY;判LCD“忙”?014A7406MOVA,#06H;显示地址加1模式014CF0MOVX@DPTR,A014D12026BLCALLRDBUSY;判LCD“忙”?0150740FMOVA,#0FH0152F0MOVX@DPTR,A;打开显示TRANS:;ASCII码转换程序015390028EMOVDPTR,#TABLE;指向ASCII码表首址0156E530MOVA,30H;取模拟量通道4的数据015875F010MOVB,#10H;将高低位分开015B84DIVAB015C93MOVCA,@A+DPTR;高位查表存入20H单元015DF520MOV20H,A015FE5F0MOVA,B;低位查表存入21H单元016193MOVCA,@A+DPTR0162F521MOV21H,A0164E531MOVA,31H;取模拟量通道5的数据016675F010MOVB,#10H;将高低位分开016984DIVAB016A93MOVCA,@A+DPTR;高位查表存入22H单元016BF522MOV22H,A016DE5F0MOVA,B;低位查表存入23H单元016F93MOVCA,@A+DPTR0170F523MOV23H,A0172E532MOVA,32H;取模拟量通道6的数据017475F010MOVB,#10H;将高低位分开017784DIVAB017893MOVCA,@A+DPTR;高位查表存入24H单元0179F524MOV24H,A017BE5F0MOVA,B;低位查表存入25H单元017D93MOVCA,@A+DPTR017EF525MOV25H,A0180E533MOVA,33H;取模拟量通道0的数据018275F010MOVB,#10H;将高低位分开018584DIVAB018693MOVCA,@A+DPTR;高位查表存入26H单元0187F526MOV26H,A0189E5F0MOVA,B;低位查表存入27H单元018B93MOVCA,@A+DPTR018CF527MOV27H,ADISPLAY1:018E902300MOVDPTR,#2300H;指向写指令口019112026BLCALLRDBUSY01947480MOVA,#80H;设置数据显示位置为00H0196F0MOVX@DPTR,A019712026BLCALLRDBUSY019A902302MOVDPTR,#2302H;指向写数据口019D7443MOVA,#43H;显示“C”019FF0MOVX@DPTR,A01A012026BLCALLRDBUSY01A37448MOVA,#48H;显示“H”01A5F0MOVX@DPTR,A01A612026BLCALLRDBUSY01A97434MOVA,#34H;显示“4”01ABF0MOVX@DPTR,A01AC12026BLCALLRDBUSY01AF743AMOVA,#3AH;显示“:”01B1F0MOVX@DPTR,A01B212026BLCALLRDBUSY01B5E520MOVA,20H;显示通道4转换的数据的高位01B7F0MOVX@DPTR,A01B812026BLCALLRDBUSY01BBE521MOVA,21H;显示通道4转换的数据的低位01BDF0MOVX@DPTR,A01BE12026BLCALLRDBUSY01C17448MOVA,#48H;显示“H”01C3F0MOVX@DPTR,A01C412026BLCALLRDBUSY01C77420MOVA,#20H;一个空格01C9F0MOVX@DPTR,ADISPLAY2:01CA12026BLCALLRDBUSY01CD7443MOVA,#43H;显示“C”01CFF0MOVX@DPTR,A01D012026BLCALLRDBUSY01D37448MOVA,#48H;显示“H”01D5F0MOVX@DPTR,A01D612026BLCALLRDBUSY01D97435MOVA,#35H;显示“5”01DBF0MOVX@DPTR,A01DC12026BLCALLRDBUSY01DF743AMOVA,#3AH;显示“:”01E1F0MOVX@DPTR,A01E212026BLCALLRDBUSY01E5E522MOVA,22H;显示通道5转换的数据的高位01E7F0MOVX@DPTR,A01E812026BLCALLRDBUSY01EBE523MOVA,23H;显示通道5转换的数据的低位01EDF0MOVX@DPTR,A01EE12026BLCALLRDBUSY01F17448MOVA,#48H;显示“H”01F3F0MOVX@DPTR,A01F412026BLCALLRDBUSY01F77420MOVA,#20H;一个空格01F9F0MOVX@DPTR,ADISPLAY3:01FA902300MOVDPTR,#2300H01FD12026BLCALLRDBUSY020074C0MOVA,#0C0H;换行0202F0MOVX@DPTR,A020312026BLCALLRDBUSY0206902302MOVDPTR,#2302H;指向写数据口02097443MOVA,#43H;显示“C”020BF0MOVX@DPTR,A020C12026BLCALLRDBUSY020F7448MOVA,#48H;显示“H”0211F0MOVX@DPTR,A021212026BLCALLRDBUSY02157436MOVA,#36H;显示“6”0217F0MOVX@DPTR,A021812026BLCALLRDBUSY021B743AMOVA,#3AH;显示“:”021DF0MOVX@DPTR,A021E12026BLCALLRDBUSY0221E524MOVA,24H;显示通道6转换的数据的高位0223F0MOVX@DPTR,A022412026BLCALLRDBUSY0227E525MOVA,25H;显示通道6转换的数据的低位0229F0MOVX@DPTR,A022A12026BLCALLRDBUSY022D7448MOVA,#48H;显示“H”022FF0MOVX@DPTR,A023012026BLCALLRDBUSY02337420MOVA,#20H;一个空格0235F0MOVX@DPTR,ADISPLAY4:023612026BLCALLRDBUSY02397443MOVA,#43H;显示“C”023BF0MOVX@DPTR,A023C12026BLCALLRDBUSY023F7448MOVA,#48H;显示“H”0241F0MOVX@DPTR,A024212026BLCALLRDBUSY02457430MOVA,#30H;显示“0”0247F0MOVX@DPTR,A024812026BLCALLRDBUSY024B743AMOVA,#3AH;显示“:”024DF0MOVX@DPTR,A024E12026BLCALLRDBUSY0251E526MOVA,26H;显示通道0转换的数据的高位0253F0MOVX@DPTR,A025412026BLCALLRDBUSY0257E527MOVA,27H;显示通道0转换的数据的低位0259F0MOVX@DPTR,A025A12026BLCALLRDBUSY025D7448MOVA,#48H;显示“H”025FF0MOVX@DPTR,A026012026BLCALLRDBUSY02637420MOVA,#20H;一个空格0265F0MOVX@DPTR,A026612027ELCALLDELAY;调用延时子程序02692100AJMPMAIN;跳转到MAIN重复上述操作RDBUSY:;判LCD“忙”子程序026BC082PUSHDPL;DPTR低位入栈026D902301MOVDPTR,#2301H;指向状态口HERE:;读状态是否为“忙”?0270E0MOVXA,@DPTR027120E7FCJBACC.7,HERE0274D082POPDPL;DPTR低位出栈027622RET0277E0INTDATA:MOVXA,@DPT
本文标题:浙大单片机液晶显示模拟多通道数据采集
链接地址:https://www.777doc.com/doc-6003452 .html