单片机开发板使用说明书资料.doc
文本预览下载声明
使用说明书
目 录
实验一 流水灯实验 1
实验二 键盘处理程序的设计 3
实验三 数码管显示程序设计 5
实验四 脉冲计数实验 8
实验五 单片机串口通信程序设计 10
实验六 模拟交通灯实验 13
实验七 A/D转换实验 17
实验八 D/A转换实验 20
实验九 矩阵式键盘接口技术实验 23
实验十 开关量输出接口实验 29
实验十一 步进电机控制实验 31
实验十二 单片机与PC机的通信实验 34
实验十三 8255A并行I/O端口扩充键盘实验 37
实验十四 字符型液晶显示实验(SMC1602A) 39
实验十五 温度传感器DS18B20实验 47
实验十六 LCD12864液晶显示实验(KS0108) 53
实验十七 继电器控制实验 62
实验十八 单片机播放音乐实验 64
实验一 流水灯实验
一、 实验目的与要求
认识AT89系列单片机的硬件电路;
学习延时子程序的编写和使用;
学习循环左移或右移指令的使用;
学习单片机程序烧录的基本过程和操作;
了解单片机的开发过程;
二、 实验设备
计算机
编程器
目标板
单片机AT89S51
三、 实验原理电路
由于P1口内部已有上拉电阻,在使用时不需要外接上拉电阻。如果用P1口控制发光二极管的阴极,则可以不需要驱动电路,直接由限流电阻控制发光二极管的亮度。
实验电路如下:
四、 实验内容与步骤
编写程序,使LED1——LED8顺序点亮;
编写源程序并下装到AT89S51单片机,观察发光二极管的点亮效果;
改变延时时间常数,重复上述步骤。
五、 实验报告要求
计算上图中单片机的振荡周期及机器周期;
列出程序清单;
参考程序:
#includereg52.h
#define uint unsigned int
#define uchar unsigned char
void delayms(uint xms)
{
uint i,j;
for(i=xms;i0;i--)
for(j=110;j0;j--);
}
void main()
{
uchar a1,a2;
a1=0x0fe;
a2=1;
while(1)
{
P1=a1;
delayms(1000);
a1=a11;
a1++;
a2++;
if(a2==9)
{
a2=1;
a1=0xfe;
}
}
}
实验二 键盘处理程序的设计
一、 实验目的与要求
了解矩阵式键盘的结构及驱动程序的编写方法;
学习应用查询法和中断法实现键盘的处理;
二、 实验设备
计算机
编程器
目标板
单片机AT89S51
三、 实验原理电路
实验电路如下图所示。
目标板上仅有两个按键S1和S2,分别接到P3.6和P3.7引脚。在处理按键时,采用查询方式判断是否有键按下,并进行按键消抖处理。(若将S1、S2接在外部中断0和外部中断1引脚上,则可以采用中断方式)
四、 实验内容与步骤
按下S1键时,按LED1——LED8的顺序逐一点亮发光二极管;
按下S2键时,按LED8——LED1的顺序逐一点亮发光二极管;
五、 实验报告要求
画出程序流程图;
列出程序清单;
参考程序:
#includereg52.h
#define uint unsigned int
#define uchar unsigned char
sbit s1=P3^6;
sbit s2=P3^7;
void delayms(uint xms)
{ uint i,j;
for(i=xms;i0;i--)
for(j=110;j0;j--);
}
void main()
{
uchar a1,a2,a3,a4;
a1=0x0fe;
a2=a4=1;
a3=0x7f;
while(1)
{
if(s1==0)
{
delayms(10);
if(s1==0)
{
P1=a1;
delayms(1000);
a1=a11;
a1++;
a2++;
if(a2==9)
{
a2=1;
a1=0xfe;
}
}
}
if(s2==0)
{
delayms(10);
if(s2==0)
{
P1=a3;
delayms(1000);
a3=a31;
a3=a3+128;
a4++;
if(a4==9)
{ a4=1;
a3=0x7f;
}
}
}
}
}
实验三 数码管显示程序设计
一、
显示全部