单片机实验报告4
更新时间:2024-04-09 20:02:01 阅读量: 综合文库 文档下载
大连理工大学实验报告
实验时间: 2013 年 7 月 5 星期 五 时间 : 13 : 00 ~ 16 : 30 实验室(房间号): 综 421
实验台号码: 班级: 电医 1001 姓名: 梅世宇 成绩:
实验四 ZLG7290B实验:键盘扫描实验 ZLG7290B实验:AD转换的十进制显示实验 一、 实验仪器
计算机系统、DP-51PROC单片机综合仿真实验台、TKSMonitor 51仿真器、软件KeilC51
二、 实验目的和要求
1.ZLG7290B实验:键盘扫描实验
利用中断的方式获取按键操作的信息,并在中断服务程序中完成键值的读取、显示操作。数码管初始显示为:“data= “,当有按键操作时,将所读取的键值显示在最右的两位数码管上(如:当按下S1键时,显示”data=-01 “). 2.ZLG7290B实验:AD转换的十进制显示实验
使用AD转换芯片TLC549CP对模拟电压进行数字转换,将转换的结果处理位3位的十进制数(000-255)并通过ZLG7290B进行显示。
三、 实验算法
1. ZLG7290B实验:键盘扫描实验
DATA_1(30H-37H):变量缓冲区。 DISDA(20H-27H): 显示缓冲区。
28H-2BH:装在从ZLG7290B00H单元开始读出的连续4个字节数据,其中29H就是键值。
当有按键操作时,利用ZLG7290B00H的/INT信号引发单片机的一个中断,利用中断服务程序从ZLG7290B00H中连续读取4个字节的数据,其中第二个字节(ZLG7290B00H的01H寄存器)就是键值。将此值拆分、查表后送显示缓冲区的20H、21H单元。
2.ZLG7290B实验:AD转换的十进制显示实验
20H开始的单元:存放N个TLC549采集的数据; 40H-47H显示缓冲区;
四、实验电路图
1. ZLG7290B实验:键盘扫描实验
AT89C51 P1.0 P1.1 P1.7 P3.2/INT0 I2C总线 ZLG7290B SDA SCL /RST /INT0-KEY
图 8.16实验电路的连接 2.ZLG7290B实验:AD转换的十进制显示实验
- 1 -
五.实验流程图
1. ZLG7290B实验:键盘扫描实验
图8.17主程序框图 图8.18子程序流程图
2.ZLG7290B实验:AD转换的十进制显示实验
图8.20主程序框图 图8.21主函数流程图
- 2 -
六、程序清单
1. MCS-51与TLC的接口实验
sda bit p1.0 scl bit p1.1 wsla equ 70h rsla
equ 71h
disda equ 20h;源数据块首地址 discon equ 08h;写入数据个数 data_1 equ 30h;变量区首地址
org 8000h ljmp
8100h
org 8003h ljmp
int_7290
org 8100h start: mov sp,#60h clr p1.7;7290复位 lcall delay setb p1.7
setb ea;开INT0中断 setb ex0
setb it0;触发极性位下降沿
mov data_1,#13h;变量缓冲区 mov data_1+1,#13h;注意
mov data_1+2,#13h;变量取值范围0-F mov data_1+3,#12h
mov data_1+4,#10h
mov data_1+5,#11h mov data_1+6,#10h mov data_1+7,#0dh
mov dptr,#ledseg;开始对变量查表 mov r7,#discon;写入数据个数 mov r0,disda;源数据块首地址
mov r1,#data_1 loop1: mov a,@r1 movc a,@a+dptr;查表得对应的字形码
mov @r0,a;送显示缓冲区 inc r1 inc r0 djnz
r7,loop1
loop: mov r7,#discon mov r2,#10h mov r3,#wsla mov r0,#disda
lcall wrnbyt;调显示子程序 lcall delay;使显示稳定 sjmp
loop
ledseg: db
0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e4h;0-7的字形码
db
- 3 -
0feh,0f6h,0eeh,3eh,9ch,7ah,9eh,8eh;8-F的字形码 cf: push
02h;将A中的数据拆分为两个思
db 0fah,1eh,12h,00h;a,t,=和熄灭码
push psw
mov r0,#28h;状态数据区首地址 mov r7,#01h;取状态数据个数 mov r2,#01h ;内部数据首地址 mov r3,#wsla;取器件地址(写) 维16进制数并查表 push dph push
dpl
mov dptr,#ledseg mov r2,a anl a,#0fh movc
a,@a+dptr
mov r3,a mov a,r2 swap
a
anl a,#0fh movc
a,@a+dptr
mov r4,a pop dpl pop dph pop 02 ret
int_7290: push 00h push 02h push 03h push 04h push 07h
push
acc
mov r4,#rsla;取器件地址(读)
lcall rdadd;读出7290的00H-03H数据
存于28H-2BH nop;设定一个断点,以观察独处的4个数
据 mov a,28h;取键值 lcall cf;拆分、查表
mov 20h,r3;送显示缓冲区(最低两位数码管) mov 21h,r4 pop psw pop acc pop 07h pop 04h pop 03h pop 02h pop 00h reti
delay: push 00h
push
01h
mov r0,#00h
delay1: mov r1,#00h djnz r1,$
djnz
r0,delay1
- 1 -
pop 01h LCALL STOP pop 00h POP ACC ret POP PSW
RET
WRNBYT: PUSH PSW
PUSH
ACC
WRADD: MOV A,R3
;取外围器件地
地址(包含r/w=0) RDADD: PUSH PSW LCALL STA
;发送起始信号S
02H单元读入7个参数 LCALL WRBYT ;发送外围地址
PUSH
ACC
LCALL CACK
;检测外围器件
20H-26H单元 的应答信号 RDADD1: LCALL STA
JB F0,WRADD ;如果应
MOV A,R3 MOV
A,R2
(写)
LCALL WRBYT
;发送内部寄存 LCALL WRBYT 器首地址
LCALL CACK
LCALL CACK
;检测外围器件
的应答信号 的应答信号
JB
F0,RDADD1
JB
F0,WRADD
;如果应答不正
确返回重来 确返回重来
MOV
A,R2
WRDA: MOV A,@R0
LCALL WRBYT LCALL WRBYT ;发送外围地址
LCALL CACK
LCALL CACK
;检测外围器件
的应答信号 的应答信号
JB
F0,RDADD1
JB
F0,WRADD
;如果应答不正
确返回重来 确返回重来
LCALL STA INC R0
MOV
A,R4
DJNZ R7,WRDA
(读)
- 2 -
从PCF8563的
存
放
于
取器件地址
发送外围地址 检测外围器件
如果应答不正
取内部地址 发送外围地址 检测外围器件
如果应答不正
取器件地址
;;
;;;;;;;;;
LCALL WRBYT LCALL CACK
;发送外围地址 ;检测外围器件
NOP NOP NOP NOP ;产生4.7US延时
的应答信号
JB
F0,RDADD1 ;如果应答不正
确返回重来 RDN: LCALL MOV DJNZ
LCALL LCALL POP POP
RET
ACK: LCALL INC
SJMP
STA: SETB SETB NOP NOP NOP NOP NOP
CLR
RDBYT @R0,A R7,ACK
MNACK STOP
ACC PSW
MACK R0 RDN SDA ;启动信号S SCL
;产生4.7US延时SDA
STOP:
MACK:
MNACK: - 3 -
NOP CLR SCL
RET
CLR SDA ;停止信号P
SETB SCL NOP
;产生4.7US延时
NOP NOP NOP NOP SETB SDA
RET
CLR SDA ;发送应答信号ACK SETB SCL NOP
;产生4.7US延时
NOP NOP NOP NOP CLR SCL SETB SDA
RET SETB SDA ;发送非应答信号
NACK
CACK: SETB
SETB CLR MOV JNC
SDA SCL F0
C,SDA ;采样SDA CEND
;应答正确时转;应答位检测子程序
SETB NOP NOP NOP NOP NOP CLR CLR RET
SCL SDA SCL
;产生4.7US延时
NOP NOP CLR DJNZ POP RET
06H
R6,#08H ;接收一个字节子程SCL R6,WLP 06H
RDBYT: PUSH 序 RLP:
NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP MOV MOV RLC
SETB SETB
MOV
SDA SCL
;产生大于15微秒的延时 ;注意这是专门为ZLG7290 ;添加的20微秒延时部分
CEND 一
CEND: CLR
WRBYT: PUSH MOV WLP:
SETB F0 ;应答错误时F0置
SCL
RET
06H
;发送一个字节子程序
;(入口参数A)
- 4 -
R6,#08H RLC A MOV SDA,C SETB NOP NOP NOP
SCL
;产生4.7US延时 C,SDA A,R2 A
MOV CLR DJNZ POP RET
R2,A SCL R6,RLP 06H
;(出口参数R2)
end
2. ZLG7290B实验:数码显示实验
SDA BIT P1.0;7290B的引脚定义 SCL BIT P1.1 WSLA EQU 070H RSLA EQU 071H
DAT BIT P1.0;TLC549PC引脚定义 CLK BIT P1.1 CS BIT P1.4
CUNT EQU 20H;每次ADC采集数据个数 SHIFT EQU 05H;除数(与采集数据个数有关) ADDR EQU 20H;数据缓冲区首地址 DISDA EQU 40H;显示缓冲区 DISCUNT EQU 08H;显示缓冲区长度 ORG 8000H LJMP 8100H ORG 8100H
START: MOV SP,#60H CLR P1.7;7290复位 LCALL DELAY SETB P1.7
MOV DISDA+7,#0EEH;a字形 MOV DISDA+6,#7AH;d字形 MOV DISDA+5,#1AH;c字形 MOV DISDA+4,#00H;熄灭 MOV DISDA+3,#12H;“=”
LOOP: LCALL TLC549;采集N个ADC数据(20H单元)
LCALL ADJUST;数据滤波(屏蔽以观察滤波效果)
LCALL BCD_CONT;转换为十进制数 MOV R7,#DISCUNT MOV R0,#DISDA MOV R2,#10H
- 5 -
MOV R3,#WSLA
LCALL WRNBYT;7290数字显示 LCALL DELAY SJMP LOOP
TLC549: PUSH 00H;连续采集16次数据 PUSH 07H;存放于20H-2FH中 MOV R7,#CUNT MOV R0,#ADDR
LOOP2: LCALL TLC549_ADC MOV @R0,A INC R0
DJNZ R7,LOOP2 POP 07H POP 00H RET
ADJUST: PUSH 00H;将20H开始的CUNT个数据
PUSH 02H;求平均值 PUSH 03H;结果于A中 PUSH 07H MOV R7,#CUNT MOV R0,#ADDR CLR A MOV R2,A
LOOP3: CLR C;累加 ADDC A,@R0 JNC LOOP4 INC R2
LOOP4: INC R0 DJNZ R7,LOOP3
MOV R3,A
MOV A,R2;除以数据个数CUNT MOV R7,#SHIFT LOOP5: CLR C MOV A,R2 RRC A MOV R2,A MOV A,R3 RRC A MOV R3,A
DJNZ R7,LOOP5 POP 07H POP 03H POP 02H POP 00H RET
TLC549_ADC: PUSH 07H CLR A CLR CLK MOV R7,#08H CLR CS
LOOP1: SETB CLK NOP NOP NOP NOP
MOV C,DAT RLC A CLR CLK NOP NOP
DJNZ R7,LOOP1 SETB CS SETB CLK POP 07H RET
BCD_CONT:
PUSH 07H PUSH 06H
PUSH 05H PUSH 02H MOV B,#64H DIV AB
MOV R7,A;R7中得百位数 MOV R2,B;R2中得余数 MOV A,R2 MOV B,#0AH DIV AB
MOV R6,A;R6中得十位数 MOV R5,B;R5中得个位数 MOV A,R7
LCALL CF;调拆分子程序(入口A出口R4,R3-字形码)
MOV DISDA+2,R3;高位R4无用 MOV A,R6
LCALL CF;调拆分子程序(入口A出口R4,R3-字形码) MOV DISDA+1,R3 MOV A,R5
LCALL CF;调拆分子程序(入口A出口R4,R3-字形码) MOV DISDA+0,R3 POP 02H POP 05H POP 06H POP 07H RET
CF: PUSH 02H;将A中的数据拆分为两个独立的BCD码并查表 PUSH DPH PUSH DPL
MOV DPTR,#LEDSEG MOV R2,A ANL A,#0FH
MOVC A,@A+DPTR MOV R3,A MOV A,R2 SWAP A ANL A,#0FH
MOVC A,@A+DPTR MOV R4,A
- 1 -
POP DPL POP DPH POP 02H RET
WRNBYT: PUSH PSW PUSH ACC WRADD: MOV A,R3 LCALL STA LCALL WRBYT LCALL CACK JB F0,WRADD MOV A,R2
LCALL WRBYT LCALL CACK JB F0,WRADD WRDA: MOV A,@R0 LCALL WRBYT LCALL CACK JB F0,WRADD INC R0
DJNZ R7,WRDA LCALL STOP POP ACC POP PSW RET
CACK: SETB SDA SETB SCL CLR F0 MOV C,SDA JNC CEND SETB F0 CEND: CLR SCL RET
WRBYT: MOV R6,#08H WLP: RLC A MOV SDA,C SETB SCL NOP NOP NOP NOP CLR SCL
DJNZ R6,WLP RET
STA: SETB SDA SETB SCL NOP NOP NOP NOP CLR SDA NOP NOP NOP NOP CLR SCL RET
STOP: CLR SDA SETB SCL NOP NOP NOP NOP
SETB SDA NOP NOP NOP NOP RET
DELAY: PUSH 00H PUSH 01H MOV R0,#00H DELAY1: MOV R1,#00H DJNZ R1,$
DJNZ R0,DELAY1 POP 01H POP 00H RET LEDSEG: DB
0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E4H DB
0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH END
- 2 -
POP DPL POP DPH POP 02H RET
WRNBYT: PUSH PSW PUSH ACC WRADD: MOV A,R3 LCALL STA LCALL WRBYT LCALL CACK JB F0,WRADD MOV A,R2
LCALL WRBYT LCALL CACK JB F0,WRADD WRDA: MOV A,@R0 LCALL WRBYT LCALL CACK JB F0,WRADD INC R0
DJNZ R7,WRDA LCALL STOP POP ACC POP PSW RET
CACK: SETB SDA SETB SCL CLR F0 MOV C,SDA JNC CEND SETB F0 CEND: CLR SCL RET
WRBYT: MOV R6,#08H WLP: RLC A MOV SDA,C SETB SCL NOP NOP NOP NOP CLR SCL
DJNZ R6,WLP RET
STA: SETB SDA SETB SCL NOP NOP NOP NOP CLR SDA NOP NOP NOP NOP CLR SCL RET
STOP: CLR SDA SETB SCL NOP NOP NOP NOP
SETB SDA NOP NOP NOP NOP RET
DELAY: PUSH 00H PUSH 01H MOV R0,#00H DELAY1: MOV R1,#00H DJNZ R1,$
DJNZ R0,DELAY1 POP 01H POP 00H RET LEDSEG: DB
0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E4H DB
0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH END
- 2 -
正在阅读:
单片机实验报告404-09
小学故事作文06-15
四川教师招聘面试评委心得10-22
乡镇委员会年度工作总结和2022年农村饮用水工程建设工作规划08-01
世界星载SAR发展综述06-27
新北师大版一年级数学上册教材分析报告12-14
关于科技的作文03-31
某工地临时用电施工方案 d_secret09-02
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 单片机
- 实验
- 报告