加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

STC89C52单片机闪烁灯

(2012-06-16 20:35:10)
标签:

stc89c52单片机

 ///////////////////////////////////////////////////////////////////////////
 实现功能:主要的功能是在实验板上点亮一个红色的发光二级管,点亮的是与单片
           机P1口的第一个引脚上的二极管,也就是P1^0口,实现每隔0.3S闪烁一
     次,然后熄灭0.3S,依次这样循环。
 实验板型号:BS-XYD-C52
 实验名称:  点亮发光二级管
 编写人:  谢应东
 编写日期:  2012-4-24      
///////////////////////////////////////////////////////////////////////////

#include<reg52.h>
#include <intrins.h> 
                    
#define uchar unsigned char  //定义unsigned char 为 uchar
#define uint  unsigned int

sbit LED1=P1^0;

#define LED1_ON  LED1=0
#define LED1_OFF LED1=1

 ///////////////////////////////////////////////////////////////////////////
函数名称:毫秒延时函数
函数功能:实现毫秒级的延时
参数介绍:Delay_MS: 定义需要延时的毫秒的数值
          iNumber: 记录Delay_MS的数值,以for语句实现所要求的延时
    iValue: 要延时毫秒所要进行的循环数值,本数值为实际测得
返回值: 
注意事项:本实验是在所用晶振为12M的前提下实现的毫秒延时,本函数是通过循环的形
          式完成,所以如果改变了晶振的频率,请做相应的改变
///////////////////////////////////////////////////////////////////////////

void DelayMs(uint Delay_MS)
{
 uint iNumber,iValue;
 for(iNumber=0;iNumber<Delay_MS;iNumber++)
 {
     iValue=107;
     while(iValue--);
 }
}
 ///////////////////////////////////////////////////////////////////////////

函数名称:主函数
函数功能:完成点亮一个发光二级管,延时0.3秒,然后熄灭0.3秒,这样依次循环
参数介绍:无
返回值: 
注意事项:无
 ///////////////////////////////////////////////////////////////////////////

void main()
{
 while(1)
 {
  LED1_ON;    //点亮发光二级管
  DelayMs(300);   //延时0.3秒
  LED1_OFF;    //熄灭发光二极管
  DelayMs(300);   //延时0.3秒
 }
}

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有