锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

共阳数码管0~9代码

时间:2023-09-19 00:07:01 二三极管0t

0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,

0x80, 0x90,

/* PWM 控制 LED 灯渐亮渐灭程序 *; 利用定时器控制产生可变空比 PWM 波 *; 按K1,PWM如果增加值,占空比会降低,LED 灯渐暗。 *; 按K2,PWM如果价值下降,空比增加,LED 灯渐亮。 *; 当PWM当价值增加到最大值或最小值时,蜂鸣器会报警

资源:p0口,8路指示灯。p1.4,p1.5亮度控制按钮(端口按钮)p3.7小喇叭报警 **/

#include<reg51.h>

#include<intrins.h>

sbit K1 =P1^4 ; //PWM值增加键sbit

K2 =P1^5 ; //PWM值减少键

sbit BEEP =P3^7 ; //蜂鸣器

unsigned char PWM=0x7f ; //赋初值

void Beep();

void delayms(unsigned char ms);

void delay(unsigned char t);

/*********************************************************/

void main()

{ P1=0xff;

TMOD=0x21 ;

TH0=0xfc ; //1ms延时常数

TL0=0x66 ; //频率调节

TH1=PWM ; //调节脉宽

TL1=0 ;

EA=1;

ET0=1;

ET1=1;

TR0=1 ;

while(1)

{ do{

if(PWM!=0xff)

{PWM ;delayms(10);}

else Beep() ;

}

while(K1==0);

do{

if(PWM!=0x02)

{PWM-- ;delayms(10);}

else Beep() ;

}

while(K2==0);

}

}

/***********************************/

// 定时器0中断服务程序 (频率) /***********************************/

void timer0() interrupt 1

{ TR1=0 ;

TH0=0xfc ;

TL0=0x66 ;

TH1=PWM ;

TR1=1 ;

P0=0x00 ; //启动输出

}

/******************************************/

// 定时器1中断服务程序 (脉宽) /**************************************/

void timer1() interrupt 3

{ TR1=0 ;

P0=0xff ; //结束输出

}

/************************************/

//蜂鸣器子程序

/***************************************/

void Beep()

{

unsigned char i ;

for (i=0 ;i<100 ;i )

{

delay(100) ;

BEEP=!BEEP ; //Beep取反

}

BEEP=1 ; ///关闭蜂鸣器

delayms(100);

}

/**********************************/

// 延时子程序

/****************************************/

void delay(unsigned char t)

{ while(t--) ;}

void delayms(unsigned char ms)

{ unsigned char i ;

while(ms--)

{

for(i = 0 ; i < 120 ; i ) ;

}

}

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章