codeblocks 51单片机学习(一)
原先是在keil下进行51单片机编程的,那个时候跟着视频学,发现没学会什么,后来因某些原因重装了一下电脑,又准备继续学习51单片机,决定换一个环境,也就是codeblocks+sdcc。跟着教程装好了sdcc,然后就可以开始编写51单片机程序了,但是中途遇到一些小坑,记录一下。
/*第一个程序,流水灯*/
#include "8051.h"
unsigned int s[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
void delay50ms(void) //误差 0us
{
unsigned char a,b;
for(b=173;b>0;b--)
for(a=143;a>0;a--);
}
void main()
{
unsigned int i;
while(1)
{
for(i=0;i<8;i++)
{
P2=s
;
delay50ms();
}
}
}
- 编译
写完程序后,点击codelocks的build,会在程序的文件夹里生成很多文件,我们需要的是.hex文件,这个意思大概是表示机器代码的16进制文件,这个文件可以烧写到51单片机上。
这里我用stc-isp进行烧写,我这个软件是当初买单片机给的资料里的,单片机型号要选择你自己单片机型号,由于我的是STC89C52所以是这个选项,剩下的默认就可以。
烧写时打开程序文件,选择工程文件下的.hex文件,将单片机连接到电脑上,先点击下载/编译,再接通打开板子的电源。稍等一会你的板子就会有反应了!
codeblocks 51单片机学习(一)
原先是在keil下进行51单片机编程的,那个时候跟着视频学,发现没学会什么,后来因某些原因重装了一下电脑,又准备继续学习51单片机,决定换一个环境,也就是codeblocks+sdcc。跟着教程装好了sdcc,然后就可以开始编写51单片机程序了,但是中途遇到一些小坑,记录一下。
/*第一个程序,流水灯*/
#include "8051.h"
unsigned int s[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
void delay50ms(void) //误差 0us
{
unsigned char a,b;
for(b=173;b>0;b--)
for(a=143;a>0;a--);
}
void main()
{
unsigned int i;
while(1)
{
for(i=0;i<8;i++)
{
P2=s
;
delay50ms();
}
}
}
- 编译
写完程序后,点击codelocks的build,会在程序的文件夹里生成很多文件,我们需要的是.hex文件,这个意思大概是表示机器代码的16进制文件,这个文件可以烧写到51单片机上。
这里我用stc-isp进行烧写,我这个软件是当初买单片机给的资料里的,单片机型号要选择你自己单片机型号,由于我的是STC89C52所以是这个选项,剩下的默认就可以。
烧写时打开程序文件,选择工程文件下的.hex文件,将单片机连接到电脑上,先点击下载/编译,再接通打开板子的电源。稍等一会你的板子就会有反应了!
举报