㈠ 51单片机c语言编程中,有很多种数据类型。定义数据类型是按照值域定义,但如果要定义一个a,a=2,
2的16进制是0x02;,2进制是0000 0010,也就是说给a的值为0x02
unsigned char型16进制是0x00~0xff,2进制是0000 0000~1111 1111
unsigned int型16进制是0x0000~0xffff,2进制是0000 0000 0000 0000~1111 1111 1111 1111
unsigned long型16进制是0x000000~0xffffff,2进制是0000 0000 0000 0000 0000 0000~1111 1111 1111 1111 1111 1111
如果用char型的就是0000 0010
如果用int型的就是0000 0000 0000 0010
如果用long型的就是0000 0000 0000 0000 0010
如果只是255以下用int型就会浪费一个字节,不管是ram 还是 flash
因为它不管是存储还是运行前面都会多一个0x00
㈡ 什么叫c51十六进制
C51 是单片机型号的一种,C51是51系列单片机编程中的数据格式为十六进制
相关资料:
就51系列而言,由于Intel公司将其内核使用权以专利互换或出售的形式转给世界许多着名IC制造商,如PHILIPS、SIEMENS、AMD、ATMEL、SST、STC等,这样51系列就变成有众多制造厂商支持的、发展出上百个品种的大家族。到目前为止,其它任何一种单片机系列均未发展到如此规模。
这类单片机具有集成度高、性能价格比优越、货源充足等优点,在工业测量领域内获得了极为广泛的应用。51系列单片机是我国的主流机种,它的开发工具(仿真器、编程器、编译系统等)也很容易购买到,而且价格较底。我们学习单片机也选择从51系列开始。
在51系列单片机中,按ROM(程序存储器)的类型来分,可大致分为三种:1、片内带内部掩膜ROM的(8051)它是由生产厂家用最后一道工序掩膜工艺来写入程序的,用户不能修改。用于大批量的产品。2、片外挂接ROM的(8031),这类单片机本身不含ROM,需要用户自己外接,主要用在早期的51系列单片机开发中。3、片内带EPROM的(8751),这类单片机目前常用的有OTP型和FLASH型。
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。
㈢ 51单片机数据类型转换 高分!
假如你的串口发送函数叫SendData,接收函数叫RecvData,参考如下代码
发送端:
intSendData(unsignedchar*pSendBuf,unsignedintnSendLen);
intRecvData(unsignedchar*pRecvBuf,unsignedintnBufLen);
voidmain(void)
{
floatf;
inti;
doubled;
SendData((unsignedchar*)&f,sizeof(float));
SendData((unsignedchar*)&i,sizeof(int));
SendData((unsignedchar*)&d,sizeof(double));
}
接收端:
voidmain(void)
{
floatf;
inti;
doubled;
RecvData((unsignedchar*)&f,sizeof(float));
RecvData((unsignedchar*)&i,sizeof(int));
RecvData((unsignedchar*)&d,sizeof(double));
}
宗旨就是,先取其他类型数据的地址,用&符号,然后把地址转换为unsigned char*型,就可以通过*(unsigned char)的方式或(unsigned char)[]的方式访问了,就这么简单,希望可以帮到你.
㈣ C51单片机存储器类型有哪些
c51存储器类型有bit
sbit
data
xdata
bdata
pdata
sfr
code等,可能不全面有遗漏
对应的物理存储器是:
bit,即位数据:数据存储器位寻址区,即20h~2fh的范围,共16个字节,16*8=128个位,位地址00h~7fh,连续的。
sbit:特殊功能寄存器中的位数据:只有能够被8整除的那些特殊功能寄存器中的各个位才能被称为sbit,位地址80h~ffh,不连续的,间断的。
data:数据区,对51为00h~7fh共128个字节,对52为00h~ffh,共256个字节,用mov寻址,前128用直接寻址或寄存器(r0~r7)寻址,后128用r0、r1间接寻址。
xdata:外部数据区,0000h~ffffh连续,用dptr间接寻址(movx指令)
bdata:位寻址去的字节,20h~2fh
sfr:特殊功能寄存器(80h~ffh),直接寻址
pdata:外部数据区,p2口保持数据,用r0r1间接寻址(movx指令)
code:程序存储器,用movc指令只读
㈤ C51单片机中的数据类型主要有 哪几种至少写出四种。
bit 型,只能是0和1
unsigned char 可以表示 0到255
unsigned int 可以表示 0到65535
unsigned long int
float
double float
㈥ 51单片机中SBUF中读出的数据类型
SBUF读出来的是ASCII码,数据类型当然是unsigned char,所以如果你从PC发一个数字9给单片机,单片机实际接收到的数据是0x39(9对应的ASCII码),所以你在程序中判断的值应该是0x39而不是9。希望我的回答对你有帮助,谢谢!
㈦ C51程序设计中在定义变量类型时一般要求定义成什么
C语言中,变量一般有两种属性,分别是:存储类别、数据类型。
例如定义一个变量:static unsigned char var = 0; 上述语句中,static(静态的)为变量的存储类别,unsigned char(无符号字符型)为变量的数据类型,var为变量名,初始化值为0。
下面给你说明几点。
存储类别:即变量在代码运行期间的存储方式。c语言提供了4种,分别是:auto(自动的)、static(静态的)、extern(外部的)、register(寄存器的)。
默认情况下,如果不加存储类别,则该变量是auto类的,该关键字可以省略,其它三个不能省。static的用法是,定义洞梁渗一个局部变量,该变量只进行一次初始化,在程序运行期间一直占用着内存,每次调用完毕都保持本次调用完后得到的值(而auto调用完一次即释放内存,下次调用用从新进行初始化)。extern:一个变量被定义成全局变量,加上该关键字,意思是提醒编译器,该变量是在别的C文件中(即你想再一个C文件中调用另外一个C文件的变量,需用该关键字进行引入)。register:渣没定义一个变量为该存储类型,建议编译器将该变量存放在CUP内部寄存器中,以便该变量频繁调用而提高代码运行速度。注意,它是建议型的,一般用在循环次数多的地方,因为变量一般存放在内存中,每次CUP访问它都得跑到内存去提取,次数多了,影响运行速度。放在内部寄存器就快多了(当然放不放我们不知道,只是建议编译器这么做),这种变量也是用完就释放。
数据类型:C语言提供了三种基本数据类型:char型 int型 float型。
默认情况下,char/int/float是指有符号的,即前面都省略了signed关键字,如果需要定义成无符号型的,需在前面加上不可省略的unsigned关键字。char占一个字节,int占2个字节(在有的环境下是4个字节),float占4个。表纳脊示的数据范围也比较明确,char一个字节8位,共256种状态,有符号的最高位表示符号,0为正,1为负,其余7位表示数字位,2的7次方。int型16位 的,一样。float型的数据必须要有小数点,一般float能表示6~7位有效数字。上述的数据类型中,如果范围还不够大,还可以定义成long型,即长整型,占4个字节,而浮点型可以定义成double型,可以表示16~17为小数,当然,它也只占四个字节。
其它还有指针型的变量,还有构造型的如结构体、共同体、枚举等等。学单片机的还有bit型的。C语言概念很多,但都很简单。重点是在用。世界上没有纯记忆的技术,只有一边用一边记忆的技术。
看到那么多头疼了吧?没事,小伙子,哥看好你。
木棉城路过。
㈧ 51单片机long,double,float,int范围是多大,各多少字节
在keilC51或者iar for c8051编译器下:
一、int 占两个字节 范围:-32768~+32767
二、long占四个字节 范围:-2147483648~+2147483647
三、float占四个字节 范围:3.40E+38 ~ +3.40E+38
四、double占8个字节 范围:-1.79E+308 ~ +1.79E+308
51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一。
(8)51单片机中的基本数据类型扩展阅读:
51单片机功能特性
1、可以仿真63K程序空间,接近64K 的16位地址空间;
2、可以仿真64Kxdata 空间,全部64K 的16位地址空间;
3、可以真实仿真全部32 条IO脚;
4、完全兼容keilC51 UV2 调试环境,可以通过UV2 环境进行单步,断点, 全速等操作;
5、可以使用C51语言或者ASM汇编语言进行调试 ;
6、可以非常方便地进行所有变量观察,包括鼠标取值观察,即鼠标放在某 变量上就会立即显示出它此的值;
7、可选 使用用户晶振,支持0-40MHZ晶振频率;
8、片上带有768字节的xdata,您可以在仿真时选 使用他们,进行xdata 的仿真;
9、可以仿真双DPTR 指针;
10、可以仿真去除ALE 信号输出. ;
11、自适应300-38400bps 的所有波特率通讯;
12、体积非常细小,非常方便插入到用户板中.插入时紧贴用户板,没有连接电缆,这样可以有效地减少运行中的干扰,避免仿真时出现莫名其妙的故障;
13、仿真插针采用优质镀金插针,可以有效地防止日久生锈,选择优质园脚IC插座,保护仿真插针,同时不会损坏目标板上的插座. ;
14、仿真时监控和用户代码分离,不可能产生不能仿真的软故障;
15、RS-232接口不计成本采用MAX202集成电路,串行通讯稳定可靠,绝非一般三极管的简易电路可比。