模吧

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

52145查看 | 179回复

[单片机课堂] 第三课:人生第一个程序

  [复制链接]
发表于 2016-9-2 01:43:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 我爱萝丽爱萝丽 于 2016-9-11 02:07 编辑

人都说:师傅领进门,修行靠个人,其实很多人缺的不是修行的能力,而是领进门的师傅!我相信,一定有很多业余爱好者喜欢单片机,想要学习却无从下手,网上的资料虽多,却没有一个顾及业余爱好者、0基础受众的课程!

所以我在教学时会都会从最简单的开始讲起,如果有没考虑到的,欢迎补充提问。而且课程进度也不会很快,每天抽出几十分钟时间练习一下即可。


第三课的主要任务是学习建立Keil C51工程,和编写最简单的程序。
 楼主| 发表于 2016-9-2 02:11:12 | 显示全部楼层
本帖最后由 我爱萝丽爱萝丽 于 2016-9-11 02:33 编辑

1.1 新建单片机项目工程


如果你已经在第一课下载并安装了编程软件,那么就可以愉快的按照下面的步骤学习了:
(如果有英语不好的童鞋,可以百度把那几个单词记下来,总共也没几个单词)


1、新建工程
第三课:人生第一个程序 业余爱好者,无从下手,业余爱好,简单的,爱好者 作者:我爱萝丽爱萝丽 3247


2、新建规整的文件夹方便管理,保存工程
第三课:人生第一个程序 业余爱好者,无从下手,业余爱好,简单的,爱好者 作者:我爱萝丽爱萝丽 8894


3、弹出芯片型号选择窗口,STC单片机是开源的Intel 8051构架
第三课:人生第一个程序 业余爱好者,无从下手,业余爱好,简单的,爱好者 作者:我爱萝丽爱萝丽 5778


4、弹出是否自动添加头文件,选择否
第三课:人生第一个程序 业余爱好者,无从下手,业余爱好,简单的,爱好者 作者:我爱萝丽爱萝丽 8460


5、新建一个文件
第三课:人生第一个程序 业余爱好者,无从下手,业余爱好,简单的,爱好者 作者:我爱萝丽爱萝丽 2419


6、保存
第三课:人生第一个程序 业余爱好者,无从下手,业余爱好,简单的,爱好者 作者:我爱萝丽爱萝丽 6236


7、取名为.c文件,.c代表用C语音写的程序文件
第三课:人生第一个程序 业余爱好者,无从下手,业余爱好,简单的,爱好者 作者:我爱萝丽爱萝丽 7575


8、点+号,右键添加文件
第三课:人生第一个程序 业余爱好者,无从下手,业余爱好,简单的,爱好者 作者:我爱萝丽爱萝丽 5674


9、把.c文件添加到工程
第三课:人生第一个程序 业余爱好者,无从下手,业余爱好,简单的,爱好者 作者:我爱萝丽爱萝丽 7541


10、切换输入法到英文,亲自手打敲出你的第一个代码吧。这算是最简单的一个代码了,有不能理解的随后会讲。
敲完后点击锤子按钮进行设置。
(中文输入法会敲出不能识别的乱码,切记!)
第三课:人生第一个程序 业余爱好者,无从下手,业余爱好,简单的,爱好者 作者:我爱萝丽爱萝丽 5977


11、output 输出选项,勾选创建HEX文件
第三课:人生第一个程序 业余爱好者,无从下手,业余爱好,简单的,爱好者 作者:我爱萝丽爱萝丽 4382


12、点击编译按钮,叮咚一声清脆的声音,0错误,0警告,撒花~一个完美的新工程诞生啦
第三课:人生第一个程序 业余爱好者,无从下手,业余爱好,简单的,爱好者 作者:我爱萝丽爱萝丽 4579


13、打开工程文件夹,可以看到你新建工程的所有文件。其中HEX就是可以下载到单片机里面的东西哦。
第三课:人生第一个程序 业余爱好者,无从下手,业余爱好,简单的,爱好者 作者:我爱萝丽爱萝丽 2804


14、如果对程序的字体不满意。可以百度“Keil 字体设置”,设置自己喜欢的字体和颜色。
楼主自己喜欢稍大圆滑的字体,配置如下。
第三课:人生第一个程序 业余爱好者,无从下手,业余爱好,简单的,爱好者 作者:我爱萝丽爱萝丽 8418
 楼主| 发表于 2016-9-2 02:29:38 | 显示全部楼层
本帖最后由 我爱萝丽爱萝丽 于 2016-9-3 11:41 编辑

1.2 必备小知识
我们先来学习一下这个最简单的单片机代码
  1. #include<reg51.h>

  2. main()
  3. {
  4.         
  5.         while(1)
  6.         {
  7.                
  8.         }
  9.         
  10. }
复制代码
知识点(1) #include<reg51.h>
#include<> 是包涵、调用的意思。
reg51.h 是51单片机的寄存器声明文件。
合起来的意思就是调用51单片机的头文件。我们初学单片机,对这个不用深究,只要知道在程序第一行这样写就行了。


