-
单片机常用宏
单片机常用宏
以前学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
-
简单的按键控制两位动态数码管
从99到0循环,按一次减一,比较简单,适合新手学习
- 2022-09-27 07:35:02下载
- 积分:1
-
单片机动态数码管显示代码
数码管显示5211314.表白小神奇,利用74LS138译码器和单片机。稍微会一点儿单片机的就可以上手了。
- 2022-12-13 11:25:08下载
- 积分:1
-
C8051F350协议收发程序
本程序实现C8051F350的一帧数据的收发,通过SP485E与PC通信。能实现五个功能:(1)停 止发送;(2)单次采样;(3)多次采样、(4)更改波特率;(5)偏移校正。
使用外部参考电压:2.5V
内部晶振:24.5M
AD输入使用AIN0
有CRC校验
- 2022-05-10 22:51:57下载
- 积分:1
-
Microchip公司实现的SAE J1939协议栈代码
Microchip公司实现的SAE J1939协议栈代码,有多个简单案例,对初学者有极大帮助,可供大家参考。
- 2022-04-25 13:45:59下载
- 积分:1
-
基于单片机智能密码锁设计
本项目基于keil4进行单片机智能锁的开发,能够很好的实现开锁,改密码,重载,关闭,报警等功能。同时自主开发了IIC的通信模式,保证了掉电也能存储数据。
- 2023-03-17 19:25:04下载
- 积分:1
-
AT89S52单片机 DS18B20 1602组成的带温度补偿超声波测距仪资料
AT89S52单片机 DS18B20 1602组成的带温度补偿超声波测距仪的完整资料,可直接使用。
- 2022-01-27 16:49:40下载
- 积分:1
-
STM32检测18B20测的温度
这个代码里面的思想挺好的,可以借鉴一下,我在这个代码中学到的东西很多,包括中断的配置,定时器等。需要的可以看看
- 2023-07-07 12:00:03下载
- 积分:1
-
基于8*8*8光立方的手机蓝牙控贪食蛇
光立方是一个采用8*8*8模式的立方体,主要分为三个个模块:LED显示模块,驱动模块,主控模块。LED显示模块采用引脚式蓝色LED灯,一共八层,每层八列,且层共阴;驱动部分是采用74HC573和ULN2803两种芯片分别控制LED灯的阳极和阴极;主控模块是采用12C5A60S2单片机为主控芯片。外加一个HC_05的蓝牙模块,以此来实现设计要求。
- 2022-02-27 08:59:24下载
- 积分:1
-
基于51单片机和TLC2543的温度测量以及电压测量装置
基于51单片机和TLC2543的温度测量以及电压测量装置
- 2022-03-15 04:14:40下载
- 积分:1