nbhkdz.com冰点文库

51单片机实验(学)

时间:2011-01-21


MCS51 系列单片机实验
实验一 P1 口输入、输出实验
一.实验要求
1.P1 口 做 输 出 口 , 接 八 只 发 光 二 极 管 , 编 写 程 序 , 使 发 光 二 极 管 循 环 点 亮 。 2.P1 口 做 输 入 口 , 接 八 个 拨 动 开 关 , 以 实 验 机 上 74LS273 做 输 出 口 , 编 写 程 序读取开关状态,将此状态,在发光二极管上显示出来。

二.实验目的
1.学 习 P1 口 的 使 用 方 法 。 2.学 习 延 时 子 程 序 的 编 写 和 使 用 。

三. 实验电路及连线

实验一时,P1.0-P1.7 接 L0-L7。 实验二时,P1.0-P1.7 接 K0-K7,PO0-PO7 接 L0-L7。CS273 接 8300H。

四.实验说明
1.P1 口 是 准 双 向 口 。 它 作 为 输 出 口 时 与 一 般 的 双 向 口 使 用 方 法 相 同 。 由 准 双 向 口 结 构 可 知 当 P1 口 作 为 输 入 口 时 , 必 须 先 对 它 置 高 电 平 使 内 部 MOS 管 截 止 。 因 为 内 部 上 拉 电 阻 阻 值 是 20KΩ ~40KΩ , 故 不 会 对 外 部 输 入 产 生 影 响 。 若 不 先

对 它 置 高 , 且 原 来 是 低 电 平 , 则 MOS 管 导 通 , 读 入 的 数 据 是 不 正 确 的 。 2.延 时 子 程 序 的 延 时 计 算 问 题 对于程序 DELAY: MOV R0, #00H DELAY1: MOV R1, #0B3H DJNZ R1, $ DJNZ R0, DELAY1 查 指 令 表 可 知 MOV,DJNZ 指 令 均 需 用 两 个 机 器 周 期 ,而 一 个 机 器 周 期 时 间 长 度 为 12/ 11.0592MHz, 所 以 该 段 程 序 执 行 时 间 为 : ( 0B3+ 1) ×256+ 1) ×2×12÷11059200= 100.002mS (

五.实验框图
程序框图:

开始

设置初始值

数据输出

开始

循环左移

读 P1口

延时

输出 对 应 数 据

主程序 1 框图

主程序 2 框图

1
ORG 0000H LJMP ORG MOV MOV START 0040H SP,#60H A,#0FEH

START:


END

2


START: MOV MOV DPTR,#8300H P1,#0FFH ;并 行 输 出 口 地 址 ;因 P1 口 是 准 双 向 口 ,所 以 把 P1 ;口 作 为 输 入 口 时 ,先 置 高 电 平 .



实验二 定时器实验
一.实验要求
由 8031 内 部 定 时 器 1, 按 方 式 1 工 作 , 即 作 为 16 位 定 时 器 使 用 每 0.05 秒 钟 T1 溢 出 中 断 一 次 。 P1 口 的 P1.0-P1.7 分 别 接 八 个 发 光 二 极 管 。 要 求 编 写 程 序 模 拟 一 时 序 控 制 装 置 。 开 机 后 第 一 秒 钟 L0, L2 亮 , 第 二 秒 钟 L1, L3 亮 , 第 三 秒 钟 L4, L6 亮 , 第 四 秒 钟 L5, L7 亮 , 第 五 秒 L0, L2, L4, L6 亮 , 第 六 秒 钟 L1, L3, L5, L7 亮 , 第 七 秒 钟 八 个 二 极 管 全 亮 , 第 八 秒 钟 全 灭 , 以 后 又 从 头 开 始 , L0, L2 亮 , 然 后 L1, L3 亮 ......一 直 循 环 下 去 。

二.实验目的
1.学 习 8031 内 部 计 数 器 的 使 用 和 编 程 方 法 。 2. 进 一 步 掌 握 中 断 处 理 程 序 的 编 程 方 法 。

三.实验电路及连线

P1.0--P1.7 接 L0—L7。

