THGMU-1型 实验指导书(PIC部分)

更新时间:2023-10-17 20:42:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

目 录

目 录 .................................................................................................................................................. I 实验一 流水灯实验.............................................................................................................................1 实验二 I/O口控制实验 .......................................................................................................................3 实验三 74LS373控制实验..................................................................................................................4 实验四 继电器控制实验.....................................................................................................................5 实验五 蜂鸣器驱动实验.....................................................................................................................6 实验六 PWM信号的产生实验 ...........................................................................................................7 实验七 PIC内部看门狗实验 ..............................................................................................................8 实验八 定时器实验...........................................................................................................................11 实验九 计数器实验...........................................................................................................................13 实验十 音频驱动实验.......................................................................................................................14 实验十一 八位动态数码显示实验...................................................................................................15 实验十二 查询式键盘实验...............................................................................................................17 实验十三 7279阵列式键盘实验.......................................................................................................18 实验十四 双色点阵显示实验...........................................................................................................21 实验十五 内部EEPROM读写实验 ..................................................................................................23 实验十六 I2C总线实验 .....................................................................................................................24 实验十七 内部AD转换实验.............................................................................................................26 实验十八 外部串行AD转换实验.....................................................................................................28 实验十九 外部串行DA转换实验.....................................................................................................29 实验二十 字符型液晶显示实验.......................................................................................................31 实验二十一 温度传感器实验...........................................................................................................34 实验二十二 128×64液晶显示实验 ..................................................................................................37 实验二十三 RS-232串口通信实验 ..................................................................................................39 实验二十四 直流电动机控制实验...................................................................................................40 实验二十五 步进电动机控制实验...................................................................................................41 附录一 PIC配置位描述 ....................................................................................................................43 附录二 PICCPU与主板IO关系 ........................................................................................................44

I

一、实验目的

实验一 流水灯实验

1.学习PC口的使用方法

2.学习延时子程序的编写和使用 二、实验说明

PC口是8位宽的双向口,TRISC寄存器是PORTC端口的数据方向控制寄存器,它定义了相 应的引脚是输入还是输出,TRISC为1时相应的PORTC端口的引脚被定义为输入,TRISC为0时 相应的PORTC端口的引脚被定义为输出。 注:1.在做完实验时记得养成一个好习惯:把相应单元的短路帽和电源开关还原到原来的位 置!以下将不在重述。

2.用 ICD2.5 调试时注意要把 MCU 模块的拨码开关 S1 拨到 ON 位置、S2 的第 1 位拨到 数字端(下载口不要上拉)S2 的第 2 位拨到 ON 位置。

3.下载和运行时注意 PIC 核心板上 JT1 短路冒的切换位置。(打到 RST2 时应用软件的复 位,打到 RET1 时为使用核心板上的复位)。

4.软件和调试器的使用参考软件使用说明书。 5.实验程序放在 Soundcode/PIC 的文件夹中。 三、实验内容及步骤

用 PC 口做输出口,接八位逻辑电平显示,程序功能使发光二极管循环点灭。

1.MCU 底板处的拨码开关 S1、S2 的拨到数字端(IO 口不需要上拉,以下不在说明), 最小系统中插上 PIC 核心板,PIC 核心板上的 JT1 打在 RET2 处,用扁平数据线连接 MCU 的 P2 口与八位逻辑电平显示模块 JD3。

2.接上 ICD2.5 调试器,其上的开关打在“Target Self”处,一头接 PC 机的 USB 口另一 头接 CPU 板的 JP1 下载口,打开 MPLAB IDE v7.50 软件,建立自己的工程(注意:工程建立 参考使用说明书,指导书中的例程工程已经建立好,无需要在建立以下不再说明)。 3.在 MPLAB IDE v7.50 从“Project”->open 中打开 LED 文件夹下的“LED.MCP”工程 文件。

4.在“Debugger”->select tool 中选择“MPLAB ICD2”,连接成功后进入了 ICD2.5 的调 试界面(信息窗口有提示信息),可以点“进入了调试的状态,其运行方式有“

”进行编译,再点“

”,然后点“

”则

”全速运行程序,观察发光二极管显示情况,发光二

极管单只轮流循环点灭显示流水灯的效果。(具体参考使用说明,以下不在重述) 注:1.在做完实验时记得养成一个好习惯:把相应单元的短路帽和电源开关还原到原来的位 置!以下将不在重述。

2.注意配置位的选择

四、源程序(见光盘) 五、电路图

1

VCC C1B7 0.1uF

RP1B7 VCC

12 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 VCC U1B7 20 VCC LED0B7LED1B7LED2B7LED3B7LED4B7LED5B7LED6B7LED7B7

LE OE D1 D2 D3 D4 D5 D6 D7 D8 GND VCC 11 1 3 4 7 8 13 14 17 18 10 L0B7 L1B7 L2B7 L3B7 L4B7 L5B7 L6B7 L7B7 JD1B7 1 2 3 4 5 6 7 8 8LED

L0B7 P0B7

L0L1B7 P1B7

L1L2B7 P2B7

L2L3B7 P3B7

L3L4B7 P4B7

L4L5B7 P5B7

L5L6B7 P6B7

L6L7B7 P7B7 L7

510 L0 2 L1 5 L2 6 L3 9 L4 12 L5 15 L6 16 L7 19 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 74LS373

2

一、实验目的

实验二 I/O 口控制实验

1.学习PC、PB口的使用方法 2.掌握I/O口做输入输出口的使用 3.学习延时子程序的编写和使用 二、实验说明

PC和PB口都是8位宽的双向口,TRISC(TRISB)寄存器是PORTC(PORTB)端口的数据 方向控制寄存器,它定义了相应的引脚是输入还是输出,TRISC(PORTB)为1时相应的PORTC (PORTB)端口的引脚被定义为输入,TRISC(TRISB)为0时相应的PORTC(PORTB)端口 的引脚被定义为输出。 三、实验内容及步骤

用 PB0 口做输入口,用 PC 口做输出口,输出口的状态根据输入口的状态变化而变化。 1.MCU 底板处的拨码开关 S1、S2 的拨到数字端(IO 口不需要上拉,以下不在说明), 最小系统中插上 PIC 核心板,PIC 核心板上的 JT1 打在 RET2 处(以下不在说明),用扁平数 据线连接 MCU 的 P2 口与八位逻辑电平显示模块 JD3;查询式键盘的 K0 口接 MCU 最小系统 的 P00 口。

2.接上 ICD2.5 调试器,其上的开关打在“Target Self”处,一头接 PC 机的 USB 口另一 头接 CPU 板的 JP1 下载口,打开 MPLAB IDE v7.50 软件。

3.在 MPLAB IDE v7.50 从“Project”->open 中打开 IO 文件夹下的“IO.MCP”工程文件。 4.编译下载、运行程序,按动查询式键盘的 K0 键,观测发光二级管的循环点灭的变化情 况。

四、源程序(见光盘) 五、电路图

RP1A5

9 8 7 6 5 4 3 2

Key1A5

4.7K

9 8 7 6 5 4 3 2 1

VCC

Key0

Key2A5

Key1

Key3A5

Key2

Key4A5

Key3

Key5A5

Key4

Key6A5

Key5

Key7A5

Key6

Key8A5

Key7

1 2 3 4 5 6 7 8 JD1A5

3

一、实验目的

实验三 74LS373 控制实验

1.学习 I/O 端口扩展的使用方法 2.掌握 I/O 扩展芯片的基本方法 3.熟悉单片机和外围芯片的连接 4.学习 PIC 程序对 I/O 芯片的控制过程 二、实验说明

在很多的情况下,单片机为了获得多路的信号输入往往需要扩展很多路的输入或者输出。 本实验用 74LS373 做为 I/O 的扩展芯片,74LS373 说到底就是 8 个 D 锁存器组成的集成芯片, 当使能信号 OE 为低电平并且锁存允许输入信号 LE 为高电平时,输出的信号将跟随输入端的 数据;而控制输入信号 OE 为高电平时,Q 输出端则成高阻状态。在使用过程中,当不需要进 行三态控制时,可以把 OE 接 GND,否则必须和相应的控制信号相连。 三、实验内容及步骤

