标题:
这是一个简单的单片机流水灯与蜂鸣器使用,适合于新手简单易学
[打印本页]
作者:
卢OK
时间:
2020-10-11 09:04
标题:
这是一个简单的单片机流水灯与蜂鸣器使用,适合于新手简单易学
#include <reg52.h> //引用c51头文件
#include <intrins.h> //循环移位标准函数
#define uchar unsigned char //用define对char、int变量进行宏定义
#define uint unsigned int //*宏定义后面不用加分号,因为他是预处理指令不是语句
sbit aa = P2^3; //蜂鸣器相关变量
uchar temp; //定义LED相关函数
void delay(z) //引用延时函数delay(毫秒级)
{
int x,y;
for(x = z; x > 0; x--)
for(y = 144; y > 0; y--);
//这里当for只执行下一条for语句是不用加花括号;两条以上需要花括号
}
void main() //*main函数自带循环
{
temp = 0xf; //给temp赋值十六进制0xfe,二进制位1111 1110,一次点亮四个LED灯
P1 = temp; //给P1口赋值temp
delay(100); //毫秒级延时函数,持续时间为100毫秒
while(1) //使用while循环函数,一个大循环
{
temp = _crol_(temp,1); /*循环移位函数_crol_,表示为左移循环1位,括号里的
temp左移1位赋值给括号外的temp结果为1111 1101*/
P1=temp;
aa = ~aa; //~取反值,点响蜂鸣器
delay(100); //毫秒级延时函数,持续时间为100毫秒
}
}
作者:
jdf
时间:
2020-10-12 22:27
你好 这行注释是不是有误
temp = 0xf; //给temp赋值十六进制0xfe,二进制位1111 1110,一次点亮四个LED灯
如果赋值0xfe的话应该一次只亮一个灯
这里的temp = 0xf; 是不是应该是赋值f0 1111 0000
此处f0的0是不是可以省略
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1