20
1 串串串串串 AD 串串串串 实实实实 实实实实 实实实实 VB 实实 实实实实 实实实实 实实实实 <<<

串行通信及 AD 转换实验

  • Upload
    laasya

  • View
    251

  • Download
    0

Embed Size (px)

DESCRIPTION

实验目的 实验器材 硬件接线 VB 界面. 软件功能 程序清单 备注说明. 串行通信及 AD 转换实验.

Citation preview

Page 1: 串行通信及 AD 转换实验

1

串行通信及 AD 转换实验

实验目的实验器材硬件接线VB界面

软件功能程序清单备注说明

<<<

Page 2: 串行通信及 AD 转换实验

2

实验目的 :

A/D 转换,单片机异步串行通信

Page 3: 串行通信及 AD 转换实验

3

实验器材 :

1.SD-1型在线编程实验仪

2.导线若干

Page 4: 串行通信及 AD 转换实验

4

硬件接线 :

VCC

PTC3

PTA7

PTA6

PTA5

PTA4

PTA3

PTA2

PTA1

PTA0PTC0

PTC1

PTC2

MO

TO

RO

LA

GP

32 MC

U

PTC4

PTB7

PTB6

PTB5

PTB4

PTB3

PTB2

PTB1

PTB0

VCC

Page 5: 串行通信及 AD 转换实验

5

VB界面:

Page 6: 串行通信及 AD 转换实验

6

软件功能 :由 PORTB 口的模拟量输入,通过单片

机的 A/D 转换器采集 8 路数据,并放在ADBUF 开始的地址中。

再在 INBUF 中放开关量。发 86 给 PC 机作为握手信号,进行通信

测试, PC 机判断后确认,发 86 作为确认信号,单片机收到 86 后,把模拟量0-7 和开关量送 PC 机显示。

Page 7: 串行通信及 AD 转换实验

7

程序清单:文件说明口地址定义 SCI寄存器 A/D寄存器数据区定义主程序 A/D转换串行通信输出

串行通信输入从PC机接收数据,并存储后送PTA输出

把在INBUF和ADBUFF的数据送PC机输出

中断矢量

Page 8: 串行通信及 AD 转换实验

8

*--------- 文件说明 -------------------------------------------** 文件名: sci.as* 硬件连接: PORTA 口输出它的 PTA7-0 接 OUT 的 7-0 号* 指示灯( A0 作为运行指示不受其它数据控制) PORTB 作为 AD 输入连接,*PORTB 口为模拟量输入口 ,PORTC 的 C0-4 接 IN 的 5 个拨位开关 0-4 作

为开关* 输入串行口与微机串行口相接( 9600 , N , 8 , 1 )* 程序描述: 1. 由 PORTB 口的模拟量输入,通过单片机的 A/D 转换器采集

8* 路数据,并放在 ADBUF 开始的地址中* 2. 再在 INBUF 中放开关量* 3. 发 86 给 PC 机作为握手信号,进行通信测试 ,PC 机判断后确* 认 , 发 86 作为确认信号,单片机收到 86 后 , 把模拟量 0-7 和* 开关量送 PC 机显示* 目的: A/D 转换,单片机异步串行通信 *------------------------------------------------------------*

Page 9: 串行通信及 AD 转换实验

9

*---- 口地址定义 ----------------------------PTA EQU $0000 ;A 口数据寄存器

PTB EQU $0001 ;B 口数据寄存器

PTC EQU $0002 ;C 口数据寄存器

PTD EQU $0003 ;D 口数据寄存器

DDRA EQU $0004 ;A 口数据方向寄存器

DDRB EQU $0005 ;B 口数据方向寄存器

DDRC EQU $0006 ;C 口数据方向寄存器

DDRD EQU $0007 ;D 口数据方向寄存器

DDRE EQU $0008 ;E 口数据寄存器

Page 10: 串行通信及 AD 转换实验

10

*----SCI 寄存器 -----------------------------SCS1 EQU $0016 ;SCI 状态寄存器 1B-SCTE EQU 7 ; 发送缓冲区空标志位B-TC EQU 6 ; 发送完成标志位B-SCRF EQU 5 ; 接收器满标志位SCDR EQU $0018 ;SCI 数据寄存器*---A/D 寄存器 -----------------------------ADSCR EQU $003C ;A/D 转换状态和控制寄存器B-COCO EQU 7 ; 转换完成标志位ADR EQU $003D ;A/D 转换数据寄存器ADCLK EQU $003E ;A/D 转换输入时钟寄存器RAMstartAddr equ $0040 ;RAM 的起始地址(因芯片不同可以

更改)FlashStartAddr equ $8000 ; 程序开始地址(因芯片不同可以更

改)

