标题:
PIC单片机按键控制PWM输出LED灯亮度C语言程序
[打印本页]
作者:
wendi
时间:
2013-7-11 02:55
标题:
PIC单片机按键控制PWM输出LED灯亮度C语言程序
#include <pic.h> //调用头文件,可以去PICC软件下去查找PIC16F87XA单片机的头文件
__CONFIG(0x3b31); //定义配置字,晶振类型:XT,启动开门狗,禁止低电压编程
//************************************************************************
#define HC138_A RE2 //定义U6、U7、U8的A为RE2端口
#define HC138_B RE1 //定义U6、U7、U8的B为RE1端口
#define HC138_C RE0 //定义U6、U7、U8的C为RE0端口
//************************************************************************
#define U6_E RA2 //定义U6_E为RA2端口,U6E=1时,U6使能否则失能
#define U7_E RA3 //定义U7_E为RA3端口,U7E=1时,U7使能否则失能
#define U8_E RA1 //定义U8_E为RA1端口,U8E=1时,U8使能否则失能
#define LED PORTB //定义RB 8 point为LED端口
//*********************************************************************
#define uchar unsigned char
#define uint unsigned int
void init(void); //系统初始化
void delay (uint x);
void didi(uchar z);
//***********************************************************************
void main(void)
{
init(); //调用系统初始化函数
asm("CLRWDT"); //看门狗喂狗指令
LED=0x00;
while(1)
{
if(RC0==0)
{
delay (10);
if(RC0==0)
{
didi(1);
while(!RC0)
{
LED=0x0f;
}
}
}
if(RC1==0)
{
delay (10);
if(RC1==0)
{
didi(1);
while(!RC1)
{
LED=0xff;
}
}
}
}
}
//***************************************************************************
void init(void)//系统初始化
{
ADCON1=0X06; //所有IO均为数字口,模拟量输入禁止
OPTION=0x80; //关闭RB口电平变化功能
TRISA=0xd1; //RA1,RA2,RA3,RA5置为输出,其他未用设置为输入
TRISB=0x00; //RB4-RB7置为输出,其他RB0-RB3设置为输入
TRISC=0xff; //未用设置为输入
TRISD=0xf3; //未用设置为输入
TRISE=0x00; //RE0,RE1,RE2置为输出
LED=0x00; //RB口全部置低电平
RD2=0; //关闭蜂鸣器
RD3=0; //关闭继电器
RA1=0; //关掉数码管、发光二极管
RA2=0; //关掉LED点阵屏左8列
RA3=0; //关掉LED点阵屏右8列
RBIE=1; //RB口电平变化中断open
HC138_A=0; //使74HC138的Y0端为0,其他高阻
HC138_B=0; //使74HC138的Y0端为0,其他高阻
HC138_C=0; //使74HC138的Y0端为0,其他高阻
U6_E=0; //U6关闭
U7_E=0; //U7关闭
U8_E=1; //U8打开
asm("CLRWDT");
}
//*********************************************************************************************
void didi(uchar z)
{
uchar a;
for(a=z;a>0;a--)
{
RD2=1;
delay(800);
RD2=0;
delay(500);
}
}
//**********************************************************************************************
void delay (uint x)
{
uint a,b;
for(a=x;a>0;a--);
{
for(b=110;b>0;b--);
}
}
//********************************************************
作者:
leeclyc
时间:
2014-3-21 11:49
學習中
作者:
chensiyu5928
时间:
2014-10-16 18:26
學習中
作者:
随风雅客
时间:
2014-11-20 16:45
学习学习!
作者:
GG-路人乙
时间:
2014-12-28 12:38
学习学习!
作者:
838289893
时间:
2017-8-2 16:37
所有的都在这里吗
作者:
838289893
时间:
2017-8-2 16:40
请问51单片机的控制程序怎么弄
作者:
yyght
时间:
2018-6-28 15:15
学习了
作者:
liaoxin401
时间:
2018-10-6 09:58
void init(void)//系统初始化
{
ADCON1=0X06; //所有IO均为数字口,模拟量输入禁止
OPTION=0x80; //关闭RB口电平变化功能
TRISA=0xd1; //RA1,RA2,RA3,RA5置为输出,其他未用设置为输入
TRISB=0x00; //RB4-RB7置为输出,其他RB0-RB3设置为输入///这里的设置应该是错的吧,0x0f才是对的吧
作者:
dasme
时间:
2018-11-9 20:39
好东西!!!
作者:
taotie
时间:
2018-11-11 01:10
OPTION=0x80;这句编译通不过好像少了点什么~~~~
作者:
hnd619
时间:
2018-12-26 13:56
谢谢,学习
作者:
xinbibo
时间:
2020-3-2 09:10
#include <pic.h> //调用头文件,可以去PICC软件下去查找PIC16F87XA单片机的头文件 __CONFIG(0x3b31); //定义配置字,晶振类型:XT,启动开门狗,禁止低电压编程,有问题吧
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1