已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
教你如何用C+写单片机程序关键词:C+ 面向对象 单片机从大一就开始学习单片机,学51,AVR编程都使用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有一定了解,如果想多了解一点详见/view/974566.html?wtp=tt(呵呵,百度百科)。你还需要安装WINAVR,这是个免费软件,网上很多资源,这个软件很容易安装,一路Next就可以啦!为了使用方便,我的WINAVR安装到了C盘根目录下的WINAVR文件夹。安装好后,可以直接用它来编辑源代码,今天我就不讲它的使用方法了,只讲怎么生成makefile。自我感觉用熟悉的VC6.0环境编写程序心情很愉快,大家还是跟我一起来,打造舒服的编辑环境!建好工程编译成功的界面如图2所示。图2_工程界面建好的工程里可以写C+代码了,下面是我要以图3的电路图写一个控制LED亮灭的程序。这个用C很easy,是吧?用Proteus仿真大家应该都会我就不罗嗦了,效果可以看本期附带的视频。 图3_电路图在工程界面中,点【file】-【new】,选“C+ Source File”,如图4所示,在file一栏中输main点OK,注意一定是main,不要写错,一会就知道为什么了。然后进入编辑页面,我们就可以用C+编写源代码了,呵呵,程序如下,是个非常简单的类LED,短短几行程序展现了一个全新的面貌:没有了C语言的那些函数堆,取而代之的是高效美观的类和对象。 图4_新建文件源代码:#include class LEDpublic: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”中填入“make”,OK,如图5所示。 图5_ProjectSettings然后打开菜单【Tools】-【Options】,选“Derectories”标签页,在下拉菜单“Show Directories For”选“Executable Files”,将Winavr的可执行程序路径添加到VC6.0中,这里需要两条: winavr安装路径bin 和 winavr安装路径utilsbin就行啦,如图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 nameMCU = atmega8你也可以改成其他型号,如atmega16,atmega128等等。还有一个选项选择编译器:CC = avr-gcc我们要用C+编译器,改成CC = avr-g+就行啦!建议大家自己学习一下这些选项,我附带的资料中makefile大家也可以直接拿来用。完成上述这些,我们该松口气了吧?在VC6.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025~2026学年河南省信阳市光山县第二高级中学高二下学期七月月考生物试卷
- 2026年山西省职业院校技能大赛-高职组(机电一体化技术赛项)考试题库(带答案)
- 2026 河南 综合管理岗事业单位结构化面试考前模拟训练卷含解析
- 2026年广东省职业院校技能大赛-中职组(节水系统安装与维护赛项)考试题库(带答案)
- 2026年信息通信行业网络安全宣传知识考试试题及答案
- (2026年)新学期学校卫生保健室工作计划
- (2026版)内科护士分层级培训计划
- 2026年ICU 血液透析重症监护试卷及答案
- DB34T5445-2026船闸工程人字钢闸门施工与验收规程
- 2026年ap财务笔试题目及答案
- 2026年养老护理员五级职业技能认定试题(附答案)
- 《碳中和原理与技术》全套教学课件
- 2026年医疗护理员招聘试题及答案
- 电力内外线施工
- 2027贵州航天电器秋季招聘284人笔试备考试题及答案详解
- ISO 15510-2024 中文版(不锈钢 化学成分和交货技术条件)
- 2026年计算机程序设计员(三级)职业鉴定考试题库(新版)
- 2026年实验室室内质控培训课件
- 关键工序和特殊过程的管理程序文件
- 欧盟 POPs 法规 (EU) 2019-1021 中文版(完整译文 + 2025 年 PFAS 全面限制要求)
- 2026国网新版SLVA低压开关柜标准解析
评论
0/150
提交评论