当前位置:首页 > 教育培训 >

怎么样用c语言实现51单片机(51单片机c语言编程100例)

来源:原点资讯(www.yd166.com)时间:2023-05-30 20:20:54作者:YD166手机阅读>>

有了点亮第一个LED灯的实验作为基础,我们对使用仿真软件和编程软件有了一定了解,知道如何进行仿真,如何编写程序。那么接下来让我们来看一下51单片机的实物,了解C语言基础,通过一个一个的实验去理解C语言语句的作用。通过实际的例子去理解C语言和单片机的结合使用。


0. 回忆点亮单灯实验代码

在点亮第一个LED灯的实验中,我们编写了这样一段代码。

怎么样用c语言实现51单片机,51单片机c语言编程100例(1)

就这么几行代码,就能让LED灯亮起来。我们有很多种方法都可以让LED点亮,这里不过是用了单片机,用到了编程将它实现,那么它到底有什么魔力呢,让我们来一一揭晓。

第一行代码,#include<文件名>,这是C语言的预处理指令,那么什么是预处理指令呢,这里做一个简单的介绍。

· 以“#”开头的指令叫预处理指令。

· 可以出现在任何位置,必须以一行结束,如果要换行,必须用“\”来连接两行内容。

· 预处理指令指示在程序正式编译前就由编译器进行的操作。

我们这里的预处理指令是文件包含。预处理指令还有宏定义,条件编译,宏指令,宏函数等,这里就不展开讲解了,如果大家有兴趣可以去查阅相关C语言资料。

该行代码中包含的是reg51.h这个文件,它主要是一些特殊功能寄存器的地址声明,比如代码中的P1,可以进行位寻址,还包括一些位地址的声明。在后面会详细说到这个文件中的内容。

第二行代码,void main(),首先我们知道C语言是面向过程的编程语言,函数是它的基本组成单位。C语言只有一个主函数,这个函数就是main(),程序的从这里开始执行,从这里结束,那么这句代码就是创建主函数的关键代码。主函数的完整代码如下。

void main() { 语句块; }

这个void是C语言的关键字,表示空类型,因为我们主函数是没有返回值的所以为空。

第四行代码,while(1),while也是C语言的关键字,用于创建循环语句,括号中是它结束的条件,条件为假时结束循环,当他的包含多条语句时需要用花括号把代码括起来。因为我们这里给了他一个常量,所以条件一直真,就会无限次执行这个循环里的代码。在我们的代码里面它会一直执行P1 = 0xfe;这句代码,所以大家会看到LED小灯会一直亮。

第六行代码,P1 = 0xfe;这句代码是给P1赋值,P1这个变量在reg51.h这个文件中已经定义好了,他表示的就是单片机的P1口,我们这里用的是字节操作,一次给单片机的8个I/O赋值。0xfe是一个十六进制数,它用二进制表示为 11111110,最低位刚好就是0,对应就给P1.0这个端口赋值为0,由此就可以点亮LED小灯。

1. 改进单灯实验代码

介绍完了每一句代码的作用,那么我们就开始来改一改代码,让他又不一样的变化。

实验二:用位操作实现单灯闪烁。

需求分析:实现单灯闪烁。

硬件搭建:硬件还是点亮单灯的连接方式,这次我使用实物向大家展示真实效果,让大家有一个真实感受。

怎么样用c语言实现51单片机,51单片机c语言编程100例(2)

硬件实物

我们利用面包板和51单片机最小系统进行实验。

硬件:单片机最小系统,LED小灯,240Ω电阻,杜邦线,面包板。

怎么样用c语言实现51单片机,51单片机c语言编程100例(3)

实物原理图

怎么样用c语言实现51单片机,51单片机c语言编程100例(4)

实物连接

我这款单片机最小系统是带CH340串口转USB芯片的可以直接通过电脑进行烧写程序,如果是电脑仿真就可以直接进行烧写。

程序编写:我们要让这个灯在亮灭间循环,简单来说就是需要让P1.0这个口输出高低电平,我们让它输出一段时间高电平,再输出一段时间低电平就可以实现需求。

怎么样用c语言实现51单片机,51单片机c语言编程100例(5)

单灯闪烁代码

代码分析,这里我们新定义了一个函数delay(),用做软件延时,通过sbit关键字定义了LED0,让它表示我们的P1.0这个端口。这里的P1^0表示的是取P1口的第0位。通过延时我们让P1.0口不断地输出高低电平,由此就实现了实验需求。

程序烧写:

我们通过stc的官方烧写工具给单片机进行程序烧写。

怎么样用c语言实现51单片机,51单片机c语言编程100例(6)

