单片机开发设计,如何通过指针对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,微信公众号:贸泽电子设计圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

单片机控制继电器原理是怎样的?

单片机是一个弱电器件,一般情况下它们大都工作在5V甚至更低.驱动电流在mA级以下.而要把它用于一些大....

的头像 玩转单片机 发表于 10-20 11:43 98次 阅读
单片机控制继电器原理是怎样的?

详解单片机里面的中断优先级

在讲中断产生背景的时候,我们仅仅讲了看电视和烧水的例子,但是实际生活当中还有更复杂的,比如我正在看电....

发表于 10-20 09:57 18次 阅读
详解单片机里面的中断优先级

电平转换电路

想做一个电平转换电路,将0和3.3v的单片机信号转化成可以驱动某芯片的电压信号5-18v,比如0转换化成5-8伏可调,3.3转化成10-12可...

发表于 10-19 17:18 13次 阅读
电平转换电路

单片机的选型及应用系统的设计过程

本章介绍了单片机的选型及应用系统的设计过程。通过一个综合实例,完整地介绍了89C51与外围电路的硬件....

发表于 10-19 17:18 30次 阅读
单片机的选型及应用系统的设计过程

单片机实训之水温控制系统和电子万年历及电子显示屏设计的资料概述

本文档的主要内容详细介绍的是单片机综合实训包括了:水温控制系统设计,用8×8点阵显示器制作电子显示屏....

发表于 10-19 17:18 27次 阅读
单片机实训之水温控制系统和电子万年历及电子显示屏设计的资料概述

单片机的结构与原理是怎样的和单片机的简单应用概述

本文档的主要内容详细介绍的是单片机的结构与原理是怎样的和单片机的简单应用概述目的是:了解单片机的内部....

发表于 10-19 17:18 25次 阅读
单片机的结构与原理是怎样的和单片机的简单应用概述

请问单片机晶振电路16M的1脚和3脚的电压值一般为多少呢?

我想请问一下,32单片机供电电压为3.0V,正常工作过程中,贴片晶振16M的1脚和3脚的电压值一般为多少呢?...

发表于 10-19 17:15 15次 阅读
请问单片机晶振电路16M的1脚和3脚的电压值一般为多少呢?

单片机教程之汇编语言程序设计的详细资料讲解

本文档的主要内容详细介绍的是单片机教程之汇编语言程序设计的详细资料讲解内容包括了:1 汇编语言程序设....

发表于 10-19 16:51 22次 阅读
单片机教程之汇编语言程序设计的详细资料讲解

什么叫单片机?单片机原理及接口技术的详细资料概述免费下载

本文档的主要主要内容详细介绍的是什么叫单片机?单片机原理及接口技术的详细资料概述免费下载。包括了:1....

发表于 10-19 16:51 24次 阅读
什么叫单片机?单片机原理及接口技术的详细资料概述免费下载

基于单片机和SG3525的程控开关电源设计与实现

引言 直流稳压电源是一种常见的电子仪器,其广泛应用于实验教学和科学研究等领域。目前使用的直流稳压电源大部分存在诸多缺点...

发表于 10-19 16:44 24次 阅读
基于单片机和SG3525的程控开关电源设计与实现

基于单片机和SG3525的智能充电电源设计

1、引言 蓄电池作为储能电源已广泛应用于各个行业,但目前成品化蓄电池充电电源的充电方式单一,大部分只有两级充电模式,有的...

发表于 10-19 16:40 38次 阅读
基于单片机和SG3525的智能充电电源设计

基于STM32的多路电压采集的设计与实现

1.引言 近年来,数据采集及其应用受到了人们越来越广泛的关注,数据采集系统也有了迅速的发展,它可以广泛的应用于各种领域。...

发表于 10-19 16:27 33次 阅读
基于STM32的多路电压采集的设计与实现

如何写出高效优美的单片机C语言代码

将比较慢的顺序查找法用较快的二分查找或乱序查找法代替,插入排序或冒泡排序法用快速排序、合并排序或根排....

的头像 单片机精讲吴鉴鹰 发表于 10-19 15:55 153次 阅读
如何写出高效优美的单片机C语言代码

产品设计工程师,为何要了解当前单片机攻击最新技术?

单片机一般都有内部ROM/EEPROM/FLASH供用户存放程序。为了防止未经授权访问或拷贝单片机的机内程序,大部分单片机...

发表于 10-19 15:44 165次 阅读
产品设计工程师,为何要了解当前单片机攻击最新技术?

