单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 11950|回复: 13
打印 上一主题 下一主题
收起左侧

PIC单片机按键控制PWM输出LED灯亮度C语言程序

  [复制链接]
跳转到指定楼层
楼主
wendi 发表于 2013-7-11 02:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#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--);
    }
}
//********************************************************
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 顶 踩
回复

使用道具 举报

沙发
sunhaitao 发表于 2013-8-13 17:16 | 只看该作者
不错,单片机讨论群87496842,欢迎加入
回复

使用道具 举报

无效楼层,该帖已经被删除
地板
leeclyc 发表于 2014-3-21 11:49 | 只看该作者
學習中
回复

使用道具 举报

5#
无效楼层,该帖已经被删除
6#
chensiyu5928 发表于 2014-10-16 18:26 | 只看该作者

學習中
回复

使用道具 举报

7#
随风雅客 发表于 2014-11-20 16:45 | 只看该作者
学习学习!
回复

使用道具 举报

8#
GG-路人乙 发表于 2014-12-28 12:38 来自手机 | 只看该作者
学习学习!
回复

使用道具 举报

9#
838289893 发表于 2017-8-2 16:37 | 只看该作者
所有的都在这里吗
回复

使用道具 举报

10#
838289893 发表于 2017-8-2 16:40 | 只看该作者
请问51单片机的控制程序怎么弄
回复

使用道具 举报

11#
yyght 发表于 2018-6-28 15:15 | 只看该作者
学习了
回复

使用道具 举报

12#
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才是对的吧
回复

使用道具 举报

13#
dasme 发表于 2018-11-9 20:39 | 只看该作者
好东西!!!
回复

使用道具 举报

14#
taotie 发表于 2018-11-11 01:10 | 只看该作者
OPTION=0x80;这句编译通不过好像少了点什么~~~~
回复

使用道具 举报

15#
hnd619 发表于 2018-12-26 13:56 | 只看该作者
谢谢,学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51黑电子论坛单片机 联系QQ:125739409;技术交流QQ群582644647

Powered by 单片机教程网

快速回复 返回顶部 返回列表