四.实验说明
1.关 于 内 部 计 数 器 的 编 程 主 要 是 定 时 常 数 的 设 置 和 有 关 控 制 寄 存 器 的 设 置 。 内 部 计 数 器 在 单 片 机 中 主 要 有 定 时 器 和 计 数 器 两 个 功 能 。本 实 验 用 的 是 定 时 器 ,有 关计数器的说明请查阅实验七。 2.内 部 计 数 器 用 作 定 时 器 时 , 是 对 机 器 周 期 计 数 。 每 个 机 器 周 期 的 长 度 是 12 个 振 荡 器 周 期 。 因 为 实 验 系 统 的 晶 振 是 11.0592MHz, 所 以 定 时 常 数 的 设 置 可 按 以下方法计算: 机 器 周 期 =12÷11.0592MHz= 1.0857μ S ( 65536-定 时 常 数 ) *1.0857μ S=50mS 定 时 常 数 = 4C00H 3. 定 时 器 的 有 关 的 寄 存 器 有 工 作 方 式 寄 存 器 TMOD 和 控 制 寄 存 器 TCON 。 TMOD 用 于 设 置 定 时 器 /计 数 器 的 工 作 方 式 0~ 3, 确 定 用 于 定 时 还 是 用 于 计 数 。 并 TCON 主 要 功 能 是 为 定 时 器 在 溢 出 时 设 定 标 志 位 , 并 控 制 定 时 器 的 运 行 或 停 止 等。 4.在 例 程 的 中 断 服 务 程 序 中 , 为 中 断 定 时 常 数 的 设 置 对 中 断 程 序 的 运 行 起 到 因 关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。

五.实验框图
程序框图:

INT T1入 口 开始 保护 现 场 置 T1的 寄 存 器 置定时常数 置初始常数 N 判 是 否 到 1秒 开中 断
Y

查表 等待 显示数据 T1LED.ASM主 程 序 框 图 调整表格指针

恢复现场

中断返回

INT_T1中 断 子 程 序 框 图


START: MOV MOV MOV MOV SP,#60H TMOD,#10H TL1,#00H TH1,#4BH ;置 T1 为方式 1 ;延时 50mS 的时间常数


INT_T1: ;T1 中断服务子程序


MOV R1,#20 ;延时一秒的常数


;LED 显示常数表 DATA: DB END 0FAH,0F5H,0AFH,05FH,0AAH,55H,00H,0FFH

实验三 串并转换实验
一.实验要求
利 用 8031 串 行 口 , 和 并 行 输 出 串 行 移 位 寄 存 器 74LS164, 扩 展 一 位 数 码 显 示 在 数 码 显 示 器 上 循 环 显 示 0-9 这 10 个 数 字 。

二.实验目的
1.掌 握 8031 串 行 口 方 式 0 工 作 方 式 及 编 程 方 法 。 2.掌 握 利 用 串 行 口 扩 展 I/O 通 道 的 方 法 。

三.实验电路及连线

RXD 接 DATAIN, TXD 接 DCLK。

四.实验说明
串行口工作在方式 0 时,可通过外接移位寄存器实现串并行转换。在这种 方 式 下 ,数 据 为 8 位 ,只 能 从 RXD 端 输 入 输 出 ,TXD 端 总 是 输 出 移 位 同 步 时 钟 信 号 , 其 波 特 率 固 定 为 晶 振 频 率 1/12。 由 软 件 置 位 串 行 控 制 寄 存 器 ( SCON) 的 REN 后 才 能 启 动 串 行 接 收 ,在 CPU 将 数 据 写 入 SBUF 寄 存 器 后 ,立 即 启 动 发 送 。 待 8 位 数 据 输 完 后 , 硬 件 将 SCON 寄 存 器 的 TI 位 置 1, TI 必 须 由 软 件 清 零 。

五.实验框图
示 例 程 序 SLED.ASM 程 序 框 图 :
开始 设 置 T1参 数 置初始常数 INT T0入 口 保护现场 置 T0定 时 常 数 N 判 是 否 到 1秒 置串口模式 开中 断 Y 读表格 送串 口 显 示 等待 调整表格指针

恢复现场 中断返回

TIMER

EQU ORG AJMP ORG AJMP ORG MOV MOV

01H 0000H START 000BH INT_T0 0040H SP,#60H TMOD,#01H

;T0 中 断 程 序 入 口 地 址

START: ;T0 方 式 1


MOV SCON,#00H ;置 串 口 工 作 方 式 0


INT_T0: ;T0 中 断 子 程 序


MOV TIMER,#20 ;延 时 一 秒 的 常 数



MOV INC CJNE MOV EXIT:

SBUF,A R0 R0,#0AH,EXIT R0,#00H

;串 行 发 送 数 据 ;判 断 是 否 到 表 尾 ;调 整 表 格 偏 移 量


;数 码 管 显 示 常 数 表 DATA: DB 03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,09H ;0 1 2 3 4 5 6 7 8 9 END

