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

2019-10-29来源: 51hei关键字:PIC单片机  按键控制  PWM输出  LED灯亮度

#include     //调用头文件,可以去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--);

    }

}

//********************************************************


关键字:PIC单片机  按键控制  PWM输出  LED灯亮度 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic478588.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:警报声原理图+pic单片机源程序
下一篇:PIC16F877单片机DS18B20数码管温度计仿真程序 可显示负温度

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

PIC单片机以及51单片机和AVR单片机的IO口操作方法介绍
对于pic单片机的学习,很多朋友总是能充满激情,不断利用闲余时间研究pic单片机的各类技术。而谈及pic单片机,必须牵扯至51、AVR单片机。因此本文中,将探讨pic单片机以及51、AVR单片机对于IO口的操作。对于本文,希望大家认真研读,以在pic单片机的学习之路上更为精进。一.51单片机IO口的操作51单片机IO口的结构比较简单,每个IO口只有一个IO口寄存器Px,而且这个寄存器可以位寻址,操作起来是所有单片机里最简单的,可以直接进行总线操作也可以直接进行位操作,这也是51单片机之所以成为经典的原因之一。下例的运行坏境为Keil软件,器件为AT89S52。#i ncludesbit bv=P2^0;//定义位变量,关联P2.0
发表于 2019-12-05
PIC单片机以及51单片机和AVR单片机的IO口操作方法介绍
PIC单片机的类型以及特征介绍
对于pic单片机,大家或多或少均有所耳闻。但是,大家对pic单片机有多少了解呢?是否熟知不同类型的pic单片机呢?由美国Microchip公司推出的PIC单片机系列产品,首先采用了RISC结构的嵌入式微控制器,其高速度、低电压、低功耗、大电流LCD驱动能力和低价位OTP技术等都体现出单片机产业的新趋势。现在PIC系列单片机在世界单片机市场的份额排名中已逐年升位,尤其在8位单片机市场,据称已从1990年的第20位上升到目前的第二位。PIC单片机从覆盖市场出发,已有三种(又称三层次)系列多种型号的产品问世,所以在全球都可以看到PIC单片机从电脑的外设、家电控制、电讯通信、智能仪器、汽车电子到金融电子各个领域的广泛应用。现今
发表于 2019-12-05
PIC单片机的类型以及特征介绍
PIC单片机和51单片机谁更容易于学习
pic单片机是当前最实用工具之一,而对于pic单片机的探讨往往与其他类型单片机相联系。51好学一些,但是PIC也没比51难多少。首先,PIC比51多个配置位,这个基本上看看就懂了。然后,PIC的端口要配置成输入或者输出,51单片机则不用。PIC的中断没有优先级,需要软件判断。最后,PIC比51多许多寄存器,你要使用PIC的各种功能,都需要去初始化寄存器。再说说PIC相比与51单片机有哪些优点:1:相同的晶振情况下,PIC比51速度快,PIC4个时钟周期为一个指令周期,51是12个。2:PIC比51功能强大许多,比如自带AD转换,自带PWM,内置弱上拉(需设置)LCD接口等。。这样,你在用到许多功能的时候就很方便啦,不用
发表于 2019-12-05
PIC单片机和51单片机谁更容易于学习
PIC单片机相比其他单片机的四大优势介绍
本人从事单片机应用系统的开发已有多年,使用过多种型号的PIC单片机,深感PIC单片机使用起来确实很方便:1、 PIC单片机采用精简指令集,中档产品仅需35条指令,入门门槛低,而在使用过程中绝不会感到不方便。2、PIC单片机的数据线和指令线各自独立,代码效率高,是传统51系列单片机的2-3倍,除几个跳转类指令外均为单周期指令,在计算延时时间时非常方便。 3、PIC单片机外围接口十分丰富,能满足绝大部分应用系统的需求;比如PIC16F877A包含8路ADC,1个CCP、PWM、USART、SSP、I2C/SPI,3个定时/计数器,1个硬件WDT等接口,8K FLASH程序存储器、256字节EEPROM,能满足较复杂测控系统
发表于 2019-12-05
PIC单片机相比其他单片机的四大优势介绍
PIC单片机的基本程序设计方法解析
PIC单片机(Peripheral Interface Controller)是一种用来开发去控制外围设备的集成电路(IC)。一种具有分散作用(多任务)功能的CPU。本内容讲述了PIC单片机中的程序设计方面的学习1、PIC单片机程序的基本格式先介绍二条伪指令:EQU ——标号赋值伪指令ORG ——地址定义伪指令PIC16C5X单片机在RESET后指令计算器PC被置为全“1”,所以PIC16C5X几种型号芯片的复位地址为:PIC16C54/55:1FFHPIC16C56:3FFHPIC16C57/58:7FFH一般来说,PIC单片机的源程序并没有要求统一的格式,大家可以根据自己的风格来编写。但这里我们推荐一种清晰明了的格式供参考
发表于 2019-12-05
PIC单片机的基本程序设计方法解析
基于PIC单片机的无线通讯模块测试板设计
侦测DQD、电池电压侦测、AFC和微控制器等,非常适合用于短距离无线通讯产品。本文介绍了贝能科技采用IA4421芯片开发的两种无线通讯模块PHY和EV-IA4421-433M-3(如图1,图2)。PHY模块是不带MCU而向外提供一个SPI接口;EV-IA4421模块是带MCU并向外提供一个串口。这样可以方便用户使用和开发。图1 PHY图2 EV-IA4421针对这两种模块,我们设计了一个适用这两种模块的测试评估板。该 测试板 可以对这两个模块进行设置(主要对IAI4421寄存器设置),这样方便客户评估,测试IA系列产品的的性能。基本概述:该测试板的组成采用PIC单片机PIC16F777作为主控芯片;一个LCD1602作为显示器件
发表于 2019-12-04
基于PIC单片机的无线通讯模块测试板设计
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved