找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 18683|回復(fù): 12
收起左側(cè)

PIC單片機(jī)按鍵控制PWM輸出LED燈亮度C語言程序

  [復(fù)制鏈接]
ID:51707 發(fā)表于 2013-7-11 02:55 | 顯示全部樓層 |閱讀模式
#include <pic.h>    //調(diào)用頭文件,可以去PICC軟件下去查找PIC16F87XA單片機(jī)的頭文件
__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時(shí),U6使能否則失能
#define U7_E RA3    //定義U7_E為RA3端口,U7E=1時(shí),U7使能否則失能
#define U8_E RA1    //定義U8_E為RA1端口,U8E=1時(shí),U8使能否則失能
#define LED PORTB   //定義RB 8 point為LED端口
//*********************************************************************
#define uchar unsigned char
#define uint unsigned int
void init(void);    //系統(tǒng)初始化
void delay (uint x);
void didi(uchar z);
//***********************************************************************
void main(void)
{   
    init();         //調(diào)用系統(tǒng)初始化函數(shù)         
    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)//系統(tǒng)初始化
{
    ADCON1=0X06;    //所有IO均為數(shù)字口,模擬量輸入禁止
    OPTION=0x80;    //關(guān)閉RB口電平變化功能
    TRISA=0xd1;     //RA1,RA2,RA3,RA5置為輸出,其他未用設(shè)置為輸入
    TRISB=0x00;     //RB4-RB7置為輸出,其他RB0-RB3設(shè)置為輸入
    TRISC=0xff;     //未用設(shè)置為輸入
    TRISD=0xf3;     //未用設(shè)置為輸入
    TRISE=0x00;     //RE0,RE1,RE2置為輸出
    LED=0x00;        //RB口全部置低電平
    RD2=0;          //關(guān)閉蜂鳴器
    RD3=0;          //關(guān)閉繼電器
    RA1=0;          //關(guān)掉數(shù)碼管、發(fā)光二極管
    RA2=0;          //關(guān)掉LED點(diǎn)陣屏左8列
    RA3=0;          //關(guān)掉LED點(diǎn)陣屏右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關(guān)閉
    U7_E=0;         //U7關(guān)閉
    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--);
    }
}
//********************************************************
回復(fù)

使用道具 舉報(bào)

ID:59867 發(fā)表于 2014-3-21 11:49 | 顯示全部樓層
學(xué)習(xí)中
回復(fù)

使用道具 舉報(bào)

ID:67495 發(fā)表于 2014-10-16 18:26 | 顯示全部樓層

學(xué)習(xí)中
回復(fù)

使用道具 舉報(bào)

ID:69044 發(fā)表于 2014-11-20 16:45 | 顯示全部樓層
學(xué)習(xí)學(xué)習(xí)!
回復(fù)

使用道具 舉報(bào)

ID:56948 發(fā)表于 2014-12-28 12:38 來自手機(jī) | 顯示全部樓層
學(xué)習(xí)學(xué)習(xí)!
回復(fù)

使用道具 舉報(bào)

ID:223924 發(fā)表于 2017-8-2 16:37 | 顯示全部樓層
所有的都在這里嗎
回復(fù)

使用道具 舉報(bào)

ID:223924 發(fā)表于 2017-8-2 16:40 | 顯示全部樓層
請問51單片機(jī)的控制程序怎么弄
回復(fù)

使用道具 舉報(bào)

ID:357153 發(fā)表于 2018-6-28 15:15 | 顯示全部樓層
學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

ID:162895 發(fā)表于 2018-10-6 09:58 | 顯示全部樓層
void init(void)//系統(tǒng)初始化
{
    ADCON1=0X06;    //所有IO均為數(shù)字口,模擬量輸入禁止
    OPTION=0x80;    //關(guān)閉RB口電平變化功能
    TRISA=0xd1;     //RA1,RA2,RA3,RA5置為輸出,其他未用設(shè)置為輸入
    TRISB=0x00;     //RB4-RB7置為輸出,其他RB0-RB3設(shè)置為輸入///這里的設(shè)置應(yīng)該是錯的吧,0x0f才是對的吧
回復(fù)

使用道具 舉報(bào)

ID:418770 發(fā)表于 2018-11-9 20:39 | 顯示全部樓層
好東西。!
回復(fù)

使用道具 舉報(bào)

ID:342822 發(fā)表于 2018-11-11 01:10 | 顯示全部樓層
OPTION=0x80;這句編譯通不過好像少了點(diǎn)什么~~~~
回復(fù)

使用道具 舉報(bào)

ID:283077 發(fā)表于 2018-12-26 13:56 | 顯示全部樓層
謝謝,學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

ID:688742 發(fā)表于 2020-3-2 09:10 | 顯示全部樓層
#include <pic.h>    //調(diào)用頭文件,可以去PICC軟件下去查找PIC16F87XA單片機(jī)的頭文件 __CONFIG(0x3b31);  //定義配置字,晶振類型:XT,啟動開門狗,禁止低電壓編程,有問題吧
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表