AVR和C51以PIC单片机有什么区别?详细资料比较

 八位单片机由于内部构造简单,体积小,成本低廉,在一些较简单的控制器中应用很广。即便到了本世纪,在单....

发表于 10-19 11:12 28次 阅读
AVR和C51以PIC单片机有什么区别?详细资料比较

如何使用Proteus软件来进行单片机仿真教学?

本文分析了传统的单片机教学中存在的诸多问题, 提出了用Proteus软件来进行单片机仿真教学的观点。....

发表于 10-19 10:06 20次 阅读
如何使用Proteus软件来进行单片机仿真教学?

如何使用80C51单片机处理智能小车的数据详细资料分析

汽车行业的发展越来越迅速,而智能小车的相关研究也越来越多,实际生活中智能小车可以代替人类完成一些工作....

发表于 10-19 10:06 26次 阅读
如何使用80C51单片机处理智能小车的数据详细资料分析

简介郭天祥及人物经历

郭天祥1983年出生于新疆伊宁,曾就读于哈尔滨工程大学,后接触单片机,已成为单片机领域的知名人士。名....

发表于 10-19 08:32 53次 阅读
简介郭天祥及人物经历

初学者必备单片机典型实例包含keil的源代码和protues仿真图

本文档的主要内容详细介绍的是初学者必备单片机典型实例包含keil的源代码+protues仿真图内容包....

发表于 10-19 08:00 16次 阅读
初学者必备单片机典型实例包含keil的源代码和protues仿真图

80C51单片机实用教程资料合集免费下载

本文档的主要内容详细介绍的是80C51单片机实用教程资料合集免费下载内容包括了:微型计算机系统基本知....

发表于 10-19 08:00 25次 阅读
80C51单片机实用教程资料合集免费下载

100个51单片机编程实例源代码详细资料免费下载

本文档的主要内容详细介绍的是100个51单片机编程实例源码详细资料免费下载。包括了:用单片机控制第一....

发表于 10-19 08:00 38次 阅读
100个51单片机编程实例源代码详细资料免费下载

基于8051和Proteus仿真的68个单片机C语言程序设计实例资料免费下载

本文档的主要内容详细介绍的是基于8051和Proteus仿真的单片机C语言程序设计实例100个案例免....

发表于 10-19 08:00 15次 阅读
基于8051和Proteus仿真的68个单片机C语言程序设计实例资料免费下载

16位单片机UPD79F9211的详细数据和使用手册免费下载

μPD79F9211是一个16位单片机,它使用78K0R的CPU内核,并包括外围功能,如ROM/RA....

发表于 10-19 08:00 21次 阅读
16位单片机UPD79F9211的详细数据和使用手册免费下载

单片机开发流程及开发环境及单片机二十个实训项目的详细资料概述

对于初学者来说,熟悉开发流程和开发环境是进入单片机精彩世界的必要条件。才能条理清晰的,逐步的根据本实....

发表于 10-19 08:00 24次 阅读
单片机开发流程及开发环境及单片机二十个实训项目的详细资料概述

单片机发中文短信对汉字的处理

即将完成单片机收发中文短信 单片机发送短信的项目,前后快半年了! 假如,现在要发送一条短信,资料如下: 短信中心号码: +8...

发表于 10-19 05:39 44次 阅读
单片机发中文短信对汉字的处理

【GD32330C-START开发板试用体验】温湿度自动检测与调控

近期家人生病, 忙于求医照料, 这几天抽了点时间做下结项实验. 后续再根据情况进行其他实验. 实验名称: 温湿度自动检测与调控 实...

发表于 10-18 23:25 31次 阅读
【GD32330C-START开发板试用体验】温湿度自动检测与调控

如何设计无线传感器网络系统?

无线传感器和传感器网络,是具有非常广泛的市场前景,将会给人类的生活和生产的各个领域带来深远影响的新技....

发表于 10-18 18:45 41次 阅读
如何设计无线传感器网络系统?

单片机进行AD转换的C语言程序资料免费下载

本文档的主要内容详细介绍的是单片机进行AD转换的C语言程序资料免费下载。

发表于 10-18 18:45 35次 阅读
单片机进行AD转换的C语言程序资料免费下载

请问51单片机怎样用定时器编程延时程序?

怎样用定时器编程延时程序?

发表于 10-18 17:52 93次 阅读
请问51单片机怎样用定时器编程延时程序?

单片机方向33个毕业设计

在这33个单片机方向的毕业设计中每个设计包含论文、原代码,个别的有PCB, ...

发表于 10-18 17:24 169次 阅读
单片机方向33个毕业设计

