千家信息网

第一个单片机程序(C言语编写)

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,忙活了半天,预备任务做了那么多,终于要编写我们的程序代码了。假如学过 C 言语的话,你应当很轻松的跟着我的编程本人写出来,假如没学过 C 言语也没紧要,你先照着我的抄,我会在适宜的地位写出来对 C 言
千家信息网最后更新 2026年10月31日第一个单片机程序(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 中红框内的快捷图标:


图 2-17 工程选项图标


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


图 2-18 创立 HEX 文件


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


图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 才可以。


图2-20 编译输入信息


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


程序 编译 人人 单片机 代码 文件 函数 言语 功用 语句 实践 图标 字节 就是 电路 参考 设计 复杂 费事 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海睿民互联网科技有限公司 为想互联网科技怎么样 盈实互联网科技 互联网下的科技发展 互联网科技的发展 互联网金融 科技金融 互联网 科技创业 银优互联网科技有限公司 互联网科技的未来发展 居家互联网科技有限公司 互联网之后的科技是什么 互联网时代科技改变生活 语蝶互联网科技有限公司 呼和浩特新华互联网科技学院 晋城互联网科技 山东子淼互联网科技有限公司 卡尔迅互联网科技有限公司 山东大美朱楼互联网科技有限公司 易企秀互联网科技是做什么的 保山浩联互联网科技有限公司 湖北九亚互联网络科技有限公司 广州紫鲸互联网科技有限公司 厦门中拓互联网络科技有限公司 有马互联网科技 广西互联网科技公司 互联网校园科技培训 成都铂石互联网科技做什么的 华夏恒生互联网科技013171 萌小萌互联网科技河南有限公司 易租星互联网科技有限公司
0