单片机实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

姓名:钟林春班级: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;

while(x--) for(i=0;i<120;i++);

}

//主程序

void main()

{

P0=0xff;

P1=0xff;

while(1)

{

LED1=K1;

相关文档
最新文档