标题: DA转换呼吸灯 [打印本页]

作者: 洛臻么么哒    时间: 2017-11-24 22:26
标题: DA转换呼吸灯
#include "reg52.h"                         //此文件中定义了单片机的一些特殊功能寄存器

typedef unsigned int u16;          //对数据类型进行声明定义
typedef unsigned char u8;

//--定义使用的IO口--//
sbit PWM=P2^1;
bit DIR;

//--定义一个全局变量--//
u16 count,value,timer0;

void Timer0Init()
{
        TMOD=0X01;
        TH0 =(65536-1)/256 ;
        TL0 =(65536-1)%256  ;   
        ET0=1;//打开定时器0中断允许
        EA=1;//打开总中断
        TR0=1;//打开定时器                       
}

void main()
{       
        Timer0Init();  //定时器1初始化
        while(1)
        {
                if(count>100)                                                       
                {  
                        count=0;
                        if(DIR==1)                                           //DIR控制增加或减小
                        {
                          value++;
                        }                       
                        if(DIR==0)
                        {
                          value--;
                        }
                               
                }
                if(value==1000)
                {
                  DIR=0;
                }
                if(value==0)
                {
                  DIR=1;
                }                       
                if(timer0>1000)  //PWM周期为1000*1us
                {
                        timer0=0;
                }
                if(timer0<value)       
                {
                        PWM=1;
                }
                else
                {
                        PWM=0;
                }               
        }               
}

void Timer(void) interrupt 1  
{
        TH0 =(65536-1)/256 ;
        TL0 =(65536-1)%256 ;   
        timer0++;
  count++;
}







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1