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

收藏 人收藏
分享:

评论

相关推荐

STC51单片机的IO配置问题解决方案

单片机IO的种种问题,你说的单片机IO被烧了,也许只是你妹用对而已,进来看完再下定论。
的头像 单片机技术宅 发表于 01-16 15:31 39次 阅读
STC51单片机的IO配置问题解决方案

如何使用单片机模拟读写24C01EEPROM数据

实验目的: 熟悉使用单片机模拟读写24C01EEPROM 1、首先向24C01EEPRO....
发表于 01-16 15:21 18次 阅读
如何使用单片机模拟读写24C01EEPROM数据

PIC微型中档单片机系列参考手册免费下载

本手册介绍了PIC16CXXX 系列单片机的架构和外设模块的操作,但并不涉及每个器件的具体细节。因此....
发表于 01-16 15:02 10次 阅读
PIC微型中档单片机系列参考手册免费下载

【硬见小百科】单片机的特殊功能寄存器

在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。 特殊功能寄存....
的头像 云创硬见 发表于 01-16 13:45 15次 阅读
【硬见小百科】单片机的特殊功能寄存器

Keil实例教程之Keil工程文件的建立设置与目标文件的获得

单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种....
发表于 01-16 11:43 8次 阅读
Keil实例教程之Keil工程文件的建立设置与目标文件的获得

YL-51单片机开发板电路原理图免费下载

本文档的主要内容详细介绍的是YL-51单片机开发板电路原理图免费下载。
发表于 01-16 11:43 8次 阅读
YL-51单片机开发板电路原理图免费下载

多个单片机的应用实例包括简介电路图和PCB图及程序等资料免费下载

本文档的主要内容详细介绍的是多个单片机的应用实例包括简介电路图和PCB图及程序等资料免费下载包括了:....
发表于 01-16 11:43 6次 阅读
多个单片机的应用实例包括简介电路图和PCB图及程序等资料免费下载

8051系列单片机汇编指令速查表资料合集免费下载

本文档的主要内容详细介绍的是8051系列单片机汇编指令速查表资料合集免费下载。说明: Ri, Rn ....
发表于 01-16 08:00 9次 阅读
8051系列单片机汇编指令速查表资料合集免费下载

23个单片机开发小工具合集免费下载

本文档的主要内容详细介绍的是23个单片机开发小工具合集免费下载主要内容包括了:音乐代码转换,一种实用....
发表于 01-16 08:00 40次 阅读
23个单片机开发小工具合集免费下载

单片机常用程序

大一的时候收集的一些资料,当时主要是为学校的比赛做准备。现在传上来给大家分享分享,见笑了哈。 (1.9 MB )...
发表于 01-16 06:35 41次 阅读
单片机常用程序

stm32f407外部中断容易触发

我是刚刚学习stm32单片机的,在使用外部中断的时候遇到一个问题,单片机的IO口如果配置为输入模式,中断极其容易触发,手随便摸...
发表于 01-16 06:34 50次 阅读
stm32f407外部中断容易触发

交流BLDC无刷电机控制方案

最近在研究这个东西,开源的很多,而且都是低廉的8位单片机方案,但是做的很吊。不知道论坛里有没有大神搞过?求交流啊。...
发表于 01-16 05:18 12次 阅读
交流BLDC无刷电机控制方案

MSP430F6单片机外部晶振XT1和XT2无法起振

我用MSP430F6单片机外部晶振XT1和XT2 ,现在晶振无法起振。大家帮忙看看配置是否有问题 程序如下: void Init_Clk()...
发表于 01-16 05:00 60次 阅读
MSP430F6单片机外部晶振XT1和XT2无法起振

51飞卡单片机智能小车全套视频教程免费下载

下载地址: (224 Bytes )
发表于 01-16 02:42 30次 阅读
51飞卡单片机智能小车全套视频教程免费下载

51单片机向蓝牙模块发AT指令没反应

用51单片机像蓝牙模块发AT指令蓝牙模块没反应 本来会返回“OK”的 用电脑发可以收到返回 付程序: #include #define uch...
发表于 01-16 02:12 5次 阅读
51单片机向蓝牙模块发AT指令没反应

请问有51单片机控制蓝牙模块的接收和发射的资料吗

