1 / 24
文档名称:

单片机实验报告.doc

格式:doc   大小:258KB   页数:24页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

单片机实验报告.doc

上传人:一花一世 2018/1/24 文件大小:258 KB

下载得到文件列表

单片机实验报告.doc

相关文档

文档介绍

文档介绍:






姓名: 钟林春
班级: 0801205
学号: 2012212963
任课教师: 张开碧
上课地点: S411
实验一流水灯实验
一、实验目的及要求
1、闪烁的LED;
2、从左到右的流水灯;
3、8只LED左右来回点亮;
4、LED模拟交通灯。
要求1:LED按设定的时间间隔闪烁
要求2:接在P0口的8个LED从左到右循环依次点亮,产生走马灯效果
要求3:程序利用循环移位函数_crol_和_cror_形成来回滚动的效果;
二、实验原理
电路图1、
电路图2、

三、源程序
要求1:
#include<>
#define uchar unsigned char
#define uint unsigned int
sbit LED=P1^0;
//延时
void DelayMS(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<120;i++);
}
}
//主程序
void main()
{
while(1)
{
LED=~LED;
DelayMS(150);
}
}
要求2:
#include <>
#include <> //包含程序中的_cror_(P0,y)
#define uchar unsigned char
#define uint unsigned int
uchar led;
void delay(unsigned int i)
{
uint j;
uchar k;
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
void main()
{ led=0x7f;//只亮第一个
delay(1000);
while(1)
{ P0=led;
delay(500);
led=_cror_(led,1); //P0逐步右移一位。
}
}
要求3:
#include <>
#include <> //包含程序中的_crol_(P0,y)
#define uchar unsigned char
#define uint unsigned int
sbit led=P0^0;
uchar i;
void delay(unsigned int i)
{
uint j;
uchar k;
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
void main()
{ P0=0xfe;
delay(1000);
while(1)
{
for(i=0;i<8;i++)
{P0=led;
delay(500);
led=_crol_(led,1); //P0逐步左移一位。
}
for(i=0;i<8;i++)
{P0=led;
delay(500);
led=_cror_(led,1); //P0逐步右移一位
}
}
}

实验二独立键盘实验
一、实验目的
1、K1-K4 按键状态显示;
2、K1-K4 控制LED移位;
3、单只数码管循环显示0~9;
4、K1-K4 控制数码管移位显示。
要求1:K1、K2按下时LED点亮,松开时熄灭,K3、K4按下并释放时LED点亮,
再次按下并释放时熄灭;
要求2: 按下K1时,P0口LED上移一位;
按下K2时,P0口LED下移一位;
按下K3时,P2口LED上移一位;
按下K4时,P2口LED下移一位;
要求3:主程序中的循环语句反复将0~9的段码送至P0口,使数字0~9循环显示;
要求4:按下K1时加1计数并增加显示位,
按下K2时减1计数并减少显示位,
按下K3时清零
二、实验原理
电路图1、电路图2、
电路图3、电路图4、
三、源程序
要求1:
#include<>
#define uchar unsigned char
#define uint unsigned int
sbit LED1=P0^0;
sbit LED2=P0^1;
sbit LED3=P0^2;
sbit LED4=P0^3;
sbit K1=P1^0;
sbitK2=P1^1;
sbit K3=P1^2;
sbit K4=P1^3;
//延时
voidDelayMS(uint x)
{
uchar i;
whi