1. 用keil如何给51单片机烧写程序
烧程序是烧hex文件的,你在keil编译通过后,将生成的hex文件下到单片机中,下载方法又与单片机有关,stc的是用stc-isp和串口下载的,at89s52是用isp或串行。
2. 如何使用keil 5 编写 51单片机 工程
1.先安装Keil C51并破解,再安装MDK5并破解。
2.分别打开Keil C51和MDK5的安装目录。将Keil C51安装目录下的C51文件夹复制到MDK5的安装目录文件夹下。
3.分别打开TOOLS.INI文件;将Keil C51下TOOLS.INI文件的内容复制,粘贴到MDK5下TOOLS.INI文件内容的最低端。
4.注意查看并找到粘贴到MDK5下TOOLS.INI文件中如下行代码:
[C51]
PATH="D:KeilC51"(Keil C51安装目录下TOOLS.INI文件中的内容)
将Keil处的内容改成与MDK5下TOOLS.INI文件中如下行代码:
RTEPATH="D:Keil_v5ARMPACK"
Keil_v5处的内容一样。
目的是让软件在MDK5安装目录内找到C51文件。
5.完成以上操作,就可以将安装的Keil C51软件卸载,在MDK5软件上就可以编译C51单片机程序了。亲自测试可行。
来自:网页链接
3. 求助,51单片机keilC程序问题main(){while(1){P0^0=0;}}
是程序编译的结果不同。
P0^0我们认为他是IO口。
keil认为他是普通的寄存器的位元件。
执行时会当寄存器处理。而不是位。
而sbit 定义后。keil才会把他当成特殊位元件。
4. 51单片机keil的编程问题
unsigned char 和 unsigned int 的区别就是位数不同吗,前者是8位二进制数,最大值是255,占用一个字节内存。而后者是16位数,最大数是65535,占用两个字节内存。当数据大于255,就必须用int型。而数据小于256时,就尽量用char型,不要用int型,以节省单片机内存。因单片机内存很有限,要节省内存的使用,最单片机编程的基本要求。
5. 关于keil 51单片机编程
首先,你要搞清楚,蜂鸣器是有源的,还是无源的。有源蜂鸣器,只要加5V电压就响了。而无源蜂鸣器需要加方波信号才响,才不停的加高电平和低电平。而且是加高电平和低电平都要调延时子程序,而你只调一次是不行的。
假如是无源蜂鸣器,单片机控制引脚输出的方波频率高,即延时短,而LED闪烁延时长。其实,不必写两次,分别输出D1=0; D1=1;这么写就行:
D1=!D1;
delay(500);
再说蜂鸣器与LED同时控制,用一个变量计数,假设用n,主循环程序的写法,
while(1)
{
for(n=100;n>0;n--)//调节n的初值大小,来调节LED闪烁快慢
{
D2=!D2;//蜂鸣器响
delay(1);
}
D1=!D1;
delay(500);//LED闪烁
}
}
6. 51单片机Keil C51下使用printf输出到串口,为何初始化了串口之后就可以使用了
因为是这样的,在Keil\C51\LIB目录下有个putchar.c文件,printf函数会调用该文件中的
putchar函数,putchar里面的使用的寄存器都是标准51的(如TI,SBUF),它
们的地址是固定的,由此可知printf函数只针对串口0。
如果想让printf函数支持串口1或串口2。。。那么修改putchar函数的寄存器即可,比如SBUF改为SBUF1。但是能不能用printf函数对串口0,串口1。。。都适用呢
或者重定义putchar函数。
7. keil4能开发51单片机么但是似乎keil4里面没有对应的51器件啊
keil可以啊,51是指基于51的那种架构,像AT89S52,STC5A60S2啊,这些都是,52跟51差不多,就是多了点寄存器
8. ARM的keil能开发C51单片机吗
可以啊,你再装个KEIL(C51)的,你现在装的是keil for ARM-SDK,是开发crote核的,
9. 关于keil和51单片机
看仔细一点,是ram空间不够还是ROM不够,在keil中只要hex文件不超过64KB就不会无法编译的,貌似万年历还用不到这么大空间吧,我觉得应该是256BRAM不够用,你可以在图片数组前加上code(unsignedcharcodepic[]={})把数据放在程序存储区,或者如下图:
10. 51单片机开发用keil哪个版本
一般用keil2或者keil3,keil4 keil5主要用于开发stm32单片机,用来开发51单片机反而不方便