大家有没有51单片机控制蓝牙模块的接收和发射的资料呀?求共享求指导...
发表于 01-16 00:59 10次 阅读
请问有51单片机控制蓝牙模块的接收和发射的资料吗

请问GSM模块RTC后备电池如果不用的话是否可以去掉?

最近购买了原子的GSM模块,现在想自己画一块板子,先咨询问题如下: 1,RTC后备电池如果不用的话是否可以去掉?还有P6端...
发表于 01-15 22:01 5次 阅读
请问GSM模块RTC后备电池如果不用的话是否可以去掉?

430单片机唤醒LPM3.5时没有系统复位

我使用IAR环境,编写MSP430F6433单片机,遇到以下两个问题。请各位大侠帮帮忙 (1)从低功耗模式LPM3.5唤醒,按照手...
发表于 01-15 21:48 56次 阅读
430单片机唤醒LPM3.5时没有系统复位

用IAP15W4K58S4内部AD测电压,一直出错,有程序的大神可以给以下程序吗?

发表于 01-15 20:53 43次 阅读
用IAP15W4K58S4内部AD测电压,一直出错,有程序的大神可以给以下程序吗?

如何选择合适的单片机常用单片机介绍

单片微型计算机简称单片机,是典型的嵌入式微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系....
发表于 01-15 17:18 46次 阅读
如何选择合适的单片机常用单片机介绍

单片机开发工程案例分析与解析的详细资料概述

设计一个单片机控制的简易定时报警器。要求根据设定的初始值(1-59秒)进行倒计时,当计时到0时数码管....
发表于 01-15 16:48 30次 阅读
单片机开发工程案例分析与解析的详细资料概述

使用单片机在电阻炉温度控制系统中的应用说明

传统的电阻炉温度控制系统在电阻炉启、停状态时,产生很大的冲击电流,对电阻炉设备及电网带来一系列问题并....
发表于 01-15 16:48 15次 阅读
使用单片机在电阻炉温度控制系统中的应用说明

如何使用单片机和串口进行SD卡读取平台的设计

随着现代电子技术的发展,各种存储设备的应用越来越广泛。其中以SD存储卡的应用最为广泛,但是由于在传统....
发表于 01-15 15:44 19次 阅读
如何使用单片机和串口进行SD卡读取平台的设计

单片机对19264液晶屏的驱动

首先说下19264屏 1926屏是由3个64*64 组成 64行 192列 其中192列 是6....
发表于 01-15 15:37 54次 阅读
单片机对19264液晶屏的驱动

单片机攻击的四大主要技术解析

该技术通常使用处理器通信接口并利用协议、加密算法或这些算法中的安全漏洞来进行攻击。软件攻击取得成功的....
发表于 01-15 15:29 63次 阅读
单片机攻击的四大主要技术解析

如何使用C18编译器和MSSP模块进行SPI EEPROM与PIC18单片机的接口设计

Microchip Technology生产的25XXX系列串行EEPROM兼容SPI 通信标准,最....
发表于 01-15 14:45 16次 阅读
如何使用C18编译器和MSSP模块进行SPI EEPROM与PIC18单片机的接口设计

树莓派教程之从零开始学树莓派开发超好玩的智能小硬件制作书PDF

本书以实战开发为出发点,以Raspberry Pi应用开发为主线,通过Python开发简单的树莓派单....
发表于 01-15 10:06 29次 阅读
树莓派教程之从零开始学树莓派开发超好玩的智能小硬件制作书PDF

一个很不错的LED跑马灯程序免费下载

一个使用单片机设计的LED跑马灯程序资料免费下载,很不错。
发表于 01-15 08:00 26次 阅读
一个很不错的LED跑马灯程序免费下载

如何使用AD590设计嵌入式温度采集及显示系统

在本设计中采用TP.AD590为核心 ,与单片机相辅相成,实现温度的数字化显示。本系统的主要功能是对....
发表于 01-15 08:00 26次 阅读
如何使用AD590设计嵌入式温度采集及显示系统

HT45FH23A和HT45FH24A系列ASSP Flash型单片机数据手册免费下载

该系列单片机是具有 A/D 功能及 Holtek 低功耗架构的 8 位高性能精简指令集的 Flash....
发表于 01-15 08:00 16次 阅读
HT45FH23A和HT45FH24A系列ASSP Flash型单片机数据手册免费下载

