历史上的今天
返回首页

历史上的今天

今天是:2025年02月13日(星期四)

正在发生

2020年02月13日 | PIC8位在PICC中的数据类型

2020-02-13 来源:eefocus

简介:PIC8位MCU的内存都是8位字节结构的,所以PICC中对于数据的划分都是以8位为基础的。



在汇编中,我们对一个地址为0X20的内存附值:


movlw 255;


movwf 0x20;


但一个内存是8位结构,能表示最大的数是255。要是超过了会怎么样呢?


movlw 256;


movwf 0x20;


通过DEBUG后,可以看出0X20中的值不是256,而是0了。


这里可以看出PIC处理器计算过程是当计算结果超过内存能容纳的最大数(也就是所谓溢出),则自动抛弃最高位。


如下:


255 - 256


11111111-100000000


256的2进制有9位,于是PIC处理器就自动抛弃最高位1,剩下的8个0放入内存,于是就成了0了。这过程是由硬件自动完成的。


在PICC中象这样的概验比比都是。


如:char x;


for(x=255;x--;){;}


是完成255个循环。


要是for(x=256;x--;){;}


则是0个循环。


因为PICC中定义CHAR类型数据是8位。


再如:int x;


for(x=65537;x--){;}


则是只循环一次。因为PICC中INT数据是16位,占2个存储单位。


如上所述,在规划一个程序之前要考虑程序中可能涉及到的最大计算量来定义数据类型,不然将会发生溢出,导致数据混乱。


但也不可为了简便,全用长结构的类型来申明数据类型,不然会导致计算时间慢,空间占用多。


如X可能大于255,但不会大于65535,那么申明:unsigned int x;


如果X可能会是负数就一定要定义int x;


同上要是X可能大于65535,那么就得定义long x;


浮点数是一个很特殊的类型,不需要了解它的构造,只需要了解它是一个24位或32位的存储结构,是一个能表示小数的数据类型,浮点表示的数字范围极大,所以在用浮点类型时候,不需要考虑是否溢出的问题。


推荐阅读

史海拾趣

ERNI公司的发展小趣事

1947年,瑞士工程师Ernst Rudolf Erni和他的妻子Elsa在瑞士那提空(Nänikon)共同创立了“ERNI & CO.”公司。他们的首个订单是为苏黎世克洛腾机场开发地雷探测器和机场导航灯。这个起点虽小,但为ERNI日后在电子行业的辉煌奠定了基础。随着订单的增多,公司逐渐扩大了生产规模,并开始涉足继电器、电气设备等领域。

DURACELL公司的发展小趣事

在开拓重庆市场时,DURACELL公司面临了巨大的挑战。当地电池市场竞争激烈,价格参差不齐。然而,DURACELL公司凭借其独特的营销策略和高质量的产品,迅速打开了市场。他们选择了与当地贸易代理商合作的方式进入市场,并通过“三步走式”的营销策略迅速占领了市场份额。这一成功案例展示了DURACELL公司灵活的市场策略和对品质的坚持。

华瓷(Chinocera)公司的发展小趣事

人才是企业发展的根本动力。华瓷深知这一点,因此在人才战略和团队建设上投入了大量精力。公司注重员工的培训和发展,为员工提供广阔的发展空间和良好的职业前景。同时,华瓷还积极引进国内外优秀人才,打造了一支高素质、专业化的团队。这支团队为公司的发展提供了有力的支持和保障。

Gore公司的发展小趣事
在隔离型中压大容量直流变换器中,可能存在直流偏磁问题,导致变压器磁路饱和、励磁电流增加、局部过热和噪声增大等问题。
Gould Ami公司的发展小趣事
包括电路板损坏、元件老化、接触不良等问题,可能导致脉冲信号异常或无法发出。
Cystech公司的发展小趣事

