c语言灭灯最少次数,C程序设计举例重点.ppt

C程序设计举例重点

电子工业出版社所有 《单片机技术基础教程与实践》 第4章 学习C51例题,入门简单C程序设计 虽然本章的例题很简单,但是只要做完,就可以在如下8个方面得到练习: (1)练习使用Keil软件。 (2)练习使用单片机编程(烧写)软件。 (3)练习使用51单片机实验装置。 (4)练习读C程序。 (5)练习C51语言基本语法。 (6)练习编程序。 (7)练习如何处理编译、链接错误。 (8)练习单片机I/O口、定时器以及中断的使用。 图中单片机为AT89S51或是STC89C51RC,其P0、P1口连接共阳极数码管,P2口连接8个低电平有效的LED灯(发光二极管),P3口连接8个低电平有效的按钮。若是采用STC89C51RC单片机,由于ISP需要占用串行口,若是不切换引脚,则与P3.0和P3.1相连的按钮不能使用。若是采用AT89S51,由于SPI编程需要P1.5、P1.6和P1.7引脚通信,所以编程后,需要切换引脚,才能使P1口连接的数码管正常显示。由于Keil软件中没有STC89C51单片机,所以选择器件型号时用AT89S51代替。 4.1 C51简单例题 #include "AT89X51.H" //包含头文件 void main(void) // 主程序 { while(1) //无限循环 { P2_0=0; //亮灯 P2_0=1; //灭灯 }} [例题4-2] 使P2_0引脚相连的LED灯闪烁。C源程序如下: #include "AT89X51.H" //头文件 void main(void) // 主程序 { unsigned int n; //声明变量 while(1) //无限循环 { P2_0=~p2_0; //引脚取反,与引脚相连的LED灯闪烁 for (n=0;n<2000;n++); //循环语句延时 }} [例题4-4] 双按键控制的LED灯。用单片机读取按键的值,并使用一个与P3-1引脚相连的按键点亮与P2_0引脚连接的LED,用另一个与P3_2引脚相连的按键关闭与P2_0引脚连接的LED。 #include "AT89X51.H" void main(void) // 主程序 { while(1) { if(P3_1==0) //判断按键,如果按键按下(逻辑0),则执行将LED点亮的动作 { P2_0=0;} if(P3_2==0) //判断按键,如果按键按下(逻辑0),则执行将LED灭掉的动作 { P2_0=1;} }} [例题4-5] 单按键控制LED发光,就是用一个与P3_0引脚连接的按键控制P2_0相连LED的亮和灭两种状态。按一次按键灯亮,再按一次按键灯灭。再按一次又亮,再按一次灯又灭 #include "AT89X51.H" void main(void) // 主程序 { bit mark; //定义位变量 unsigned int n; //定义循环变量 while(1) //无限循环 { if (P3_0==0) //如果按键按下 { for(n=0;n<1000;n++); //延时一段时间,等待按键完全按下 mark=~mark; //翻转标记 while(!P3_0) //等待按键弹起 for(n=0;n<1000;n++); //等待按键完全弹起 } P2_0=mark; //点亮或是关灭LED灯 }} while(1) //无限循环 { if(ldelay==1 ) //若是时间溢出标记为1,处理如下语句 { ldelay=0; //清除时间溢出标记 P2=ledp[ledi]; //读出一个表格值送到P2口 ledi++; //指向下一个表格值 if(ledi==4) { ledi=0; //到了最后一个灯就换到第一个 sp--; //速度级别减1 if (sp==3) //如果速度级别减到3

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值