Page 11: 串行通信及 AD 转换实验

11

*---- 数据区定义(变量定义) ----------------- ORG RAMstartAddr ;RAM 的起始地址

INBUF RMB 1 ;1 字节存放 5 位开关量

ADBUF RMB 8 ;8 字节存放 8 路 A/D 转换结果

ONOFF RMB 1 ;1 字节存放从 PC 的数据 TMPVAR RMB 1 ; 暂存使用

Page 12: 串行通信及 AD 转换实验

12

*---- 主程序 --------------------------------- ORG FlashStartAddr ; 程序起始地址MainInit:: NOP LDA #$3E ;A/D 初始化 2 分频、使用内部总线时钟 STA ADCLK LDA #$FF ; 定义 PORTA 输出 STA DDRA LDA #$00 STA PTA STA ONOFF ;ONOFF=0 LDA #$00 ; 定义 PORTB , PORTC 作为输入 STA DDRB STA DDRC

Page 13: 串行通信及 AD 转换实验

13

*-------A/D 转换 ------------------------------Main: NOP ; 循环获得 8 路 AD 值 LDHX #$0 ;H : X=0GA-REPEAT: TXA ;X 寄存器送到累加器 STA ADSCR ; 选定一路 A/D ,启动转换 BRCLR 7,ADSCR,* ; 等待 A/D 转换完成 LDA ADR ;A/D 转换结果给 A STA ADBUF,X ;A 给 {ADBUF+X} ,储存数据 AIX #1 ; 下一存储单元 CPX #$08 ; 判断 8 路转换是否完成 BNE GA-REPEAT ; 循环 8 次转换 8 个通道模拟量

Page 14: 串行通信及 AD 转换实验

14

*---- 串行通信输出 -------------------------------GET-IN: LDA PTC ;5 位开关量采集 STA INBUF ; 暂放 INBUF NOP LDA #$56 ; 把 86 ( 16 进制数 56 )为握 ; 手信号送出到 PC 中 BRCLR 7,SCS1,* ; 等待以前数据全部发出, ;SCTE 置 1 ,发送缓冲区空 STA SCDR ; 发送缓冲区空时, ; 可向 SCI 数据寄存器送数

Page 15: 串行通信及 AD 转换实验

15

*---- 串行通信输入 ----------------------------- NOP LDHX #0WS-REPE1: BRSET 5,SCS1,WS-RECE1 ; 测试 SCRF 位, ; 判断接收缓冲器是否满 NOP NOP AIX #1 ; 延时等待 CPHX #$FFFF BNE WS-REPE1 BRA DISP1 ; 超时退出WS-RECE1: LDA SCDR ; 读取收到的数据

Page 16: 串行通信及 AD 转换实验

16

CMP #$56 ; 判断是否为确认信号 86 BNE DISP1 ; 不是退出,是就开始通信 NOP LDHX #0WS-REPE2: BRSET 5,SCS1,WS-RECE2 ; 测试 SCRF 位, ; 判断接收缓冲器是否满 NOP NOP AIX #1 ; 延时等待 CPHX #$6688 BNE WS-REPE2 ; 超时退出 BRA DISP1

Page 17: 串行通信及 AD 转换实验

17

*---- 从 PC 机接收数据,并储存后送 PTA 输出 ----------*---- ( A.0 不受影响) ----------------------------WS-RECE2 LDA SCDR NOP AND #$FE ;A0=0 STA TMPVAR ; 暂时缓存 LDA ONOFF AND #$1 ; 留下 A.0 ORA TMPVAR ; 处理接收的数据,放在 A 中 STA ONOFF ; 储存接收数据在 ONOFF 中 NOP ; 送 A/D 值

Page 18: 串行通信及 AD 转换实验

18

*---- 把在 INBUF 和 ADBUFF 的数据送 PC 机输出 --------

LDHX #$0

SA-REPEAT:

LDA INBUF,X BRCLR 7,SCS1,* ;SCTE 置 1 ,

; 发送缓冲区空

STA SCDR ;A 给 SCDR ,发送出去

AIX #1 CPX #$09 ;9 个数据输出

BNE SA-REPEAT

Page 19: 串行通信及 AD 转换实验

19

DISP1: NOP LDA ONOFF EOR #$1 ; 把原 A.0 取反,使灯闪烁 STA ONOFF STA PTA BRA MAIN***********************************************---- 中断矢量 --------------------------------- ORG $FFFE ; 复位矢量 DW MainInit:

Page 20: 串行通信及 AD 转换实验

20

备注说明 :

单片机与 PC 机使用串行异步通信。在此程序下,通过 PC 机下的 VB6.0 控制程序构成一定功能的微机控制系统。