51单片机学习笔记(郭天祥版)(2)——第一课作业、流水灯、蜂鸣器

免费样片申请(暂时无用,不说了,很简单)


作业讲解

1-5点亮灯过简单,不说了

6:尝试让第一个发光管闪烁

闪烁,就是亮,灭,再亮,再灭这样一个循环的过程,就是写程序控制某一个IO口先输出低电平,再输出高电平,再输出低电平,如此循环,没变化一个状态要持续一个时间(即为延时)。简单的延时就用一个while或者for循环就可以。

 

 1 #include<reg52.h>
 2 sbit p1_1=P1^0;
 3 unsigned int a;
 4 void main()
 5 {
 6     a=50000;
 7     p1_1=0;
 8     while(a--);
 9     a=50000;
10     p1_1=1;
11     while(a--);
12 }

 

定义一个unsigned int(无符号整型)类型的变量a,其范围为0-65535,若超出这个值,就会取余,例如70000,那么就会取70000-65535后的值。

这里选中这两个,这样如果一直插着单片机,然后更改代码并编译的话,会自动下载进单片机。

你可能会按照上面的方法,但这样是不对的,不标准。因为正常执行c语言代码时,从进入main函数开始,执行完main内部的代码就结束了,但这里却又重新再执行了,因为单片机会一直重复执行main函数,但有时会出错。

正确的写法

 1 #include<reg52.h>
 2 sbit p1_1=P1^0;
 3 unsigned int a;
 4 void main()
 5 {
 6     while(1)
 7     {
 8         a=50000;
 9         p1_1=0;
10         while(a--);
11         a=50000;
12         p1_1=1;
13         while(a--);
14     }
15 }

在main函数内部再写一个while(1),将需要循环执行的代码放入while(1)的花括号内,这样单片机就会一直循环while(1)内部的内容而不出错了。

 


 

要学会软件调试

 

点击这个放大镜一样的东西就是打开调试了,调试前要先编译。再次点击就关闭。

 

黄色箭头指着的就是下一条要执行的语句

 

这个是复位,点击后让调试重头开始。

全速执行。

停止全速执行,只有在开启全速执行后它才会变成红色,才能使用。

进入函数内部。

执行下一调语句。

 

点击Peripheral(硬件)

Interrupt:中断

I/O-Ports:IO口

Serial:串行端口

Timer:定时器

这里选择我们现在用到的IO口的P1口Port 1

可以看到P1上电后为oxFF,即上电后所有IO口为高电平(IO口上电后为1,其余寄存器上电后为0,上电后会自动复位,所以这里软件的复位就可以当做上电),对应的后面8位都打了√,如果√没了,对应的一位就变成了0。操作单片机就是对内部的寄存器(P1)进行操作。

点击View,选上call stack window

 

 

看到,执行过的语句变成绿色,没执行的是灰色,这里while(a--)要想执行完需要单步执行(即一次执行一句)50000次,要点50000次,很慢,所以我们可以设置断点。

断点就是前面出现了红色,有的版本是红色的圆,设置断点的方法就是在需要的语句前方灰色处用鼠标单击。

现在我们说一下上面的全速执行,全速执行就是一直执行,而且执行的很快,不需要你一下一下的点,但是你不知道执行到哪里了,所以我们要用到断点,这里我们不想点击50000次,所以我们在while(a--)后面那条语句设置断点,再开启全速执行,那么程序就会全速执行到断点的位置然后停止,不会执行断点那条语句。

这里执行完全速后,a变为了65535(也是满,unsigned int类型的最大值,满和空是一个概念),意思是减空了,从原本的50000,减到0后再减一次就是65535了。

 


 硬件调试(在线调试)(仿真芯片)     你没买,先不用看

仿真芯片有利于你领悟程序具体是怎么执行的

点开设置

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值