知识点(2) main函数
包括main()和main下的大括号。就是主函数的意思。
当单片机一通电,程序就会从主函数里面的第一行开始,一行一行的执行,走完了以后重新开始


知识点(3)while(1)循环
上面说了,如果程序走完了,单片机就会复位重新走。我们如果不希望程序被走完呢?
那就用while(1),把程序卡住。
while(1)就代表一个无限循环,它的括号里面的程序会被反复执行,程序永远不会走完。
那单片机一直这样走,会不会把它累坏呢?哈哈,其实楼主在初学时也一直担心这个问题,现在看来担心是多余的。
 楼主| 发表于 2016-9-3 12:48:41 | 显示全部楼层
本帖最后由 我爱萝丽爱萝丽 于 2016-9-4 11:29 编辑

1.3 延时函数


我们要想让单片机正确的做事,必须要知道什么时间去做。比如现在客户有一个要求,按下按钮以后,灯泡亮一秒自动熄灭。
怎样知道时间过去了一秒呢?最简单的方法:软件延时。
STC单片机有一个好处,就是下载软件自带程序生成器,我们可以用这个功能方便的创建不同时间的延时函数。
打开STC-ISP软件,找到软件延时计算器;
系统频率选择12Mhz,我们以后写程序都默认这个频率;
定时时间选择1000毫秒(ms),就是1秒(s)。1毫秒(ms)等于1000微妙(us);
指令集选择Y5,代表STC15系列单片机;
点击生成代码,然后复制到你自己的程序里就可以了。
第三课:人生第一个程序 业余爱好者,无从下手,业余爱好,简单的,爱好者 作者:我爱萝丽爱萝丽 6525
  1. #include<reg51.h>


  2. void Delay1000ms()                //@12.000MHz
  3. {
  4.         unsigned char i, j, k;

  5.         //_nop_();
  6.         //_nop_(); 这两个用不到,直接删掉
  7.         i = 46;
  8.         j = 153;
  9.         k = 245;
  10.         do
  11.         {
  12.                 do
  13.                 {
  14.                         while (--k);
  15.                 } while (--j);
  16.         } while (--i);
  17. }

  18. //此为分界线,函数的具体内容写在上面;
  19. //下面是具体的程序,写函数名字就可以调用了。

  20. main()
  21. {
  22.         
  23.         while(1)
  24.         {
  25.                 Delay1000ms();//每一行程序结尾要加分号
  26.         }
  27.         
  28. }
复制代码


知识点(4) 延时函数原理
可以看到自动生成的延时函数里有很多密密麻麻的东西,不要感到恐惧,其实它就是靠反复执行那些无用的东西浪费时间,才有了延时效果。
现在先不用管是怎么写的,现在只需会用就行了。


知识点(5) 声明函数
在函数调用之前,要先声明,所以要放在主函数之前。


知识点(6) 调用函数
只有在程序中调用了函数,它才会实际生效。

知识点(7) 程序注释
这段函数什么意思?如果怕自己忘了或别人看不懂,可以在函数中添加注释,注释可以用汉字。
格式:
//注释内容
具体原理是:“//”符号后面的东西Keil软件就当做不存在,只有人类才能看见哦


现在的程序就是在反复执行延时1秒的函数,赶快编译试一下吧!



回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2016-9-3 13:29:13 | 显示全部楼层
本帖最后由 我爱萝丽爱萝丽 于 2016-9-11 02:39 编辑

1.4 单片机的引脚


当当当当~~~请出我们本次课程的主角:STC 最简单的8脚单片机!
第三课:人生第一个程序 业余爱好者,无从下手,业余爱好,简单的,爱好者 作者:我爱萝丽爱萝丽 4721


这个单片机的各个引脚是什么功能呢?
打开STC-ISP软件,找到封装脚位选项,可以看到具体描述:
第三课:人生第一个程序 业余爱好者,无从下手,业余爱好,简单的,爱好者 作者:我爱萝丽爱萝丽 8739


知识点(8) VCC、GND
GND是地,代表电源的负极,VCC就是电源正极了。根据不同的芯片型号,可以接3~5V。


知识点(9) P3.0、P3.1、……
P代表端口的意思,单片机有多个端口,如P0、P1、P2、P3等。
每个端口有8只引脚,对于端口3,有P3.0、P3.1、P3.2、P3.3、P3.4、P3.5、P3.6、P3.7。
这个单片机只有可怜的几个引脚,所以就只能用其中一部分啦。
这些引脚还有一些别的名称,那是额外的功能,暂时无需知道。

在第一课中,我们已经制作出了试验电路,三色灯珠接在单片机的引脚上,如何控制它们?下节课自见分晓!




回复 支持 1 反对 0

使用道具 举报

发表于 2022-4-7 13:13:30 | 显示全部楼层
继续学习中
回复 支持 1 反对 0

使用道具 举报

发表于 2020-11-30 15:29:40 | 显示全部楼层
楼主辛苦了,不过好像单片机跑这程序更辛苦,哈哈
回复 支持 1 反对 0

