标题:
基于52单片机用可控硅调节220v灯的亮度 仿真灯并不会亮
[打印本页]
作者:
cxj332
时间:
2018-1-10 21:18
标题:
基于52单片机用可控硅调节220v灯的亮度 仿真灯并不会亮
QQ图片20180110211606.png
(37.15 KB, 下载次数: 84)
下载附件
2018-1-10 21:16 上传
#include "reg52.h"
sbit lamp_pwm=P2^0;//
sbit key0=P2^1;//
sbit key1=P2^2;//
unsigned int inc;
void INT0s()interrupt 0 using 0//
{
TR0=0;
if(!key0)//½μμíáá¶è
{
inc+=50;
if(inc>=8000)
inc=8000;
}
if(!key1)//Ôö¼óáá¶è
{
inc-=50;
if(inc<=800)
inc=800;
}
TH0=(65536-inc)/256;
TL0=(65536-inc)%256;
TR0=1;
}
void timer1()interrupt 1 using 0//¿é¿Ø1è′¥·¢ÖD¶Ï
{
unsigned char i;
lamp_pwm=0;//μÆáá
for(i=0;i<2;i++);//Ñóê±2us
lamp_pwm=1;//μÆÃe
}
///************STC2»¶ÏμçÏÂÔØóÃ******************/
sfr ISP_DOWNS=0xe7;//ISPèí¸′λμØÖ·
sbit ISP_SW=P3^0;//′®¿úêy¾Y½óêÕ
void DebugDownISP()//èí¸′λ
{
if(!ISP_SW)ISP_DOWNS=0x60;
}
/********************************************/
void main()
{
TMOD|=0x01;
IT0=1;//INT0ϽμÑØ′¥·¢
EX0=1;//ía2¿ÖD¶ÏÔêDí
ET0=1;
EA=1;//¿a×üÖD¶Ï
inc=8000;
while(1)
{
DebugDownISP();
}
}
求教为什么我这个仿真灯并不会亮,这个程序和仿真图都是另一个帖子看到的。
作者:
zcf258
时间:
2018-1-10 21:43
我也不太懂 ,最近也想做一个
作者:
人在江湖128
时间:
2018-1-31 11:59
#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器
typedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char u8;
//--定义使用的IO口--//
sbit PWM=P2^1; //脉冲调整输出端口
bit DIR; // 位定义,一位0 1
//--定义一个全局变量--//
u16 count,value,timer1;
/*******************************************************************************
* 函 数 名 : Timer1Init
* 函数功能 : 定时器1初始化
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void Timer1Init()
{
TMOD|=0X10;//选择为定时器1模式,工作方式1,仅用TR1打开启动。
TH1 = 0xFF;
TL1 = 0xff; //1us
ET1=1;//打开定时器1中断允许
EA=1;//打开总中断
TR1=1;//打开定时器
}
/*******************************************************************************
* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void main()
{
Timer1Init(); //定时器1初始化
while(1)
{
// if(count>200) //count从暗到亮的时间
// {
// count=0;
// if(DIR==0) //DIR控制增加或减小
// {
// value++;
// }
//// if(DIR==0)
//// {
//// value--;
//// }
//
// }
value=320;
// if(value==800) // value占空比,调节亮度 70-1000
// {
// DIR=0;
// value=780;
// }
// if(value==0) // 占空比达到最小时,改变方向
// {
// DIR=1;
// }
if(timer1>1000) //PWM周期为1000*1us
{
timer1=0;
}
if(timer1 <value)
{
PWM=1;
}
else
{
PWM=0;
}
}
}
/*******************************************************************************
* 函 数 名 : Time1
* 函数功能 : 定时器1的中断函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void Time1(void) interrupt 3 //3 为定时器1的中断号 1 定时器0的中断号 0 外部中断1 2 外部中断2 4 串口中断
{
TH1 = 0xFF;
TL1 = 0xff; //1us
timer1++;
count++;
}
作者:
白日依山
时间:
2018-1-31 16:44
楼主问题解决了么
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1