基于使用STM32F103单片机,实现64Mbit单对单通信

简单的一种应用,ARM芯片作为master,flash为slaver,实现单对单通信。ARM主控芯片....

发表于 10-18 15:19 60次 阅读
基于使用STM32F103单片机,实现64Mbit单对单通信

应广单片机系列——基本应用程序框架

注:本文是作者以前发表在其个人博客,现在发布到电子发烧友专栏单片机工程师面对一种新单片机时,最希望的....

的头像 聚丰开发 发表于 10-18 12:49 88次 阅读
应广单片机系列——基本应用程序框架

使用单片机实现串口超声波的示例程序详细资料免费下载

本文档的主要内容详细介绍的是使用单片机实现串口超声波的示例程序详细资料免费下载。

发表于 10-18 11:06 27次 阅读
使用单片机实现串口超声波的示例程序详细资料免费下载

如何进行LED高速旋转显示屏的设计详细资料免费下载

本设计利用高速旋转中控制LED的亮灭,进行字符或图形的显示,控制器采用廉价的89C51单片机,完成显....

发表于 10-18 09:45 23次 阅读
如何进行LED高速旋转显示屏的设计详细资料免费下载

HR7P201 8位单片机集成电路芯片的数据手册免费下载

本文档的主要内容详细介绍的是HR7P201 8位单片机集成电路芯片的数据手册免费下载。

发表于 10-18 09:45 32次 阅读
HR7P201 8位单片机集成电路芯片的数据手册免费下载

单片机有哪些常用算法?吴鉴鹰总结的单片机常用算法资料免费下载

算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数....

发表于 10-18 09:45 41次 阅读
单片机有哪些常用算法?吴鉴鹰总结的单片机常用算法资料免费下载

TSM12S 12通道电容传感器的详细数据手册免费下载

TSM12S是具有自动灵敏度校准的12通道电容传感器。电源电压范围为1.8~5.0V。TSM12S具....

发表于 10-18 08:00 21次 阅读
TSM12S 12通道电容传感器的详细数据手册免费下载

基于单片机学习的条件和学习步骤简述

单片机是大专学校电类专业的一门普通课,有些学校甚至把它列为选修课,在众多课程中,没有显出它有多么重要....

发表于 10-17 16:57 72次 阅读
基于单片机学习的条件和学习步骤简述

基于单片机EEPROM解析

我们板子上使用的这个器件是 24C02,是一个容量大小是 2Kbits,也就是 256 个字节的 E....

发表于 10-17 16:46 69次 阅读
基于单片机EEPROM解析

做单片机的朋友你可千万先把电源弄好!

说一个我获得的教训,老板的一个朋友委托我们给他做一个小型控制器,因为要求的工期比较急,没时间做线路板....

的头像 嵌入式资讯精选 发表于 10-17 08:56 222次 阅读
做单片机的朋友你可千万先把电源弄好!

最新版STC单片机烧录软件stc-isp-15xx-v6.86O免费下载

本文档的主要内容详细介绍的是最新版STC单片机烧录软件stc-isp-15xx-v6.86O免费下载....

发表于 10-17 08:00 25次 阅读
最新版STC单片机烧录软件stc-isp-15xx-v6.86O免费下载

WSD setup V705 ADUC8XX单片机的下载软件应用程序免费下载

本文档的主要内容详细介绍的是WSD setup V705 ADUC8XX单片机的下载软件应用程序免费....

发表于 10-17 08:00 23次 阅读
WSD setup V705 ADUC8XX单片机的下载软件应用程序免费下载

如何使用N76E003单片机点亮LED的2个方法详细说明

本文档的主要内容详细介绍的是如何使用N76E003单片机点亮LED的2个方法详细说明。新唐N76E0....

发表于 10-17 08:00 34次 阅读
如何使用N76E003单片机点亮LED的2个方法详细说明

应广单片机系列——高速I2C接口

经过一段时间的慎重考虑,在诸多朋友的支持下,决定在接下来的日子里,会尽可能多的写一些关于应广多核单片....

的头像 聚丰开发 发表于 10-16 18:45 194次 阅读
应广单片机系列——高速I2C接口

GAIP-5201低耗高速CMOS工艺制造的8位单片机详细数据手册免费下载

GAIP-5201 是采用低耗高速CMOS 工艺制造的8 位单片机,它内部包含一个1024*13-b....

发表于 10-16 17:35 30次 阅读
GAIP-5201低耗高速CMOS工艺制造的8位单片机详细数据手册免费下载