实验四 LED 点阵显示实验
一.实验要求
利用实验系统提供的实验模块○点阵显示,编程实现中英文字符的显示。 14

二.实验目的
1.了解 LED 点阵显示的基本原理和实现方法。 2.掌握点阵汉字库的编码和从标准字库中提取汉字编码的方法。

三.实验电路及连线
点阵显示模块 CA-1588BH 的(红色)列输入线接至内部 LED 的阴极端,行输入线接 至内部 LED 的阳极端(若阳极端输入为高电平,阴极端输入低电平,则该 LED 点亮) 。发 光点的分布如图 22-0 所示。

Fig 22-0 CA-1588BH LED 分布

如图 22-1 示,本实验模块使用 74LS374 来控制列输入线的电平值。将 74LS374 的某输 出置 0,则对应的 LED 阴极端被置低。如图 22-2 示,本实验模块使用 74LS273 来控制行输 入线, 并通过 9013 提供电流驱动。 74LS273 的某输出置 1, 将 则对应的 LED 阳极端被置高。 每次系统重新开启或总清后,74LS273 输出为全 0,LED 显示被关闭。 通过编程控制各显示点对应 LED 阳极和阴极端的电平,就可以有效的控制各显示点的 亮灭。

Fig 22-1 LED 模块及列扫描电路

Fig 22-2 行扫描电路

Fig 22-3 地址译码电路 本实验模块使用 4 块 CA-1588BH 组成 16×16 点阵,以满足汉字显示的要求。为了方 便的控制四个单元,使用了一片 74LS139 译码,产生四个地址片选信号:CLKR1= CSLED, CLKR2= CSLED+1,用于行控制的两片 74LS273;CLKC1= CSLED+2,CLKC2= CSLED+3, 用于列控制的两片 74LS374。 实验接线 14 按示例程序,模块○的 CSLED 接 51/96 地址的 8000H。

四.实验说明
使用高亮度 LED 发光管构成点阵,通过编程控制可以显示中英文字符、图形及视频动 态图形。LED 显示以其组构方式灵活、亮度高、技术成熟、成本低廉等特点在证券、运动 场馆及各种室内/外显示场合得到广泛的应用。 所显示字符的点阵数据可以自行编写 (即直接点阵画图)也可从标准字库 , (如 ASC16、 HZ16) 中提取。后者需要正确掌握字库的编码方法和字符定位的计算。 实验盘片中“字符转换”子目录下提供的 Basc16.exe,BHz16.exe 可方便的将单个字符的码表 从标准字库 Asc16,Hzk16 中提取出来。 具体使用方法是运行上述可执行程序, 根据提示输入 所需字符(如是汉字还需要先启动 dos 下的汉字环境,如 ucdos,pdos95 等) 。程序将该字 符的码表提取出来,存放在该字符 ASC 或区位码为文件名称的.dat 文件中。用户只需将该 文件中内容拷贝、粘贴到自己的程序中即可。但需要注意字节排列顺序、字节中每一位与具 体显示点的一一对应关系, 必要时还要对码表稍作修改。 同一目录下还提供了上述可执行程 序的源文件,使用 BC3.1 编写,供用户参考。

五.实验程序框图
示例程序演示 Asc16 字符简单点阵显示。 用户应留心其中行扫描的实现及码表的处理。

开始

清除显示

设置字符码表 起始地址

LED 行扫描; 列顺序输出码表

延时以控制显示效果

循 环 处 理

;*********LED 点阵显示示例程序*********************** ;** 该程序显示 Asc16 字符 ** ;** 为了简单起见,程序只显示一个字符 ** ;** 该程序针对 T598 实验机的模块 14 ** ;**************************************************** CSLED EQU 8000H CSR1 EQU CSLED CSR2 EQU CSLED+1H CSC1 EQU CSLED+2H CSC2 EQU CSLED+3H ORG 0000H MOV SP,#60H INIT: MOV A,#0H ;关闭行 MOV DPTR,#CSR1 MOVX @DPTR,A MOV DPTR,#CSR2 MOVX @DPTR,A

;行 1 273 ;行 2 273 ;列 1 374 ;列 2 374

MOV A,#0FFH

;关闭列


D: MOV R5,#00H MOV R4,#01H ;每次为单行扫描 DISP: MOV A,R5 … ;此处设定所要显示的字符 … CPL ACC ;代码取反,决定显示的阴阳 MOV DPTR,#CSC2 MOVX @DPTR,A MOV DPTR,#CSR1 MOV A,R4 … RL ACC MOV R4,ACC INC R5 LCALL … CJNE R5,#8H,DISP MOV A,#0H MOVX @DPTR,A MOV R5,#08H MOV R4,#01H DISP2:



