QX-mini51单片机学习-----(3)流水灯

目录

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讲了硬件仿真

相关推荐
Nice__J2 分钟前
Mcu架构以及原理——1.Mcu总体架构
单片机·嵌入式硬件·架构
炸膛坦客6 分钟前
单片机/C/C++八股:(二十二)数组名,以及和指针的区别(一/二维数组)
c语言·c++·单片机
熬夜有啥好7 分钟前
51 单片机常用通信协议与外设驱动基础
单片机·嵌入式硬件
计算机安禾13 分钟前
【数据结构与算法】第1篇:为什么要学习数据结构与算法?专栏导学
c语言·开发语言·c++·学习·算法·visual studio code·visual studio
sensen_kiss14 分钟前
CPT304 SoftwareEngineeringII 软件工程 2 Pt.2 面向对象概念
学习·软件工程
李白你好14 分钟前
一个综合性的Web安全学习平台
学习·安全·web安全
熬夜有啥好16 分钟前
51 单片机 GPIO 与中断系统详解
单片机·嵌入式硬件
EnglishJun17 分钟前
ARM嵌入式学习(九)--- C语言应用:点亮led
c语言·arm开发·学习
小陈phd21 分钟前
多模态大模型学习笔记(二十四)—— 核心技术篇① | 虚拟人形象生成:扩散模型与ControlNet原理
笔记·学习
jianqiang.xue39 分钟前
嵌入式软件架构设计:从分层思想到状态机实现,打造高可维护、高可移植的工程级代码
c语言·驱动开发·stm32·单片机·mcu·物联网·iot