keil可以声明多少个bit,c51编译器对bit变量的声明及使用有什么限制
来源:整理 编辑:亚灵电子网 2023-08-05 05:20:33
1,c51编译器对bit变量的声明及使用有什么限制
51单片机用的最多的就是keil c51编译器,比较通用。什么51都可以,只要到其厂商的官方网站上面下个相应的驱动程序就可以了结构体也无法使用bit成员。另外由于总共只有128个可寻址位,因此bit变量与bdata变量总和不能超过128位。超过会怎样?嘿嘿我也没试过……
2,用KEIL编程时出现的问题哪位大神帮我看看哪里有错呀
你的程序就这么多吗,还有吗?这也没有写完哪?程序中的分号;都是全角的,是错误的,必须用半角的,就是在英文输入状态下打分号,是这个 ;注释文字换一行再写时,前面必须加分号; 上一行的分号是不管下一行的。这一行就是这个问题:从24C01C中读数据,数据送AT89C51中38H开始的16个字节中最严重的问题是:程序中用了大量的变量,如LED_BIT_2,等等,很多很多,要用变量就必须在程序的前面来定义,与C语言的声明是不同的,应该这样定义如LED_BIT_2 EQU 30H只要用到变量就得这么定义前面一个函数是模拟spi总线时序、向总线写一个字节。从命名可以看出这是spi主机的发送程序。后面一个函数是向指定的地址写入指定的数据。一般是操作spi从设备的寄存器之类的。
3,关于单片机16位数据传到8位IO口的问题见中文注释
硬件没看图不知道。至少你的代码。。会让你感觉 led不在闪烁。中间的延时时间太短了。在闪烁你眼睛看不出了。delay_10us(100000); 的效果 根本没有你想要的1s时间。。运行的结果可能只5ms左右的效果。。你自己void delay_10us(unsigned char n)申明的是8位变量,,居然用了32位的数字。。。所以达不到你要的效果。要修改吧void delay_10us(unsigned char n)修改成void delay_10us(unsigned long n)。。如果还看不见闪烁,适当的减少一下1000000这个太大了如果还不行。在查看一下你说的硬件C语言本来就是这样的。较长的数据类型赋给较短的数据类型时,截去高出的部分。如果你想让temp等于Data的高8位,应该temp = Data >> 8;
4,求CVAVR 中怎样定义 Keil中 bit
CVAVR中找个全局可见的地方声明bit和BYTE这两种类型。typedef unsigned char bit;typedef unsigned char BYTE;确定一定以及肯定的说不能,看一个单片机是否能被一个ide(像keil等)支持要看这个单片机是属于哪一个系列的,也就是说那个内核的,常见的单片机有:51系列的,常用的有keil,或者iaravr,一般使用avr studio,iccavr,iar,等等。avr的平台很多,用的人也很多,资料自然也很多。msp430,这个一般都是用iar开发的,pic, maple平台,hi-tech c 编译器。再就是arm了,可以用keil mdk,iar。看到了吧,iar支持所有市面上流行的单片机。另外,上述列出的单片机内核,都有相应的gcc开发工具,可以使用gcc开发,可以使用codeblocks ide+gcc 编译器来开发。这样可以不用去写makefile。条理不是很清晰,仅供参考。
5,请问大虾们如下Keil程序是什么意思啊急啊
#ifndef __INTRINS_H__ //如果没有定义过__INTRINS_H__ #define __INTRINS_H__ //那么定义__INTRINS_H__ (这种写法应用于很多.h文件,避免重复定义)extern void _nop_ (void); //extern申明引用外部函数(包含此.h文件的.c文件均可使用这些声明,而不必在每个.c中声明)extern bit _testbit_ (bit);extern unsigned char _cror_ (unsigned char, unsigned char);extern unsigned int _iror_ (unsigned int, unsigned char);extern unsigned long _lror_ (unsigned long, unsigned char);extern unsigned char _crol_ (unsigned char, unsigned char);extern unsigned int _irol_ (unsigned int, unsigned char);extern unsigned long _lrol_ (unsigned long, unsigned char);extern unsigned char _chkfloat_(float);extern void _push_ (unsigned char _sfr);extern void _pop_ (unsigned char _sfr);#endif //这个不用解释吧在.h文件中定义函数。这些函数都是写在别的文件中。那个extern就表示,当前的函数在另一个文件中,让编译器去其它文件中查找该函数。你好!在.h文件中定义函数。这些函数都是写在别的文件中。那个extern就表示,当前的函数在另一个文件中,让编译器去其它文件中查找该函数。我的回答你还满意吗~~
文章TAG:
keil可以声明多少个bit可以 声明 多少