CJNE R5,#10H,DISP2 MOV A,#0H MOVX @DPTR,A SJMP D ;******** 延时子程序,协调字符显示速度 ************* DELAY: MOV R7,#1H DL1: MOV R6,#00H DL2: DJNZ R6,DL2 DJNZ R7,DL1 RET

;******** 字符点阵字库 *************** ; ASC16 字符编码排列 ; 0 ; 1 ; | ; | ; 14 ; 15 ; 高位 D7--D0 ; 请注意编码的排列次序和实际显示点阵分布的关系 ASCA:DB 00H,00H,10H,38H,6CH,0C6H,0C6H,0FEH DB 0C6H,0C6H,0C6H,0C6H,00H,00H,00H,00H ASCE:DB 00H,00H,0FEH,66H,62H,68H,78H,68H DB 60H,62H,66H,0FEH,00H,00H,00H,00H ASCD:DB 00H,00H,0F8H,6CH,66H,66H,66H,66H DB 66H,66H,6CH,0F8H,00H,00H,00H,00H ASCK:DB 00H,00H,0E6H,66H,66H,6CH,78H,78H DB 6CH,66H,66H,0E6H,00H,00H,00H,00H

;****************************************************

END

阅读程序实验 步进电机控制演示
一.实验要求
利用 P0 输出脉冲序列, 74LS244 输入开关量, 开关 K2-K7 控制布进电机转换 (分 6 档) , K0,K1 控制步进电机转向。必须要 K2-K7 中一开关和 K0,K1 中一开关同时为'1'时步进电 机才启动,其他情况步进电机不工作。 步进电机驱动原理是通过对它每相线圈中的电流的顺序切换来使电机作步进式旋转。 驱动电路由脉冲信号来控制, 所以调节脉冲信号的频率便可改变步进电机的转速。 微电脑控 制步进电机最适合。 仔细阅读程序, 画出详细的流程图.

二.实验目的
1.了解步进电机控制的基本原理。 2.熟悉控制步进电机转动编程方法。

三.实验电路及连线

K0-K7 接 PI0-PI7,PO0-PO3 接 SMA-SMD。 CS244 接 8200H,CS273 接 8300H。

四.实验说明
1. 本实验使用的步进电机用直流+12V 电压,电机线圈由 A、B、C、D 四相组成。 1. 驱动方式为四相四拍方式,各线圈通电顺序如下表。 表中首先向 A 线圈输入驱动电流, 接 着 B、C、D 线圈驱动,最后又返回到 A 线圈驱动,按这种顺序切换,电机轴按顺时针方 向旋转。若通电顺序相反,则电机轴按逆时针方向旋转。 (注:为提高步进电机负载能力和运行平稳,可使用四相八拍驱动方式。 )

顺序/相 A 0 1 2 0 1 1

B 1 0 1

C 1 1 0

D 1 1 1

3

1

1

1

0

PI PO

EQU EQU ORG SJMP ORG

8200H 8300H 0000H START 0040H SP,#60H C PSW r5,#01110111B DPTR,#PI A,@DPTR ACC.0,DIRECT0 ACC.1,DIRECT1 READ R7,#00H SPEED R7,#0FFH ACC.2,SPEED0 ACC.3,SPEED1 ACC.4,SPEED2 ACC.5,SPEED3 ACC.6,SPEED4 ACC.7,SPEED5 READ R6,#61H WAVE R6,#51H WAVE R6,#31H WAVE R6,#21H WAVE R6,#11H

;开关输入口地址 ;输出口地址

START: MOV CLR PUSH mov READ: MOV MOVX JB JB SJMP DIRECT0: MOV SJMP DIRECT1: MOV SPEED: JB JB JB JB JB JB AJMP SPEED0: MOV AJMP SPEED1: MOV AJMP SPEED2: MOV AJMP SPEED3: MOV AJMP SPEED4: MOV ;读开关状态 ;判断转动方向 ; ;正反向开关均未开则重读开关 ;设置方向标志

;R5 与 C 一起组成状态存储器

;设置方向标志 ;判定转速开关

;无任何速度开,则重读开关 ;设置转速 0 常数 ;设置转速 1 常数 ;设置转速 2 常数 ;设置转速 3 常数 ;设置转速 4 常数

