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

相关推荐
森焱森4 小时前
水下航行器外形分类详解
c语言·单片机·算法·架构·无人机
天水幼麟4 小时前
动手学深度学习-学习笔记(总)
笔记·深度学习·学习
小殷学长7 小时前
【单片机毕业设计17-基于stm32c8t6的智能倒车监测系统】
stm32·单片机·课程设计
天水幼麟7 小时前
动手学深度学习-学习笔记【二】(基础知识)
笔记·深度学习·学习
沧海一笑-dj7 小时前
【51单片机】51单片机学习笔记-课程简介
笔记·学习·51单片机·江科大·江科大学习笔记·江科大单片机·江科大51单片机
老虎06277 小时前
JavaWeb(苍穹外卖)--学习笔记04(前端:HTML,CSS,JavaScript)
前端·javascript·css·笔记·学习·html
TESmart碲视8 小时前
HKS201-M24 大师版 8K60Hz USB 3.0 适用于 2 台 PC 1台显示器 无缝切换 KVM 切换器
单片机·嵌入式硬件·物联网·游戏·计算机外设·电脑·智能硬件
大苏打seven8 小时前
Docker学习笔记:Docker网络
笔记·学习·docker
small_wh1te_coder9 小时前
硬件嵌入式学习路线大总结(一):C语言与linux。内功心法——从入门到精通,彻底打通你的任督二脉!
linux·c语言·汇编·嵌入式硬件·算法·c
花落已飘9 小时前
STM32中实现shell控制台(shell窗口输入实现)
stm32·单片机·嵌入式硬件