HT45B0003和HT45B0005两线式高压收发器的数据手册免费下载

主机控制器系统控制多个联网子系统,如烟感器,水表,太阳能系统等。冗长的互连电缆的成本是主要因素。通过....
发表于 01-15 08:00 25次 阅读
HT45B0003和HT45B0005两线式高压收发器的数据手册免费下载

单片机教程之定时器和计数器原理及应用

  本文档的主要内容详细介绍的是单片机教程之定时器和计数器原理及应用主要内容包括了:定时器、计数器原....
发表于 01-14 17:20 35次 阅读
单片机教程之定时器和计数器原理及应用

硬件工程师的未来方向以及硬件设计的流程案例

发表于 01-14 16:34 0次 阅读
硬件工程师的未来方向以及硬件设计的流程案例

如何设计低功耗的单片机便携式系统详细设计方法说明

针对单片机便携式系统功耗要求低的特点,比较仝面的介绍了将单片机便携式系统如何设计成低功耗系统.主要从....
发表于 01-14 08:00 29次 阅读
如何设计低功耗的单片机便携式系统详细设计方法说明

单片机中常用的三种去耦电容

容值比拟大的电容,实际上可以了解成水缸或许水池子,同时,人人可以直接把电流了解成水流,其实大天然万物....
发表于 01-12 10:51 102次 阅读
单片机中常用的三种去耦电容

51单片机定时器控制LED灯

设计思路:这里我们只用定时器,不用软延时。51的定时器最多定时60ms,所以我们设置定时器每50ms....
发表于 01-12 10:46 90次 阅读
51单片机定时器控制LED灯

电子钟全套资料合集免费下载

本文档的主要内容详细介绍的是如何设计电子钟 电子钟设计全套资料合集免费下载。
发表于 01-11 17:09 164次 阅读
电子钟全套资料合集免费下载

LY5A-L12单片机学习开发板电路原理图资料免费下载

本文档的主要内容详细介绍的是LY5A-L12单片机学习开发板电路原理图资料免费下载。
发表于 01-11 16:23 101次 阅读
LY5A-L12单片机学习开发板电路原理图资料免费下载

单片机P0口的内部结构及工作原理

当D端和CP/CLK端同时有信号输入后突然撤掉CP/CLK信号时,D的值将会被保存到(“锁”)在器件....
发表于 01-11 15:39 134次 阅读
单片机P0口的内部结构及工作原理

单片机低功耗设计实例合集(50例)

在嵌入式应用中,系统的功耗越来越受到人们的重视,这一点对于需要 电池 供电的便携式系统尤其明显。降低....
发表于 01-11 15:14 94次 阅读
单片机低功耗设计实例合集(50例)

如何有效编程单片机有源蜂鸣器驱动

蜂鸣器是很常见的设备,分为无源和有源两种。根据项目需求选择不同类型的蜂鸣器。
的头像 玩转单片机 发表于 01-11 15:04 1212次 阅读
如何有效编程单片机有源蜂鸣器驱动

13个单片机初学者必须学会的实验

本文档的主要内容详细介绍的是13个单片机初学者必须学会的实验主要内容包括了:1. 闪烁灯,2. 模拟....
发表于 01-11 14:49 191次 阅读
13个单片机初学者必须学会的实验

YZ200单片机开发板电路原理图免费下载

本文档的主要内容详细介绍的是YZ200单片机开发板电路原理图免费下载。
发表于 01-11 14:14 61次 阅读
YZ200单片机开发板电路原理图免费下载

探究单片机控制板PCB设计需要注意的原则和细节

设计电路板最基本的过程可以分为三大步骤:电路原理图的设计,产生网络表,印制电路板的设计。不管是板上的....
的头像 PCBworld 发表于 01-10 16:56 469次 阅读
探究单片机控制板PCB设计需要注意的原则和细节

SKM82B GPS引擎模块的数据手册免费下载

SKM82B是一个完整的GPS引擎模块,具有超灵敏、超低功耗和小尺寸的特点。将GPS信号应用到模块的....
发表于 01-10 16:48 47次 阅读
SKM82B GPS引擎模块的数据手册免费下载

爱上单片机第二版中文PDF免费下载

