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单片机实验报告

51单片机实验报告 - 51 单片机实验报告 实验一 点亮流水灯 实验现象 Led 灯交替亮,间隔大约 10ms。 实验代码 #include <reg51.h> void Delay10m...

51单片机实验开发板设计_图文

51单片机实验开发板设计 - 课课题院程目系 程 设 计 单片机课程设计 51 单片机实验开发板设计 电气信息工程学院测控系 学生学号 2012 年 7 月 8 日 专业班...

51单片机电子时钟课程设计实验报告

51单片机电子时钟课程设计实验报告 - 《单片机原理与应用》课程设计 总结报告 题 目:单片机电子时钟(带秒表)的设计 目 录 1.题目与主要功能要求………...

51单片机的流水灯实验_图文

51单片机的流水灯实验 - 实验一 一、实验目的 1、简单 I/O 引脚的输出 2、掌握软件延时编程方法 3、简单按键输入捕获判断 二、实验实现的功能 流水灯实验 1、...

51单片机电子时钟课程设计实验报告

51单片机电子时钟课程设计实验报告 - 《单片机原理与应用》课程设计 总结报告 题 目:单片机电子时钟(带秒表)的设计 江润洲 2012118029 设计人员: 张保江 学班号:...

华中科技大学单片机实验实验报告MCS51单片机

华中科技大学单片机实验实验报告MCS51单片机_工学_高等教育_教育专区。华中科技大学单片机实验实验报告电气学院 2015 MCS51单片机华中科技大学单片机实验报告 MCS-51 系列...

51单片机实验报告

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

51单片机实验程序

51单片机实验程序_电子/电路_工程科技_专业资料。51单片机实验课实验c程序 用查表方式编写 y=x13+x23+x33。 (x 为 0~9 的整数) #include<reg51.h> void...

51单片机教学实验系统设计_图文

51单片机教学实验系统设计 - 黑龙江东方学院 毕业论文 (设计) 题目:51 单片机教学实验系统设计 学生姓名 学专班号业级 王秋桐 084110122 计算机科学与技...

单片机(C51)实验报告_图文

单片机(C51)实验报告 - 实验一 熟悉 ADEK 单片机教学实验系统 一、实验目的 1.熟悉 ADEK 单片机教学实验系统和仿真器的结构和功能。 2.了解如何安装 51MINI 仿真...