单片机实验讲义-11个实验 (1)

上传人:油条 文档编号:1864651 上传时间:2017-07-15 格式:DOC 页数:39 大小:5.79MB
返回 下载 相关 举报
单片机实验讲义-11个实验 (1)_第1页
第1页 / 共39页
单片机实验讲义-11个实验 (1)_第2页
第2页 / 共39页
单片机实验讲义-11个实验 (1)_第3页
第3页 / 共39页
单片机实验讲义-11个实验 (1)_第4页
第4页 / 共39页
单片机实验讲义-11个实验 (1)_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《单片机实验讲义-11个实验 (1)》由会员分享,可在线阅读,更多相关《单片机实验讲义-11个实验 (1)(39页珍藏版)》请在金锄头文库上搜索。

1、单片机实验讲义实验 1 P1 口实验一一、实验目的:1 学习 P1 口的使用方法。2 学习延时子程序的编写和使用。二、实验设备:CPU 挂箱、8031CPU 模块三、实验内容:1 P1 口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。2 P1 口做输入口,接八个按纽开关,以实验箱上 74LS273 做输出口,编写程序读取开关状态,在发光二极管上显示出来。四、实验原理:P1 口为准双向口,P1 口的每一位都能独立地定义为输入位或输出位。作为输入位时,必须向锁存器相应位写入“1” ,该位才能作为输入。8031 中所有口锁存器在复位时均置为“1” ,如果后来在口锁存器写过“0”,在需要

2、时应写入一个“1” ,使它成为一个输入。可以用第二个实验做一下实验。先按要求编好程序并调试成功后,可将 P1 口锁存器中置“0” ,此时将P1 做输入口,会有什么结果。再来看一下延时程序的实现。现常用的有两种方法,一是用定时器中断来实现,一是用指令循环来实现。在系统时间允许的情况下可以采用后一种方法。本实验系统晶振为 6.144MHZ,则一个机器周期为 126.144us 即 10.512us。现要写一个延时 0.1s 的程序,可大致写出如下:MOV R7,#X (1)DEL1:MOV R6,#200 (2)DEL2:DJNZ R6,DEL2 (3)DJNZ R7,DEL1 (4)上面 MOV

3、、DJNZ 指令均需两个机器周期,所以每执行一条指令需要 10.256us,现求出 X 值:10.256+X(10.256+20010.256+10.256)=0.110指令(1) 指令(2) 指令(3) 指令(4)所需时间 所需时间 所需时间 所需时间X=(0.110-10.256)/(10.256+20010.256+10.256)=127D=7FH经计算得 X=127。代入上式可知实际延时时间约为 0.100215s,已经很精确了。五、实验原理图:P1 口输出实验P1 口输入实验六、实验步骤:执行程序 1(T1_1.ASM)时:P1.0P1.7 接发光二极管 L1L8。执行程序 2(T1

4、_1.ASM)时:P1.0P1.7 接平推开关 K1K8;74LS273 的 O0O7 接发光二极管L1L8;74LS273 的片选端 CS273 接 CS0(由程序所选择的入口地址而定,与 CSOCS7 相应的片选地址请查看第一部分系统资源,以后不赘述) 。 【MUT-III 实验说明书.Pdf】#define XBYTE (unsigned char volatile xdata *) 0)定义 XBYTE 为 指向 xdata 地址空间 unsigned char 数据类型的指针,指针值为 0这样,可以直接用 XBYTE0xnnnn或*(XBYTE+0xnnnn)访问外部 RAM 了。

5、(复制的)七、程序框图: 程 序 初 始 化 , 设 置P1口 寄 存 器 的 初 值为 FEH 延 时 0.1 秒 , 使 显示 稳 定 将 P1口 寄 存 器 的 数值 逐 位 左 移 1位循环点亮发光二极管程 序 初 始 化 , 设 置P1口 为 输 入 口 将 P1口 数 值 读 入 累加 器 A 将 累 加 器 A的 数 值 送到 273显 示通过发光二极管将 P1 口的状态显示八、参考程序:1、循环点亮发光二极管(T1_1.ASM)NAME T1_1 ;P1 口输出实验CSEG AT 0000HLJMP STARTCSEG AT 4100HSTART: MOV A,#0FEHLOO

6、P: RL A ; 左移一位,点亮下一个发光二极管MOV P1,ALCALL DELAY ;延时 0.1 秒JMP LOOP; DELAY: MOV R1,#127 ; 延时 0.1 秒DEL1: MOV R2,#200DEL2: DJNZ R2,DEL2DJNZ R1,DEL1RET; END2、通过发光二极管将 P1 口的状态显示(T1_2.ASM)NAME T1_2 ;P1 口输入实验OUT_PORT EQU 0CFA0HCSEG AT 0000HLJMP STARTCSEG AT 4100HSTART: MOV P1,#0FFH ;复位 P1 口为输入状态MOV A,P1 ;读 P1

