-
单片机常用宏
单片机常用宏
以前学51单片机的时候每次要配置寄存器的时候,虽然都知道看着器件手册去写,但是我还是觉得很痛苦,后来就有了这些宏,阅读起来会直观一点,不过敲的代码也得多一点,我后来写的代码都是用这些宏来封装寄存器操作的。
#ifndef MACRO_FUNCTION
#define MACRO_FUNCTION
//这个头文件里定义了一些宏定义,方便使用
/*********************************************************************************
* AssignBit / AssignFlag
*说明:
* 这个宏用来得到一个变量的某个或某几个位被赋值后的值
*参数:
* type 参数flag的类型
* flag 要赋值的变量
* which_bit
* 标明flag的哪几个位要被赋值
* val 表示要赋给flag的那几个位的值
*注意:
* 1. 对于宏,其参数不要用++i;之类的表达式!也不要直接使用调用函数得到的返回值!
* 2. 如果type是寄存器,那么它必须是可读的
*示例:
* u8 a = 0xf0;
* AssignBit(u8, a, BIT4 | BIT0, BIT0);
* 执行完后,a == 0xe1;
*备注:
* 1. 效率上, 如果参数(除flag外)都是常量, 编译器会自动优化, 如果参数是变量, 就算手动写代码也是这个样子的
* 2. (which_bit) 括号是为了保证 AssignBit(flag, BIT0 | BIT1, 0)之类的用法不会出错
- 2022-07-22 02:46:37下载
- 积分:1
-
c# 单片机与工控软件(力控)通讯
单片机获取数据,通过串口发送给计算机,计算机通过串口读取数据写入三维力控数据库变量里。通过调用三维力控的ADO组件完成通讯
- 2022-03-07 03:29:10下载
- 积分:1
-
基于单片机的电子万年历设计
基于单片机的电子万年历设计基于单片机的电子万年历设计基于单片机的电子万年历设计基于单片机的电子万年历设计基于单片机的电子万年历设计基于单片机的电子万年历设计基于单片机的电子万年历设计基于单片机的电子万年历设计
- 2022-06-26 22:34:02下载
- 积分:1
-
电机PID控制源码
关于速度的位置式和增量式PID闭环控制代码,基于STM32 对做平衡车的有一定的借鉴价值
- 2022-03-12 02:41:24下载
- 积分:1
-
基于STM32的红外触摸屏程序源代码
基于STM32的触摸屏源代码,适合搞单片机开发者使用,经过测试,可以使用
- 2022-09-13 12:05:03下载
- 积分:1
-
STM32单片机的应用实践开发
基于单片机的实践开发项目,分享数码管等
- 2023-07-04 02:00:04下载
- 积分:1
-
基于51单片机和TLC2543的温度测量以及电压测量装置
基于51单片机和TLC2543的温度测量以及电压测量装置
- 2022-03-15 04:14:40下载
- 积分:1
-
C51的GPS程序
实现GPS的经纬度读取 并用1602实时显示
- 2023-05-14 12:55:03下载
- 积分:1
-
NRF24LE1单片机收发程序
nRF24L01无线模块实现6个通道接收数据有几点需要注意:
(1)EN_AA和EN_RXADDR寄存器的设置,要让所有通道接收数据允许和自动应答,都设置为0x3f;
(2)RX_PW_PX(X表示第几通道)寄存器,设置接收数据的数据长度,最大是32字节,默认好像是0;
(3)写接收通道地址,P0和P1通道是40位的地址,但是P2到P5只有8位地址,他们的高32位地址与P1通道相同,因此只要写一个字节地址就可以;
(4)特别要注意的是写接收通道地址的时候是先写低位地址,切记切记。
注意上面的几点,一般就没太大的问题,祝大家顺利调通nRF24L01无线模块。
- 2022-04-25 12:41:08下载
- 积分:1
-
基于51单片机的温度采集系统
采用STC89C52做主控,温度传感器18B20进行实现温度采集,液晶1602实时显示采集的温度,程序采用了模块化,延迟函数,显示函数独立,移植方便
- 2022-04-01 14:12:29下载
- 积分:1