单片机开发设计,如何通过指针对16位数进行操作

贸泽电子设计圈 2017-09-27 15:21 次阅读

在8位单片机中没有16位数的操作指令,所有的int型数据都要通过两个字节分开操作,使用的方法不用,生成的代码也不相同,当然效率也不一样,通过指针对16位数进行操作可以得到高效的代码。

比如通过串行口接收数据,或者从串行的EEPROM中读取的数据,或者从大于8位的A/D读取的数据,由于8位单片机的数据线是8位的,高于8位的数据都要分成两个字节分别读取,然后写入到RAM中去再进行计算,或者把16位的int型数据从RAM中读出再分别把高低字节存到EEPROM或者送到D/A,或者通过串行口发送出去,方法有很多种,下面用多种方法进行实现该操作,这里只演示写入到16位的情况,读取的情况非常相似,不赘述。

(1)使用联合 (union)

typedef union{unsigned int i;unsigned char c[2];}u_int;unsigned char dH = 0x11, dL=0x22;unsigned int d;u_int ud;ud.c[0] = dH;ud.c[1] = dL;d = ud.i;此时d = 0x1122;

(2) 使用移位指令

数据定义与前面相同d = ((unsigned int)dH) 或者d = dH;d d |= dL; // or: d = d | dL; 后者编译的代码可能不是最简的

(3)使用指针

unsigned char *cptr;cptr = (unsigned char*)(&d);cptr[0] = dH;cptr[1] = dL;

(4)强制指针类型转换

*((unsigned char*)(&d)) = dH;*((unsigned char*)(&d)+1) = dL;或((unsigned char*)(&d))[0] = dH;((unsigned char*)(&d))[1] = dL;

这两种方式看似相同但由Keil编译出的代码是不用的,前都有一次加法运算,而后者没有,后者生成的代码更简洁,这种方式与用联合成生的代码是完全一样的。

在这几种方法中第(1)与第(4)的第二种生成的代码是最乘洁的,是推荐使用的,从软件工程的角度出发,推荐使用方法(1),这样没有强制类型转换,没有用到指针,更不容易出错。从书写的代码来讲,第(4)的第二种方法是最好的,代码简洁而且效率最高,但语法有点儿复杂。

热门推荐

原文标题:8位单片机操作16位INT型数据的方法你想到了几种?

文章出处:【微信号:Mouser-Community,微信公众号:贸泽电子设计圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

单片机教程(25)键盘接口程序设计

发表于 06-22 09:53 141次 阅读
单片机教程(25)键盘接口程序设计

单片机教程(24)动态扫描显示接口电路及程序

发表于 06-22 09:35 133次 阅读
单片机教程(24)动态扫描显示接口电路及程序

单片机通过I2C读取EEPROM中的数据,向EEPROM中发数据正常,但是一旦读数据就会导致单片机复位。想请问为什么?

发表于 06-22 02:58 20次 阅读
单片机通过I2C读取EEPROM中的数据,向EEPROM中发数据正常,但是一旦读数据就会导致单片机复位。想请问为什么?

单片机教程(23)LED数码管静态显示接口与编程

发表于 06-21 15:49 159次 阅读
单片机教程(23)LED数码管静态显示接口与编程

基于单片机对FPGA进行编程配置

本文实现了基于遗传算法的硬件演化过程。通过Mcu随机产生种群,选择好的基因进行交叉变异产生后代,然....

发表于 06-21 10:45 84次 阅读
基于单片机对FPGA进行编程配置

单片机教程(22)串行口通信程序设计

发表于 06-21 09:31 161次 阅读
单片机教程(22)串行口通信程序设计

单片机教程(21)串行口介绍

发表于 06-21 09:19 155次 阅读
单片机教程(21)串行口介绍

分为四部分内容来介绍RX65N目标板

打开包装可以看到开发板也有类似风格,薄薄小小的一块,但是芯片的各个管脚都引了出来,方便用户开发,不方....