本实验对 PC 口进行扩展,同时用 PA1 口做为 OE 的控制信号。 1.最小系统中插上 PIC 核心板,PIC 核心板上的 JT1 打在 RET2 处,MCU 的 P2 口(PC) 接 373 的 JD10,373 的 JD11 接 LED 显示的 JD3 口,MCU 的 P11(PA1)接 373 控制口 OE,373 的 G 接+5V 位置。

2.接上 ICD2.5 调试器,其上的开关打在“Target Self”处,一头接 PC 机的 USB 口另一 头接 CPU 板的 JP1 下载口,打开 MPLAB IDE v7.50 软件。

3.在 MPLAB IDE v7.50 从“Project”->open 中打开 74LS373 文件夹下的“74LS373.MCP” 工程文件。

4.编译下载、运行程序,观察发光二极管显示情况,发光二极管单只轮流循环点灭显示流 水灯的效果。

四、源程序(见光盘) 五、电路图

VCC U2D4 20 VCC 11 1 3 4 7 8 13 14 17 18 10

JD1D4 1 2 3 4 5 6 7 8 Q0-Q7

2 5 6 9 12 15 16 19 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 LE OE D1 D2 D3 D4 D5 D6 D7 D8 GND 1 2 3 4 5 6 7 8 JD2D4 P5D4

OE

D0-D7

74LS373

4

一、实验目的

实验四 继电器控制实验

1.学习 I/O 端口的使用方法

2.掌握继电器的控制的基本方法 3.了解用弱电控制强电的方法 二、实验说明

现代自动控制设备中,都存在一个电子电路的互相连接问题,一方面要使电子电路的控制 信号能控制电气电路的执行元件(电动机,电磁铁,电灯等),另一方面又要为电子线路和电气 电路提供良好的电气隔离,以保护电子电路和人身的安全,继电器便能完成这一任务。 继电器电路中一般都要在继电器的线圈两头加一个二极管以吸收继电器线圈断电时产生的 反电势。

本电路控制端为高电平时,继电器常开触点吸合,当控制端口为低电平时,继电器不工作。 三、实验内容及步骤

用 PC0 作为控制输出口,接继电器电路,使继电器重复吸合与断开。 1.最小系统中插上 PIC 核心板,用导线连接 P20(PC0)端口到继电器 CONTROL,K-OPEN 接八位逻辑显示的任意一个口如 L0,K-MID 接 GND。

2.接上 ICD2.5 调试器,其上的开关打在“Target Self”处,一头接 PC 机的 USB 口另一 头接 CPU 板的 JP1 下载口,打开 MPLAB IDE v7.50 软件。

3.在 MPLAB IDE v7.50 从“Project”->open 中打开 RELAY 文件夹下的“RELAY.MCP” 工程文件。

4.编译下载、运行程序,继电器重复延时吸合与延时断开同时观察发光管亮灭的情况。 四、流程图

开始 继电器吸合 延时 继电器断开 延时

+12V 2 8 IN4001

3 P40A3 K-Open 2 P3A3 K-Clos 五、源程序(见光盘) 六、电路图

5 6 JDQA3

继电器 1 7 1

P1A3 R2A3 Q1A3 2 3 Control 10K K-MID 4 8050

5

P5A3

1 D1A3

一、实验目的

实验五 蜂鸣器驱动实验

1.学习输入/输出端口控制方法 2.了解音频发声原理

3.单片机产生声音的方法,学会计算程序所用时间 二、实验说明

本实验是利用 PIC 16F877A 端口,驱动蜂鸣器发声,声音的频率高低由延时快慢控制。本 实验是利用单片机产生救护音,请用户思考如何修改程序,可以让蜂鸣器发出不同频率,不同 长短的声音。 三、实验内容及步骤

本实例的功能是使 PIC16F877 产生救护音,频率分两个频率,第一个频率是 440HZ,第二 个频率是 180HZ,反复循环。 1.最小系统中插上 PIC 核心板,P10 口(PA0)接蜂鸣器的 COUNTER 口,JT4 打在 VCC 处。

2.接上 ICD2.5 调试器,其上的开关打在“Target Self”处,一头接 PC 机的 USB 口另一 头接 CPU 板的 JP1 下载口,打开 MPLAB IDE v7.50 软件。

3.在 MPLAB IDE v7.50 从“Project”->open 中打开 BELL 文件夹下的“BELL.MCP”工 程文件。

4.编译下载、运行程序,蜂鸣器发出报警音。 四、源程序(见光盘) 五、电路图

VCC 1 P1A4

R1A4 Control 10K 3 2 1 JT1A4 VCC VCC

LS1A4 Bell 8050 Q1A4 2 1 3 R2A4 47 C1A4 0.1uF

2

6

一、实验目的

实验六 PWM 信号的产生实验

1.了解脉宽调制(PWM)的原理 2.学习用 PWM 输出模拟量 3.熟悉 PIC 系列单片机的延时程序 二、实验说明

PWM 信号经外接的转换电路,可以将脉冲的占空比变成电压,可以通过调整占空比来调 节输出模拟电压。占空比是指高电平在一个周期之内所占的时间比率。 三、实验内容及步骤

本程序通过 PC0 产生占空比为 1:2 的 PWM 脉冲信号,输出信号可以用示波器观测也可以 用万用表测量其电压值。

1.最小系统中插上 PIC 核心板,P20 口为 PWM 的脉冲输出口接示波器的正端,示波器的 负端接 GND。

2.接上 ICD2.5 调试器,其上的开关打在“Target Self”处,一头接 PC 机的 USB 口另一 头接 CPU 板的 JP1 下载口,打开 MPLAB IDE v7.50 软件。

3.在 MPLAB IDE v7.50 从“Project”->open 中打开 PWM 文件夹下的“PWM.MCP”工程 文件。

4.编译下载、运行程序,观测 P20 口输出占空比为 1:2 的 PWM 信号。 四、流程图

开 始

输 出 低 电 平 低 电 平 延 时 输 出 高 电 平 高 电 平 延 时

五、源程序(见光盘) 六、思考题

1.分析 PWM 转换电路的原理。 2.如何改变 PWM 的占空比和频率

7

实验七 PIC 内部看门狗实验

一、实验目的

1.掌握 PIC 软件“看门狗”的使用 2.掌握 PIC 软件“看门狗”的特性 二、实验说明

PIC 的软件看门狗采用编程方法实现对系统进行的监测,控制系统不受外界干扰而出现死 机现象。PIC 单片机上的看门狗是一个独立时钟源的计数器,无需任何的外围器件,只需要对 系统的各个相关的寄存器进行初始化的配置就行了。

PIC 单片机上的看门狗是一个独立时钟源的计数器,无需任何的外围器件,只需要对系统 的各个相关的寄存器进行初始化的配置就行了,在 PIC 单片机中,与看门狗有关的寄存器有 3 个,分别如下:

z 选项寄存器 OPTION_REG

选项寄存器是一个可以读写的寄存器,其地址为 81H 和 181H。选项寄存器的各个位的定 义如表 7-5 所示。

表 7-5 PS2-PS0 对应的分频比 Bit7 Bit Bit Bit Bit Bit PS2 Bit PS1 Bit PS0 RBPU INTDG TOCS TOSE PSA 现将选项寄存器中与看门狗相关的各位介绍如下: z PSA:分频器位,PSA=1 时是将分频器分配给看门狗,而 PSA-0 时是将分频器分配给 看 TMR0.

z PS2~PS0:分频器位,其分频比如表 7-6 所示 表 7-6 PS0 对应的分频比 PS2 0 0 0 0 1 1 1 1 PS1 0 0 1 1 0 0 1 1 PS0 0 1 0 1 0 1 0 1 看门狗分频比 1:1 1:2 1:4 1:8 1:16 1:32 1:64 1:128 PS2~

z 状态寄存器械 STATUS

状态寄存器是使用率很高的可以读写的寄存器,STATUS 的地址为 03H、83H、103H、183H 等。通常,可以对 STATUS 中的 RP1 和 RP0 进行改变从而进行转体操作,对 Z 进行查看是否 结果为零,对 DC 进行查看是否有助进位,对 C 进行查看是否有进位。STATUS 的各个位的定

