codeblocks 51单片机学习(一)
原先是在keil下进行51单片机编程的,那个时候跟着视频学,发现没学会什么,后来因某些原因重装了一下电脑,又准备继续学习51单片机,决定换一个环境,也就是codeblocks+sdcc。跟着教程装好了sdcc,然后就可以开始编写51单片机程序了,但是中途遇到一些小坑,记录一下。
- 环境搭建及工程创建
使用原先就已经安装的codeblocks17.12,然后安装sdcc。这里就是按照这个人的博客来做的https://www.cnblogs.com/listenscience/p/9376857.html - 写代码
sdcc代码编写和keil有点不太一样,用的库函数是"8051.h",引脚的表示方法P0^0变成P0_0,还有引脚定义sbit也不一样由原先的sbit P0^0 LED;变成__sbit __at 0xE8 LED;sbit还需要查底层信息了解引脚的16进制地址,所以我现在暂时是直接给引脚赋值。
可以参考这篇文章http://blog.chinaunix.net/uid-24203478-id-3062706.html。,就留下这个网址方便我以后的查阅了。
/*第一个程序,流水灯*/
#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[i];
delay50ms();
}
}
}
- 编译
写完程序后,点击codelocks的build,会在程序的文件夹里生成很多文件,我们需要的是.hex文件,这个意思大概是表示机器代码的16进制文件,这个文件可以烧写到51单片机上,.hex文件具体是什么这篇文章可以参考 https://www.cnblogs.com/skullboyer/p/7978189.html。
这里我用stc进行烧写,我这个软件是当初买单片机给的资料里的,单片机型号要选择STC89C52,剩下的默认就可以。
烧写时打开程序文件,选择工程文件下的.hex文件,将单片机连接到电脑上,先点击下载/编译,再接通打开板子的电源。稍等一会你的板子就会有反应了!