的头像 瑞萨电子 发表于 06-21 09:09 399次 阅读
分为四部分内容来介绍RX65N目标板

单片机结构原理基础知识下载

本文主要介绍了单片机结构原理基础知识。

发表于 06-21 08:00 46次 阅读
单片机结构原理基础知识下载

单片机应用系统开发实例

本文主要介绍了单片机应用系统开发实例。

发表于 06-21 08:00 65次 阅读
单片机应用系统开发实例

同样的程序,为什么结果不同?

发表于 06-21 04:34 94次 阅读
同样的程序,为什么结果不同?

VKD104SB/SSOP16封装/四按键触摸感应IC,应用于电子秤,厨房秤,门禁门锁,触摸手表,智能数字电子表等,附原厂开发资料

发表于 06-20 10:20 187次 阅读
VKD104SB/SSOP16封装/四按键触摸感应IC,应用于电子秤,厨房秤,门禁门锁,触摸手表,智能数字电子表等,附原厂开发资料

如何用单片机去侦测耳机插入的原理,有具体的原理图吗?

发表于 06-20 09:19 92次 阅读
如何用单片机去侦测耳机插入的原理,有具体的原理图吗?

单片机教程(20)定时/计数器实验

发表于 06-20 09:16 194次 阅读
单片机教程(20)定时/计数器实验

SKG12AT的GPS引擎模块的详细英文数据手册免费下载

SKG12AT是一个完整的GPS引擎模块,具有超敏、超低功率和小形状因子。将GPS信号应用于模块的天....

发表于 06-20 08:00 23次 阅读
SKG12AT的GPS引擎模块的详细英文数据手册免费下载