8

义如表 7-7 所示。

表 7-7 STATUS 各位定义

Bit Bit Bit Bit Bit Z Bit DC Bit C Bit7 IRP RP1 RP0 TO PD 现将该寄存器中与看门狗相关的各位介绍如下 : z PD:功耗标志位,在单片机初始加电复位时或者执行了看门狗的指令 CLRWDL 之后就 会将该位置 1,在单片机执行指令 SLEEP 后就会对改为进行清零操作。这样可以对这一位进行 查看,以得到系统的状态。 z TO:超时指标位,当在单片机初始加电复位、执行看门狗的指令 CLRWDL 后,执行指 令 SLEEP 后就会置 1。在看门狗超时溢出时该位就会自动清零。

z 系统配置寄存器 系统配置寄存器是对系统进行设置的,系统配置寄存器中只有一位与

看门狗有关,现将系

统配置寄存器各个位的定义如表 7-8 所示。

表 7-8 系统配置寄存器各位定义 Bit7 LVP Bit BODEN Bit CP1 Bit CP0 Bit Bit Bit Bit PWRTE WDTE F0SC1 F0SC0 z WDTE:看门狗使能位,WDTE 为 1 时看门狗被使能,WDTE 为 0 时看门狗被禁

止。一般这个是在软件环境中进行设置的。

三、实验内容及步骤

分频器分配给 WDT,且分频倍率为 1:128,程序开始点亮 LED,然后等待看门狗的复位使 发光管熄灭,如此循环,则观测 LED 灯的亮和灭从而观测看门狗的复位情况。

1.最小系统中插上 PIC 核心板,JT1 打在 RET2 处,P2 口接逻辑电平显示的 JD3 口。 2.接上 ICD2.5 调试器,其上的开关打在“Target Self”处,一头接 PC 机的 USB 口另一 头接 CPU 板的 JP1 下载口,打开 MPLAB IDE v7.50 软件。

3.在 MPLAB IDE v7.50 从“Project”->open 中打开 DOG 文件夹下的“DOG.MCP”工程 文件。

(注意:1)此程序用到看门狗,不可以用调试模式,需要用下载模式; JT1 下载程序时 打在 RST2,下载成功后运行程序打在 RST1 处。

2)要开启看门狗的作用,则要开启看门狗选择位,在“CONFIGURE”菜单中

选择“CONFIGURATION BITS…”把 Watchdog Time 选择 ON。(工程中已经设置好)

4.在“Programmer”->select programmer 中选择“MPLAB ICD2”,连接成功后进入了 ICD2.5 的烧写界面(信息窗口有提示信息), 可以点“

”进行编译,再点“

”,然后点“

下载成功后,JT1 打在 RET1 处观测发光管的亮灭反应出看门狗的复位情况。

9

一、实验目的

实验十一 八位动态数码显示实验

1.掌握数字、字符转换成显示段码的译码方法 2.动态显示的原理和相关程序的编写 3.掌握 7279 的扫描方式和显示方法 二、实验说明

动态显示,也称扫描显示。显示器由8个共阴极数码管构成,PIC单片机通过IIC方式控制 7279,7279然后驱动八位动态数码显示。

7段码显示管脚如(图6.1)小数点DP对应着对高位,按照dp-g-f-e-d-c-b-a的次序对应各个输 入管脚。如采用共阴极的接法显示4,则输入应该为01100110,而如果采用共阳极的接法,则输 入应该为共阴极接法输入的反码,输入应该为10011001。另外,7段译码器还可以显示一些字符, 如a、b、c、d、e、f、u等

A 0

B 1 C 2 D? A a b A c d e f g DP Dpy Amber-CA 10 985423716

D 3 VCC

E 4

F 5 G 6 DP 7

图为共阴极的接法的原理图和共阳极接法的器件管脚图

HD7279A是一片具有串行接口的,可同时驱动8位共阴极数码管(或64只独立LED)的智 能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,HD7279A 内部含有译码器,可 直接接受16进制码,HD7279A还同时具有2种译码方式,HD7279A还具有多种控制指令,如消

隐、闪烁、左移、右移、段寻址等。(具体参考7279A的数据手册)

三、实验内容及步骤

1.最小系统中插上 PIC 核心板,7279 阵列式键盘的 JT9 短路冒打在 VCC 处,MCU 最小 系统的 P20、P21、P22 分别接 7279 阵列式键盘的 CS、CLK、DATA。

2.7279 阵列式键盘的 JD16、JD17 分别接八位动态数码显示的 JD1、JD2。

3.接上 ICD2.5 调试器,其上的开关打在“Target Self”处,一头接 PC 机的 USB 口另一 头接 CPU 板的 JP1 下载口,打开 MPLAB IDE v7.50 软件。

15

4 .在 MPLAB IDE v7.50 从“ Project ” ->open 中打开 7279_DISPLAY 文件夹下的 “7279_DISPLAY.MCP”工程文件。

5.编译下载、运行程序,观测八位动态数码显示依次为 0-7。 四、源程序(见光盘) 五、电路图

N1 N2 N3 N4 N1 N2 CL6 9CL5 8CL4 6CL2 9CL1 8

DisADisBDisCDisDDisEDisFDisGDisH 1 2 3 4 5 6 7 8 JD0B8 DATA

JD1B8 S-BIT

1 2 3 4 5 6 78 CL0CL1CL2CL3CL4CL5CL6CL7

16

CL0 6CL7 12CL3 12

N4 N3 DisA DisB DisC DisD DisE DisF DisG DisH 11 74211053

DISP0B8 a DPY a a a a b c f g b f g b f g b f g b d e e f g dpd c e c e c e c d d d dp dp dp dp

DisA

DisB DisC DisD DisE DisF DisG DisH 11 74211053

DISP1B8 a DPY a a a a b c f g b f g b f g b f g b d c e c e c e c e e d d d d f dp dp dp dp g dp

一、实验目的

实验十二 查询式键盘实验

1.掌握查询式键盘的接口和编程方法

2.掌握通过单片机的端口直接驱动发光管的输出 二、实验说明

本实验提供了 8 个按键的小键盘,如果有键按下,则相应输出为低电平,否则输出为高电 平。MCU 判断有键按下后,要有一定的延时,防止由于键盘抖动而引起误操作。

编写一个程序,对 PIC16F877A 的端口 D 的 8 位输入进行扫描,然后将其输入通过端口 C 的 8 位输出来显示。 三、实验内容及步骤

按下相应的键时经过去抖动程序处理,确定无误后在发光管上相应的显示。

1.最小系统中插上 PIC 核心板,MCU 最小系统的 P2 用 8P 连接线接八位逻辑电平显示的 JD3。

2.MCU 最小系统的 P3 口用 8P 连接线接查询式键盘的 JD15 3.接上 ICD2.5 调试器,其上的开关打在“Target Self”处,一头接 PC 机的 USB 口另一 头接 CPU 板的 JP1 下载口,打开 MPLAB IDE v7.50 软件。

4.在 MPLAB IDE v7.50 从“Project”->open 中打开 KEY 文件夹下的“KEY.MCS”工程 文件。

5.编译下载、运行程序,按下查询式键盘的 K0—K7 键则相应的逻辑电平显示 L0—L7 点 亮。 四、源程序(见光盘) 五、思考题

1.程序如何确保每按一次键,只处理一次。 六、原理图

RP1A5

9 8 7 6 5 4 3 2

Key1A5

4.7K

9 8 7 6 5 4 3 2 1

VCC

Key0

Key2A5

Key1

Key3A5

Key2

Key4A5

Key3

Key5A5

Key4

Key6A5

Key5

Key7A5

Key6

Key8A5

Key7

1 2 3 4 5 6 7 8 JD1A5

17

一、实验目的

实验十三 7279 阵列式键盘实验

1.掌握八段数码管硬件线路原理,掌握用HD7279A芯片实现显示的编程方法 2.熟悉键盘的工作原理,掌握用HD7279A芯片实现键盘扫描程序设计方法 二、实验说明