看看其他的入门书籍,闭上眼睛,你都可以猜到先介绍什么是单片机,然后介绍单片机的历史,再后来介绍硬件,....
发表于 01-10 16:19 90次 阅读
爱上单片机第二版中文PDF免费下载

如何解决单片机应用系统的干扰问题抗干扰研究讲解

针对生产现场的单片微型计算机一般与被测试对象、被控制对象相距较远,容易受到各种干扰的侵袭,讨论了来自....
发表于 01-10 15:00 51次 阅读
如何解决单片机应用系统的干扰问题抗干扰研究讲解

嵌入式开发要学什么嵌入式开发的一些入门教材推荐

本文档的主要内容详细介绍的是嵌入式开发要学什么嵌入式开发的一些入门教材推荐资料免费下载教材包括了:A....
发表于 01-10 14:46 64次 阅读
嵌入式开发要学什么嵌入式开发的一些入门教材推荐

精选创意电子制作项目25例PDF版免费下载

单片机在现代化电子产品中应用广泛,是产品智能化的基础,因而是电子爱好者不可不学的制作项目。本书汇集的....
发表于 01-10 08:34 137次 阅读
精选创意电子制作项目25例PDF版免费下载

微机原理与接口技术教程之计算机基本知识的详细资料概述

本文档的主要内容详细介绍的是微机原理与接口教程之计算机基本知识的详细资料概述主要内容包括了:计算机的....
发表于 01-09 08:00 62次 阅读
微机原理与接口技术教程之计算机基本知识的详细资料概述

使用单片机进行的二十二个基础实验例程的资料免费下载

本文档的主要内容详细介绍的是使用单片机进行的二十二个基础实验例程的资料免费下载主要内容包括了:1点亮....
发表于 01-09 08:00 179次 阅读
使用单片机进行的二十二个基础实验例程的资料免费下载

如何进行单片机应用系统的排错实例剖析

在单片机应用系统的软硬件调试中,因很难找到出错点,而不容易找到解决出错的方法。就MCS一51单片机应....
发表于 01-08 16:57 63次 阅读
如何进行单片机应用系统的排错实例剖析

MAX7219单片机常用器件驱动及应用实例

  单片机的学习可以分为几个阶段:单片机的I/O口的学习、单片机内部的资源(定时器、中断、串口驱动等....
发表于 01-08 16:57 49次 阅读
MAX7219单片机常用器件驱动及应用实例

使用单片机进行数字钟设计实例资料说明

本文档的主要内容详细介绍的是使用单片机进行数字钟设计实例资料说明。利用AT89C51的定时器和6位7....
发表于 01-08 16:55 61次 阅读
使用单片机进行数字钟设计实例资料说明

如何使用AVR单片机为核心设计行车空调控制器的资料概述

针对日前圜内行车燮调主要采髑强电直接控稍,且存在操作复杂、成本较离等问题,提出了以漆档AVR单片执A....
发表于 01-08 16:21 52次 阅读
如何使用AVR单片机为核心设计行车空调控制器的资料概述

如何使用ME300B单片机进行1602液晶显示频率计开发应用实例说明

ME300B是一款具有实验板、编程器、仿真器、ISP下载线多功能合一的综合单片机学习开发系统,系统自....
发表于 01-08 16:20 54次 阅读
如何使用ME300B单片机进行1602液晶显示频率计开发应用实例说明

SKM80D高性能GNSS一体式解决方案模块的数据手册免费下载

SKM80D是一款高性能GNSS一体式解决方案模块,具有超灵敏度、超低功耗和小体积因数。射频信号应用....
发表于 01-08 15:51 43次 阅读
SKM80D高性能GNSS一体式解决方案模块的数据手册免费下载

单片机中如何用C语言实现查表找到对应的值

第二个问题是:比方说我有一数据 char data=0xa2 ;我要串行发送出去,那么我采用从高位发....
发表于 01-08 15:18 179次 阅读
单片机中如何用C语言实现查表找到对应的值

如何进行单片机应用系统的可靠性设计

首先简要地介绍了单片机应用系统可靠性的重要性,并分别给出了硬件可靠性、软件可靠性的概念及其区别。然后....
发表于 01-08 15:14 40次 阅读
如何进行单片机应用系统的可靠性设计