c 语言可以编程单片机吗,第一个单片机程序(C言语编写)

忙活了半天,预备任务做了那么多,终于要编写我们的程序代码了。假如学过 C 言语的话,你应当很轻松的跟着我的编程本人写出来,假如没学过 C 言语也没紧要,你先照着我的抄,我会在适宜的地位写出来对 C 言语语法的说明,如许抄几回后再看看说明,就应当很明确了,抄的时分必定要仔细,特别标点符号弗成以搞错。第一个单片机程序:#include  //包括特别功用存放器界说的头文件 sbit LED = P0^0; //位地址声明,留意:sbit 必需小写、P 大写! void main(){ //任何一个 C 程序都必需有且仅有一个 main 函数 LED = 0; //分号表现一条语句完毕 }

先从程序语法下去剖析一下:main 是主函数的函数名字,每个 C 程序都必需有且仅有一个 main 函数。

void 是函数的前往值类型,本程序没有前往值,用 void 表现。

{}在这里是函数开端和完毕的标记,弗成省略。

每条 C 言语语句以;完毕的。

逻辑下去看,程序如许写就可以了,然则在实践单片机使用中,存在一个成绩。比方我们的程序空间可以包容 100 行代码,然则我们实践上的程序只用了 50 行代码,当运转完了50 行,再持续运转时,第 51 行的程序不是我们想运转的程序,而是不肯定的未知内容,一旦履行下去程序就会失足从而能够招致单片机主动复位,所以我们平日在程序中参加一个死轮回,让程序逗留在我们愿望的这个形态下,不要乱运转,有以下两种写法可以参考:参考程序一:#include  sbit LED = P0^0; void main(){ while(1){ LED = 0; } }

参考程序二:#include  sbit LED = P0^0; void main(){ LED = 0; while(1); }

程序一的功用是程序在重复不时的有限次履行 LED = 0;这条语句,而程序二的功用是履行一次,然后程序直接逗留下来等候,绝对程序一来说程序二愈加简练一些。针关于图 2-6,我们这个程序可以把小灯点亮,然则这个程序却点不亮我们板子上的小灯,这是为什么呢?这里人人就要培育一个认识了,我们做单片机编程,实践上算是硬件底层驱动程序开辟,这种程序的开辟,是离不开电路图的,必需依据我们的电路图来停止程序的编写。假如我们设计电路板的电路图和图 2-6 一样的话,程序可以胜利点亮小灯,然则假如纷歧样,就能够点不亮。我们的开辟板上,还有一个 74HC138 作为 8 个 LED 小灯的总开关,而 P0.0 仅仅是个离开关。好像我们家里老是有一个供电总闸,然后每一个电灯又有一个专门的开关,我们方才的程序仅仅翻开了谁人电灯的开关,然则没有翻开谁人总电闸,所以程序需求加上这局部代码。由于这节课要引见的内容比拟多,所以我们把 74HC138 的道理以及为什么要加额定的代码鄙人节课一致引见,这节课我们直接加上这局部代码,人人晓得有这么一回事就可以了。#include  //包括特别功用存放器界说的头文件 sbit LED = P0^0; //位地址声明,留意:sbit 必需小写、P 大写! sbit ADDR0 = P1^0; sbit ADDR1 = P1^1; sbit ADDR2 = P1^2; sbit ADDR3 = P1^3; sbit ENLED = P1^4; void main(){ ENLED = 0; ADDR3 = 1; ADDR2 = 1; ADDR1 = 1; ADDR0 = 0; LED = 0; //点亮小灯 while (1); //程序中止在这里 }

写了这么多烦琐的语句,刚开端人人能够认为很费事,为什么有的书上程序很复杂就可以点亮小灯,我们这里却这么费事呢。人人要理解一点,就是我们做这个进修板,固然仅仅供给给人人复杂进修运用,然则我们也得依照实践产物的开辟形式去设计,所以综合思索要素许多,人人学到后边就会明确它的设计价值了,这里人人只需跟着我们去做就可以了。程序编好了,我们要对我们的程序停止编译,生成我们需求的可以下载到单片机里的文件,在编译之前,我们先要勾选一个选项,Project-->Options for Target Target1...,或许直接点图 2-17 中红框内的快捷图标:

3c346ed9e172ac4009291446de0f5c0a.png

图 2-17  工程选项图标

在弹出的对话框中,点击 Output 选项页,勾选个中的“Create HEX File”复选框,然后点 OK,如图 2-18 所示。

075bb855fc245b8c1dbb3988bfc4f5cc.png

图 2-18  创立 HEX 文件

设置好今后呢,点击“Project-->rebuild all target files”,或许鼠标点击图 2-19 中红框内的快捷图标,就可以对程序停止编译了。

cfc74665a4fc4626564f40d6f31d6bfc.png

图2-19  编译程序

编译完成后,在我们的 Keil 下方的 Output 窗口会呈现响应的提醒,人人留意看图 2-20,这个窗口通知我们编译完成后的状况,data=9.0,指的是我们的程序运用了单片机外部的 256字节 RAM 资本中的 9 个字节,code=29 的意思是运用了 8K 代码 Flash 资本中的 29 个字节。当提醒“0 Error(s), 0 warning(s)”表现我们的程序没有毛病和正告,就会呈现“creating hex file from “LED”...,意思是从以后工程生成了一个 HEX 文件,我们要下载到单片机上的就是这个HEX 文件。假如呈现有毛病和正告提醒的话,就是 Error 和 warning 不是 0,那么我们就要对程序停止反省,找出成绩,处理好了再停止编译发生 HEX 才可以。

291d198de881fef2974e8e2947ca6fb8.png

图2-20  编译输入信息

到此为止,程序就编译好了,下边我们就要把编译好的程序文件下载到单片机里了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值