教你如何用C写单片机程序

2022-05-19 20:29:14   文档大全网     [ 字体: ] [ 阅读: ]

#文档大全网# 导语】以下是®文档大全网的小编为您整理的《教你如何用C写单片机程序》,欢迎阅读!
何用,单片机,程序
教你如何用C++写单片机程序

关键词:C++ 面向对象 单片机

从大一就开始学习单片机,学51AVR编程都使用C语言的风格,即面向过程,只要能画出程序流程图,程序基本就born了。我热衷于编程,尤其是C++,当时想有没有一天,C++的类和对象也能出现在单片机中?

历经世事沧桑,事到如今,我终于有机会,和大家一起学习使用真正面向对象的C++来控制单片机。目前单片机编译器大部分只支持C语言,C++还不够普及,但我们有理由相信,有着更先进的面向对象的理念,有更加平易近人的类和继承,C++必将取代C,成为单片机程序的主流。试看将来环球单片机,必是C++的世界!

下面大家跟着我来一起学习怎么用C++给单片机编程序!本文要求大家玩过AVR单片机,有过C语言编程经验,而且要对VC6.0开发环境有一定了解。 必备软件VC6.0(用于编辑源程序)WinAVR(用于生成Makefile,支持AVR系列单片机)Proteus(用于仿真调试)

首先,你的电脑上要装有VC6.0,进入后选菜单【file---new】新建工程,如图1选择Makefile工程,输入工程名称,路径,点确定。 1_新建工程

一路OK建好工程,界面如图2。这个工程是专门写makefile脚本的,你如果学AVR单片机使用avr-gcc那应该对makefile有一定了解,如果想多了解一点详见974566.html?wtp=tt(呵呵,百度百科) 你还需要安装WINAVR这是个免费软件网上很多资源,这个软件很容易安装,一路Next就可以啦!为了使用方便,我的WINAVR安装到了C盘根目录下的WINAVR文件夹。安装好后,可以直接用它来编辑源代码,今天我就不讲它的使用方法了,只讲怎么生成makefile自我感觉用熟悉的VC6.0环境编写程序心情很愉快,大家还是跟我一起来,打造舒服的编辑环境!建好工程编译成功的界面如图2所示。 2_工程界面

建好的工程里可以写C++代码了,下面是我要以图3电路图写一个控制LED亮灭的程序。这个用Ceasy,是吧?用Proteus仿真大家应该都会我就不罗嗦了,效果可以看本期附带的视频

3_电路 工程界面中,点【file---new,选“C++ Source File,如图4所示,在file一栏中输mainOK注意一定是main,不要写错,一会就知道为什么了。然后进入编辑页面,我们就可以用C++编写源代码了,呵呵,程序如下,是个非常简单的类LED,短短几行程序展现了一个全新的面貌:没有了C语言的那些函数堆,取而代之的是高效美观的类和对象。 4_新建文件 源代码:

#include class LED {

public: LED() { DDRB|=0x01;


PORTB&=~0x01; } ~LED() { DDRB&=~0x01; PORTB&=~0x01; } void LEDon(void) { PORTB&=~0x01; } void LEDoff(void) { PORTB|=0x01; } void LEDdelay(void) { unsigned int a,b; for(a=10000;a;a--) for(b=3000;b;b--); } };

int main(void) { LED led1; while(1) { led1.LEDoff(); led1.LEDdelay(); led1.LEDon(); led1.LEDdelay(); } }

编写完后,还需要对工程进行一些配置,大家要沉着冷静,跟我一步一步走,不要贪图路旁的景色。打开菜单【Project--Settings,在“Build Command Line”中填入“makeOK,如图5所示。

5_ProjectSettings 然后打开菜单Tools-OptionsDerectories标签页,在下拉菜单Show Directories For”选“Executable Files,将Winavr的可执行程序路径添加到VC6.0中,这里需要两条: winavr安装路径\bin winavr安装路径\utils\bin就行啦,如图6所示。 6_ToolsOptions

马上就要成功了,但还有最关键的一项没做,就是写一个makefile。这里我们就用winavr自带的工具mfile来完成。从开始菜单找到winavr,一个个找,看到mfile,单击打开,界面如图7所示。


将它保存到工程文件夹下,慢慢修改。有很多选项需要改,大家也不必全都搞懂,一般直接用现成的就行,我就是一直用我一开始生成好的makefile,一劳永逸,使用时要遵守规则就行了,比如,我们工程里的源程序文件名为main,这是为了让Makefile认出来,以便进行编译。如果改成别的名字,Makefile就会找不到主文件而报错。如果你想用别的名字,也可以,在Makefile里找到一行:

# Target file name (without extension). TARGET = main

将“TARGET=”后面改成你的文件名(不要加后缀)就可以了。 后面不远处有如下几行

# List C source files here. (C dependencies are automatically generated.) SRC =

# List C++ source files here. (C dependencies are automatically generated.) CPPSRC = $(TARGET).cpp

这就把源代码加入了Makefile的识别文件里,之后就可以对其进行编译、链接了。 还有一个选项是选择单片机型号: # MCU name MCU = atmega8

你也可以改成其他型号,如atmega16,atmega128等等。 还有一个选项选择编译器: CC = avr-gcc

我们要用C++编译器,改成 CC = avr-g++ 就行啦!

建议大家自己学习一下这些选项,我附带的资料makefile大家也可以直接拿来用。 完成上述这些,我们该松口气了吧?

VC6.0中,习惯性地按F7,激动人心的时刻到了, 0 errors,0 warnings.!多么熟悉的面孔!祝贺你,已经成功编写了第一个C++源程序!其重大意义不亚于我们第一个helloworld程序!好了,我们烧录到单片机中,用proteus仿真下结果,哈哈一切正常!


本文来源:https://www.wddqxz.cn/5b7734eb0622192e453610661ed9ad51f11d547d.html

相关推荐