HD7279A是一片具有串行接口的,可同时驱动8位共阴极数码管(或64只独立LED)的智 能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,HD7279A 内部含有译码器,可 直接接受16进制码,HD7279A还同时具有2种译码方式,HD7279A还具有多种控制指令,如消 隐、闪烁、左移、右移、段寻址等。

HD7279A的指令结构有三种类型:

1)不带数据的纯指令,指令的宽度为8个BIT,即微处理器需发送8个CLK脉冲; 2)带有数据的指令,宽度为16个BIT,即微处理器需发送16个CLK脉冲;

3)读取键盘数据指令,宽度为16个BIT,前8个为微处理器发送到HD7279的指令,后8个 BIT为HD7279A返回的键盘代码。 本实验采用8位共阴

极数码管,用查询方式判断。 引脚说明:

引脚 1,2 3,5 4 6 7 8 名称 VDD NC VSS CS CLK DATA 正电源 无连接,必须悬空 接地 说明 片选输入端,此引脚为低电平时,可向芯片发送指令及读 取键盘数据 同步时钟输入端,向芯片发送数据及读取键盘数据时,此 引脚电平上升沿表示数据有效 串行数据输入/输出端,当芯片接收指令时,此引脚为输入 端:当读取键盘数据时,此引脚在‘读’指令最后一个时 钟的下降沿变为输出端 按键有效输出端,平时为高电平,当检测到有效按键时, 此引脚变为低电平 段 g——段 a 驱动输出 小数点驱动输出 数字 0——数字 7 驱动输出 振荡输出端 RC 振荡器连接端 复位端 9 10-16 17 18-25 26 27 28 KEY SG-SA DP DIG0-DIG7 CLKO RS RESET

18

控制指令:HD7279A 的控制指令分为二大类——纯指令和带有数据的指令。 纯指令

1.复位(清除)指令 A4H

D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 0 0 1 0 0 当 HD7279A 收到该指令后,将所有的显示清除,所有设置的字符消隐、闪烁等属性也被 一起清除。执行该指令后,芯片所处的状态与系统上电后所处的状态一样。

2.测试指令 BFH

D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 1 1 1 1 1 该指令使所有的 LED 全部点亮,并处于闪烁状态,主要用于测试。 3.左移指令 A1H

D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 0 0 0 0 1 使所有的显示自右向左(从第 1 位向第 8 位)移动一位(包括处于消隐状态的显示位),但 对各位所设置的消隐及闪烁属性不变。移位后,最右边一位为空(无显示)。例如,原显示为

4 2 5 2 L P 3 3 9 9 其中第 2 位‘3’和第 4 位‘L’为闪烁显示,执行了左移指令后,显示变为 2 5 2 L P 第二位‘9’和第四位‘P’为闪烁显示。 4.右移指令 A0H

D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 0 0 0 0 0 与左移指令类似,但所做移动为自左向右(从第 8 位向第 1 位)移动,移动后,最左边一 位为空。

5.循环左移指令 A3H D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 0 0 0 1 1 与左移指令类似,不同之处在于移动后原最左边一位(第 8 位)的内容显示于最右位(第 2 5 2 L P 第二位‘9’和第四位‘P’为闪烁显示。 6.循环右移指令 A2H

1 位)。在上例中,执行完循环左移指令后的显示为3 9 4 D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 0 0 0 1 0

19

一、实验目的

实验二十四 直流电动机控制实验

1.学习用 PWM 输出模拟量驱动直流电机 2.熟悉直流电动机的工作特性 二、实验说明

PWM 是单片机上常用的模拟量输出方法,用占空比不同的脉冲驱动直流电机转动,从而 得到不同的转速。程序中通过调整输出脉冲的占空比来调节直流电机的转速。

本实验使用 6V 直流电机。

本实验是采用了开环控制方式,程序运行时开始以 100%的占空比运行,过一小段时间后 一占空比为 1:2 的 PWM 速度运行。 三、实验内容及步骤

1.最小系统中插上 PIC 核心板,P20 接直流电机的 V—DCmotor 口。 2.接上 ICD2.5 调试器,其上的开关打在“Target Self”处,一头接 PC 机的 USB 口另一 头接 CPU 板的 JP1 下载口,打开 MPLAB IDE v7.50 软件。

3.在 MPLAB IDE v7.50 从“Project”->open 中打开 DC_Motor 文件夹下的“DC_Motor.MCP” 工程文件。

4.编译下载、运行程序,程序运行后电机全速运行一段时间,然后以占空比为 1:2 的 PWM 稳定运行! 四、源程序(见光盘) 五、电路图

VCC R47A 220 1 A

A

2 K OptoisolatorVCC U12B R48A 4.7K 14 VCC 3 13 C 6A 12 6Y11 P11A 5A PulseOut 10 5Y 9 PulseOut 4A 8 4Y E 4 74LS14 DC-Motor 1 1 1A 2 1Y 3 2A 4 2Y 5 3A 6 3Y 7 GND Q9A + - VCC 2 1 VCC J3A 1 2 P12AV-DCMotor R49A3K Q10A 2 9013 Header 2 3

40

一、实验目的

实验二十五 步进电动机控制实验

1.掌握采用单片机控制步进电机的硬件接口技术 2.掌握步进电机驱动程序的设计和调试方法 3.熟悉步进电动机的工作特性 二、实验说明

1.步进电动机有三线式、五线式、六线式三种,但其控制方式均相同,必须以脉冲电流来 驱动。若每旋转一圈以 20 个励磁信号来计算,则每个励磁信号前进 18 度,其旋转角度与脉冲 数成正比,正、反转可由脉冲顺序来控制。

2.步进电动机的励磁方式可分为全部励磁及半步励磁,其中全步励磁又有 1 相励磁及 2 相励磁之分,而半步励磁又称 1-2 相励磁。图为步进电动机的控制等效电路,适应控制 A、B、 /A、/B 的励磁信号,即可控制步进电动机的转动。每输出一个脉冲信号,步进电动机只走一步。 因此,依序不断送出脉冲信号,即可步进电动机连续转动。

a.1 相励磁法:在每一瞬间只有一个线圈导通。消耗电力小,精确度良好,但转矩小,振 动较大,每送一励磁信号可走 18 度。若欲以 1 相励磁法控制步进电动机正转,其励磁顺序如图 所示。若励磁信号反向传送,则步进电动机反转。

励磁顺序: A→B→C→D→A

STEP 1 2 3

A 1 0 0

B 0 1 0

C 0 0 1

D 0 0 0

4 0 0 0 1

b.2 相励磁法:在每一瞬间会有二个线圈同时导通。因其转矩大,振动小,故为目前使用 最多的励磁方式,每送一励磁信号可走 18 度。若以 2 相励磁法控制步进电动机正转,其励磁顺 序如图所示。若励磁信号反向传送,则步进电动机反转。

励磁顺序: AB→BC→CD→DA→AB

STEP 1 2 3

A 1 0 0

B 1 1 0

C 0 1 1

D 0 0 1

4 1 0 0 1

c.1-2 相励磁法:为 1 相与 2 相轮流交替导通。因分辨率提高,且运转平滑,每送一励磁 信号可走 9 度,故亦广泛被采用。若以 1 相励磁法控制步进电动机正转,其励磁顺序如图所示。 若励磁信号反向传送,则步进电动机反转。

励磁顺序: A→AB→B→BC→C→CD→D→DA→A

STEP

A

B

C

D

41

1 2 3 -4 5 6 7 8

1 1 0 -- 0 0 0 1

0 1 0 1 0 0 0 0

0 0 1 1 1 1 0 0

0 0 0 0 0 1 1 1

3.电动机的负载转矩与速度成反比,速度愈快负载转矩愈小,当速度快至其极限时,步进 电动机即不再运转。所以在每走一步后,程序必须延时一段时间。 三、实验内容及步骤

1.最小系统中插上 PIC 核心板,接线最小系统的 P20、P21、P22、P23 分别接步进电机的 A、B、C、D。

2.接上 ICD2.5 调试器,其上的开关打在“Target Self”处,一头接 PC 机的 USB 口另一 头接 CPU 板的 JP1 下载口,打开 MPLAB IDE v7.50 软件。