stc官方烧写工具

首先我们需要选择单片机型号,我这款是stc89c52rc,然后选择串口号,我的串口号是com4,不同的电脑就不太一样,当然单片机上要有串口转USB的芯片才会出现这个选项,如果没有可以使用ISP下载,需要一各ISP下载器,可以根据自己的实际情况进行选择购买。左后就是选择打开程序文件,将hex文件在这个地方选好,就可以点击下载/编程按键,正常情况机会看到下面这个效果。

到此我们以及完成了整个实验。

2. 小小总结

通过实物让大家感受单片机控制外部器件的能力,简单介绍了编写C语言的一些问题,作者能力有限,篇幅有限,很多地方没有讲全,我希望通过这个例子,来展示如何利用好软件,如何编写程序,怎么去实现自己想要的效果。

下一篇文章我将会在通过一个实例去讲解C语言如何控制单片机的输入输出,让对单片机感兴趣的读者进一步了解如何通过编写程序让单片机去控制外部硬件。如果有兴趣可以关注我,持续更新中。

点赞 关注 转发,是我创作的动力。希望大家继续支持我这个小小科技仔。

栏目热文

十天学会单片机和c语言编程笔记(单片机c语言详细教程)

十天学会单片机和c语言编程笔记(单片机c语言详细教程)

《十天学会单片机和C语言编程》第一天Part1预备知识,...

2023-05-30 20:45:13查看全文 >>

单片机入门需要先学c语言吗(学单片机c语言应该先学什么)

单片机入门需要先学c语言吗(学单片机c语言应该先学什么)

大家好,我是无际。本人从事十年单片机开发,当初跨行自学入行,走过的弯路可以绕地球一圈。下面分享下这10年总结的经验,只说...

2023-05-30 20:35:21查看全文 >>

单片机c语言编程入门详解(单片机c语言零基础入门自学)

单片机c语言编程入门详解(单片机c语言零基础入门自学)

我当初是自学单片机的,也用同样的方法带出过月入15K以上的徒弟。我的方法不能说是最好的,但绝对是靠谱的,毕竟都是曾经自己...

2023-05-30 20:11:25查看全文 >>

兔子下崽多久可以出来(兔子下崽间隔多长时间)

兔子下崽多久可以出来(兔子下崽间隔多长时间)

之前我有拍过关于母兔分娩的注意事项和准备工作的视频,但是还是以文字的方式打出来,希望我的分享对养兔的新手朋友有帮助。分享...

2023-05-30 20:31:37查看全文 >>

兔子下崽需要多少天(兔子下崽后一般多久能生)

兔子下崽需要多少天(兔子下崽后一般多久能生)

我们都知道兔子的繁殖能力是非常的强,一个月可以生一窝,被称为月月兔,一个母兔的生产时间在30天,兔子跟其它动物不一样,兔...

2023-05-30 20:33:48查看全文 >>

单片机c语言编程注意什么(51单片机c语言编程100例)

单片机c语言编程注意什么(51单片机c语言编程100例)

每个攻城狮的成长经历,目标总是相似的。刚开始学习这门技术的时候,希望自己能独立做出各种各样智能的产品。有了这能力,更有竞...

2023-05-30 20:26:19查看全文 >>

单片机c语言从零基础学习(有专门的单片机c语言教程)

单片机c语言从零基础学习(有专门的单片机c语言教程)

今天我们来讲讲一个c语言的源程序是怎么样最终编译成单片机所能执行的程序的通过前面的学习我们也可以知道,c语言这种编程语言...

2023-05-30 20:14:06查看全文 >>

51单片机怎么用c语言编程(51单片机编程代码大全)

51单片机怎么用c语言编程(51单片机编程代码大全)

单片机控制LED的闪烁是单片机入门必做的实验,下面我们看看源代码是什么样的。1、点亮第一个LED#include "re...

2023-05-30 20:48:12查看全文 >>

网络电视怎么找不到应用商店(为啥我家的网络电视没有应用商店)

网络电视怎么找不到应用商店(为啥我家的网络电视没有应用商店)

智能电视功能强大,不仅可以看电视还可以玩游戏、唱歌听音乐……只需要在电视的应用商店中下载电视软件就可以实现各种功能,那么...

2023-05-30 20:36:31查看全文 >>

如何打开网络电视应用商店(网络电视怎么下应用商店)

如何打开网络电视应用商店(网络电视怎么下应用商店)

智能电视功能强大,不仅可以看电视还可以玩游戏、唱歌听音乐……只需要在电视的应用商店中下载电视软件就可以实现各种功能,那么...

2023-05-30 20:20:10查看全文 >>

文档排行