整型数据转换二进制数据的技巧知识点:
该技巧比较适合应用在51单片机寄存器的配置方面;减少了我们的计算量。
思路——>我们比较习惯直接的整型数据;当我们需要配置寄存器,这时能不能直接利用该数据作为我们配置寄存器的数据呢?这过程需要将数据转换,例如将一个int 型 11110111 转换成 0xf7 该如何做到呢?
此时可以利用到##在C语言中的粘合作用,具体百度。
一, #define Bin(n) LongToBin(0x##n##l) //注意该处l是L的小写,而不是1。
此时使用时11110111则变为十六进制的0x11110111 而在此之前应先定义LongToBin(n)
二, #define LongToBin(n) \
( \
( ( n>>21) & 0x80 )|\
((n >> 18) & 0x40) | \
((n >> 15) & 0x20) | \
((n >> 12) & 0x10) | \
((n >> 9) & 0x08) | \
((n >> 6) & 0x04) | \
((n >> 3) & 0x02) | \
((n ) & 0x01) \
)
关键字:51单片机 寄存器配置
引用地址:
51单片机寄存器配置小技巧
推荐阅读最新更新时间:2024-03-16 16:16
51单片机之IO口扩展
我们都知道通信从大的方面有两种:串行和并行。串行的最大优点是占用总线少,但是传输速率低;并行恰恰相反,占用总线多,传输速率高。市面上有很多这样的芯片,有串入并出的(通俗讲就是 一个一个进,最后一块出来),有并入串出的(相对前者而言)。具体用哪种类型要根据我们得实际情况。比如利用单片机显示数码管单纯的显示一个数码管如果仅仅是为了显示 那么动用单片机一个端口(如P0或P1/P2/P3)那没有什么,当然这里我说的数码管是8段的(如果利用BCD类型 16进制数码管那么只需四个即可)就拿51类型的单片机来说,总共32个I/O口,一般如果不是做太大的工程是完全够用的,但有些时候你会恨单片机怎么不多长几条“腿”,怎么省还是不够用。这个时候就需要
[单片机]
基于89C51单片机的节拍器方案设计
1 硬件电路原理 节拍器以AT89C51 单片机为控制中心,由LED 显示模块、调节键盘模块、声音输出模块组成。图1 是节拍器的电路原理图。ATMEL 公司生产的AT89C51 单片机与MCS51指令系统兼容,40 脚结构,是系统的控制中心。显示模块由四位一体的共阳极蓝色LED 显示器构成,采用动态扫描显示方式, Q11~ Q14是LED 的位选择开关三极管, R6~ R13是数码管段发光二极管的限流电阻。四位一体的LED 数码管完成显示节拍数、各功能代码及参数值的功能。键盘调节模块由4 只按键构成,分别是功能选择键A、设置参数选择键B、参数增加键C和参数减少键D ,4 只按键可以完成各种功能的选择和各参数的设置。
[单片机]
51单片机中用中断方式实现串口数据发送与接收
/* Description:用中断方式实现串口数据发送 Author:Jcy Date:2012-5-2 */ #include reg52.h #define uint unsigned int #define uchar unsigned char uchar receive_ser; //串口接收到的数据 uchar flag=0; uchar receivebuf = Jcy ; uchar i=0; uchar j; void init_ser() { TMOD=0X20;//定时器1工作在方式2 TH1=0XFD; TL1=0XFD; //波特率9600,51单片机大多用这个 TR
[单片机]
51单片机的AD/DA转换
一、A/D(模数)、D/A(数模)转换 (一)、引脚 AOUT:模拟输出 Vref:参考电压 AGND:模拟地 EXT:接地 OSC:悬空 SCL,SDA:IIC AIN0、AIN1、AIN2:模拟输入口 (二)、电路图 从电路图可以看出,A0,A1,A2接地,所以当写入的时候地址应该是0X90,读取的时候应该是0X91 (三)、AGND和DGND 模拟地和数字地隔离开,消除干扰 (四)、控制字节 (五)、AD读数据函数 #include reg52.h #include delay.h #include iic.h #define SUCC 1 #define FAIL 0 unsigned char
[单片机]
51单片机程序及调试步骤实战经验
我刚参加工作的时候,用的是stc 51单片机的,51单片机不像stm32那样可以通过st-link在keil上面在线仿真。 有时候出现bug的时候,非常难找问题,要一段一段屏蔽然后测试。 在刚开始接触开发的时候,我非常不习惯用在线仿真,大概是因为没用过。 记得有一次进了一家公司做行车记录仪,用的台产GRAIN的单片机。 那时候基本上没什么资料,就一个dada sheet和demo程序。 在开发之前,老大安排了给我一个任务,就是把这个仿真环境先给搭起来。 相当于是他们原厂没有的东西,让我去搞定,这个芯片是基于Fa626TE core的32位控制器。 网上的资料太少了,光是测试搭建这个环境花了半个多月,最后还没搭建出来。
[单片机]
51单片机控制硬盘的程序
/******************************************************************* * 硬盘控制源程序 * * 编译环境 : KEIL C51 V7.07 支持器件 : AT89C51 * * COPYRIGHT (C) 2004 * /*******************************************************************/ ///////////////////预处理///////////////////////////
[单片机]
51单片机自学笔记(五)——蜂鸣器
蜂鸣器 蜂鸣器的结构原理 (1)压电式蜂鸣器:压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。 多谐振荡器由晶体管或集成电路构成。当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出100—500HZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。 压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化 处理后,再与黄铜片或不锈钢片粘在一起。 (2)电磁式蜂鸣器:电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。 接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁
[单片机]
8051单片机中DPTR的扩展设计
摘要 首先对比分析在执行大规模数据转移时,传统8051单片机和进行DPTR扩展后的8051单片机在数据转移执行效率上的差别。通过详细分析DPTR操作所涉及的因素,具体实现对DPTR的扩展,并进行实际仿真测试。 关键词 8051单片机 DPTR 数据转移执行效率 单片机的出现是计算机技术发展史上的一个里程碑,它使计算机从海量数值计算进入到控制领域。在单片机中,以8051系列最为经典,至今仍是最普及、广泛使用的8位MCU架构。业界许多技术人员在其基础上不断进行性能扩展,使得8051系列芯片不断完善,从而形成一个庞大的体系。在传统的 8051 系列单片机中,设置了一组双字节寄存器(数据指针DPTR),用于访问外接的64 KB数据
[工业控制]