3.在 MPLAB IDE v7.50 从“Project”->open 中打开 SETPmotor 文件夹下的“SETPmotor.MCP” 工程文件。

4.编译下载、运行程序,,观察步进电机的转动。 四、源程序(见光盘)

五、思考问题 如何改变电机的工作方式或者方向、速度,设计

控制软件? 六、电路图

P13A A P14A B P15A C P16A D

RP1A 2 3 4 5 6 7 8 9 10K

VCC

1 2 3 4 5 6 7 8 9

1 3 5 9 11 13 7

U12A

1A 2A 3A 4A 5A 6A GND 74LS14 VCC 1Y 2Y 3Y 4Y 5Y 6Y

VCC 14 2 4 6 8 10 12

XA XB XC XD

1 2 3 4 5

U13A

IN1 IN2 IN3 IN4 IN5

PulseO6 ut

IN6 7 IN7 8 GND ULN2003

OUT1

OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 COM LED8A A

16 A' 15 B' 14 C' 13 D' 12 11 10 VCC 9 STEP-Motor R50A 330 VCC RP2A

1 2

2

LED9A 3

3

B 4

4 5

5

LED10A C LED11A D LED12A VCC RUN 1K

电机驱动

MOTO-S A' R51A 20 B' R52A 20 C' R53A 20 D' R54A 20 1 2 3

M 4 5

VCC 42

6

附录一 PIC 配置位描述

1.DEBUG:Debugger 模式,=1 关闭,正常工作状态下需要关闭该项。 2.CPD:数据 EE 保护,=1 关闭。

3.LVP:低压编程使能,=1 使能(低压 ISP 方式不能操作此位)。 4.BOREN:降压复位使能,=1 使能。

5.PWRTEN:上电定时器使能,=1 关闭,=0 开启。开启可以不用外部复位电路。

6.WDTEN:看门狗定时器使能,=1 使能,=0 关闭。如果没有喂狗程序需要关闭,建议 关闭。

7.FOSC<1:0>:震荡器选择位: 11=RC 阻容振荡器

10=HS 高速晶体/陶瓷振荡器(8.0MHz) 01=XT 标准晶体/陶瓷振荡器 00=LP 低频低功耗振荡器

43

附录二 PICCPU 与主板 IO 关系

PICCPU PA——主板 P1

PICCPU PB——主板 P0 PICCPU PC——主板 P2 PICCPU PD——主板 P3 PICCPU RE0——主板 P47 PICCPU RE1——主板 P46 PICCPU RE2——主板 P76

44

在循环左移指令类似,但移动方向相反。 三、实验内容及步骤

本实验是 7279 键盘实验,当按下 0-F 的任何一个 KEY 时,KEY 中断输出一个低电平,PIC 单片机检测到后,发送键码读取指令,然后读取键码把键码转换成十进制送数码低两位显示, 当在按下另一个键时,前一个键码左移。

1.最小系统中插上 PIC 核心板,MCU 最小系统的 P20、P21、P22、P23 分别接 7279 阵列 式键盘的 CS、CLK、DATA、KEY。

2.7279 阵列式键盘的 JD16、JD17 分别接八位动态数码显示的 JD1、JD2,JT9 短路冒打 在 VCC 处。

3.接上 ICD2.5 调试器,其上的开关打在“Target Self”处,一头接 PC 机的 USB 口另一 头接 CPU 板的 JP1 下载口,打开 MPLAB IDE v7.50 软件。

4.在 MPLAB IDE v7.50 从“Project”->open 中打开 7279_KEY 文件夹下的“7279_KEY.MCP” 工程文件。

5.编译下载、运行程序,按下键盘时 8 位数码低两位显示键码,再按下第二键码时低两位 显示该键码,同时上一次的键码左移。 四、源程序(见光盘) 五、电路图

VCC

1 2 3 4 5

25 G7A6 DIG7

24 G6A6 DIG6

23 G5A6 DIG5

22 G4A6 DIG4 21 G3A6 DIG3 20 G2A6 DIG2 19 G1A6 DIG1 6 18 G0A6 P1A6 CS CSDIG0 P2A6 17 DP 7 CLK DP CLK P3A6 16 SA 8 DATA DATA SA P4A6 9 15 SB KEY SB KEY R1A6 14 SC SC 1K 13 SD 26 SD CLK0R2A6 27 12 SE DP R3A6200 VCC RC SE VCC 11 SF 1.5K SF R4A6 28 10 SG SA RESET SG 200 C1A6 R5A6 15P C2A6 7279A SB 200 U1A6 0.1uF SC R6A6 200 R7A6 JD1A6 JD2A6 SD 200 G7A6 AA6 1 8 A6 SE R8A6 BA6 G62 7 200 A6 CA6 G53 6 R9A6 A6 A6SF D G45 4 200 A6 6 EAG35 4 A6 SG R10A6 FA6 G26 3 A6 A6200 G G17 2 A6 A6H G081VDD VDD NC Vss NC

KEY15A6 F KEY14A6 E KEY13A6 D KEY12A6 C KEY11A6 B KEY10A6 A KEY9A6 9 KEY8A6 8 R11A6 2K KEY7A6 7 KEY6A6 KEY5A6 KEY4A6 KEY3A6 KEY2A6 2 KEY1A6 1 KEY0A6 0 4 3 6 5 R12A6 2K HA AA BA6 CA6 DA EA

FA6 GA6

20

一、实验目的

实验十四 双色点阵显示实验

1.了解 8×8 矩阵 LED 显示的基本原理和功能 2.掌握 8×8 矩阵 LED 和单片机的硬件接口和软件设计方法 二、实验内容

本实验使用双色共阳极 LED 点阵,其内部结构如下图所示:

本实验系统使用 74HC595 芯片,使串行输出转换成并行输出,驱动矩阵 LED。 本实验示例程序显示红绿黄显示‘PIC’。 三、实验内容及步骤

1.最小系统中插上 PIC 核心板,双色点阵的 JT7 短路帽打在 VCC 处,MCU 最小系统的 P20、P21、P22 分别接双色点阵显示的 DIN、RCLK、SCLK。

2.接上 ICD2.5 调试器,其上的开关打在“Target Self”处,一头接 PC 机的 USB 口另一 头接 CPU 板的 JP1 下载口,打开 MPLAB IDE v7.50 软件。

3.在 MPLAB IDE v7.50 从“Project”->open 中打开 LED_16 文件夹下的“LED_16.MCP” 工程文件。

4.编译下载、运行程序,双色点阵红绿黄显示‘PIC’。 四、源程序(见光盘) 五、电路图

21

1 1 1 1 1 1 1 21 20 19 18 17 16 15 14 13

21

20 19 18 17 16 15 14 13

Q1C3 2 9013 HA1 1 H_A8 3

H_A1 HA2 H_A2 HA3 H_A3 HA4 H_A4 HA5 H_A5 HA6 H_A6 HA7

3 2 1 JT1C3 VCC VCC_D DIS1C3 DIS2C3 G1_L1 G1_L2 G1_L3 G1_L4 G1_L5 G1_L6 G1_L7 G1_L8 15 1 2 3 4 5 6 7 15 1 2 3 4 5 6 7 15 1 2 3 4 5 6 7 15 1 2 3 4 5 6 7

C1C3 0.1uF R1_L1 R1_L2 R1_L3 R1_L4 R1_L5 R1_L6 R1_L7 R1_L8

O0 O1 O2 O3 O4 O5 O6 O7 Q7 O0 O1 O2 O3 O4 O5 O6 O7 Q7 O0 O1 O2 O3 O4 O5 O6 O7 Q7 O0 O1 O2 O3 O4 O5 O6 O7 Q7 U1C3 9 U2C3 9 74HC595 SRCLK SRCLR RCLK E VCC GND SER U3C3 G2_L1 G2_L2 G2_L3 G2_L4 G2_L5 G2_L6 G2_L7 G2_L8 R2_L1 R2_L2 R2_L3 R2_L4 R2_L5 R2_L6 R2_L7 R2_L8 9 74HC595 SRCLK SRCLR RCLK E VCC GND SER U4C3 H_A7 HA8

H_A8 H_A7 H_A6 H_A5 G1_L1 G1_L2 G1_L3 G1_L4 G1_L5 G1_L6 G1_L7 G1_L8 1 23456789101112

