标题:
LED调光 51单片机程序如何修改为适配PIC单片机?
[打印本页]
作者:
seataozhang
时间:
2020-3-5 17:20
标题:
LED调光 51单片机程序如何修改为适配PIC单片机?
初学PIC单片机,对定时器的寄存器不熟悉,想把下面这个51单片机改为PIC(比如16F877A)单片机程序,各位高手给指点下,非常感谢!
代码如下:
//程序名:单片机实验仪配套程序--pwm控制led亮度
//电路简介:1、P0接J1的led共阳端;
// 2、P2.6接J14单键键盘的6,作为增加亮度按钮
// 3、P2.7接J14单键键盘的7,作为减小亮度按钮
//saxmcu 20080518
#include <reg51.h>
#define out P0
sbit INC=P2^6; //SW1
sbit DEC=P2^7; //sw2
//-----------------------------------------------------------------
void Init(void)
{
//定时器设置
TMOD=0x22; //T1=T0=定时方式2自动重装
TH1=0; //脉宽宽度
TL1=80;
TH0=55; //频率调节=0频率最低
TL0=0;
TR0=1; //先启动T0定时
ET1=1;
ET0=1;
EA=1; //总中断开
}
//定时器0中断
//频率********************************************
void Timer0(void) interrupt 1
{
out=0xff; //关led
TL0=0;
TR1=1; //打开脉宽定时
}
//定时器1中断
//脉宽********************************************
void Timer1(void) interrupt 3
{
out=~out; //开led
TR1=0; //脉宽调节结束
}
//消抖延时
delay()
{
unsigned int i;
for(i=0;i<2000;i++);
}
//**********************************
main()
{
Init();
while(1)
{
INC=1;DEC=1;
if (INC==0)
{delay();
if (INC==0)
{
if (TH1<200) TH1++;
}
}
else if (DEC==0)
{delay();
if (DEC==0)
{
if (TH1>0) TH1--;
}
}
}
}
全部资料51hei下载地址:
按键PWM控制led亮度-c (2).rar
(15.43 KB, 下载次数: 10)
2020-3-5 17:18 上传
点击文件名下载附件
作者:
mengzhixinheng
时间:
2020-3-5 20:40
初始化部分,各种单片机都是不一样的,这个你必须自己学习。移植的部分只能是c通用程序
作者:
lovexulu
时间:
2020-3-5 23:08
软PWM调光,自己码一个得了。
作者:
Y_G_G
时间:
2020-3-6 00:20
我不用看就知道了:重新写一个
C8051和PICC在很多地方是不相同的,特别是标准C以外的函数,在定时器,PWM,ADC,几乎是所有的外设功能,包括IO端口的使用,都是不一样的
PIC8位机的IO和8051的是不一样的,它要先设定这个IO是数据输入还是输出,设定为输入了,就没有输出了,相反,设定为输出了就没有数据输入了,是读取不到这个端口的电平了
像IIC这样的,一个IO要读写的话,你就得不断去更改这个端口为输入还是输出........
而且,PIC的堆栈是硬件堆栈,不能递归使用,我不会C,不知道这功能常用与否,反正书上是这么说的
所以,你基本就是重新写一个
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1