AJMP WAVE SPEED5: MOV R6,#09H MOV B,R6 WAVE: LCALL DELAY DJNZ R6,WAVE MOV DPTR,#PO MOV A,R5 CJNE R7,#00H,NEG POP PSW RL A SJMP SSS NEG: POP PSW RR A SSS: PUSH PSW MOV R5,A ANL A,#0FH MOVX @DPTR,A AJMP READ DELAY: MOV R0,#20H delay1: mov r1,#04fh djnz r1,$ DJNZ R0,delay1 RET END

;设置转速 5 常数

;延时,决定转速 ;置输出口地址 ;判断转向标志 ;改变相位

;改变相位

;保存相位 ;相位输出 ;延时子程序


51单片机实验板的学习与制作_图文.pdf

51单片机实验板的学习与制作 - 51 单片机实验板实验手册 51 单片机实验板说明 学习 51 单片机必须做大量的实验, 与其说 51 单片机是学出来的, 倒不如说 51 ...

单片机实验报告.doc

单片机实验报告 - ATM89C51单片机实验报告及其照片,设计中断电路,计数等实验现象... ATM89C51单片机实验报告及其照片,设计...姓专年学名: 业: 级: 号: 单片机...

51单片机实验-实验六 简单IO口扩展实验.pdf

51单片机实验-实验六 简单IO口扩展实验 - 实验 6 一、实验目的 简单 I

实验一 51单片机流水灯实验 实验报告.doc

实验51单片机流水灯实验 实验报告 - “流水灯”实验报告 一、 实验目的 1. 了解单片机 I/O 口的工作原理。 2. 掌握 51 单片机的汇编指令。 3. 熟悉汇编...

单片机实验报告(基于51单片机).doc

单片机实验报告(基于51单片机) - 滨江学院 微机原理与接口技术 综合实验报告

51单片机实验报告.doc

51单片机实验报告 - 实验一 数据传送实验 实验内容: 将 8031 内部 R

51单片机实验报告.doc

51单片机实验报告 - 51 单片机实验报告 目录 1 实验要求...

51单片机实验-实验二 P1口输入、输出实验.pdf

51单片机实验-实验二 P1口输入、输出实验_电子/电路_工程科技_专业资料。实

51单片机综合学习系统实验说明(必看).txt

51单片机综合学习系统实验说明(必看) - /*** 网上收集...

51单片机实验_图文.doc

51单片机实验_工学_高等教育_教育专区。51单片机实验51单片机实验51单片机实验51单片机实验 11 数码管+继电器 #include <reg51.h> sbit relay =P2^0 ; #define...

(MCS-51单片机实验系统_图文.ppt

(MCS-51单片机实验系统 - 现代集成电路设计 任家富 2008年6月 MCS-51单片机设计及应用 单片机设计及应用 ? ? ? ? ? MCS-51单片机实验板介绍 MCS-51单...

MCS-51单片机实验_图文.doc

MCS-51单片机实验 - MCS-51 单片机实验 第一部分 软件实验 ...

初学者如何选择满意的51单片机实验板_图文.pdf

初学者如何选择满意的51单片机实验板 - 关于51单片机开发板的选择问题,分为7

为36学时安排的51单片机实验指导书_图文.pdf

为36学时安排的51单片机实验指导书 - 为 36 学时安排的 51 单片机实验指导书 (仅供本学院单片机必修课参考使用) 王晓东 第一部分:软件单元实验(12 学时) 实验...

51单片机实验讲义(24学时)_1.doc

51单片机实验讲义(24学时)_1 - 微机与单片机原理与应用实验指导书 第1章

(1小时学会C语言51单片机)C语言入门教程.pdf

(1小时学会C语言51单片机)C语言入门教程 - 相信很多爱好电子的朋友 ,对单

51单片机与Proteus结合学习_图文.ppt

讲解了51单片机与Proteus结合学习 手把手教你学51单片 机与Proteus 主讲:李想 ...低+12V 所以计算机与单片机之间通讯时需要加电 平转换芯片max232(实验板上左下...

51单片机实验讲义(24学时)_4.doc

51单片机实验讲义(24学时)_4 - 微机与单片机原理与应用实验指导书 3.4

51单片机实验报告.doc

51单片机实验报告 - 51单片机实验 数据传送 ASCII码 BCD码转换... 51单片机实验报告_工学_高等教育_教育专区。51单片机实验 数据传送 ASCII码 BCD码转换 ...

AT89S51单片机C语言程序范例.doc

AT89S51单片机C语言程序范例_工学_高等教育_教育专区。AT89S51单片机C语言程序范例,找了这么久,感觉就这份最好! AT89S51 单片机实验及实践教程 第四章 实验及...