把数据存储到单片机的某个单元,假设num=0X00;我想把num存储在单片机的60H单元,用C怎么写?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了把数据存储到单片机的某个单元,假设num=0X00;我想把num存储在单片机的60H单元,用C怎么写?相关的知识,希望对你有一定的参考价值。

加分30吧
别想第一个那样胡说八道 ,具体怎么写?第二个你复制答案,别拿来糊弄人 ,希望能来个高手 ,我说是内部的,你的XBYTE是内部的吗?

#define abc (*(volatile unsigned char *)0x60)
main()

unsigned char num=0x00;
abc =num;

试试这个吧!
参考技术A 复制了说的那么明白你都还看不明白......
SAL=XBYTE[60H];
num=0;
SAL=num;
参考技术B 超笨,用C语言就不要老想着汇编!
不过还是可以在C中内嵌汇编的方法;
参考技术C #include <reg51.h>
#include <absacc.h>
void main()

signed int *A3=0x60h;
signed char num=0x00;
A3=num;

51单片机编程题:编程将外部数据存储器1050H~1054H单元分别赋值为01,02,03,04


前言

编程将外部数据存储器1050H~1054H单元分别赋值为
00,01,02,03,04,使用存储器Memory#1窗口显示如下结果图。
在这里插入图片描述

一、思路

前面指令系统我们讲到,访问外部数据存储器要用MOVX指令,而且只能使用寄存器间接寻址,忘记了可以回前面去看,你要问为什么,因为51单片机对于内部和外部存储器是采用不同的寻址方式。

单片机的指令系统一
单片机的指令系统二
在这里插入图片描述

二、编程实现

org 0000H
START1 EQU 1050H //将1050的地址赋给START1
MOV DPTR,#START1 //立即寻址,1050->DPTR
MOV A,#0 //将0赋给A,将A累加器初始化为0
MOV R0,#5//将R0赋5,将R0累加器初始化为5,原因是要加5次
LOP:MOVX @DPTR,A //将0赋给DPTR所代表的地址
INC DPTR//DPTR的地址自加
INC A //A自加
DJNZ R0 ,LOP //不为零转到LOP,LOP只是一个标号,么有实际意义
SJMP $//原地踏步
END

用到的知识点
在这里插入图片描述
在这里插入图片描述

三、实验结果

在这里插入图片描述

以上是关于把数据存储到单片机的某个单元,假设num=0X00;我想把num存储在单片机的60H单元,用C怎么写?的主要内容,如果未能解决你的问题,请参考以下文章

51单片机可以通过指针访问寄存器吗

单片机中Rn的作用是啥?它和Ri的区别是啥?

单片机C语言如何判断一个时间是不是在一个时间段内

C单片机 变量值怎么转换成字符串?

51单片机实现定时器00H-FFH定时器000-255

单片机C语言中 DAT=num&0x01; 啥意思?&符号不是与符号吗?这里表示啥