导航:首页 > 操作系统 > 51单片机怎么清变量

51单片机怎么清变量

发布时间:2022-12-28 23:39:42

单片机怎样清零

累加器和位清零可用CLR(如:CLR A,,,CLR C)或者直接赋0值(如:mov a,#00h).还有一种清零就是系统复位,赋位到初始的状态,单片机的RST脚。(当然此种复位有的是零状态(如:PC)。有的是1状态(P0~P3),还有的是不定状态(SBUF)),此种复位可手动也可上电自动,依外部电路而行

⑵ C51 单片机 局部变量 问题

这个问题也困扰过我,比如定时器中断里设置一个变量x,不设置初值,然后程序里放个x++。
结果就是那个x真的一直在加。
不过我没有去深究过,个人理解是,如果系统不缺空间的话,单片机就不会去清除空余的单元。

是不是这样我不清楚,但是分析如下:
我们自己用汇编写程序的时候,直接对RAM操作,如果不去清0,里面的数是永远不会变的。这说明,单片机本身是没有这种操作的。
如果说C语言编译过程中有加这种功能,也很难想象会在每个工作周期中不断的去检查哪些单元闲置的,并且对其清零。因为这样要占用很多CPU时间。
个人猜测,注意,是猜测!应该是当不得不要把某个物理单元划分给新的变量时,才会真的把旧变量清除掉。否则,哪怕是局部变量,对应的物理单元应该是一直不变的。
(以上有错,是我一开始写的,请看下面的分析为准)

一边写一边仔细回忆一下,大概知道了:

如果你写了一个函数,里面有5个变量。并且,这个函数你不去调用它。那么编译后你会发现程序多占用了5个字节的RAM。如果你调用它,有些情况下(程序特别长,变量特别多时)你会发现,程序里使用的RAM没增加!(多说明一下,为什么不调用它反而要占用空间呢?因为系统不知道这5个空间什么时候可以释放,那么定义了以后只好一直保留着。而如果你调用它了,什么时候有用什么时候没用是固定的,那么系统编译时就可以在该变量不被使用时把空间分配给其他变量,有点“分时复用”的意思。而且,如果你写了太多函数,里面有足够多的变量,然后这些函数统统都永不调用,编译时就会出错,提示你系统RAM不足)

这至少说明两点,
一、如果你定义了一个局部变量,那么系统就会一直留着空间给它以备使用。那么那个物理单元随时都是为“那一个”变量准备着的,它的值并不会清零。
二、当你程序使用了太多变量时,那么系统编译时会自动调节,在适当的时候释放物理单元给“不同的变量”使用,也就是同一个物理单元要被不同的局部变量用,这种时候才会出现你说的情况,那就是局部变量会被清零。

实际上平时写的程序都太短了,根本没用使用完系统的RAM,那么编译时自然不会做这个操作。
同样可以得出一个结论,正是因为单片机的RAM有限,才会导致局部变量不清除。对于电脑来说,空间近乎无限的,随时随地你都可以分配空间给变量用。但是51单片机就那么128字节,必须详细策划好如何分配,所以局部变量才有了自己固定的地盘。

说到这里,我相信你的问题我已经找到答案了,虽然都是我推测的,但是十之八九不会错。欢迎讨论!
哦,至于初始值为0,这个没啥啊,单片机复位以后,RAM就是0
书上没写,但是实际用都是这样

⑶ 51单片机复位后变量不清零

你定义了局部变量不赋值,值是不确定的,只有全局变量在定义时会自动清零。

⑷ 单片机变量清零问题。

没看到你的源程序,分析一、注意全局变量,临时变量的区别,二、注意程序跳转后的变量初值。

⑸ 如何完全清空51单片机里的程序

EEPROM通常空内部全部为1,
若不考虑成本,建议直接到淘宝上购买EEPROM烧入器,可以支持多种EEPROM烧入和擦写
若是为了省成本,可以直接采用MCU给EEPROM全部烧入1

⑹ 将单片机片内一组RAM单元清0的函数,大佬说一下每一步的步骤含义吧

没啥好说的,这个函数仅适用于51单片机。清零也限于从片内RAM的30h开始的32个字节。就是在主函数里调用一个专用清零函数,指定起始偏移和清零长度;在清零函数里循环赋零。

⑺ 单片机C语言中什么语句可以将一个变量值清空

懂你的意思了,那你就把这个变量设为全局变量一个初值,每次执行程序时做初始化.

⑻ 51单片机,将01H位清零方式有几种写出指令。

如果你说的01H是位地址那么有以下几种方式清零。
1、clr 01h
2、mov 20h,#0fdh
3、clr 20h.1
4、clr c
mov 01h,c

⑼ 51单片机(c语言) 怎么把一个变量的某个位分离出来(假如定义一个char型变量a,我想把a的5

定义一个掩码,让你的变量a和掩码做与运算就行了,比如你想把低4位分离出来,掩码就是0x0F,假如分离后的变量是b,那么b=a&0x0F,低5位相应的掩码就是0x1F,

⑽ 程序下载到51单片机中后,如何查看单片机中的变量值

既然做了实物了,就应该有数码管显示的,就可以显示出温度了。
暂时还没有显示电路,那就只好用串口,将测量的温度从串口发送到电脑上来查看了。写个串口程序,将温度发送出来,电脑上用串口调试助手接收。
现在只有这个办法了。
总不能什么也不做,坐等结果吧,那你就别搞了。天上不会掉馅饼的。

阅读全文

与51单片机怎么清变量相关的资料

热点内容
如何在云服务器上打开本地文件 浏览:651
什么服务器能挂400个yy 浏览:131
python在文件式中怎么赋值 浏览:202
王者转移号安卓转移ios有什么风险 浏览:791
怎么注册安卓市场 浏览:111
怎么折解压折纸大全 浏览:632
如何在php中加入视频 浏览:87
知音唱歌app在哪里 浏览:76
fraps视频压缩 浏览:302
数据库查询系统源码 浏览:622
php5314 浏览:361
完美国际安装到哪个文件夹 浏览:673
什么app可以扫一扫做题 浏览:544
程序员编码论坛 浏览:930
淘点是什么app 浏览:662
中国高等植物pdf 浏览:456
51单片机时间 浏览:185
后台如何获取服务器ip 浏览:270
单片机流水灯程序c语言 浏览:237
程序员第二职业挣钱 浏览:242