四、预习要求:
理解本实验的硬件结构,编好程序,先进行软件仿真。
五、参考程序
;************************************************************************* ;文件名:ad0809.asm
;功能 :在DP-51PRO实验板利用A/D转换完成模拟电压的采集 ;说明 :
; 1.A/D转换芯片的ad0809共有8路ad,其地址为000xH~1FFxH, ;在此选取0000H,这样路ad的地址分别为0000H~0007H。
; 2.在DP-51S实验仪上,由于通道0、1已经模拟了一个属于信号, ; 此实验将以通道0为例来说明A/D转换的程序设计方法。
; 3.读取后转换的数字量存放在内部RAM的30H单元,采用中断方式实现。
;************************************************************************
AD0809 TIME0H TIME0L DAT0809
ORG 8100H
MOV SP,#60H
IT0 EX0 EA @DPTR,A
;设置定时器1为16位定时器 ;赋初值 ;开定时器中断 ;定时器运行
;设置外部中断0为边沿触发 ;中断INT0开放 ;总中断允许
;启动AD0809
SETB SETB SETB MOVX
MOV TMOD,#1 MOV TL0,#TIME0L SETB SETB
ET0 TR0
MOV TH0,#TIME0H MAIN:
ORG 800BH AJMP TIME0
;定时器0入口地址
ORG 8003H AJMP
EXINT1
;外部中断0的入口地址
ORG 8000H AJMP
MAIN
EQU 7000H EQU 0H EQU 0H DATA
30H
;存放采集到的数据
;A/D转换通道0的地址
MOV DPTR,#AD0809
BUZZ: TIME0:
MOV R7,DAT0809
R6,3 R6,$
;采样到的电压数据量,控制P3.5的翻转
SETB P3.5 MOV DJNZ
MOV R7,DAT0809 CLR P3.5 MOV DJNZ AJMP
PUSH ACC
PSW
;外部中断1服务子程序
PUSH CLR EX0
MOV DPTR,#AD0809 MOVX SETB POP ACC POP PSW RETI
CLR TR0
;定时器0中断时间,为模数采样频率
A,@DPTR EX0
;读取A/D转换的结果
MOV DAT0809,A
;存放数据
R6,3 R6,$ BUZZ
DJNZ R7,$
DJNZ R7,$
EXINT1:
MOV TH0,#TIME0H MOV TL0,#TIME0L MOV DPTR,#AD0809 MOVX SETB RETI ; END
@DPTR,A TR0
;赋初值
;重新启动A/D转换
六、思考题
1.如何实现多路模拟量的数据采集? 2.如何将采集的数字量通过数码管显示出来?
3.P0口是数据/地址复用的端口,请说明实验中ADC0809的模拟通道选择开关在利用P0口的数据口或地址地位口时,程序指令和硬件连线的关系。
实验十二 74HC138译码器实验
一. 实验目的
熟悉译码器的使用方法,灵活应用74HC138进行电路设计。
二. 实验设备及器件
IBM PC 机 一台
DP-51PRO单片机综合仿真实验仪 一台
三. 实验内容
1. 编写程序,通过单片机的P1口控制74HC138的数据输入端,从而选通相应的数据输出位。 2. 将译码数据输出端口连接到8个LED指示灯,验证译码的正确性。
四. 实验要求
通过实验掌握译码器的工作原理和实际应用方法。
五. 实验步骤
1. 短接C6区JP4接口上的短路帽,将C6区J20、J22 (A、B、C、/G1、/G2A、/G2B)与A2 区J61接口的P1.0~P1.5相连。如图3. 所示。
图3.12 实验十二 原理图
2. 将D1区的J52接口(LED1、LED2、LED3)连接到C6区J51译码数据输出接口/Y0~/Y7。 3. 打开程序调试软件,下载运行编写好的软件程序,查看程序运行结果是否正确。
六. 实验预习要求
认真阅读本书这一节的实验内容,提前做好实验准备工作。
七. 实验参考程序
ORG 8000H ;此为硬件仿真程序,使用软件仿真或直接运行,应改为0000H LJMP Main
ORG 8100H ;此为硬件仿真程序,使用软件仿真或直接运行,应改为0100H
MAIN:
MOV SP,#60H MOV R4,#0 DJNZ R4,$ ;设置译码器使能 CLR P1.5 CLR P1.4 SETB P1.3 ;译码数据输入 CLR P1.0 ;设置A=0 CLR P1.1 ;设置B=0 SETB P1.2 ;设置C=1 SJMP $ ; END
八. 实验思考题
请用户思考一下,在单片机电路里面,74HC138是如何产生片选信号的。
实验十三 8×8 LED扫描输出实验
一. 实验目的
使用户学会利用单片机的IO口进行LED点阵的扫描显示。
二. 实验设备及器件
IBM PC 机 一台
DP-51PRO单片机综合仿真实验仪 一台
三. 实验内容
编写一段程序,用P1口控制C5区的74HC164进行行列扫描,使C3区的8×8 LED点阵显示用户指定的形状(符号)。
四. 实验要求
学会使用单片机对LED点阵进行扫描显示。
五. 实验步骤
1. 使用导线将A2区的J61接口与C3区的J46接口从P10-P17到LD_1—LD_8对应连接。 2. 使用导线将C5区的J97接口与C3区的J47接口从Q0—Q7到LD_A—LD_H对应连接。 3. 使用导线将A2区的J58接口与C5区的J43接口从INT0到CLK 从INT1到DINA 从T0到DINB 从 T1到 CLR对应连接。再短接C5区JP10和C3区JP2。 4. 参考串并转换I/O,编写一段从74HC164输出8位数据程序。 5. 编写一个完整的LED点阵扫描程序,显示“× ”
六. 实验预习要求
先把程序编好,然后在Keil C51环境下进行软件仿真。
七. 实验参考程序
CLK DINA DINB ORG AJMP ORG MAIN:
MOV SP,#70H MOV MOV MOV MOV MOV MOV MOV MOV SETB SETB SETB
50H,#07EH 51H,#0BDH 52H,#0DBH 53H,#0E7H 54H,#0E7H 55H,#0DBH 56H,#0BDH 57H,#07EH CLK DINA CLEAR EQU EQU EQU 8000H MAIN 8100H
P3.2 P3.3 P3.4 P3.5
CLEAR EQU
CLR CLEAR
SETB DINB
MAINLOOP: