51单片机入门笔记(二)

二.Keil软件使用及流水灯设计

1.建立Keil工程。

2.点亮第一个发光二极管(代码):

#include<reg52.h>
sbit led1=P2^5;
void main()
{
led1=0;
}

在keil中,编译,然后在【project】->【options for Target 'Target1' 】->【output】->选中【Create HEX File】,确定;再编译后生成HEX文件。将该HEX文件烧写入单片机中。

3.while语句(同C)

4.for语句(同C)

简单的延时语句(延时1秒):

for(i=1000;i>0;i--)

for(j=110;j>0;j--);

5.keil仿真(可精确计算延时语句的时间)

6.单片机的几个周期介绍:

1)时钟周期:也称震荡周期,定义为时钟频率的倒数,是单片机最基本、最小的时间单位。

2)状态周期:时钟周期的两倍。

3)机器周期:单片机的基本操作周期,由12个时钟周期组成。

4)指令周期:CPU执行一条指令所需要的时间。

7.不带参数的函数的写法与调用(同C)

8.带参数的函数的写法与调用(同C)

9.利用C51库函数实现流水灯(_crol_  循环左移函数;_cror_  循环右移函数)

代码:

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
void delayms(uint);
uchar initial=0xfe;
void main()
{
while(1)
{
P2=initial;
delayms(500);
initial=_crol_(initial,1);
}
}
//***************************delayms(uint)
void delayms(uint m)
{
uint i,j;
for(i=m;i>0;i--)
for(j=110;j>0;j--);
}

10.用左移实现8个LED灯从右到左一次点亮

代码:

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
void delayms(uint);
uchar initial=0xff;
void main()
{
while(1)
{
P2=initial;
delayms(500);
initial=initial<<1;
}
}
//*****************延时 函数
void delayms(uint m)
{
uint i,j;
for(i=m;i>0;i--)
for(j=110;j>0;j--);
}

 

posted @ 2017-02-25 15:39  刘建东  阅读(436)  评论(0编辑  收藏  举报