H_ATB8 H_ATB1 H_ATB7 H_ATB2 H_ATB6 H_ATB3 H_ATB5 H_ATB4 G_LTR1 R_LTR1 G_LTR2 R_LTR2 G_LTR3 R_LTR3 G_LTR4 R_LTR4 G_LTR5 R_LTR5 G_LTR6 R_LTR6 G_LTR7 R_LTR7 G_LTR8 R_LTR8 23

22

24

H_A1

H_A2H_A3H_A4R1_L1R1_L2R1_L3R1_L4R1_L5R1_L6R1_L7R1_L8

H_A8

H_A7 H_A6 H_A5 G2_L1 G2_L2 G2_L3 G2_L4 G2_L5 G2_L6 G2_L7 G2_L8 1 23456789101112

H_ATB8 H_ATB1 H_ATB7 H_ATB2 H_ATB6 H_ATB3 H_ATB5 H_ATB4 G_LTR1 R_LTR1 G_LTR2 R_LTR2 G_LTR3 R_LTR3 G_LTR4 R_LTR4 G_LTR5 R_LTR5 G_LTR6 R_LTR6 G_LTR7 R_LTR7 G_LTR8 R_LTR8 23

22

24

H_A1

H_A2H_A3H_A4R2_L1R2_L2R2_L3R2_L4R2_L5R2_L6R2_L7R2_L8

VCC_D Q2C32 9013 3 Q3C32 9013 3 Q4C3 2 Q5C3 2 Q6C3 Q7C3 2 2 Q8C32 9013 3 9013 3 9013 3 9013 3 9013 3 9 SRCLK SRCLR SRCLK SRCLR RCLK E RCLK E VCC GND VCC GND SER SER 12 13 16 8 14 11 10 12 13 16 8 14 11 10 12 13 16 8 14 11 10 12 13 14

DIN SCLK P1C3 SER_D P2C3 SCLK_D 11 10 16 8 22 U5C3 15 O01 O1 2 O23 O34 O45 O56 O67 O7 9 Q7 74HC595 14SER 74HC595 74HC595 HA1 HA2 HA3 HA4 HA5 HA6 HA7 HA8 SRCLK 11 10SRCLR RCLK 12 E 13 16VCC 8GND VCC_D

VCC_D

VCC_D VCC_D VCC_D

VCC_D VCC_D VCC_D VCC_D VCC_D RCLK P3C3 RCLK_D

一、实验目的

实验十五 内部 EEPROM 读写实验

1.掌握 PIC 内部 EEPROM 的读写方法

2.熟悉内部 EEPROM 的功能 二、实验说明

EEPR0M 是电可擦除存储器,PIC16F877A 有 256 个字节的容量,其存储的数据掉电之后 不会丢失,因此可以备份一些数据,但是其擦写的次数是有限的,不可无限次的使用。本实战 的目的是熟悉 PIC16F877A 内部 EEPROM 的读写方法,对于地址为 00H-3FH 的 64 个 EEPROM 数据存储单元,分别将数据 0-63 依次烧写进去,然后再循环读出,显示在 8 只 LED 发光二极 管上。

三、实验内容及步骤

实验程序是将对于地址为 00H-3FH 的 64 个 EEPROM 数据存储单元,分别将数据 0-63 依 次烧写进去,然后地址先递减的读取一次数据,再将地址递增读取一次,如此的循环读取。 1.MCU 模块的拨码开关 S2 的第 1 位拨到数字端其他拨到 ON 的位置,最小系统中插上 PIC 核心板,将 MCU 最小系统的 P2 接到八位逻辑电平显示的 JD3 口

2.接上 ICD2.5 调试器,其上的开关打在“Target Self”处,一头接 PC 机的 USB 口另一 头接 CPU 板的 JP1 下载口,打开 MPLAB IDE v7.50 软件。

3.在 MPLAB IDE v7.50 从“Project”->open 中打开 EEPROM 文件夹下的“EEPROM.MCP” 工程文件。

4.编译下载、运行程序,观察八位逻辑电平显示,读取的内 EEPROM 先从 3F 递减显示, 然后递增显示,如此循环显示。 四、源程序(见光盘)

23

一、实验目的

实验十六 I2C总线实验

1.了解I2C总线的标准及使用

2.掌握用I2C总线方式读写串行EEPROM 24C02 的方法

3.熟悉I2C通信的时序,会用软件模拟I2C通信 二、实验说明

1.串行 EEPROM(24C02)接口方法 在新一代单片机中,无论总线型还是非总线型单片机,为了简化系统结构,提高系统的可

靠性,都推出了芯片间的串行数据传输技术,设置了芯片间的串行传输接口或串行总线。串行 总线扩展接线灵活,极易形成用户的模块化结构,同时将大大简化其系统结构。串行器件不仅 占用很少的资源和 I/O 线,而且体积大大缩小,同时还具有工作电压宽,抗干扰能力强,功耗 低,资料不宜丢失和支持在线编程等特点。目前,各式各样的串行接口器件层出不穷,如:串 行 EEPROM,串行 ADC/DAC,串行时钟芯片,串行数字电位器,串行微处理器监控芯片,串 行温度传感器等等。

串行 EEPROM 是在各种串行器件应用中使用较频繁的器件,和并行 EEPROM 相比,串行 EEPROM 的资料传送的速度较低,但是其体积较小,容量小,所含的引脚也较少。所以,它特 别适合于需要存放非挥发资料,要求速度不高,引脚少的单片机的应用。

2.串行 EEPROM 及其工作原理

串行 EEPROM 中,较为典型的有 ATMEL 公司的 AT24CXX 系列以及该公司生产的 AT93CXX 系列,较为著名的半导体厂家,包括 Microchip,国家半导体厂家等,都有 AT93CXX 系列 EEPROM 产品。

AT24CXX 系列的串行电可改写及可编程只读存储器 EEPROM 有 10 种型号,其中典型的 型号有 AT24C01A/02/04/08/16 等 5 种,它们的存储容量分别是 1024/2048/4096/8192/16384 位, 也就是 128/256/512/1 024/2048 字节。这个系列一般用于低电压,低功耗的工业和商业用途,并 且可以组成优化的系统。信息存取采用 2 线串行接口。这里我们就 24C02 的结构特点,其它系 列比较类似。

3.结构原理及引脚

AT24C02 有地址线 A0~A2,串行资料引脚 SDA,串行时钟输入引脚 SCL,写保护引脚 WP 等引脚。很明显,其引脚较少,对组成的应用系统可以减少布线,提高可靠性。

各引脚的功能和意义如下: ① VCC 引脚,电源+5V。 ② GND 引脚,地线。

SCL 引脚,串行时钟输入端。在时钟的正跳沿即上升沿时把资 ③

料写入 EEPROM;在时钟的负跳沿即下降沿时把资料从 EEPROM 中读 出来。

④ SDA 引脚,串行资料 I/O 端,用于输入和输出串行资料。这个引脚是漏极开路的埠,

24

故可以组成“线或”结构。

⑤ A0,A1,A2 引脚,是芯片地址引脚。在型号不同时意义有些不同,但都要接固定电平。 ⑥ WP 引脚,写保护端。这个端提供了硬件数据保护。当把 WP 接地时,允许芯片执行一 般读写操作;当把 WP 接 VCC 时,则对芯片实施写保护。

4.AT24CXX 系列应用注意事项

AT24CXX 系列型号:AT24CXX 系列 EEPROM 有 13 种型号。它们的容量不同,执行页历 写时的页历定义不同,进行读写时的地址位数也不同,器件地址不同。有关主要指针在应用中 要加以区别和注意。 三、实验内容与步骤

16F877A软件模拟I2C通信读写 24C02 程序,该实验验功能是单片机复位一次,自动从 24C02 中读取数据到LED显示,然后对值加 1 再写入 24C02,最终PC口LED显示中的数据就是开机的 次数,具有一定的实用意义。

1.JT1 打在RET2 处,最小系统中插上PIC核心板,MCU最小系统的P34(RD4)口、P35(RD5) 分别接I2C接口的SCL口、SDA口 2.最小系统的 P2 口接八位逻辑电平显示的 JD3 口。