7、口的状态值入累加器 AMOV DPTR,#OUT_PORT ;将输出口地址赋给地址指针 DPTRMOVX DPTR,A ;将累加器 A 的值赋给 DPTR 指向的地址JMP START ;继续循环监测端口 P1 的状态ENDC语言程序:#include void delay(void)unsigned int i;for(i=0;i#include #define Out_port XBYTE0xcfa0void delay(void)unsigned int i;for(i=0;ivoid delay(void)unsigned int i;for(i=0;i200) i = 0;七、程序框

8、图:上 电 , 程 序 初 始 化 , 设置 P1口 为 输 入 、 输 出 双线 口 ( .0、 P1.为 输入 口 , 2、 3、P14、 5为 输 出 口采 集 P1.0、 P1.输 入 口的 值 进 入 A累 加 器 ,根 据 累 加 器 A的 值 调 转 到相 应 的 子 程 序 入 口给 P1口 赋 值0FH(四 个 发光 二 极 管 全灭 ) 依 次 给 P1口 赋值 0F3H和 0FH,每 种 状 态 延 时.5秒 给 P1口 赋 值0H(四 个 发 光二 极 管 全 亮 )依 次 给 P1口 赋值 0CFH和,每 种 状态 延 时 .5秒A=0 A=01A=10 A=1实验

9、3 简单 I/O 口扩展实验一交通灯控制实验一、实验目的:1 学习在单片机系统中扩展简单 I/O 接口的方法。2 学习数据输出程序的设计方法。3 学习模拟交通灯控制的实现方法。二、实验设备:CPU 挂箱、8031CPU 模块三、实验内容:扩展实验箱上的 74LS273 做为输出口,控制八个发光二极管亮灭,模拟交通灯管理。四、实验原理:要完成本实验,首先必须了解交通路灯的亮灭规律。本实验需要用到实验箱上八个发光二极管中的六个,即红、黄、绿各两个。不妨将 L1(红)、L2(绿) 、L3(黄)做为东西方向的指示灯,将 L5(红) 、L6(绿) 、L7(黄)做为南北方向的指示灯。而交通灯的亮灭规律为:

10、初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。闪烁若干次后,再切换到东西路口方向,重复上述过程。各发光二极管的阳极通过保护电阻接到+5V 的电源上,阴极接到输入端上,因此使其点亮应使相应输入端为低电平。五、实验原理图六、实验步骤:74LS273 的输出 O0O7 接发光二极管 L1L8,74LS273 的片选 CS273 接片选信号 CSO.运行实验程序,观察 LED 显示情况是否与实验内容相

11、符。七、程序框图:八、参考程序:T3.ASMNAME T3 ;I/O 口扩展实验一PORT EQU 0CFA0H ;片选地址 CS0CSEG AT 0000HLJMP STARTCSEG AT 4100HSTART: MOV A,#11H ;两个红灯亮,黄灯、绿灯灭ACALL DISP ;调用 273 显示单元(以下雷同)ACALL DE3S ;延时 3 秒LLL: MOV A,#12H ;东西路口绿灯亮;南北路口红灯亮ACALL DISPACALL DE10S ;延时 10 秒MOV A,#10H ;东西路口绿灯灭;南北路口红灯亮 ACALL DISPMOV R2,#05H ;R2 中的值为

12、黄灯闪烁次数TTT: MOV A,#14H ;东西路口黄灯亮;南北路口红灯亮ACALL DISPACALL DE02S ;延时 0.2 秒MOV A,#10H ;东西路口黄灯灭;南北路口红灯亮ACALL DISPACALL DE02S ;延时 0.2 秒DJNZ R2,TTT ;返回 TTT,使东西路口黄灯闪烁五次MOV A,#11H ;两个红灯亮,黄灯、绿灯灭 ACALL DISPACALL DE02S ;延时 0.2 秒 MOV A,#21H ;东西路口红灯亮;南北路口绿灯亮ACALL DISPACALL DE10S ;延时 10 秒 MOV A,#01H ;东西路口红灯亮;南北路口绿灯灭

13、ACALL DISPMOV R2,#05H ;黄灯闪烁五次GGG: MOV A,#41H ;东西路口红灯亮;南北路口黄灯亮ACALL DISPACALL DE02S ;延时 0.2 秒MOV A,#01H ;东西路口红灯亮;南北路口黄灯灭ACALL DISPACALL DE02S ;延时 0.2 秒 DJNZ R2,GGG ;返回 GGG,使南北路口;黄灯闪烁五次MOV A,#03H ;两个红灯亮,黄灯、绿灯灭ACALL DISPACALL DE02S ;延时 0.2 秒 JMP LLL ;转 LLL 循环DE10S: MOV R5,#100 ;延时 10 秒JMP DE1DE3S: MOV

14、R5,#30 ;延时 3 秒JMP DE1DE02S: MOV R5,#02 ;延时 0.2 秒DE1: MOV R6,#200DE2: MOV R7,#126DE3: DJNZ R7,DE3DJNZ R6,DE2DJNZ R5,DE1RETDISP: MOV DPTR,#PORT ;273 显示单元CPL AMOVX DPTR,ARETEND、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、#include #include #define Out_port XBYTE0xcfa0void delay(unsigned int time)char i;for(;time0;time-)for(i=0;i#include #define Out_port XBYTE0xcfb0vo

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号