资源描述
______________________________________________________________________________________________________________
专业:电子信息工程
姓名:彭嘉乔
学号:3130104084
日期:2015.06
地点:东3-409
实验报告
课程名称:微机原理与接口技术 指导老师:张军明 成绩:__________________
实验名称:液晶显示模拟多通道数据采集系统 实验类型:________________同组学生姓名:赵中昊
一、实验目的和要求(必填) 二、实验内容和原理(必填)
三、主要仪器设备(必填) 四、操作方法和实验步骤
五、实验数据记录和处理 六、实验结果与分析(必填)
七、讨论、心得
一、实验目的
1、掌握和理解单片机总线工作模式下各信号线的跳变及相应的时序。特别要了解ALE及RD、WR信号线在总线方式下的时序。
2、在总线方式下各相应指令的结构。
3、外围接口芯片的地址选择方式。
4、了解LCD模块的使用说明及特别是指令说明。
二、实验器材
1、Micetek仿真器一台。
2、实验板一块。
3、PC机电脑一台。
三、实验内容
采用总线方式构架一个多路数据采集系统。并将采样数据分二行在液晶显示模块上进行实时显示。随着被采样电压值的变化液晶显示器显示的值跟随变化(即连续采样)。显示数值为实际的电压值。
C H 4: xx H CH5:xx H
C H 6: xx H CH0:xx H
四、实验要求
1、ADC0809 对三路数据【通道4、通道5、通道6】进行采样,同时将通道4的采样结果送人DAC0832进行DA转换,再将DA输出电压接到AD的通道0进行转换并将4个通道的实际值分分二行发送到液晶显示器上进行显示。显示效果如上图所示。
2、通过实验建立微处理器总线构架及系统内地址选择的等基本概念
3、掌握A/D转换器ADC0809、DAC0832及液晶显示模块的工作原理。
4、编写A/D、D/A转换及液晶显示模块的实验程序。
五、程序源代码及注释
ORG 0000H
JMP MAIN
ORG 0003H
AJMP EXINT
ORG 0030H
MAIN:
MOV R1,#50H //设定采样后的数据存放地址
MOV R2,#04H //设定四通道巡回采样
SETB IT0 //开外部中断0
SETB EA //CPU允许中断
SETB EX0
//液晶初始化子程序
CD: MOV DPTR ,#2300H //写命令
MOV A ,#3FH //功能设置:总线宽度为8、两行显示、八位点阵显示
MOVX @DPTR ,A
ACALL JIANC //检测液晶显示器工作状态子程序,检测忙位是否有效
MOV A ,#01H //清除屏幕
MOVX @DPTR ,A
ACALL JIANC
MOV A ,#0FH //开显示
MOVX @DPTR ,A
ACALL JIANC
MOV A ,#06H //移动光标
MOVX @DPTR ,A
ACALL JIANC
MOV DPTR,#2003H
MOVX @DPTR,A //启动AD转换
MAIN_1: NOP
MOV 30H,#43H //显示固定字符
MOV 31H,#48H
MOV 32H,#33H
MOV 33H,#3AH
MOV 36H,#48H
MOV 37H,#20H
MOV 38H,#20H
MOV 39H,#43H
MOV 3AH,#48H
MOV 3BH,#34H
MOV 3CH,#3AH
MOV 3FH,#48H
MOV 40H,#43H
MOV 41H,#48H
MOV 42H,#35H
MOV 43H,#3AH
MOV 46H,#48H
MOV 47H,#20H
MOV 48H,#20H
MOV 49H,#43H
MOV 4AH,#48H
MOV 4BH,#36H
MOV 4CH,#3AH
MOV 4FH,#48H
SJMP $
EXINT: //中断服务程序(四通道AD及第三通道DA)
MOVX A,@DPTR //读转换结果
MOV @R1,A //存采样数据
NC DPTR //指向下一个模拟通道
INC R1 //指向数据存储区下一个地址
DJNZ R2,AGAIN_1 //没采完四个通道,跳转到AGAIN_1
DASAW:MOV DPTR,#2100H //采完四个通道执行对第4通道的DA转换,并指向输入寄存器
MOV A,51H
MOVX @DPTR,A
MOV DPTR,#2200H //选通DAC寄存器
MOVX @DPTR,A
LCDTRANS:
MOV A,50H //将50H采集后的数据分别的十位、各位分别存在34H、35H中
MOV B,#10
DIV AB
MOV 34H,A
MOV A,B
MOV 35H,A
MOV A,51H //将51H采集后的数据分别的十位、各位分别存在3DH、3EH中
MOV B,#10
DIV AB
MOV 3DH,A
MOV A,B
MOV 3EH,A
MOV A,52H //将52H采集后的数据分别的十位、各位分别存在44H、45H中
MOV B,#10
DIV AB
MOV 44H,A
MOV A,B
MOV 45H,A
MOV A,53H //将53H采集后的数据分别的十位、各位分别存在4DH、4EH中
MOV B,#10
DIV AB
MOV 4DH,A
MOV A,B
MOV 4EH,A
MOV A,34H //把存在各地址的数据转成ASCⅡ码
ACALL TRAN
MOV 34H,A
MOV A,35H
MOV A,44H
ACALL TRAN
MOV 35H,A
MOV A,3DH
ACALL TRAN
MOV 3DH,A
MOV A,3EH
ACALL TRAN
MOV 3EH,A
ACALL TRAN
MOV 44H,A
MOV A,45H
ACALL TRAN
MOV 45H,A
MOV A,4DH
ACALL TRAN
MOV 4DH,A
MOV A,4EH
ACALL TRAN
MOV 4EH,A
AJMP MAIN_0
TRAN: CLR C
ADD A,#30H
CJNE A,#3AH,JUDGE
JUDGE: JC RE
TRAN_1: ADD A,#07H
RE: RET
AGAIN_1:AJMP AGAIN //跳转到AGAIN
MAIN_0: NOP
NOP
ACALL JIANC
NOP
NOP
MOV DPTR ,#2300H
MOV A ,#80H //置第一行显示位置
MOVX @DPTR ,A
NOP
ACALL JIANC
NOP
MOV DPTR ,#2302H //液晶显示模块数据缓冲区地址
MOV R3 ,#10H //显示的个数
MOV R0 ,#30H //显示吗(ascii)的起始地址
MAIN_2: NOP
NOP
MOV A ,@R0
MOVX @DPTR ,A
NOP
ACALL JIANC
NOP
INC R0
DJNZ R3 ,MAIN_2
NOP
NOP
MOV DPTR ,#2300H
MOV A ,#0C0H //置第二行显示位置
MOVX @DPTR ,A
NOP
NOP
ACALL JIANC
MOV DPTR ,#2302H
MOV R3 ,#10H
MOV R0 ,#40H
MAIN_3: NOP //每行16位显示
NOP
MOV A ,@R0
MOVX @DPTR ,A
NOP
NOP
ACALL JIANC
NOP
NOP
INC R0
DJNZ R3 ,MAIN_3
NOP
MOV R1,#50H
MOV R2,#04H
MOV DPTR,#2003H
MOV R5,#0FFH
MOV R4,#0FFH
MOV R6,#0FH
WW: NOP //延时(使用三层嵌套循环),使延时长度适宜
DJNZ R4,WW
MOV R4,#0FFH
DJNZ R5,WW
MOV R5,#0FFH
DJNZ R6,WW
AJMP AGAIN
//检测液晶显示器工作状态子程序JIANC: NOP
PUSH DPL
JIAN_1: NOP
MOV DPTR ,#2301H //读命令、检测忙标志
MOVX A ,@DPTR
NOP
JB ACC.7 ,JIAN_1 //检测忙位是否有效。
POP DPL
NOP
RET
AGAIN: MOVX @DPTR,A //再次启动AD转换
RETI //返回主程序
六、实验程序LST文件
符号 值 类型
AC = 00D6H CONST 常量
ACC = 00E0H CONST 常量
AGAIN = 018CH CODE 标号
AGAIN_1 = 011DH CODE 标号
B = 00F0H CONST 常量
CY = 00D7H CONST 常量
DASAW = 00A6H CODE 标号
DPH = 0083H CONST 常量
DPL = 0082H CONST 常量
EA = 00AFH CONST 常量
ES = 00ACH CONST 常量
ET0 = 00A9H CONST 常量
ET1 = 00ABH CONST 常量
EX0 = 00A8H CONST 常量
EX1 = 00AAH CONST 常量
EXINT = 00A0H CODE 标号
F0 = 00D5H CONST 常量
F1 = 00D1H CONST 常量
IE = 00A8H CONST 常量
IE0 = 0089H CONST 常量
IE1 = 008BH CONST 常量
IP = 00B8H CONST 常量
IT0 = 0088H CONST 常量
IT1 = 008AH CONST 常量
JIANC = 017CH CODE 标号
JIAN_1 = 017FH CODE 标号
JUDGE = 0118H CODE 标号
LCD = 003AH CODE 标号
LCDTRANS = 00B0H CODE 标号
MAIN = 0030H CODE 标号
MAIN_0 = 011FH CODE 标号
MAIN_1 = 0055H CODE 标号
MAIN_2 = 0136H CODE 标号
MAIN_3 = 0154H CODE 标号
OV = 00D2H CONST 常量
P = 00D0H CONST 常量
P0 = 0080H CONST 常量
P1 = 0090H CONST 常量
P2 = 00A0H CONST 常量
P3 = 00B0H CONST 常量
PCON = 0087H CONST 常量
PS = 00BCH CONST 常量
PSW = 00D0H CONST 常量
PT0 = 00B9H CONST 常量
PT1 = 00BBH CONST 常量
PX0 = 00B8H CONST 常量
PX1 = 00BAH CONST 常量
RB8 = 009AH CONST 常量
RE = 011CH CODE 标号
REN = 009CH CONST 常量
RI = 0098H CONST 常量
RS0 = 00D3H CONST 常量
RS1 = 00D4H CONST 常量
SBUF = 0099H CONST 常量
SCON = 0098H CONST 常量
SM0 = 009FH CONST 常量
SM1 = 009EH CONST 常量
SM2 = 009DH CONST 常量
SP = 0081H CONST 常量
TB8 = 009BH CONST 常量
TCON = 0088H CONST 常量
TF0 = 008DH CONST 常量
TF1 = 008FH CONST 常量
TH0 = 008CH CONST 常量
TH1 = 008DH CONST 常量
TI = 0099H CONST 常量
TL0 = 008AH CONST 常量
TL1 = 008BH CONST 常量
TMOD = 0089H CONST 常量
TR0 = 008CH CONST 常量
TR1 = 008EH CONST 常量
TRAN = 0112H CODE 标号
TRAN_1 = 011AH CODE 标号
WW = 016FH CODE 标号
公有符号: 74
私有符号: 0
七、实验感想
通过本次实验,我掌握和理解了单片机总线工作模式下各信号线的跳变及相应的时序,了解了在总线方式下各相应指令的结构和外围接口芯片的地址选择方式,了解了LCD模块的使用说明及特别是指令说明,收获很大。
Welcome To
Download !!!
欢迎您的下载,资料仅供参考!
精品资料
展开阅读全文