3.接上 ICD2.5 调试器,其上的开关打在“Target Self”处,一头接 PC 机的 USB 口另一 头接 CPU 板的 JP1 下载口,打开 MPLAB IDE v7.50 软件。 4.在 MPLAB IDE v7.50 从“Project”->open 中打开 24C02 文件夹下的“24C02”工程文 件。

5..在“Programmer”->select programmer 中选择“MPLAB ICD2”,连接成功后进入了 ICD2.5 的烧写界面(信息窗口有提示信息), 可以点“ ”进行编译,再点“ ”,然后点“ ”

显示将在原来显示(开机的次数)的基础上 下载成功后,JT1 打在 RET1 处按下复位键则 LED

加一,来计算开机的次数,到 9 则从新计开机的次数。(由于要用到复位键,所以用烧写模式) 四、源程序(见光盘) 五、电路图

U1C1 1 A0 VDD 2 A1 3 A2 7 4 WP SDA VSS SCL 24C02 VCC 8 VCC C1C1 0.1uF

5 6 SCL P2C1 P1C1 SDA

25

一、实验目的

实验十七 内部 AD 转换实验

1.熟悉 PIC 内部 AD 转换结构

2.掌握 PIC 内部 AD 转换的工作原理 二、实验说明

PIC16F877A 有 8 路 10 位分辩率的摸/数转换通道,用于对外部的模拟量进行采样,与 ADC 专用的控制寄存器:ADC 控制寄存器 0(ADCCON0)、ADC 控制寄存器 1(ADCON1)、ADC 结果高位寄存器(ADRESH)、ADC 结果低位寄存器(ADRESL)

1.ADC 控制寄存器 ADCON0(地址为 1FH)

R/W-0 R/W-0 R/W-0 CHS2 R/W-0 CHS1 R/W-0 CHS0 ADCS1 ADCS0 U-0 GO/DONE — R/W-0 R/W-0 ADON bit 7 bit 0 该寄存器用来控制 ADC 的操作:时钟选择、通道选择、启动等,是一个 7 位可读/写寄存 器。各位定义如下:

z bit7~bit6 ADCS1~ADCS0:A/D 转换时时钟选择位。 ? 00:选择系统时钟,频率为 fosc/2 ? 01:选择系统时钟,频率为 fosc/8 ? 10:选择系统时钟,频率为 fosc/32

? 11:选择内部阻容(RC)振荡器,频率为 fRC z bit5~bit3 CHS2~CHS0:模拟输入通道选择位

? 000:选择通道 0(RA0/AN0) ? 001:选择通道 1(RA1/AN1) ? 010:选择通道 2(RA2/AN2) ? 011:选择通道 3(RA3/AN3) ? 100:选择通道 4(RA4/AN4) ? 101:选择通道 5(RA5/AN5) ? 110:选择通道 6(RA6/AN6) ? 111:选择通道 7(RA7/AN7) 注意:通道 AN5~AN7 只有 40 脚封装的型号才具备 z bit2 GO/DONE:A/D 转换状态志位。 ? 1:A/D 转换正在进行(将该位置 1,可以启动 A/D 转换)

? 0:A/D 转换已完成(A/D 转换完成时,该位由硬件自动清零)或未进行 A/D 转换 z bit1 未使用位,读作“0”

z bit0 ADON:A/D 转换器开关位 ? 1:启用 A/D 转换器,令其进入工作状态 ? 0:关闭 A/D 转换器,令其退出工作状态,可以不消耗电流

26

2.ADC 控制寄存器 ADCON1(地址为 9FH)

U-0 ADFM U-0 — R/W-0 — U-0 — R/W-0 PCFG3 R/W-0 PCFG2 R/W-0 PCFG1 R/W-0 PCFG0 bit 0

bit 7

z bit7 ADFM:A/D 转换结果格式选择(A/D Result Format Select bit) ? 1:A/D 转换结果右对齐,ADRESH 的高六位为 0 ? 0:A/D 转换结果左对齐,ADRESL 的低六位为 0 z bit6~bit4 未使用位,读作“0”

z bit3~bit0 PCFG3~PCFG0:A/D 端口配置控制位。 三、实验内容及步骤

本实验把外部 0—5V 的模拟信号转换为 10 位的数字量 000H-3FFH,而我们对 ADC 控制寄 存器 1(ADCON1)设置为转换结果左对齐,只选 1 个 A/D 通道 RA0/AN0,取 ADRESH 存放 高八位,ADRESL 用来存放 AD 转换结果的低 2 位,寄存器的低 6 位读作“0”,实验取了转 换结果的高 8 位送 LED 显示。

1.最小系统中插上 PIC 核心板,MCU 的 P2(PC 口)接八位逻辑电平显示的 JD3,P10(RA0 口)接 RW1 的 0~5V 口(或者 RW1 的 0~5V 口)。

2.接上 ICD2.5 调试器,其上的开关打在“Target Self”处,一头接 PC 机的 USB 口另一 头接 CPU 板的 JP1 下载口,打开 MPLAB IDE v7.50 软件。 3.在 MPLAB IDE v7.50 从“Project”->open 中打开 AD 文件夹下的“AD.MCP”工程文 件。

4.编译下载、运行程序,旋转 RW1(或 RW2)改变输入的模拟量的值,八位逻辑电平显 示相应的数据量(二进制 00—FF)。 四、源程序(见光盘) 五、电路图

27

实验十八 外部串行 AD 转换实验

一、实验目的

1.掌握单片机和TLC549硬件联接及软件编程

2.熟悉八位串行AD转换器TLC549的性能及转换过程 二、实验说明

TLC549是一种采用8位逐次逼近式工作的A/D转换器。内部包含系统时钟、采样和保持、8 位A/D转换器、数据寄存器以及控制逻辑电路。TLC549每25uS重复一次“输入—转换—输出”。 器件有两个控制输入:I/O CLOCK和片选(CS)。

内部系统时钟和I/O CLOCK可独立使用。应用电路的设计只需利用I/O时钟启动转换或读出 转换结果。当CS为高电平时,DATA OUT处于高阻态且I/O时钟被禁止。

当CS变为低电平时,前次转换结果的最高有效位(MSB)开始出现在DATA OUT端。在接 下来的7个I/O CLOCK周期的下降沿输出前次转换结果的后7位,至此8位数据已经输出。然后再 将第8个时钟周期加至I/O CLOCK,此时钟周期的下跳沿变使芯片进行下一轮的AD转换。在第8 个I/O CLOCK周期之后,CS必须变为高电平,并且保持高电平直至转换结束为止(>17uS), 否则CS的有效高电平至低电平的转换将引起复位(其它详细资料看芯片PDF)。 三、实验内容及步骤

本实验把 0~5V 的模拟电压通过串行 AD 转换为数字量并送 8LED 显示。 1.最小系统中插上 PIC 核心板,P20,P21,P22 分别接 AD 转换的 CS_549,DATA,CLK。 2.可调电源的 0~5V 接 AD 转换的 AIN 口,MCU 的 P3 口接八位逻辑电平显示的 JD3 口。 3.接上 ICD2.5 调试器,其上的开关打在“Target Self”处,一头接 PC 机的 USB 口另一 头接 CPU 板的 JP1 下载口,打开 MPLAB IDE v7.50 软件。

4.在 MPLAB IDE v7.50 从“Project”->open 中打开 AD_549 文件夹下的“AD_549.MCS” 工程文件。

5.编译下载、运行程序,旋转 RW1(或 RW2)改变输入的模拟量的值,八位逻辑电平显 示相应的数据量(二进制 00—FF)。 四、源程序(见光盘) 五、电路图

VCC

1 AIN P1B2 2 3 4 U1B2 Vref+ VCC AIN I/O CLK Vref- DATA GND CS TLC549 VCC

8 7 R1B2 6 R2B2 5R3B2 VCC 100 100 100 P2B2 P3B2 P4B2 CLK DATACS_549 C1B2 0.1uF

28

一、实验目的

实验十九 外部串行 DA 转换实验

1.掌握 LTC1446 12 位串行 D/A 转换芯片的工作方法

