单片机应用指导书_第1页
单片机应用指导书_第2页
单片机应用指导书_第3页
单片机应用指导书_第4页
单片机应用指导书_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机原理及应用单片机原理及应用 实实 验验 指指 导导 书书 目录 实验一实验一 指示灯指示灯 开关控制器开关控制器 1 实验二实验二 1 1 流水灯实验流水灯实验 3 实验三实验三 8 8 16 1616 16 LEDLED 点阵显示实验点阵显示实验 6 实验四实验四 2 2 中断扫描法阵列式键盘实验中断扫描法阵列式键盘实验 8 实验五实验五 查询式键盘实验查询式键盘实验 11 实验六实验六 3 3 定时器输出定时器输出 PWMPWM 实验实验 13 实验七实验七 电子琴模拟实验电子琴模拟实验 15 实验八实验八 直流电动机控制实验直流电动机控制实验 20 实验九实验九 5 5 RS232RS232 串口通信实验串口通信实验 21 实验十实验十 6 6 DAC0832DAC0832 并行并行 DADA 转换实验转换实验 23 实验十一实验十一 7 7 ADC0809ADC0809 并行并行 ADAD 转换实验转换实验 26 实验十二实验十二 SRAMSRAM 外部数据存储器扩展实验外部数据存储器扩展实验 28 实验十三实验十三 I I2 2C C 总线实验总线实验 30 实验十四实验十四 电子万年历时钟实验电子万年历时钟实验 35 实验十五实验十五 温度传感器温度控制实验温度传感器温度控制实验 36 单片机原理及应用实验指导书 0 实验一实验一 指示灯指示灯 开关控制器开关控制器 一 实验目的一 实验目的 1 熟悉 Proteus 仿真软件 掌握单片机原理图的绘图方法 2 熟悉使用 Keil 编译软件 熟悉简单汇编语言及 C 语言的编程与调试方法 二 实验说明二 实验说明 输入电路是在 P1 口外接 8 只开关 输出电路是在 P2 口外接 8 只发光二极管组成 此 外还包括时钟电路和复位电路 程序启动后 实现按键对应发光二极管一对一控制 三 实验内容及步骤三 实验内容及步骤 1 熟悉 Proteus 仿真软件 了解软件的结构组成与功能 2 熟悉使用 Keil 编译软件 了解软件的结构组成与功能 3 理解 Proteus 与 Keil 联合的仿真原理 4 理解单片机程序控制原理 实现指示灯 开关控制器的预期功能 5 在 ISIS 中绘制电路原理图 6 打开 Keil 仿真软件 首先建立本实验的项目文件 新建文件录入程序 进行编译 直到编译无误 7 将 Keil 编译生成的 HEX 文件下载到 Proteus 中 51 单片机 运行观察仿真结果 检 查程序与电路的正确性 四 流程图及源程序四 流程图及源程序 1 源程序清单 汇编 ORG 0000H START MOV A 90H MOV 0A0H A SJMP START END C 语言 include main unsigned char LED 0 while 1 LED P1 P2 LED 2 流程图 开 始 读 P1 口 状 态 P1 口 状 态 送 单片机原理及应用实验指导书 1 五 思考题五 思考题 1 分析 IO 口工作原理 2 分析 P2 口什么状态时发光二极管会点亮 六 实验电路图六 实验电路图 单片机原理及应用实验指导书 2 实验二实验二 流水灯实流水灯实验验 一 实验目的一 实验目的 1 学习 P1 口的使用方法 2 学习延时子程序的编写和使用 二 实验说明二 实验说明 P1 口是准双向口 它作为输出口时与一般的双向口使用方法相同 由准双向口结构可 知当 P1 口用作输入口时 必须先对口的锁存器写 1 若不先对它写 1 读入的数据是 不正确的 三 实验内容及步骤三 实验内容及步骤 实验 一 用 P1 口做输出口 接八位逻辑电平显示 程序功能使发光二极管从右到左轮流循环点 亮 1 使用单片机最小应用系统 关闭该模块电源 用扁平数据线连接单片机 P1 口与八 位逻辑电平显示模块 JD10 2 用串行数据通信线连接计算机与仿真器 把仿真器插到模块的锁紧插座中 请注意 仿真器的方向 缺口朝上 3 打开 Keil 仿真软件 首先建立本实验的项目文件 接着添加 P1 口输出 ASM 源 程序 进行编译 直到编译无误 4 进行软件设置 选择硬件仿真 选择串行口 设置波特率为 38400 5 打开模块电源和总电源 点击开始调试按钮 点击 RUN 按钮运行程序 观察发光二 极管显示情况 发光二极管单只从右到左轮流循环点亮 实验 二 用 P1 0 P1 1 作输入接两个拨断开关 P1 2 P1 3 作输出接两个发光二极管 程序 读取开关状态 并在发光二极管上显示出来 1 用导线分别连接单片机最小应用系统的 P1 0 P1 1 到两个拨断开关 P1 2 P1 3 到两个发光二极管 2 打开 P1 B ASM 源程序 编译无误后 全速运行程序 拨动拨断开关 观察发光 二极管的亮灭情况 向上拨为点亮 向下拨为熄灭 3 也可以把源程序编译成可执行文件 把可执行文件用 ISP 烧录器烧录到 89S52 89S51 芯片中运行 四 流程图及源程序四 流程图及源程序 单片机原理及应用实验指导书 3 2 2 源程序 源程序 一 实验一 一 实验一 ORG 0 LOOP MOV A 0FEH MOV R2 8 OUTPUT MOV P1 A RL A ACALL DELAY DJNZ R2 OUTPUT LJMP LOOP DELAY MOV R6 0 MOV R7 0 DELAYLOOP 延时程序 DJNZ R6 DELAYLOOP DJNZ R7 DELAYLOOP RET END 二 实验二 二 实验二 KEYLEFT BIT P1 0 定义 KEYRIGHT BIT P1 1 LEDLEFT BIT P1 2 LEDRIGHT BIT P1 3 ORG 0 SETB KEYLEFT 欲读先置一 SETB KEYRIGHT LOOP MOV C KEYLEFT 开始 设置初始值 设移位次数 数据输出 左一位 延时 移位次数完成 是 否 A P1 口循环点灯程序框图 开始 P1 0 P1 1 置一 读入 P1 0 口值 将读入的值输出到 P1 2 读入 P1 1 口值 将读入的值输出到 P1 3 B P1 口输入输出程序框图 单片机原理及应用实验指导书 4 1K 100 33pF 33pF 12MHz RESET EA VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE P 30 TXD 11 RXD 10 AT89C51 10uF D0 3 Q0 2 D1 4 Q1 5 D2 7 Q2 6 D3 8 Q3 9 D4 13 Q4 12 D5 14 Q5 15 D6 17 Q6 16 D7 18 Q7 19 OE 1 LE 11 74LS373 270 8 VCC VCC VCC MOV LEDLEFT C MOV C KEYRIGHT MOV LEDRIGHT C LJMP LOOP END 五 思考题五 思考题 1 对于本实验延时子程序 Delay MOV R6 0 MOV R7 0 DelayLoop DJNZ R6 DelayLoop DJNZ R7 DelayLoop RET 本模块使用 12MHz 晶振 粗略计算此程序的执行时间为多少 六 实验电路图六 实验电路图 单片机原理及应用实验指导书 5 实验三实验三 16 1616 16 LEDLED 点阵显示实验点阵显示实验 一 实验目的一 实验目的 1 了解 16 16 矩阵 LED 显示的基本原理和功能 2 掌握 16 16 矩阵 LED 和单片机的硬件接口和软件设计方法 二 实验说明二 实验说明 汉字显示屏广泛应用与汽车报站器 广告屏等 实验介绍一种实用的汉字显示屏的制 作 考虑到电路元件的易购性 采用了 16 16 的点阵模块 汉字显示的原理我们以 UCDOS 中文宋体字库为例 每一个字由 16 行 16 列的点阵组成显示 即国标汉字库中的每一个字 均由 256 点阵来表示 我们可以把每一个点理解为一个像素 而把每一个字的字形理解为 一幅图像 所以在这个汉字屏上不仅可以显示汉字 也可以显示在 256 像素范围内的任何 图形 我们以显示汉字 大 为例 来说明其扫描原理 在 UCDOS 中文宋体字库中 每一个 字由 16 行 16 列的点阵组成显示 如果用 8 位的 AT89C51 单片机控制 由于单片机的总线 为 8 位 一个字需要拆分为 2 个部分 一般我们把它拆分为上部和下部 上部由 8 16 点阵 组成 下部也由 8 16 点阵组成 在本例中单片机首先显示的是左上角的第一列的上半部 分 即第 0 列的 p00 p07 口 方向为 p00 到 p07 显示汉字 大 时 p05 点亮 由上往 下排列 为 p0 0 灭 p0 1 灭 p0 2 灭 p0 3 灭 p0 4 灭 p0 5 亮 p0 6 灭 p0 7 灭 即二进制 00000100 转换为 16 进制为 04h 上半部第一列完成后 继续扫描下半部的第 一列 为了接线的方便 我们仍设计成由上往下扫描 即从 p27 向 p20 方向扫描 从上图 可以看到 这一列全部为不亮 即为 00000000 16 进制则为 00h 然后单片机转向上半 部第二列 仍为 p05 点亮 为 00000100 即 16 进制 04h 这一列完成后继续进行下半部分 的扫描 p21 点亮 为二进制 00000010 即 16 进制 02h 依照这个方法 继续进行下面的 扫描 一共扫描 32 个 8 位 可以得出汉字 大 三 实验内容及步骤三 实验内容及步骤 单片机原理及应用实验指导书 6 1 单片机最小应用系统的 P0 P3 口分别接 16 16 点阵单元的 JD15 JD14 最小系统 的 P1 0 P1 1 P1 2 P1 3 分别接点阵模块的 A B C D J21 的两个短路帽打在 VCC 处 2 用串行数据通信线连接计算机与仿真器 把仿真器插到模块的锁紧插座中 请注意 仿真器的方向 缺口朝上 3 打开 Keil uVision2 仿真软件 首先建立本实验的项目文件 接着添加 1616 点阵 ASM 源程序 进行编译 直到编译无误 4 全速运行程序 点阵显示轮流显示八个汉字 5 也可以把源程序编译成可执行文件 把可执行文件用 ISP 烧录器烧录到 89S52 89S51 芯片中运行 四 源程序四 源程序 五 原理图五 原理图 单片机原理及应用实验指导书 7 实验四实验四 中断扫描法阵列式键盘实验中断扫描法阵列式键盘实验 一 实验目的一 实验目的 1 掌握行列式键盘的工作原理 2 掌握中断编程方法 二 实验说明二 实验说明 显示方式采用 P2 口外接七段共阴极数码管显示 行列式键盘的行列输入通过 P1 口实 现 其中 P1 0 P1 3 行为线 P1 4 P1 7 为列线 通过 74HC4002 四或非门实现中断请求 中断采用 INT0 电平触发方式 键盘扫描码通过数码管实时显示出来 三 实验内容及步骤三 实验内容及步骤 1 在 Proteus 中绘制电路原理图 2 在 Keil 中编写 C51 程序 并使之编译通过 3 在 Proteus 中加载程序 观察仿真结果 四 源程序四 源程序 include char led mod 0 x3f 0 x06 0 x5b 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f 0 x77 0 x7c 0 x58 0 x5e 0 x79 0 x71 led 字模 char key buf 0 x11 0 x21 0 x41 0 x81 0 x12 0 x22 0 x42 0 x82 0 x14 0 x24 0 x44 0 x84 0 x18 0 x28 0 x48 0 x88 键值 define uint unsigned int define uchar unsigned char void init void key scan bit int1 flag char key 0 k 0 void main P2 0 x00 P1 0 xf0 init while 1 if int1 flag P2 led mod k int1 flag 0 void init 初始化程序 IE 0 xff IP 0 x04 外中断 1 为高中断优先级 单片机原理及应用实验指导书 8 TCON 0 x05 int1 flag 0 P1 0 xf0 P1 端开始初始化为低四位全为 1 高四位 全为 1 void key scan interrupt 2 中断程序 uint t char i uchar keycode scancode flag 0 xff int1 flag 1 t 5000 while t if INT1 1 return EX1 0 关键盘中断 scancode 0 xf7 while scancode 0 xff P1 scancode 扫描码为 1111 0111 即开始扫描 P1 3 所在的行 keycode P1 读出数据 看是否是该行上某列键盘被按下 if keycode 如果被按下的键在该行中 则退出 scancode keycode 1 0 xf0 否刚继续扫描 P1 2 所在的行 以此循环直到扫 描到被按下的键 keycode keycode 方便读数 key keycode 传给全局变量 KEY P1 0 xf0 for i 0 i 16 i if key buf i key k i EX1 1 return 五 原理图五 原理图 单片机原理及应用实验指导书 9 单片机原理及应用实验指导书 10 实验五实验五 查询式键盘实验查询式键盘实验 一 实验目的一 实验目的 掌握查询式键盘的接口和编程方法 二 实验内容二 实验内容 本实验提供了 8 个按键的小键盘 如果有键按下 则相应输出为低电平 否则输出为 高电平 MCU 判断有键按下后 要有一定的延时 防止由于键盘抖动而引起误操作 编写一个程序 能读出键盘操作的编号 并在数码显示器上显示 三 实验电路三 实验电路 本实验所需电路请参见系统原理图的第一部分和独立式键盘电路 四 实验程序参考框图四 实验程序参考框图 a 主程序框图 b 键盘扫描子程序框图 五 五 实验步骤实验步骤 1 把7279阵列式键盘的J9四只短路帽打在上方 J10打在VCC处 用8P排线将JD7和八 位动态数码显示的JD11相连 JD8和JD12相连 查询式键盘的JD3和最小系统的P1口相连 2 用串行数据通信线连接计算机与仿真器 把仿真器插到模块的锁紧插座中 请注意 仿真器的方向 缺口朝上 3 打开Keil uVision2仿真软件 首先建立本实验的项目文件 接着添加 查询式键 盘 ASM 源程序 进行编译 直到编译无误 4 全速运行 键盘上按下某个键 观察数显是否与该键号一致 键号从左至右为 0 7 5 也可以把源程序编译成可执行文件 把可执行文件用 ISP 烧录器烧录到 单片机原理及应用实验指导书 11 89S52 89S51 芯片中运行 六 思考题六 思考题 1 程序如何确保每按一次键 只处理一次 七 原理图七 原理图 10k 10k 10k 10k 10k 10k 10k 10k VCC 单片机原理及应用实验指导书 12 实验六实验六 定时器输出定时器输出 PWMPWM 实验实验 一 实验目的一 实验目的 1 了解脉宽调制 PWM 的原理 2 学习用 PWM 输出模拟量 3 熟悉 51 系列单片机的延时程序 二 实验说明二 实验说明 PWM 是单片机上常用的模拟量输出方法 通过外接的转换电路 可以将脉冲的占空比 变成电压 程序中通过调整占空比来调节输出模拟电压 占空比是制脉冲中高电平与低电 平的宽度比 三 实验内容及步骤三 实验内容及步骤 P1 0 输出 PWM 信号接转换电路 转换电压值送数字电压表显示 1 选用 89C51 最小应用系统模块 用导线将 P1 0 接到 PWM 转换电压输入端 电压输 出接电压表 端 电压表 端接地 2 用串行数据通信线连接计算机与仿真器 把仿真器插到模块的锁紧插座中 请注意 仿真器的方向 缺口朝上 3 打开 Keil uVision2 仿真软件 首先建立本实验的项目文件 接着添加 PWM ASM 源程序 进行编译 直到编译无误 4 全速运行程序 观察电压表显示值 并做记录 程序默认是占空比 5 5 的 PWM 修 改源程序 LOOP 程序段两次给累加器 A 的赋值 改为 MOV A 1 MOV A 9 重新编译后运行 记录电压表显示值 这是占空比 1 9 的 PWM 同样 用户可做占空比 9 1 的 PWM 并做记录 比较三种 PWM 信号转换电压的大小 与理论值相比较 5 也可以把源程序编译成可执行文件 把可执行文件用 ISP 烧录器烧录到 89S52 89S51 芯片中运行 四 流程图及源程序四 流程图及源程序 1 源程序清单 输出 50 5 5 占空比 PWM 输出 10 1 9 占空比 PWM 输出 90 9 1 占空比 PWM ORG 20H OUTPUT BIT P1 0 LOOP CLR OUTPUT MOV A 5 CALL DELAY SERB OUTPUT MOV A 5 CALL DELAY LJMP LOOP DELAY 单片机原理及应用实验指导书 13 MOV R0 0 DLOOP DJNZ R0 DLOOP DJNZ ACC DLOOP RET END 2 流程图 五 思考题五 思考题 1 分析 PWM 转换电路的原理 2 改变延时子程序 R0 的值 观察转换电压如何改变 六 实验电路图六 实验电路图 10K 10K EA VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE P 30 TXD 11 RXD 10 AT89C51 33pF 33pF 12MHz GND 5 3 2 1 A3 2 1 A 开 始 输 出 低 电 平 低 电 平 延 时 输 出 高 电 平 高 电 平 延 时 单片机原理及应用实验指导书 14 实验七实验七 电子琴模拟实验电子琴模拟实验 一 实验目的一 实验目的 1 了解单片机系统发声原理 2 进一步熟悉定时器编程方法 二 实验说明二 实验说明 1 利用定时器 可以发出不同频率的脉冲 不同频率的脉冲经喇叭驱动电路放大滤波后 就 会发出不同的音调 2 定时器按设置的定时参数产生中断 这一次中断发出脉冲低电平 下一次反转发出脉 冲高电平 由于定时参数不同 就发出了不同频率的脉冲 本实验中当有键按下 会发出连 续脉冲 直到按键松开 才停止发音 发完后继续检测键盘 如果键还按下 继续发音 各音阶标称频率值 音 阶1234567 频率 HZ 261 1293 7329 6349 2392 0440 0493 9 三 实验内容及步骤三 实验内容及步骤 利用实验仪上提供的键盘 使数字键 1 2 3 4 5 6 7 作为电子琴按键 按下即 发出相应的音调 用 P3 2 口发出音频脉冲 驱动喇叭 1 单片机最小应用系统的 P1 口接查询式键盘 单片机 INT0 口接扬声器的 SP SP 接 GND 扬声器的 J19 打在 23 处 P1 口接查询式键盘的 JD3 口 2 用串行数据通信线连接计算机与仿真器 把仿真器插到模块的锁紧插座中 请注意 仿真器的方向 缺口朝上 3 打开 Keil uVision2 仿真软件 首先建立本实验的项目文件 接着添加 电子琴 ASM 源程序 进行编译 直到编译无误 4 全速运行程序 按查询式键盘的 1 7 键 扬声器发出高低不同的声音 5 也可以把源程序编译成可执行文件 把可执行文件用 ISP 烧录器烧录到 89S52 89S51 芯片中运行 ISP 烧录器的使用查看附录二 四 流程图及源程序四 流程图及源程序 单片机原理及应用实验指导书 15 1 流程图 2 源程序 PULSE BIT 10H 脉冲 TONEHIGH EQU 30H 高音调 TONELOW EQU 31H 低音调 TONE EQU 32H 音调 SPEAKER BIT P3 2 主程序框图 是 否 否 是 是 否 开始 读入键值 用键值查表得到音 频相关数据 启动定时 开始发声 1 键值 7 按键已松开 检测键输入 按音频数据设 置定时器 关闭定时 停止发声 定时中断程序框图 定时中断 停止计时 输出音频脉冲电平 高或低 音频脉冲电平反转 保护现场 恢复现场 中断返回 单片机原理及应用实验指导书 16 LJMP START ORG 000BH TIMER0INT 定时中断 PUSH PSW CLR TR0 MOV TH0 TONEHIGH MOV TL0 TONELOW SETB TR0 MOV C PULSE MOV SPEAKER C CPL PULSE POP PSW RETI TONETABLE DW 64578 64686 64778 64821 DW 64898 64968 65029 TESTKEY MOV P1 0FFH MOV A P1 读入键状态 RET KEYTABLE DB 0FEH 0FDH 0FBH 0F7H 键值表 DB 0EFH 0DFH 0BFH 07FH GETKEY MOV R6 10 ACALL DELAY MOV A P1 CJNE A 0FFH K01 确有键按下 LJMP MLOOP K01 MOV R3 8 8 个键 MOV R2 0 键码 MOV B A 暂存键值 MOV DPTR K0TAB K02 MOV A R2 MOVC A A DPTR 从键值表中取键值 CJNE A B K04 键值比较 MOV A R2 得键码 RET K04 INC R2 不相等 到继续访问键值表 MOV A 0FFH 键值不在键值中 即多键同时按下 LJMP MLOOP DELAY 延时子程序 MOV R7 0 单片机原理及应用实验指导书 17 DELAYLOOP DJNZ R7 DELAYLOOP DJNZ R6 DELAY RET START MOV SP 70H MOV TMOD 01 TIMER MOV IE 82H EA 1 IT0 1 MOV TONE 0 MLOOP CALL TESTKEY JZ MLOOP CALL GETKEY MOV B A JZ MLOOP 0 7 DEC B MOV A B RL A A A 2 MOV B A MOV DPTR TONETABLE MOVC A A DPTR MOV TONEHIGH A MOV TH0 A MOV A B INC A MOVC A A DPTR MOV TONELOW A MOV TL0 A SETB TR0 MOV P1 OFFH WAIT MOV A P1 CJNE A OFFH WAIT MOV R6 10 ACALL DELAY CLR TR0 LJMP MLOOP END 五 思考题五 思考题 1 请思考实验是怎样在硬件与软件上实现发声的 2 本程序中断子程序的调用是怎样进行的 单片机原理及应用实验指导书 18 六 电路图六 电路图 10K VCC EA VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE P 30 TXD 11 RXD 10 VCC 40 GND 20 8051 12MHZ 20pF20pF 1K 100 10uF VCC RES 0 33uF 24 SPEAKER 9013 200 10k 10k 10k 10k 10k 10k 10k 10k VCC OUT VCC OUT 单片机原理及应用实验指导书 19 实验八实验八 直流电动机控制实验直流电动机控制实验 一 实验目的一 实验目的 1 学习用 PWM 输出模拟量驱动直流电机 2 熟悉直流电动机的工作特性 二 实验说明二 实验说明 PWM 是单片机上常用的模拟量输出方法 用占空比不同的脉冲驱动直流电机转动 从 而得到不同的转速 程序中通过调整输出脉冲的占空比来调节直流电机的转速 使用光电测速元件测速 当它与圆盘上的空位相靠近时 光电元件输出低电平 当它 与没对空时时 光电元件输出高电平 圆盘转动一周时则产生 12 个脉冲 直流电机转动时 光电元件输出连续的脉冲信号 单片机记录其脉冲信号 就可以测出直流电机的转速 另 外增加显示电路 可把电机的转速显示出来 本实验使用 6V 直流电机 运行速度设置为 40 转 秒 经过若干秒后 直流电机转速慢慢下降到运行速度 以设 定的速度运行 三 实验内容及步骤三 实验内容及步骤 1 把7279阵列式键盘的J9四只短路帽打在上方 J10打在VCC处2 用8P排线将JD7和八 位动态数码显示的JD11相连 JD8和JD12相连 2 最小系统的1 0口接电机单元的Control口 最小系统的INT0接电机单元的 PulseOut 3 用串行数据通信线连接计算机与仿真器 把仿真器插到模块的锁紧插座中 请注意 仿真器的方向 缺口朝上 4 打开Keil uVision2仿真软件 首先建立本实验的项目文件 接着添加 直流电机 程序 ASM 源程序 进行编译 直到编译无误 5 全速运行程序 直流电机顺时针旋转 第三个数码显示P最后两位显示电机转速 观 察直流电机转速 若干秒后 直流电机转速慢慢下降到以程序设定的速度运行 程序设定 为40转 S左右 6 也可以把源程序编译成可执行文件 把可执行文件用 ISP 烧录器烧录到 89S52 89S51 芯片中运行 ISP 烧录器的使用查看附录二 五 实验电路图五 实验电路图 单片机原理及应用实验指导书 20 实验九实验九 RS232RS232 串口通信实验串口通信实验 一 实验目的一 实验目的 1 了解 80C51 串行口的工作原理以及发送的方式 2 了解 PC 机通讯的基本要求 二 实验说明二 实验说明 80C51 串行口经 232 电平转换后 与 PC 机串行口相连 PC 机使用串口调试应用程序 V2 2 exeV2 2 exe 实现上位机与下位机的通讯 本实验使用查询法接收和发送资料 上位机发出 指定字符 下位机收到后返回原字符 波特率设为 4800 三 实验内容及步骤三 实验内容及步骤 1 单片机最小应用系统的 RXD TXD 分别接 232 总线串行口的 RXD TXD 平行九孔串 行线插入 232 总线串行口 232 总线串行口的 J12 两只短路帽打到 232 处端 2 打开串口调试 V2 2 exe 应用程序 选择下列属性 波特率 4800 数据位 8 奇偶校验 无 停止位 1 3 把 89S52 芯片插到最小系统中 ISP 烧录器的使用查看附录二 用 ISP 下载器下 载 80518051 通讯通讯 HEX HEX 在 V2 2 exeV2 2 exe 发送的字符 数据 区输入字符 数据 按手动发送 接 收区收到相同的字符 数据 或者按自动发送 接收区将接受到发送的字符 数据 注 自 动发送的时间可以在串口调试助手中改动 四 源程序四 源程序 ORG 00H JMP START ORG 20H START MOV SP 60H MOV SCON 01010000B 设定串行方式 8 位异步 允许接收 MOV TMOD 20H 设定计数器 1 为模式 2 ORL PCON 10000000B 波特率加倍 MOV TH1 0F3H 设定波特率为 4800 MOV TL1 0F3H SETB TR1 计数器 1 开始计时 单片机原理及应用实验指导书 21 Title NumberRevisionSize C Date 05 05 2004Sheet of File F 原原原 8051原原 SchDrawn By VCC EA VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 T 1 P11 T 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE P 30 TXD 11 RXD 10 VCC 40 GND 20 8051 R1 IN 13 R2 IN 8 T1 IN 11 T2 IN 10 GND 15 V 2 V 6 VCC 16 R1 OUT 12 R2 OUT 9 T1 OUT 14 T2 OUT 7 C1 1 C1 3 C2 4 C2 5 MAX232 1uF 1uF 1uF 1uF VCC VCC 1 6 2 7 3 8 4 9 5 RS 232 12MHZ 20pF20pF 1K 100 10uF VCC RES AGAIN JNB RI 等待接收 CLR RI 清接收标志 MOV A SBUF 接收数据缓冲 MOV SBUF A 送发送数据 JNB TI 等待发送完成 CLR TI 清发送标志 SJMP AGAIN END 五 实验电路五 实验电路 单片机原理及应用实验指导书 22 实验十实验十 DAC0832DAC0832 并行并行 DADA 转换实验转换实验 一 实验目的一 实验目的 1 掌握 DAC0832 直通方式 单缓冲器方式 双缓冲器方式的编程方法 2 掌握 D A 转换程序的编程方法和调试方法 二 实验说明二 实验说明 DAC0832 是 8 位 D A 转换器 它采用 CMOS 工艺制作 具有双缓冲器输入结构 其引脚 排列如图所示 DAC0832 各引脚功能说明 DI0 DI7 转换数据输入端 CS 片选信号输入端 低电平有效 ILE 数据锁存允许信号输入端 高电平有效 WR1 第一写信号输入端 低电平有效 Xfer 数据传送控制信号输入端 低电平有效 WR2 第二写信号输入端 低电平有效 Iout1 电流输出 1 端 当数据全为 1 时 输出电流最大 当数据全为 0 时 输出电流 最小 Iout2 电流输出 2 端 DAC0832 具有 Iout1 Iout2 常数的特性 Rfb 反馈电阻端 Vref 基准电压端 是外加的高精度电压源 它与芯片内的电阻网络相连接 该电压 范围为 10V 10V VCC 和 GND 芯片的电源端和地端 DAC0832 内部有两个寄存器 而这两个寄存器的控制信号有五个 输入寄存器由 ILE CS WR1 控制 DAC 寄存器由 WR2 Xref 控制 用软件指令控制这五个控制端可实现 三种工作方式 直通方式 单缓冲方式 双缓冲方式 直通方式是将两个寄存器的五个控制端预先置为有效 两个寄存器都开通只要有数字 信号输入就立即进入 D A 转换 单缓冲方式使 DAC0832 的两个输入寄存器中有一个处于直通方式 另一个处于受控方 式 可以将 WR2 和 Xfer 相连在接到地上 并把 WR1 接到 89C51 的 WR 上 ILE 接高电平 CS 接高位地址或地址译码的输出端上 双缓冲方式把 DAC0832 的输入寄存器和 DAC 寄存器都接成受控方式 这种方式可用于 多路模拟量要求同时输出的情况下 单片机原理及应用实验指导书 23 三种工作方式区别是 直通方式不需要选通 直接 D A 转换 单缓冲方式一次选通 双缓冲方式二次选通 三 实验步骤三 实验步骤 1 单片机最小应用系统的 P0 口接 0832 的 DI0 DI7 口 单片机最小应用系统的 P2 0 WR 分别接 D A 转换的 P2 0 WR Vref 接 5V D A 转换的 OUT 接示波器探头 2 用串行数据通信线连接计算机与仿真器 把仿真器插到模块的锁紧插座中 请注意 仿真器的方向 缺口朝上 3 打开 Keil uVision2 仿真软件 首先建立本实验的项目文件 接着添加 DA0832 正弦 ASM 源程序 进行编译 直到编译无误 若添加 DA0832 方波 ASM 输出为方波 4 编译无误后 全速运行程序 观察示波器测量输出波形的周期和幅度 调节输出电 位器 可以改变波形的幅度 5 也可以把源程序编译成可执行文件 把可执行文件用 ISP 烧录器烧录到 89S52 89S51 芯片中运行 四 流程图及源程序四 流程图及源程序 1 流程图 2 源程序 ORG 00H AJMP START ORG 0100H START MOV DPTR 0FEFFH 置 DAC0832 的地址 LP MOV A 0FFH 设定高电平 MOVX DPTR A 启动 D A 转换 输出高电平 结束 开始 延时 等待 转换 启动 D A 转换 转换结 束输出 延时 单片机原理及应用实验指导书 24 LCALL DELAY 延时显示高电平 MOV A 00H 设定低电平 MOVX DPTR A 启动 D A 转换 输出低电平 LCALL DELAY 延时显示低电平 SJMP LP 连续输出方波 DELAY MOV R3 11 延时子程序 D1 NOP NOP NOP NOP NOP DJNZ R3 D1 RET END 五 思考题五 思考题 1 计算输出方波的周期 并说明如何改变输出方波的周期 2 硬件电路不改动的情况下 请编程实现输出波形为锯齿波及三角波 3 请画出 DAC0832 在双缓冲工作方式时的接口电路 并用两片 DAC0832 实现图形 x 轴 和 y 轴偏转放大同步输出 六 电路图六 电路图 Vcc 20 Iout1 11 lsbDI0 7 Iout2 12 DI1 6 DI2 5 Rfb 9 DI3 4 DI4 16 Vref 8 DI5 15 DI6 14 msbDI7 13 ILE 19 WR2 18 CS 1 WR1 2 Xfer 17 DAC0832 1K 100 20pF 20pF 6MHz RESET 3 26 5 1 74 HA741 10K 10uF 5V 12V 5V 12V EA VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE P 30 TXD 11 RXD 10 AT89C51 单片机原理及应用实验指导书 25 实验十一实验十一 ADC0809ADC0809 并行并行 ADAD 转换实验转换实验 一 实验目的一 实验目的 1 掌握 ADC0809 模 数转换芯片与单片机的连接方法及 ADC0809 的典型应用 2 掌握用查询方式 中断方式完成模 数转换程序的编写方法 二 实验说明二 实验说明 本实验使用 ADC0809 模数转换器 ADC0809 是 8 通道 8 位 CMOS 逐次逼近式 A D 转换芯 片 片内有模拟量通道选择开关及相应的通道锁存 译码电路 A D 转换后的数据由三态 锁存器输出 由于片内没有时钟需外接时钟信号 下图为该芯片的引脚图 各引脚功能如下 IN0 IN7 八路模拟信号输入端 ADD A ADD B ADD C 三位地址码输入端 八路模拟信号转换选择由这三个端口控制 CLOCK 外部时钟输入端 小于 1MHz D0 D7 数字量输出端 OE A D 转换结果输出允许控制端 当 OE 为高电平时 允许 A D 转换结果从 D0 D7 端输出 ALE 地址锁存允许信号输入端 八路模拟通道地址由 A B C 输入 在 ALE 信号有效时将该八路地址锁存 START 启动 A D 转换信号输入端 当 START 端输入一个正脉 冲时 将进行 A D 转换 EOC A D 转换结束信号输出端 当 A D 转换结束后 EOC 输出高电平 Vref Vref 正负基准电压输入端 基准正电压的典型值为 5V VCC和 GND 芯片的电源端和地端 三 实验步骤三 实验步骤 1 把7279阵列式键盘的J9四只短路帽打在上方 J10打在VCC处 用8P排线将JD7和八 位动态数码显示的JD11相连 JD8和JD12相连 2 单片机最小应用系统的 P0 口接 A D 转换的 D0 D7 口 单片机最小应用系统的 Q0 Q7 口接 0809 的 A0 A7 口 单片机最小应用系统的 WR RD P2 0 ALE INT1 分别接 A D 转换的 WR RD P2 0 CLOCK INT1 A D 转换的 VI 接入 5V 3 用串行数据通信线连接计算机与仿真器 把仿真器插到模块的锁紧插座中 请注意 仿真器的方向 缺口朝上 4 打开Keil uVision2仿真软件 首先建立本实验的项目文件 接着添加 AD0809 ASM 单片机原理及应用实验指导书 26 源程序 进行编译 直到编译无误 5 编译无误后 全速运行程序 数码显示电压转化的数字量 调节模拟信号输入端的 电位器旋钮 显示值随着变化 顺时针旋转值增大 AD转换值的范围是0 4 98V左右 6 也可以把源程序编译成可执行文件 把可执行文件用 ISP 烧录器烧录到 89S52 89S51 芯片中运行 四 流程图及源程序 光盘中附带 四 流程图及源程序 光盘中附带 1 流程图 五 思考题五 思考题 1 A D 转换程序有三种编制方式 中断方式 查询方式 延时方式 实验中使用了查 询方式 请用另两种方式编制程序 2 P0 口是数据 地址复用的端口 请说明实验中 ADC0809 的模拟通道选择开关在利用 P0 口的数据口或地址地位口时 程序指令和硬件连线的关系 六 电路图六 电路图 开始 初始化 启动 A D 转换 A D 转换 完 成 数据输出 延时 结束 单片机原理及应用实验指导书 27 1 2 3 A 74LS02 4 5 6 B 74LS02 8 9 10 C 74LS02 1K 100 20pF 20pF 6MHz 10uF IN 0 26 D7 21 D6 20 IN 1 27 D5 19 D4 18 IN 2 28 D3 8 D2 15 IN 3 1 D1 14 D0 17 IN 4 2 EOC 7 IN 5 3 ADD A 25 IN 6 4 ADD B 24 ADD C 23 IN 7 5 ALE 22 ref 16 OE 9 START 6 ref 12 CLOCK 10 ADC0809 10K RXD TXD 5V 5V GND 3 3K 8 EA VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE P 30 TXD 11 RXD 10 AT89C51 D0 3 Q0 2 D1 4 Q1 5 D2 7 Q2 6 D3 8 Q3 9 D4 13 Q4 12 D5 14 Q5 15 D6 17 Q6 16 D7 18 Q7 19 OE 1 G 11 74LS373 实验十二实验十二 SRAMSRAM 外部数据存储器扩展实验外部数据存储器扩展实验 一 实验目的一 实验目的 1 掌握 89C51 单片机扩展外 RAM 的方法 2 了解静态 RAM 使用方法 二 实验说明二 实验说明 MCS 51 型单片机内有 128B 的 RAM 只能存放少量数据 对一般小型系统和无需存放大 量数据的系统已能满足要求 对于大型应用系统和需要存放大量数据的系统 则需要进行 片外扩展 RAM MCS 51 型单片机在片外扩展 RAM 的地址空间为 0000H FFFFH 共 64KB 读写外 RAM 时 用 MOVX 指令 用 RD 选通 RAM OE 端 用 WR 选能 RAM WE 端 扩展外 RAM 芯片一般采用静态 RAM SRAM 也可根据需要采用 E2PROM 芯片或其他 RAM 芯片 本实验使用 SRAM 6264 芯片进行片外 RAM 扩展 6264 具有 8KB 空间 因此它需要 13 位地址 A0 A12 使用 P0 P2 0 P2 3 作为地址线 P2 7 作为片选线 6264 的全部地 址空间为 0000H 1FFFH 6264 芯片引脚图及管脚功能介绍 D0 D7 数据线 A0 A12 地址线 WE 写允许 低电平有效 OE 读允许 低电平有效 CS1 CS2 片选端 CS1低电平有效 CS2高电平有效 三 实验内容与步骤三 实验内容与步骤 单片机在 SRAM 中填入不断增加的数值 0 1 2 3 到 9 然后再从 0 开始 共填入 256 个字节 然后把这些字符一个个类似串行方式在 8 位 LED 以二进制显示 从左边间隔 A0 10 A1 9 A2 8 A3 7 A4 6 A5 5 A6 4 A7 3 A8 25 A9 24 A10 21 A11 23 A12 2 CS1 20 CS2 26 WE 27 OE 22 D0 11 D1 12 D2 13 D3 15 D4 16 D5 17 D6 18 D7 19 单片机原理及应用实验指导书 28 1 秒的方式不断

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论