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

相关推荐
sensen_kiss4 小时前
CAN302 Technologies for E-Commerce 电子商务技术 Pt.6 市场营销与SEO(搜索引擎优化)
android·学习·搜索引擎
我的xiaodoujiao4 小时前
API 接口自动化测试详细图文教程学习系列9--Requests模块
python·学习·测试工具·pytest
Ar-Sr-Na4 小时前
STM32现代化AI开发指南-VSCode环境配置(macOS)
c语言·人工智能·vscode·stm32·嵌入式硬件·硬件工程
乐园游梦记4 小时前
机器学习:监督学习与无监督学习由浅入深全解析
人工智能·深度学习·学习·机器学习
woai33644 小时前
JVM学习-基础篇-常见引用
jvm·学习
世人万千丶4 小时前
Flutter 框架跨平台鸿蒙开发 - 家庭健康档案云应用
学习·flutter·华为·开源·harmonyos·鸿蒙
进击的小头4 小时前
第6篇:嵌入式芯片算力核心来源:多级流水线架构与指令并行机制详解
单片机·嵌入式硬件·架构
jacklood4 小时前
煤矿用甲烷报警仪的性能试验具体方法
单片机·嵌入式硬件·煤矿电子
東雪木5 小时前
Java学习——泛型基础:泛型的核心作用、泛型类 / 方法 / 接口的定义
java·学习·java面试
東雪木5 小时前
Java学习——内部类(成员内部类、静态内部类、局部内部类、匿名内部类)的用法与底层实现
java·开发语言·学习·java面试