熊猫棋牌官方下载

易首开发板的单片机c51开发语言入门2

[复制链接]
5696 0 打印 上一主题 下一主题

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

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

x

1.        for(int aaa=0;aaa<10;aaa=aaa+1){ 这里(int aaa=0;是定义个循环次数变量aaa(int 前缀表示是整数型的),
并把他初始化为0,每次循环后执行aaa=aaa+1这个来把变量aaa的值加上后再赋值给aaa,
,在每次循环前先判断aaa是否小于10,如果成立则继续下一次循环,
可以想象:
第1次循环前,aaa等于0
第2次循环前,aaa等于1
第3次循环前,aaa等于2
第4次循环前,aaa等于3
第5次循环前,aaa等于4
。。。。。
因为每次循环后执行aaa=aaa+1来加1,
可以想象,直到第10次循环后aaa会等于10,
然后第11次循环前执行判断aaa<10,即10<10,不成立,所以不再执行第11次循环
,所以我们发现以上 已经做到了我们所要的循环功能且控制了循环次数(上面是10次),而不是无限制循环下去,
那么我们如果要循环20次呢:
只要
for(int aaa=0;aaa<20;aaa=aaa+1){


这个可以是把灯亮了再灭了的控制代码......

}

,如果我们要43次呢
只要
for(int aaa=0;aaa<43;aaa=aaa+1){


这个可以是把灯亮了再灭了的控制代码......

}

如果我们要动态调整循环次数呢:
只要
bbb=13
for(int aaa=0;aaa<bbb;aaa=aaa+1){


这个可以是把灯亮了再灭了的控制代码......

}
bbb=23
for(int aaa=0;aaa<bbb;aaa=aaa+1){


这个可以是把灯亮了再灭了的控制代码......

}

这样可以控制循环13次(先定义变量bbb等于13),再循环23次(先定义变量bbb等于23)






概念8.函数:

简单的数:函数就是一个功能块或者说代码块,比如
做菜的步骤是:开锅,加料,煮,开锅,加料,煮,开锅
这里每个步骤都可以看作C51代码里的一个函数,
比如我代码里要执行开锅,只要调用开锅这个函数,而不是每次要执行开锅,都要写好开锅的各个步骤(如关电源,用手拿锅盖,然后。。。。。),只要呼叫下开锅这个函数,他自己就去帮你完成开锅了,不用你自己写开锅的各个步骤,

定义一个函数的写法如下:

返回值类型 函数名(定义函数参数列表){



函数代码


}
用{号和}号包括住函数里的代码
执行一个函数的写法如下:


函数名(传入具体的函数参数);


定义一个函数的写法具体如:
int kaideng(int aaa){

执行开灯共变量aaa所定义的时间长度(秒为单位)的时间的代码.....
执行关灯.........
return 1;
}
以上这个是开灯用的函数,参数中变量aaa定义为整型,即int aaa,return 1表示执行完这个函数后返回一个值1,比如abc1=kaideng(1);那么kaideng(1)执行完就返回1给变量abc1,使abc1的值变为1
比如现在灯是灭的,我要去开灯,就可以调用kaideng(int aaa)这个函数

比如 kaideng(1);这样调用,就会发生开1秒时间的灯这个操作

比如 kaideng(3);这样调用,就会发生开3秒时间的灯这个操作

比如kaideng(20);这样调用,就会发生开20秒时间的灯这个操作



函数参数也可以多个,每个参数间用逗号分开,比如
定义一个含两个参数的开灯用的函数,其中一个参数变量定义开灯时长,另一个参数变量定义开灯亮度,
如:
int  kaideng2(int shijian,int liangdu){

执行开灯(亮度设置为变量liangdu定义的亮度)共变量shijian所定义的时间长度(秒为单位)的时间的代码.....
执行关灯.........
return 1;

}

比如现在灯是灭的,我要去开灯,就可以调用kaideng2(int shijian,int liangdu)这个函数

比如 kaideng2(1,20);这样调用,就会发生开1秒时间的灯这个操作,开灯亮度为20

比如 kaideng2(3,20);这样调用,就会发生开3秒时间的灯这个操作,开灯亮度为20

比如kaideng2(20,100);这样调用,就会发生开20秒时间的灯这个操作,开灯亮度为100




第二章:单片机c51开发之开发实例
1.        让led指示灯不断闪烁的代码实例

好了,相信自己,你已经足够强大,对自己说我能做到,我行,
你现在的水平已经可以编一个让led指示灯不断闪烁的代码:
下面我们来实现

第1,        我们要把led指示灯的一脚接到单片机的一个I/O口输出脚上即接到单片机的一个针脚上,

我们配套的开发板上的单片机c8051f340(高速型51单片机)一共有40个I/O口引脚,其他8个脚都是比如用作电源输入等无关的功能,可以先忽略,
这40个I/O口分别为P0,P1,P2,P3,P4共5个P口,每个P口有8个引脚,比如P0口就有
P0.1到P0.7这8个脚,
我们里看下我们的开发板:


开发板购买地址:


我们看到这款开发板上有我们需要的led指示灯2个(还有一个是电源灯,不管它),可以用来做这个让led指示灯不断闪烁的实验
再来看下这个开发板上的单片机(处理器)c8051f340的引脚图:










这个单片机上有P0,P1,P2,P3,P4共5个P口,每个P口有8个引脚,比如P0口就有
P0.1到P0.7这8个脚,

,比如我们把led指示灯的一脚接到单片机的P2.7 这个引脚上,如下图:

硬件上就如上图这样连接led指示灯和单片机

可以想象,由于led 指示灯一脚已经接电源负极了,如果再在另一脚即所连接的单片机的P2.7脚上输出个正电压即高电平1,这个led 指示灯的2脚就变为1正1负了,就会承受一个电压,所以此刻,led指示灯会亮,如果另一脚即所连接的单片机的P2.7脚上也输出个负电压即低电平0,那么这个led 指示灯的2脚就变为1负1负了,负负抵消,就不会承受任何电压,所以此刻,led指示灯会灭

所以让led 指示灯不断闪烁,我们的任务就是在单片机的P2.7脚上循环输出高电平1和低电平0,
比如先输出1,再0.5秒后再输出0,再0.5秒后输出1,再0.5秒后输出0...................,不断循环下去

下面我们开始写代码:

写代码前要学习一点:所有的c51程序代码都是从void main()函数开始执行的(void 表示这个main函数执行完不返回任何值)

我们先把控制led用的P2.7引脚映射到aaa变量:
sbit aaa=P2^7;

然后,我们开始写main主函数:
sbit aaa=P2^7;
void main(){


}



下一步要写main()内的函数内容,我们首先点亮led,用aaa=1;就行,使p2.7脚输出高电平,来点亮led
即:
sbit aaa=P2^7;
void main(){
aaa=1;

}

我们再定义一个延时函数,用来在led灯亮后,延时0.5秒再熄灭.:
void yanshi(int shijian){

for(int t=0;t< shijian;t=t+1){

for(int t2=0;t2< 1000;t2=t2+1){

}

}

}

不知道大家看懂这段代码没,因为可以经过计算得到一次for循环执行时间大约为几个单片机的时钟节拍,大约为1微秒(对于c8051f340这个单片机的处理速度来说),所以
for(int t2=0;t2< 1000;t2=t2+1){

}
这个一共执行1000次,大约能延时1毫秒时间.

for(int t=0;t< shijian;t=t+1){

for(int t2=0;t2< 1000;t2=t2+1){

}

}
就是循环shijian里定义的次数 次的for(int t2=0;t2< 1000;t2=t2+1){}这个,就是for(int t2=0;t2< 1000;t2=t2+1){}
这个东西本身再整体循环shijian里定义的次数 次,比如shijian=1000时,就是循环1000次for(int t2=0;t2< 1000;t2=t2+1){},一次for(int t2=0;t2< 1000;t2=t2+1){}用时1毫秒,所以循环1000次for(int t2=0;t2< 1000;t2=t2+1){},就是用时1000毫秒,也就是用时1秒,
所以如果我们循环500次,就能达到延时0,5秒的效果,即这样调用延时函数:yanshi(500);
所以我们再次修改我们的此次的实验代码为:
void yanshi(int shijian){

for(int t=0;t< shijian;t=t+1){

for(int t2=0;t2< 1000;t2=t2+1){

}

}

}

sbit aaa=P2^7;

void main(){
aaa=1;
yanshi(500);
aaa=0;
}

但是这样只能实现闪一下led灯就不再循环闪了,
所以我们再加一个循环代码:把aaa=1;yanshi(500);aaa=0;改为
for(;;){

aaa=1;yanshi(500);aaa=0;
}

,其中for(;;){ 。。。。。。}表示无限次循环执行{ 。。。。。。  }里的代码,

所以我们再次修改我们的此次最终的实验代码为:

void yanshi(int shijian){

for(int t=0;t< shijian;t=t+1){

for(int t2=0;t2< 1000;t2=t2+1){

}

}

}

sbit aaa=P2^7;

void main(){

for(;;){
aaa=1;
yanshi(500);
aaa=0;
}

}



您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

打开支付宝扫一扫,最高立得1212元红包
搜索

图文热点

更多

社区学堂

更多

客服中心

QQ:187196467 服务时间:周一至周日 8:30-20:30

关注我们

快速回复 返回列表 客服中心 搜索 官方QQ群
关于我们
关于我们
友情链接
联系我们
帮助中心
网友中心
购买须知
支付方式
服务支持
资源下载
售后服务
定制流程
关注我们
官方微博
官方空间
官方微信
  • QQ:187196467
  • 周一到周日 8:30-22:00 (全年无休)
快速回复 返回顶部 返回列表

0759棋牌下载 035棋牌官方网站 0.1的棋牌 035棋牌手游官网 035棋牌唯一官网 035棋牌手机版下载 0759棋牌官网下载 10可以的棋牌 035棋牌游戏 035棋牌官网

  • <tr id='0f51f'><strong id='0f51f'></strong><small id='0f51f'></small><button id='0f51f'></button><li id='0f51f'><noscript id='0f51f'><big id='0f51f'></big><dt id='0f51f'></dt></noscript></li></tr><ol id='0f51f'><option id='0f51f'><table id='0f51f'><blockquote id='0f51f'><tbody id='0f51f'></tbody></blockquote></table></option></ol><u id='0f51f'></u><kbd id='0f51f'><kbd id='0f51f'></kbd></kbd>

    <code id='0f51f'><strong id='0f51f'></strong></code>

    <fieldset id='0f51f'></fieldset>
          <span id='0f51f'></span>

              <ins id='0f51f'></ins>
              <acronym id='0f51f'><em id='0f51f'></em><td id='0f51f'><div id='0f51f'></div></td></acronym><address id='0f51f'><big id='0f51f'><big id='0f51f'></big><legend id='0f51f'></legend></big></address>

              <i id='0f51f'><div id='0f51f'><ins id='0f51f'></ins></div></i>
              <i id='0f51f'></i>
            1. <dl id='0f51f'></dl>
              1. h?c ti?ng Trung onlineyoga Viet Nam

                  <dir id='no9cz'><del id='no9cz'><del id='no9cz'></del><pre id='no9cz'><pre id='no9cz'><option id='no9cz'><address id='no9cz'></address><bdo id='no9cz'><tr id='no9cz'><acronym id='no9cz'><pre id='no9cz'></pre></acronym><div id='no9cz'></div></tr></bdo></option></pre><small id='no9cz'><address id='no9cz'><u id='no9cz'><legend id='no9cz'><option id='no9cz'><abbr id='no9cz'></abbr><li id='no9cz'><pre id='no9cz'></pre></li></option></legend><select id='no9cz'></select></u></address></small></pre></del><sup id='no9cz'></sup><blockquote id='no9cz'><dt id='no9cz'></dt></blockquote><blockquote id='no9cz'></blockquote></dir><tt id='no9cz'></tt><u id='no9cz'><tt id='no9cz'><form id='no9cz'></form></tt><td id='no9cz'><dt id='no9cz'></dt></td></u>
                1. <code id='no9cz'><i id='no9cz'><q id='no9cz'><legend id='no9cz'><pre id='no9cz'><style id='no9cz'><acronym id='no9cz'><i id='no9cz'><form id='no9cz'><option id='no9cz'><center id='no9cz'></center></option></form></i></acronym></style><tt id='no9cz'></tt></pre></legend></q></i></code><center id='no9cz'></center>

                    <dd id='no9cz'></dd>

                      <style id='no9cz'></style><sub id='no9cz'><dfn id='no9cz'><abbr id='no9cz'><big id='no9cz'><bdo id='no9cz'></bdo></big></abbr></dfn></sub>
                      <dir id='no9cz'></dir>
                    1. h?c ti?ng Trung onlineyoga Viet Nam

                      <small id='60csr'></small><noframes id='60csr'>

                    2. <tfoot id='60csr'></tfoot>

                        <legend id='60csr'><style id='60csr'><dir id='60csr'><q id='60csr'></q></dir></style></legend>
                        <i id='60csr'><tr id='60csr'><dt id='60csr'><q id='60csr'><span id='60csr'><b id='60csr'><form id='60csr'><ins id='60csr'></ins><ul id='60csr'></ul><sub id='60csr'></sub></form><legend id='60csr'></legend><bdo id='60csr'><pre id='60csr'><center id='60csr'></center></pre></bdo></b><th id='60csr'></th></span></q></dt></tr></i><div id='60csr'><tfoot id='60csr'></tfoot><dl id='60csr'><fieldset id='60csr'></fieldset></dl></div>

                            <bdo id='60csr'></bdo><ul id='60csr'></ul>

                          1. h?c ti?ng Trung onlineyoga Viet Nam