产品概述

单片机rw 单片机的两种清0方式有什么区别

小编 2024-10-06 产品概述 23 0

单片机的两种清0方式有什么区别

单片机文档的时候一般寄存器是rw类型,还有一些是r或者w,对于一些特殊寄存器的置1是由硬件自动实现的,比如标志位flag、中断int,但清0还是需要通过软件进行操作,清0方式有两种,写1清0,写0清0,这两种方式有什么区别呢?在硬件实现上有什么不同?

单片机的两种清0方式有什么区别

单片机内部有各种功能的寄存器,比如PIC,C51系列8位的单片机,寄存器的宽度就是八个二进制位,一般是高位在前低位在后,例如:11000011,一共是八位,高四位数据是1100,低四位数据是0011。单片机是可以进行位操作的,一个8位的寄存器我们可以只针对其中一个位或者某些位进行操作,将寄存器相应的位赋值1(高电平)为置位,相反赋值0(低电平)为清零。这是一种比较容易理解的方式,但对于写1清0有几种说法。

1、从电路角度去看,对某位写1,即输入一个高电平,使内部的一个三极管导通接地,电容放电进行清0。

2、写1是在硬件上产生一个复位脉冲。能写0清除就很可能也可以写1进去,而这与功能要求不符。如要控制只能写0而不能写1,则硬件比较复杂。

3、从应用便捷性角度来说,读了寄存器数据以后,照着写回去就可以清0,不用再更改一次数据。

还有寄存器一般支持的是byte, half word, word操作,对于寄存器上有几个标志位的情况下,完成对单一标志位的清0,又不影响其他标志位,但又必须对其他位进行写,因此也就只能是写1或者写0清0才有效,只能一种方式。

个人理解,有什么不对的,烦请评论指正探讨,尽信书不如无书,理越辩越明

你写的单片机程序有多大,你知道吗?

单片机我们都用过,我们知道单片机的FLASH有4K的,有8K的,单片机程序我们也写过,但是我们写好的程序有多大,你知道吗?

程序写好并编译后生成hex文件,这个hex文件就是要下载到单片机里的文件,这个文件的大小不能超过单片机的FLASH大小,否则就要优化程序或者选用更大FLASH的单片机。

如下图所示,就是一个编译好的hex文件:

我们发现他后边的大小是9KB,这个是程序的大小吗?其实这是错误的,程序的大小要在这里看见:

Code: 表示所要执行的代码,程序中所有的函数都位于此处。

RO-data: 表示只读数据,程序中所定义的全局常量数据和字符串都位于此处。

RW-data: 表示已初始化的读写数据,程序中定义并且初始化的全局变量和静态变量位于此处。

ZI-data: 表示未初始化的读写数据,程序中定义了但没有初始化的全局变量和静态变量位于此处。

通过上面的描述就可以看出:

下载到单片机FLASH的程序是:Code+RO-data+RW-data;

运行在RAM中的数据是:RW-data+ZI-data;

好了,从今天起你就要知道你所写的程序有多大该怎么看了,另外程序的大小还可以在工程目录下的.map文件中看到:

找到.map文件,用记事本打开,拉到最后就可以看到了。

本订阅号致力于单片机、ARM等嵌入式软硬件的设计经验分享,秉承“人人都是电子设计经验的分享者”的理念,成功路上不孤单,我们一起努力。公众号:micropoint8

相关问答

调节可变电阻 RW 1、RW2、RW3和RW4的目的是什么?

用可调电阻,便于调节每个档位的满量程值,因每个档是用电阻串联分压的,就必然有误差的。如0-50V一档,当输入电压最大为50V时,这时,加到单片机输入引的电压...

rs 单片机 是什么意思?

RS=0表示输入命令,RW=0表示写数据。MCU字符液晶屏(LMC1602)的输出rs功能是存储控制信息,反映当前指令执行寄存器的各种状态信息,选择高电平1的数据寄存器...

但是电阻端接入电路后RL和 RW 之间的电阻就停五点】作业帮

[最佳回答]你必须保证RH和RL的电压均在X9C103的供电范围内,否则电位器就不能正常工作!在你给出的电路中,如果你想获得比较高的输出电压,选取比较大的R2是必要...

最便宜的 单片机 能便宜到什么程度?

我用过最便宜的单片机是台湾芯睿的处理器MK6A12A。SOP-8封装,1kOTPROM,48RAM,不带A/D。用来做一些低端的小家电,比如实现某个产品的功能,检测到振动以...

有没有PWM频率和占空比双可调的芯片方案?

为了加大PWM输出能力,用NPN三极管做PWM输出,通过可调电阻R4设置PWM的输出频率,通过可调电阻R6设置PWM的占空比输出单片机程序思路:循环读取AN0/AN1的电压值...

keil c中如何将整型转化为字符串 - 小米米咿呀 的回答 - 懂得

可以使用sscanf,就像sprintf将整型数转换成字符串输出一样,逆运算(KEILC中scanf和printf确定了通过单片机串行口完成输入输出模式,除非做了修改,一...

linux下 ls -l 指令显示结果每一列代表什么意思,谢谢?见图片-...

drwx------2Guestusers1024Nov2121:05Mail-rwx--x--x1rootroot89080Nov722:41tar*-rwxr-x...

keil c中如何将整型转化为字符串 - mUq30AFL7 的回答 - 懂得

那你就机灵点FILE*fp=fopen("cl.txt","rw+");fprintf(fp,"%d",a);str=malloc(20)...

行家们有谁能回复一下吗!!湖南射频水处理器公司,射频水处...

[回答]建议射频部分和单片机部分分别放在不同的腔内啊125K非接触ID卡桌面射频读卡器功能特点介绍:ID射频读卡器『型号』RW163ARW163CID射频读卡器『主要...

关于LCD1602光标显示的問題-ZOL问答

不然单片机每次重启都会重新初始化一次。有用(0)回复InitialProgramCode...EX:Port3.0CLRRW;EX:Port3.1SETBE;EX:Por...

猜你喜欢