单片机自学笔记之流水灯
扫描二维码
随时随地手机看文章
#include<reg52.h> //52系列单片机头文件
#include<intrins.h> //C51库自带头文件
#define uchar unsigned char //宏定义无符号字符型为uchar
#define uint unsigned int //宏定义无符号整型为uint
void delay(uint z); //声明延时函数
uchar aa; //定义无符号变量
void main() //主函数
{
aa=0xfe; //给变量赋初值
while(1) //大循环,无限循环
{
P1=aa; //给P1口赋值1010 1010
delay(500); //调用延时子函数延时500毫秒
aa=_crol_(aa,1);//调用intrins.h中的循环左移函数
}
}
void delay(uint z) //带参数延时子函数,延时z毫秒
{
uint x,y; //定义局部变量,局部变量只在此子函数范围内有效,退出子函数时,变量空间自动释放
for(x=z;x>0;x--) //双重for循环语句
for(y=110;y>0;y--); //利用循环语句实现CPU延时,占用CPU
}
/*
intrins.h头文件描述:
内部函数 描述
_crol_ 字符循环左移
_cror_ 字符循环右移
_irol_ 整数循环左移
_iror_ 整数循环右移
_lrol_ 长整数循环左移
_lror_ 长整数循环右移
_nop_ 空操作8051 NOP 指令
_testbit_ 测试并清零位8051 JBC 指令
*/