2.掌握 LTC1446 12 位串行 D/A 转换芯片编程方法和调试方法 二、实验说明

LTC1446是一种采用12位逐次逼近式工作的A/D转换器。内部包含系统时钟、采样和保持、 12位A/D转换器、数据寄存器以及控制逻辑电路。LTC1446每25uS重复一次“输入——转换— —输出”。器件有两个控制输入:DIN CLK和片选(CS)。 内部系统时钟和DIN、CLK可独

立使用。应用电路的设计只需利用时钟启动转换或读出转

换结果。当CS为高电平时, Dout处于高阻态且DIN时钟被禁止。 当CS变为低电平时,前次转

换结果的最高有效位(MSB)开始出现在Dout端。(其它详细 资料看芯片说明)。

1.LTC1446 的内部管脚图

2.LTC1446 时序图

三、实验内容及步骤

29

使用 LTC1446 实现单片机数模转换,输出方波。 1.最小系统中插上 PIC 核心板,P20,P21,P22 分别接 DA 转换的 CLK、CS—1446、DIN。 2.OUT 接示波器的输入端,示波器的 GND 接实验箱的 GND 3.接上 ICD2.5 调试器,其上的开关打在“Target Self”处,一头接 PC 机的 USB 口另一 头接 CPU 板的 JP1 下载口,打开 MPLAB IDE v7.50 软件。

4.在 MPLAB IDE v7.50 从“Project”->open 中打开 DA_1446 文件夹下的“DA_1446.MCP” 工程文件。

5.编译下载、运行程序,OUT 输出一方波信号。 四、源程序(见光盘) 五、电路图

CLK P1B1 DIN P2B1 CS_1446 P3B1 R1B1 R2B1 R3B1 100 100 100 U1B1 1 2 3 4 8 7 6 5 VCC

LTC1446

VCC 2 4 1 5 C1B1

0.1uF -12V 7 Vout B CLK Din Vcc CS/LD GND Dout Vout A +12V

741 U2B1 6 3 P4B1 OUT

30

一、实验目的

实验二十 字符型液晶显示实验

1.了解字符型液晶显示器的工作原理 2.了解字符型液晶显示器控制方式 二、实验说明

字符型液晶显示器,是专门用于显示、数字、图形符号及少量自定义符号的显示器。由于 LCD液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,自问世以来就得 到了广泛应用。字符型液晶显示器模块在国际上已经规范化,在市场上内核为HD44780 的较常 见。TC1602A是一种 16 字×2 行的字符型液晶显示模块,其显示面积为 64.5×13.8mm2。本实 验以TC1602A型LCD为例介绍其使用方法。

1.模块特点 z 可与 8 位或 4 位微处理器直接; z 内藏式字符发生器 ROM 可提供 160 种工业标准字符,包括全部大小写字母、阿拉伯数 字及日文片假名,以及 32 个特殊字符或符号的显示; z 内藏 RAM 可根据用户的需要,由用户自 z 定义字符或符号 z +5V 单电源供电

z 低功耗(10mW) 2.引脚及其功能

TC1602A 共有 16 个引脚,其引脚及功能如表 19-1 所列。

表 19-1 引脚功能

输入/输出 引脚 1 2 3 符号 Vss Vdd V1~V5 功能说明 电源地:0V 电源:5V LCD 驱动电压:0~5V 输入 输入 输入 输入/输出 输入/输出 寄存器选择:“0”为指令寄存器,“1”为数 据寄存器 “1”为读操作;“0”为写操作 使能信号:E=1 时,使能;E=0 时,禁能 数据总线的低 4 位,与 4 位 MCU 连接时不用 数据总线的高 4 位 电源背光 4 5 6 7~10 11 ~14 15~16 RS R/W E D0~D3 D4~D7 LED+/LED- 3.TC1602A 的内部结构 TC1602A 的内部结构主要由 DDRAM、CGROM、IR、DR、BF、AC 等大规模集成电路组 成。

31

1)DDRAM 为数据显示用的 RAM(Data DisplayRAM,简称 DDRAM),用以存放要 LCD 显示的数据,只要标准的 ASCII 码放入 DDRAM,内部控制线路就会自动将数据传送到显示器 上,并显示出该 ASCII 码对应的字符。

2)CGROM 为字符产生器 ROM(CharacterGenerator RAM,简称 CGRAM),可供使用者 存储特殊造型的造型码,CGRAM 最多可存 8 个造型。

3)IR 为指令寄存器(Instruction Register,简称 IR),负责存储 MCU 要写给的 LCD 的指 令码,当 RS 及 R/W 引脚信号为 0 且 Enable 引脚信号由 1 变为 0 时,D0~D7 引脚上的数据便 会存入到 IR 寄存器中。

4)DR 为数据寄存器(Data Register,简称 DR),它们负责存储微机要写到 CGRAM 或 DDRAM 的数据,或者存储 MCU 要从 CGRAM 或 DDRAM 读出的数据。因此,可将 DR 视为 一个数据缓冲区,当 RS 及 R/W 引脚信号为 1 且 Enable 引脚信号由 1 变为 0 时,读取数据;当 RS 引脚信号为 1,R/W 引脚信号为 0 且 Enable 引脚信号由 1 变为 0 时,存入数据。

5)BF 为忙碌信号(Busy Flag,简称 BF),当 BF 为 1 时,不接收微机送来的数据或指令; 当 BR 为 0 时,接收外部数据或指令,所以,在写数据或指令到 LCD 之前,必须查看 BF 是否 为 0。

6)AC 为地址计数器(Address Counter,简称 AC),负责计数写入/读出 CGRAM 或 DDRAM 的数据地址,AC 依照 MCU 对 LCD 的设置值而自动修改它本身的内容。

TC1602A 可分为 2 行共显示 32 个字符,每行显示 16 个字符。

内含 HD44780 控制器的液晶显示模块的 TC1602A 有两个寄存器:一个是命令寄存器,另 一个数据寄存器。所有对 TC1602A 的操作必须先写命令字,再写数据。内含 HD44780 控制器 的指令系统表如表 19-2 所列,各指令功能如下。

表 19-2 指令表

控制信号 指令代码 功能 RS 0 0 0 0 0 0 0 RW 0 0 0 0 0 0 0 0 1 0 1 D7 0 0 0 0 0 0 0 1 BF D6 0 0 0 0 0 0 1 D5 0 0 0 0 0 1 D4 0 0 0 0 1 DL D3 0 0 0 1 N ADD AC 写数据 读数据 D2 0 0 1 D F D1 0 1 I/D C * * D0 1 * S B * * 清屏 软复位 内部方式设置 显示开关控制 位移控制 系统方式设置 CGRAM 地址设置 显示地址设置 忙状态检查 MCU-LCD LCD-MCU S/C R/L ACG 0 0 1 1 32

表 19-3 CGROM 和 CGRAM 中字符代码与字符图形对应关系

高位 低位 ××××0000 0000 CGRA M(1) (2) (3) (4) (5) (6) (7) (8) (1) (2) (3) (4) (5) (6) (7) (8) 0010 0011 0100 0101 0110 0111 1010 1011 1100 1101 1110 1111 α 0 P \\ p 一 夕 三 ? P ××××0001 ××××0010 ××××0011 ××××0100 ××××0101 ××××0110 ××××0111 ××××1000 ××××1001 ××××1010 ××××1011 ××××1100 ××××1101 ××××1110 ××××1111 ! 1 2 3 4 5 6 7 8 9 : : A B C D E F G H I J K L M N O Q R S T U V W X Y Z [ ¥ ] a b c d e f g h i j k l m n o q r s t u v w x y z { | } ← 口 ア イ ウ チ 川 ム メ モ q θ # β ト ナ ニ ヌ ネ ノ リ ヒ フ ヘ ホ マ c μ∞ Ω 0 ∑ π $ % & \\ ロ テ ア イ ヴ エ オ セ ユ ヨ ッ エ オ カ キ ケ ゲ コ サ シ ス セ ソ セ ユ ヨ ラ リ ル レ ロ ワ ソ ハ ロ B P g ∫ -1 j x

本文来源:https://www.bwwdw.com/article/cltf.html

Top