使用道具 举报

发表于 2020-10-11 13:14:45 | 显示全部楼层
看一下学习来了,但是看不太懂从那里入手第三课:人生第一个程序 业余爱好者,无从下手,业余爱好,简单的,爱好者 作者:摸吧 911
回复 支持 0 反对 1

使用道具 举报

发表于 2020-7-23 13:00:25 | 显示全部楼层
学习学习好帖子
回复 支持 1 反对 0

使用道具 举报

发表于 2020-6-18 10:21:57 | 显示全部楼层
人生第一个c程式,装到那个灯里面测试了,"白光长亮"!相信随后内容会越来越丰富!
回复 支持 0 反对 1

使用道具 举报

发表于 2020-6-3 21:55:24 | 显示全部楼层
学到很多,之前因为粗心都没注意
回复 支持 1 反对 0

使用道具 举报

发表于 2017-8-28 16:37:18 | 显示全部楼层
从今天起把每一课看一遍,重新学习一下51等等,,,,,,,,主要是牛币从今天起把每一课看一遍,重新学习一下51等等,,,,,,,,主要是牛币
回复 支持 1 反对 0

使用道具 举报

发表于 2017-8-15 10:59:19 | 显示全部楼层
太好了,学习,学习一下,谢谢
回复 支持 1 反对 0

使用道具 举报

发表于 2017-7-14 12:48:14 | 显示全部楼层
认认真真学习了两遍,还抄了笔记。感谢大神的无私奉献。第三课:人生第一个程序 业余爱好者,无从下手,业余爱好,简单的,爱好者 作者:神奇的牛 3185
回复 支持 1 反对 0

使用道具 举报

发表于 2017-7-11 14:50:57 | 显示全部楼层
厉害了楼主......................
回复 支持 1 反对 0

使用道具 举报

发表于 2016-9-2 07:03:30 | 显示全部楼层
学习学习第三课:人生第一个程序 业余爱好者,无从下手,业余爱好,简单的,爱好者 作者:ssz 5111 第三课:人生第一个程序 业余爱好者,无从下手,业余爱好,简单的,爱好者 作者:ssz 7826
发表于 2016-9-2 07:08:14 | 显示全部楼层
楼主辛苦2点多还在写教程
发表于 2016-9-2 07:13:00 来自手机 | 显示全部楼层
前排占座,认真学习
发表于 2016-9-2 07:21:00 来自手机 | 显示全部楼层
我爱萝丽爱萝丽 发表于 2016-9-2 02:29
1.2 必备小知识

楼主辛苦了,不过好像单片机跑这程序更辛苦,哈哈
发表于 2016-9-2 07:30:11 | 显示全部楼层
第三课:人生第一个程序 业余爱好者,无从下手,业余爱好,简单的,爱好者 作者:竹蜻蜓 9798 第三课:人生第一个程序 业余爱好者,无从下手,业余爱好,简单的,爱好者 作者:竹蜻蜓 1203 第三课:人生第一个程序 业余爱好者,无从下手,业余爱好,简单的,爱好者 作者:竹蜻蜓 389 第三课:人生第一个程序 业余爱好者,无从下手,业余爱好,简单的,爱好者 作者:竹蜻蜓 4554 第三课:人生第一个程序 业余爱好者,无从下手,业余爱好,简单的,爱好者 作者:竹蜻蜓 2094 第三课:人生第一个程序 业余爱好者,无从下手,业余爱好,简单的,爱好者 作者:竹蜻蜓 6448
发表于 2016-9-2 07:42:07 | 显示全部楼层
继续学习
回复 支持 1 反对 0

使用道具 举报

发表于 2016-9-2 07:43:45 | 显示全部楼层
楼主辛苦,楼主辛苦,楼主辛苦,
发表于 2016-9-2 07:46:02 来自手机 | 显示全部楼层
感谢萝莉老师凌晨2点还在写程序辛苦了
发表于 2016-9-2 07:53:14 | 显示全部楼层
好!受教了
发表于 2016-9-2 08:01:26 来自手机 | 显示全部楼层
作为强迫症,在颜色上调了很久,每次都要确定才能看到效果差评!
发表于 2016-9-2 08:32:22 | 显示全部楼层
学习完毕,等待更新

点评

是第一次学单片机吗  详情 回复 发表于 2016-9-2 12:10
发表于 2016-9-2 08:47:22 | 显示全部楼层
也想搞一个
发表于 2016-9-2 08:50:58 | 显示全部楼层
好东西
发表于 2016-9-2 08:59:12 | 显示全部楼层
就缺你这样的师傅
发表于 2016-9-2 10:44:42 | 显示全部楼层
照顾了许多人呐
发表于 2016-9-2 11:25:33 | 显示全部楼层
群主,想上传一个keil_cn汉化包,方便英语不通的,怎么上传啊。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|关于模吧|APP下载|广告报价|小黑屋|手机版|企业会员|商城入驻|联系我们|模吧 ( 冀公网安备13080502000084号 )

© 2013-2020 Moz8.com 模吧,玩出精彩!