千家信息网

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

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,忙活了半天,预备任务做了那么多,终于要编写我们的程序代码了。假如学过 C 言语的话,你应当很轻松的跟着我的编程本人写出来,假如没学过 C 言语也没紧要,你先照着我的抄,我会在适宜的地位写出来对 C 言
千家信息网最后更新 2025年12月01日第一个单片机程序(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安全错误 数据库的锁怎样保障安全 东微服务器 数据库可以支撑趋势预测吗 德道创富商城app软件开发 明日之后圣诞村服务器什么最赚钱 数据库不存在数据却查到了数据 石景山区软件开发来电咨询 安天网络安全冬训营 数据库查找包括某关键字 白邦互联网科技有限公司 信阳网络安全攻防对抗技术挑战赛 嵌入式系统软件开发工具 数据库数据交换功能 编程软件开发需要多少钱 数据库操作序列 安装大型服务器有什么要求 企业对网络安全的要求 上海鲲鹏服务器厂家供应 天堂w是什么服务器 服务器端技术管理与应用 开发软件软件开发 怎么删除ftp服务器上文件 软件开发实施质量指标 国际网络安全大赛视频 下列软件中 是数据库管理系统 网络技术的逻辑功能 如何用数据库查找历史记录 网络服务器在哪几个国家 极简互联网科技 机房里的服务器干什么用 微信小程序账号登录链接数据库
0