目录
1宏定义
2函数的定义
3延时函数
4标准库函数中的循环移位函数
5循环移位函数与左移和右移运算符的区别
6实例
7keil中DeBug的用法
1宏定义
是预处理语句不需要分号
#define uchar unsigned char//此时uchar代替unsigned char
typedef是关键字
后面是接分号
typedef 已有数据类型 新的定义 ;
2函数的定义
c语言里面学过,跳过
3延时函数
通过软件延时,耗费cpu时间
cs
void Delay(unsigned int x) //@12.000MHz
{
while(x--)//循环里面是延迟1毫秒的时间
{
unsigned char i, j;
i = 12;
j = 169;
do
{
while (--j);
} while (--i);
}
}
4标准库函数中的循环移位函数
标准库函数intrins.h
字符型循环左移:crol
字符型循环右移:cror
cs
#include<intrins.h>
void test_crol (void){
unsigned char a;
unsigned char b;
a=0xfe;//1111 1110
b=_crol_(a,1);//b=0xfd 1111 1101 最高位的1来到最低位
5循环移位函数与左移和右移运算符的区别
cs
a=0xfe;//1111 1110
b=a<<1;//0xfc 1111 1100
区别是移位函数是最高位补到最低位,而位移运算符是补零
6实例
为了串口通信更精准,晶振使用11.0592
cs
#include<reg51.h>
#include<intrins.h>
#define unint unsigned int
#define unchar unsigned char
unchar temp;
void Delay(unint x) //@12.000MHz
{
unchar i, j;
while(x--)//循环里面是延迟1毫秒的时间
{
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
}
}
void main()
{
temp=0xfe;
P1=temp;
while(1)
{
temp=_crol_(temp,1);
P1=temp;
Delay(100);
}
}
7keil中DeBug的用法
视频7讲了硬件仿真