AVR单片机教程之AVR软件、工具、M16的基础知识资料免费下载

本文档的主要内容详细介绍的是AVR单片机教程之AVR软件、工具、M16的基础知识资料免费下载,第一步....

发表于 10-16 16:55 35次 阅读
AVR单片机教程之AVR软件、工具、M16的基础知识资料免费下载

怎样通过UART进行标准IO?

在工程的ASF\sam\utils\syscalls\gcc\syscalls.c文件中,ASF已经....

发表于 10-16 16:25 46次 阅读
怎样通过UART进行标准IO?

如何使用单片机C8051F410进行精确信号模拟电路设计的

针对某型检测设备使用中存在的工作点不稳定问题,基于C8051F410 单片机,采用PWM 调制技术和....

发表于 10-16 10:34 31次 阅读
如何使用单片机C8051F410进行精确信号模拟电路设计的

如何使用AVR单片机的直流无刷电机智能控制系统设计

分析目前直流无刷电机控制器的现状,设计了一种直流无刷电机通用的控制系统,通过开关选择有位置传感器或者....

发表于 10-16 10:33 41次 阅读
如何使用AVR单片机的直流无刷电机智能控制系统设计

基于单片机80C196KB和可编程逻辑器件EPM7128SLC在采集显示系统中的设计

该系统中待采集显示电压信号共16路,动态电压范围为-22~+27 V。由于这些电压信号变化频率较低,....

发表于 10-15 17:08 58次 阅读
基于单片机80C196KB和可编程逻辑器件EPM7128SLC在采集显示系统中的设计

单片机教程之模数转换AD与数模转换DA的详细资料介绍

模拟量:任何两个数字之间都有无限个中间值,所以称之为连续变化的量,也就是模拟量。 数字量:数字间有....

发表于 10-15 08:00 41次 阅读
单片机教程之模数转换AD与数模转换DA的详细资料介绍

如何使用AT89C52设计一个空气加湿器

本设计是基于单片机对数字信号的高敏感和可控性、湿度传感器可以产生模拟信号,和A/D模拟数字转换芯片的....

发表于 10-15 08:00 57次 阅读
如何使用AT89C52设计一个空气加湿器

单片机与PC串口通信的程序及电路图详解

单片机与pc串口通信程序及电路图

的头像 畅学单片机 发表于 10-14 10:28 424次 阅读
单片机与PC串口通信的程序及电路图详解

中国的MCU正在逆袭的道路上走得越来越好

早期的微控制器是将一个计算机集成到一个芯片中,实现嵌入式应用,故称单片机。微处理器和单片机从上个世纪....

发表于 10-13 11:22 355次 阅读
中国的MCU正在逆袭的道路上走得越来越好

80C51单片机串行通信基础知识工作方式和数据传输速率及应用的概述

并行通信:数据的各位同时送出。传送距离:小于30米。 串行通信:数据的各位逐位送出,只需一对传送线....

发表于 10-12 17:17 67次 阅读
80C51单片机串行通信基础知识工作方式和数据传输速率及应用的概述

80C51单片机汇编语言程序设计总结资料免费下载

序设计语言分:机器语言、汇编语言和中高级语言 1.机器语言:硬件识别,二进制,无需翻译、直接执行,....

发表于 10-12 17:17 75次 阅读
80C51单片机汇编语言程序设计总结资料免费下载

如何进行单片机的安装详细方法电路图和程序资料免费下载

单片机技术自发展以来已走过了近20年的发展路程 。单片机技术的发展以微处理器(MPU)技术及超大规模....

发表于 10-12 16:44 48次 阅读
如何进行单片机的安装详细方法电路图和程序资料免费下载

使用Proteus软件构建虚拟实验室有没有可能?

介绍了Proteus 软件以及基于Proteus 进行单片机系统开发的过程, 并在Proteus 环....

发表于 10-12 16:44 52次 阅读
使用Proteus软件构建虚拟实验室有没有可能?

什么是DSP?DSP的原理是怎么样的?DSP技术概述

1.什么是DSP?(1)数字信号处理(Digital Signal Processing —DSP)....

发表于 10-12 08:00 74次 阅读
什么是DSP?DSP的原理是怎么样的?DSP技术概述

ATMEL公司8051构架单片机Protel元件库的详细资料免费下载

本文档的主要内容详细介绍的是ATMEL公司8051构架单片机Protel元件库的详细资料免费下载。

发表于 10-12 08:00 30次 阅读
ATMEL公司8051构架单片机Protel元件库的详细资料免费下载