单片机的介绍和Keil C51编译软件及Proteus ISIS仿真软件的应用概述

  从20世纪70年代中期起,微型计算机发展开始形成两大分支:一类是个人计算机,也称为PC机(Per....

发表于 06-20 08:00 42次 阅读
单片机的介绍和Keil C51编译软件及Proteus ISIS仿真软件的应用概述

输入部分电路的设计,按键部分硬件电路部分应用实例

在目前MCU应用领域里,很多场合都离不开开关信号,这些开关信号的实现都是通过按键操作实现。而传统的按....

的头像 电子工程专辑 发表于 06-19 09:03 241次 阅读
输入部分电路的设计,按键部分硬件电路部分应用实例

单片机中按键消抖程序

效率上来说,延时消抖花费时间在无意义延时上,而相对较好的定时轮询还是不可避免的在轮询,而现在这种方式....

的头像 电子工程专辑 发表于 06-19 08:55 282次 阅读
单片机中按键消抖程序

C8051F020DK单片机开发板的使用手册,软件例程和硬件原理图的概述

本文档的主要内容详细介绍的是C8051F020DK单片机开发板的使用手册,软件例程和硬件原理图的概述....

发表于 06-19 08:00 26次 阅读
C8051F020DK单片机开发板的使用手册,软件例程和硬件原理图的概述

C8051F040DK开发板全部资料软件例程,使用手册,原理图的资料概述

本文档的主要内容详细介绍的是C8051F040DK开发板全部资料软件例程,使用手册,原理图的资料概述....

发表于 06-19 08:00 22次 阅读
C8051F040DK开发板全部资料软件例程,使用手册,原理图的资料概述

C8051F330ST的单片机开发板资料和实例以及硬件原理图的详细概述

本文档的主要内容详细介绍的是C8051F330ST的单片机开发板资料和实例以及硬件原理图的详细概述。

发表于 06-19 08:00 29次 阅读
C8051F330ST的单片机开发板资料和实例以及硬件原理图的详细概述

C8051F340DK的单片机开发板详细资料概述

本文档的主要内容详细介绍的是C8051F340DK的单片机开发板的资料概述包括了:软件例程,使用手册....

发表于 06-19 08:00 19次 阅读
C8051F340DK的单片机开发板详细资料概述

C8051F350DK单片机学习板的软件例程,使用手册和原理图的资料概述

本文档的主要内容详细介绍的是C8051F350DK的软件例程,使用手册和硬件原理图的详细资料概述

发表于 06-19 08:00 24次 阅读
C8051F350DK单片机学习板的软件例程,使用手册和原理图的资料概述

AD和DA基本概念和原理和一些芯片的介绍以及ADDA转换系统设计的概述

在单片机应用系统中,需要对一些模拟信号(如电流、电流、温度、压力等)进行检测,将模拟信号转换为数字信....

发表于 06-19 08:00 60次 阅读
AD和DA基本概念和原理和一些芯片的介绍以及ADDA转换系统设计的概述

HG6型单片机实验板的原理图绘制PCB设计PCB板的输出与打印的概述

采用Protel 99软件对HG6型单片机实验板原理图进行绘制,Protel 99的原理图编辑器提供....

发表于 06-19 08:00 37次 阅读
HG6型单片机实验板的原理图绘制PCB设计PCB板的输出与打印的概述

单片机startup.a51文件标号和清零程序的内容详细解答

这里IDATALEN只是一个标号而已,和idata不是一回事!你要是愿意,这段程序里的IDATALE....

的头像 单片机精讲吴鉴鹰 发表于 06-18 17:50 124次 阅读
单片机startup.a51文件标号和清零程序的内容详细解答

GPF芯片的单片机编程开发技巧案例详细说明

我们都知道,在程序中,延时会影响单片机的实时性能,导致效率明显降低,但是在GPF这个芯片的开发中,系....

的头像 单片机精讲吴鉴鹰 发表于 06-18 16:57 187次 阅读
GPF芯片的单片机编程开发技巧案例详细说明

单片机承载着深度学习的未来

果然,TensorFlow Mobile的老大,满脑子还是便携设备的事。Pete Warden,是谷....

的头像 重庆人工智能 发表于 06-15 09:06 1164次 阅读
单片机承载着深度学习的未来

瑞萨电子技术研讨会:2009大赛B题MMC-1模块介绍

瑞萨电子在北京赛区举办一场瑞萨电子技术研讨会,本视频为瑞萨2009大赛B题MMC-1模块介绍。

的头像 Renesas视频 发表于 06-15 04:02 148次 观看
瑞萨电子技术研讨会:2009大赛B题MMC-1模块介绍

瑞萨电子技术研讨会介绍瑞萨单片机技术

瑞萨电子在北京赛区举办一场瑞萨电子技术研讨会,本视频为瑞萨单片机技术概述、2009大赛B题MMC-1....

的头像 Renesas视频 发表于 06-15 03:15 187次 观看
瑞萨电子技术研讨会介绍瑞萨单片机技术

什么是RS-485接口?RS-422与RS-485串行接口标准

RS-485的电气特性:逻辑“1”以两线间的电压差为+(2-6)V表示;逻辑“0”以两线间的电压差为....

的头像 工控帮 发表于 06-14 15:36 373次 阅读
什么是RS-485接口?RS-422与RS-485串行接口标准

8年单片机老司机带我们抢先体验RX65N开发板

设置好,单击应用,关闭该对话框,然后重新单击调试按钮进行调试。这次程序就可以保存到芯片内的闪存了。但....

的头像 瑞萨电子 发表于 06-14 08:42 1033次 阅读
8年单片机老司机带我们抢先体验RX65N开发板

介绍瑞萨16位单片机讲座性能及应用

瑞萨电子在北京赛区举办一场瑞萨电子技术研讨会,本视频为瑞萨16位单片机讲座。

的头像 Renesas视频 发表于 06-14 02:14 209次 观看
介绍瑞萨16位单片机讲座性能及应用

“Easy MCU Easy RF”电子技术研讨会

瑞萨电子在北京赛区举办一场瑞萨电子技术研讨会,本视频为题目为Easy MCU Easy RF

的头像 Renesas视频 发表于 06-14 01:16 232次 观看
“Easy MCU Easy RF”电子技术研讨会

单片机启动代码详解

启动代码通常都烧写在flash中,它是系统一上电就执行的一段程序,它运行在任何用户c代码之前。

的头像 MCU开发加油站 发表于 06-13 15:20 341次 阅读
单片机启动代码详解

单片机开发工具包括了KEIL编程软件,开发板驱动,等程序免费下载

本文档的主要内容详细介绍的是单片机的开发工具包括了KEIL编程软件,开发板驱动, 程序烧入软件,常用....

发表于 06-13 08:00 64次 阅读
单片机开发工具包括了KEIL编程软件,开发板驱动,等程序免费下载

单片机初学者的学习规划参考

单片机学习计划 无论学习什么东西,都要给自己制定明确的计划,不然,就非常容易半途而弃,因此我给自己制....

发表于 06-13 07:04 204次 阅读
单片机初学者的学习规划参考

了解 MSP430 在电表领域中的解决的问题

MSP430 在电表应用领域具有完备的解决方案

的头像 TI视频 发表于 06-13 01:32 182次 观看
了解 MSP430 在电表领域中的解决的问题

MSP430F5xx:新一代的超低功率高性能产品

MSP430f5xx系列单片机提供突破性性能和超低功率、帮助客户开发高级便携应用的全新一代产品。

的头像 TI视频 发表于 06-13 01:16 166次 观看
  MSP430F5xx:新一代的超低功率高性能产品

MSP430 单片机在医疗产品中的功能应用

MSP430 是一款超低功耗单片机,非常适合便携式产品以及便携式医疗产品的应用。设计便携式医疗产品通....

的头像 TI视频 发表于 06-13 01:14 238次 观看
MSP430 单片机在医疗产品中的功能应用

基于单片机的的自制放大模块电子称的详细资料概述

本文档的主要内容详细介绍的是基于单片机的的自制放大模块电子称的详细资料概述包括了烧写程序,和电路图,....

发表于 06-12 08:00 65次 阅读
基于单片机的的自制放大模块电子称的详细资料概述

MSP430x2xx4xx系列的性能介绍

特性:<1μA LPM3 待机模式;<1μs 0-16MHz ;零功耗 BOR;振荡器失效保护;增强....

的头像 TI视频 发表于 06-12 04:38 227次 观看
MSP430x2xx4xx系列的性能介绍

MSP430 单片机外围模块功能介绍

MSP430 单片机外围模块 - LCD [利尔达]

的头像 TI视频 发表于 06-12 04:24 224次 观看
MSP430 单片机外围模块功能介绍

分析讲述TI DC/DC 转换器TPS54620

TPS54620 是业内尺寸最小的单芯片 6A 17V 降压转换器,它具有集成 FET。 这款效率高....

的头像 TI视频 发表于 06-12 01:25 199次 观看
分析讲述TI DC/DC 转换器TPS54620

基于单片机 MSP430 电容式触摸按键分析方案

TI 基于 MSP430 微处理器的电容式触摸按键方案

的头像 TI视频 发表于 06-12 01:22 221次 观看
基于单片机 MSP430 电容式触摸按键分析方案

MSP430F149IPM单片机的详细电路图资料免费下载

MSP430F149IPM是TI公司设计生产的一款超低功耗的16位单片机。具有低电压、超低功耗;快速....

发表于 06-11 08:00 47次 阅读
MSP430F149IPM单片机的详细电路图资料免费下载

单片机仿真转换工具应用程序免费下载

单片机仿真器是指以调试单片机软件为目的而专门设计制作的一套专用的硬件装置。

发表于 06-11 08:00 45次 阅读
单片机仿真转换工具应用程序免费下载

超声波测距设计的合集包括了原理图,程序,的详细资料概述

超声波指向性强,能量消耗缓慢,在介质中传播的距离比较远,因此超声波常用于障碍物的距离测量。由于超声波....

发表于 06-11 08:00 58次 阅读
超声波测距设计的合集包括了原理图,程序,的详细资料概述

基于AVR单片机的PWM功能设计

用AVR单片机来产生正弦波信号 使用AVR定时/计数器的PWM功能设计要点 一、定时/计数器PWM设....

发表于 06-08 10:21 187次 阅读
基于AVR单片机的PWM功能设计

单片机和数字电路抗干扰措施

干扰源,指产生干扰的元件、设备或信号,用数学语言描述如下:du/dt,di/dt大的地方就是干扰源。....

的头像 单片机爱好者 发表于 06-08 10:12 345次 阅读
单片机和数字电路抗干扰措施

硬件产品的研发流程,优秀硬件工程师需要什么?

从简单的led 闪烁、数码管显示、pwm 到中断、串口通信(单片机与单片机通信,单片机与pc 机通信....

的头像 电子发烧友网 发表于 06-08 09:27 1439次 阅读
硬件产品的研发流程,优秀硬件工程师需要什么?

完全自主知识产权的先进电机控制解决方案RAMDA算法

家电中普遍采用的都是单转子类型的电机,如空调压缩机等。在普通算法的驱动下,单转子结构的电机会引发系统....

的头像 瑞萨电子 发表于 06-08 09:00 1313次 阅读
完全自主知识产权的先进电机控制解决方案RAMDA算法

根据单片机设计的仿真交通灯的详细资料概述包括了程序

本文档的主要内容介绍的是根据单片机设计的仿真交通灯的详细资料包括程序的概述

发表于 06-08 08:00 50次 阅读
根据单片机设计的仿真交通灯的详细资料概述包括了程序

基于单片机的水温控制系统设计的合集包括程序PID控制算法和参数整定

本系统设计采用基于PID算法的单片机控制来实现水温的调控。单片机控制部分采用AT89C51单片机为核....

发表于 06-08 08:00 121次 阅读
基于单片机的水温控制系统设计的合集包括程序PID控制算法和参数整定

基于单片机设计智能小车的详细资料概述

本文档的主要内容介绍的是基于单片机设计智能小车的详细资料概述包括了,测试程序,电机驱动程序,红外壁障....

发表于 06-08 08:00 82次 阅读
基于单片机设计智能小车的详细资料概述

基于单片机的22个实验详细资料概述(免费下载)

本文档的主要内容介绍的是基于单片机的22个基础实验包括了点亮一个LED灯、流水灯、数码管、蜂鸣器 静....

发表于 06-08 08:00 142次 阅读
基于单片机的22个实验详细资料概述(免费下载)

基于单片机的多路温度检测报警系统的设计的程序和虚拟串口应用程序

本文介绍的主要内容介绍了基于单片机的多路温度检测报警系统的设计的程序以及虚拟串口和串口调试助手的应用....

发表于 06-07 13:00 70次 阅读
基于单片机的多路温度检测报警系统的设计的程序和虚拟串口应用程序

基于STM32单片机的生日快乐音频播放程序设计的详细资料概述

本文的主要内容介绍的是基于STM32的生日快乐播放程序设计的详细资料概述

发表于 06-07 08:00 53次 阅读
基于STM32单片机的生日快乐音频播放程序设计的详细资料概述

基于STM32单片机的指纹识别设计的详细资料概述

本文档的主要内容介绍的是基于STM32单片机的指纹识别设计的详细资料概述包括了STM32程序和原理图....

发表于 06-07 08:00 118次 阅读
基于STM32单片机的指纹识别设计的详细资料概述

超声波测距的23篇论文的详细资料概述主要是基于单片机的

本文档的主要内容介绍的是超声波测距的23篇论文的详细资料概述

发表于 06-07 08:00 51次 阅读
超声波测距的23篇论文的详细资料概述主要是基于单片机的