微机原理实验指导书2012 下载本文

DATABUF DATA 30H ;测试数据变量

ORG 8000H LJMP MAIN ORG 8100H MAIN: MOV SP, #60H MOV DATABUF, #33H MOV DPTR, #3F00H MOV A, DATABUF MOVX @DPTR, A NOP MOV

;初始化堆栈

;用户变量赋初值

;访问8155内部RAM地址00单元 ;向00地址单元写数 ;用户变量清0 ;读数

;保存数据

DATABUF,#00H

MOVX A, @DPTR MOV DATABUF, A SJMP ;

$

END

参考程序3:8155定时器使用

;――――――――――――――――――――――――――――――――――― ;实验内容:

;用8155定时器定时,每隔1s依次-----实际时间计算有错误,请同学自行计算相应的定时时间并验证! ;读出8155内部RAM的数据送PB口显示

;――――――――――――――――――――――――――――――――――― ORG 8000H LJMP MAIN ORG 8100H

MAIN: MOV MOV MOV MOV MOV MOV

SP, #60H 22H, #00H

;RAM首址写入22H,23H单元 ;R0计数

;指向RAM首址 ;数据初值送A ;写入数据

23H, #3FH R0, #0FFH DPTR, #3F00H A, #00H

EY:

MOVX @DPTR, A INC INC DJNZ B1: MOV MOV B2:

DPTR A

R0, EY R0, #22H R1, #0AH

;R0!=0,继续写 ;写入结束,22->R0 ;R1软件计数

Page 13 of 17

MOV DPTR, #7F00H MOV A, #0C2H MOVX @DPTR,A MOV DPTR, #7F04H MOV A, #0FFH MOVX @DPTR,A

MOV

A, #83H

INC DPTR MOVX @DPTR,A

MOV DPTR, #7F00H

MOV A, #0C2H MOVX @DPTR,A MOV DPTR, #7F00H A2: MOVX A,@DPTR JNB ACC.6,A2 DJNZ R1,B2

MOV R1, #0AH MOV

DPH,23H

MOV DPL,22H MOVX A,@DPTR MOV DPTR, #7F02H MOVX @DPTR,A INC @R0 CJNE @R0, #0FFH,B2 SJMP $

; END ;DPTR指向命令口

;写入命令,启动计数器,PB口输出 ;DPTR指向定时器低8位 ;写入低8位计数值

;写入高8位计数值 ;DPTR指向命令口

;指向命令/状态口 ;读入8155状态

;计数未到终值,等待 ;不到,返回重新启动

;取数据

;输出到PB口显示 ;22H单元的内容加1 ;数据未取完,返回 ;程序功能完成

Page 14 of 17

实验五 A/D转换实验

1. 实验目的

掌握A/D芯片ADC0809与单片机的接口方法及ADC0809芯片性能;了解单片机实现数据采集的方法。

2. 实验设备及器件 IBM PC机 DP-51PRO单片机综合仿真实验仪

3. 实验内容

(1)编写一段程序,使P3.5输出不同频率的脉冲,控制蜂鸣器发出不同的音调,并且输入0~255的数据可改变蜂鸣器的音调。蜂鸣器驱动原理如图3.38所示。

(2)编写一段程序,通过ADC0809实现单片机对电位器模拟电压的采集,使用采集到的数据控制蜂鸣器的音调。ADC0809与单片机的接口原理如图3.39所示。

(3)ADC0809的时钟从B2区的时钟源获取,选用时钟源的1/32分频(也可以通过D触发器将单片

机ALE信号分频获取)。

一台 一台

4. 实验要求 使用实验仪上的ADC0809做A/D转换器,实验仪上的电位器提供模拟量输入,编写程序将ADC0809采集到的模拟量转换成数字量改变蜂鸣器的声调。

5. 实验步骤

① 使用导线把A2区的J66接口与B4区的J1接口从A0~A2到ADDA~ ADDC分别对应相连; ② 使用导线把A2区J63接口的A15与B4区J1接口的CS相连; ③ 使用导线把A2区J58接口的INT0与B4区J1接口的EOC相连; ④ 使用导线把A2区J58接口的T1与D4区J8接口的BUZZ相连; ⑤ 使用导线把B4区J1接口的+Vref、-Vref分别与VCC、GND相连;

⑥ 使用导线把B4区J44接口的IN0与D2区J18中间接口相连;

⑦ B2区J112的1/32分频与B4区J1的CLK连接,短接B2区JP20跳线,X2上接上晶振; ⑧ 使用短路片把W2电位器与VCC、GND相连; ⑨ 编写汇编程序,实现本实验的要求;

Page 15 of 17

⑩ 使用仿真器调试程序。

6. 实验预习要求

理解本实验硬件结构,可以先把程序编好,然后在Keil C51环境下进行软件仿真。

7. 实验参考程序 AD0809 EQU TIME0H EQU

TIME0L EQU DAT0809

DATA

ORG 8000H AJMP MAIN

ORG 8003H

AJMP EXINT1 ORG 800BH

AJMP TIME0 ORG 8100H MAIN: MOV SP,#60H SETB IT0

SETB EX0 SETB

EA

MOV DPTR,#AD0809 MOVX @DPTR,A

MOV TMOD,#1 MOV TH0,#TIME0H MOV TL0,#TIME0L

SETB

ET0 SETB TR0

BUZZ: MOV R7,DAT0809 SETB P3.5 MOV R6,#3 DJNZ R6,$ DJNZ R7,$ MOV R7,DAT0809 CLR P3.5

MOV

R6,#3

7000H ;A/D转换通道0的地址 0000H ;采样频率设置 0000H 0030H

;存放采集到的数据

;外部中断0的入口地址

;定时器0入口地址

;设置外部中断0为边沿触发 ;中断INT0开放 ;总中断允许 ;启动AD0809

;设置定时器1为16位定时器

;赋初值 ;开定时器中断

;定时器运行

;采样到的电压数据量,控制P3.5翻转

Page 16 of 17

DJNZ DJNZ

R6,$ R7,$ BUZZ

AJMP

EXINT1: PUSH PSW

;外部中断1服务子程序

PUSH CLR MOV MOVX MOV SETB POP

POP

RETI TIME0: CLR MOV MOV MOV MOVX SETB RETI ;

END

ACC

EX0

DPTR,#AD0809

A,@DPTR

DAT0809,A

EX0 ACC PSW

TR0 TH0,#TIME0H TL0,#TIME0L DPTR,#AD0809

@DPTR,A

TR0

;读取A/D转换结果

;存放数据

;定时器0中断时间可换算为模拟量采样频率 ;赋初值

;重新启动A/D转换

Page 17 of 17