当前位置:文档之家› 实验一单片机开发环境以及IO使用实验

实验一单片机开发环境以及IO使用实验

实验一 单片机开发环境以及I/O使用实验 一.实验目的
1.熟悉MCS-51系列单片机开发软件的使用
2.掌握单片机I/O口的使用
3.学习延时子程序的编写和使用
二.实验内容
1.验证性实验
(1)实验内容:
I/O口做输出口,I/O口接一个LED发光二极管,使其闪烁。

有关说明:
根据LED的单向导通性,可以用单片机的P1.0(也可以是其他I/O口)作为LED的控制端。

当P1.0输出为低电平时,LED灭,反之,LED亮。

本实验系统晶振为11.0592MHz,则一个机器周期为12/11.0592us=1.085us,为方便编写延时函数,认为一个机器周期为1us。

硬件连接:
用导线将试验箱中的P1.0与L1相连。

(硬件在实验箱的具体位置可以参照文档最后面的附图)
程序:
C语言参考程序
#include <AT89X52.H> //89S52寄存器定义头文件
/*---延时子程序(有参函数),t=n*10ms---*/
void delay(unsigned char n)
{ unsigned char i,j,k;
for(i=0;i<n;i++)
for(j=0;j<14;j++)
for(k=0;k<237;k++);
}
/*---主函数---*/
void main()
{ while(1)
{
P1_0=0; //P1.0赋值为0,LED灭
delay(100); //调用延时子程序,t=100*10ms P1_0=1; //P1.0赋值为1,LED亮
delay(100);
}
}
汇编语言参考程序
ORG 00H
AJMP START ;在首地址处放置跳转指令
;以免主程序占用中断入口地址 ORG 30H
START:CLR P1.0 ;P1.0赋值为0,LED灭
MOV R0,#100 ;R0的值决定延时时间长短 ;t=R0*10ms
LCALL DELAY ;调用延时函数
SETB P1.0 ;P1.0赋值为1,LED亮
R0,#100
MOV
LCALL DELAY ;调用延时函数
AJMP START ;无条件跳转至START,继续循环执行
/*---延时子程序,t=R0*10ms---*/
DELAY:
D1:MOV R1,#20
D2:MOV R2,#248
DJNZ R2,$
R1,D2
DJNZ
R0,D1
DJNZ
RET
END
实验现象:
可以看到LED1大致亮1s后灭1s,如此循环。

(2)实验内容:
I/O口做输入口,一个I/O口接一个拨动开关,另一个I/O口接一个LED 发光二极管,单片机读取开关的状态并通过LED显示出来。

有关说明:P0口是一组漏极开路型双向I/O口,也即地址/数据总线复用口。

对端口写“1”可作为高阻抗输入端用。

硬件连接:
用导线将试验箱中的P1.0与LED发光二极管L1相连,P0.0与拨动开关K1相连。

程序:
C语言参考程序
#include <AT89X52.H> //89S52寄存器定义头文件void main()
{
while(1)
{ P0=0xff; //对端口写"1",作为高阻抗输入端用
if(P0_0) //判断P0.0是否为高电平
{P1_0=0;}
else //如果P0.0不是高电平,则执行后面的语句
{P1_0=1;}
}
}
汇编语言参考程序
ORG 00H
LJMP MAIN
ORG 30H
MAIN:JB P0.0,DEL ;识别按键是否闭合
SETB P1.0
MAIN
LJMP
DEL:CLR P1.0
LJMP MAIN
END
实验现象:
可以看到LED1的状态和开关1的状态一致。

2.设计性实验
实验内容:
模拟舞台灯光控制实验
具体要求:
具体要求为P0.0和P0.1口连接两路拨动开关,P1口连接8路LED。

不同的开光状态控制LED进行流水灯、闪烁等,从而达到模拟舞台炫耀灯光控制的目的。

当P0.1和P0.0的状态为00时,8路LED从右至左流水点亮,具体循环顺序为:L1ÆL2ÆL3ÆL4ÆL5ÆL6ÆL7ÆL8ÆL1,如此重复循环;当P0.1和P0.0的状态为01时,8路LED从左至右流水点亮,具体循环顺序为:
L8ÆL7ÆL6ÆL5ÆL4ÆL3ÆL2ÆL1ÆL8,如此重复循环;当P0.1和P0.0的状态为10时,8路LED交替闪烁,具体循环顺序为:L1、L3、L5、L7ÆL2、L4、L6、L8Æ L1、L3、L5、L7,如此重复循环下去;当P0.0和P0.1的状态为11时,8路LED一起闪烁,具体循环顺序为:全灭Æ全亮Æ全灭,如此重复下去。

硬件连接:用导线将实验箱中的P0.0与开关K1相连,P0.1与开关K2相连,P1.0~P1.7分别与LED发光二极管L1~L8相连。

三.实验要求
对于验证性实验可以根据所给的程序进行验证(C语言或汇编语言都可),按照所给要求进行硬件连接,最后观察程序运行结果。

对于设计性实验,各位同学可以结合前面两个验证性实验的程序进行扩展,最终按照要求独立完成设计性实验。

附图:实验所需硬件在实验箱的位置分布。

相关主题