为了进一步拓展全球市场,C-TECH Co., Ltd在2009年相继成立了香港分公司和中国(深圳)分公司。通过这两家分公司,公司能够更好地了解当地市场需求,提供更加贴近客户的服务。同时,公司还积极参加国际电子展会,与国际同行交流合作,不断提升自身的品牌影响力和市场竞争力。在国际化战略的推动下,C-TECH Co., Ltd的海外市场不断拓展,为公司的发展注入了新的动力。

问答坊 | AI 解惑

【新品推荐】低阻MOS管 8205A

Gem micro semiconductor Inc.  GM8205A Pb free Pb Dual N-Channel High Density Trench MOSFET (20V, 6.0A) PRODUCT SUMMARY VDSS  ID  RDS(on) (m-ohm) Max 28 @ VGS =4.0V, ID=6.0A ...…

查看全部问答>

公司又要裁员了

昨天公司研发中心开会,说要搞末尾淘汰制,非要我把手下的兄弟搞个排序,供领导裁人。现在的公司,目光很短浅,需要人的时候,就把人给招进来,招进来有不给人好好的工作,三天两天出个制度,这样考评,那样绩效,领导工作搞的不好,问题全是普通员 ...…

查看全部问答>

BENQ M32 AT$DESTINFO 命令出错

我已经能让模块登陆网络,并能获取到模块登陆的IP地址,但是使用BENQ M32 AT$DESTINFO 链接服务器的时候出错 不知道怎么回事? AT+CGDCONT=1,\"IP\",\"CMNET\" OK AT%CGPCO=1,\"PAP,,\", 1 OK AT$DESTINFO=\"115.46.37.254\" ,1,1029 EXT: I ...…

查看全部问答>

2440SD卡开发求助

不知道怎么回事,俺第一次做SD卡,但是碰到了很大麻烦。 用ADS裸机测试程序没有问题。 但是弄到PB下面却不行了(微软的驱动)-------看不见SD卡盘符,串口打印信息也有问题。 平台描述 2440+512M nand flash+1G MicroSD卡 wince5.0+由4.2升至5 ...…

查看全部问答>

GPS 模块 1pps的时间同步问题

请教各位大虾:            GPS模块里1PPS的上升沿和串口收到的信息是同步的还是有些时间差?先后时间顺序是啥关系?         如何保证收到的时间和1pps上升沿同步? ...…

查看全部问答>

无操作系统的lwip移植求助

tcp_recved: recveived 2 bytes, wnd 4096 (0). blankname!----A   123.txt----A   432.txttcp_write(pcb=20006e88, data=20009258, len=30, apiflags=0) tcp_enqueue(pcb=20006e88, arg=20009258, len=30, flags=0, apiflag ...…

查看全部问答>

关于32.768KHz晶振和专用时钟芯片

在超低功耗时钟DIY的过程中,大家对于时钟源经行过讨论,这个时钟所用到的时钟源到底是使用32768Hz的晶体还是使用专用的时钟芯片比如DS1302。最后我们选定的方案是带上DS1302用于时钟的校对,这个考虑主要是出于时钟的准确的考虑,但是这样一来就多 ...…

查看全部问答>

浅析视频会议终端系统市场动态与前景

浅析视频会议终端系统市场动态与前景2012年06月11日   投影时代       视频会议终端市场正面临着巨大的转变。几年以前,机顶盒和移动系统在视频会议市场中占据了主导地位,它们主要都是通过ISDN连接,然而当今的市 ...…

查看全部问答>

对特权的按键消抖程序的理解

昨天上午看的视频,特权的按键消抖,想了好久,到现在终于弄明白了,下面是我理解的方式: 先上他的程序: module key_led(clk,rst_n,sw1_n,sw2_n,sw3_n,      led_d3,led_d4,led_d5,   Q1,Q2,Q3,Q4,Q5, ...…

查看全部问答>

JPEG算法库在DM6437上的应用实例

JPEG算法库在DM6437上的应用实例见附件…

查看全部问答>