历史上的今天
返回首页

历史上的今天

今天是:2024年10月29日(星期二)

正在发生

2019年10月29日 | PIC单片机按键控制PWM输出LED灯亮度C语言程序

2019-10-29 来源:51hei

#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--);

    }

}

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


推荐阅读

史海拾趣

Hantronix公司的发展小趣事

随着业务的不断增长,HANBIT Electronics意识到全球化布局的重要性。2010年,公司在韩国本土之外的首个生产基地——中国东莞分公司正式成立。这一举措不仅有效降低了生产成本,还大大缩短了产品交付周期,提高了对亚洲市场的响应速度。同时,公司还积极在欧洲和美国等地设立研发中心和销售网络,实现了从研发、生产到销售的全球化布局。这一战略调整极大地增强了HANBIT Electronics在全球电子市场的竞争力。

G-Two Inc公司的发展小趣事

背景:2003年,福斯特的创始人林建华,一位在纺织业和化工领域有着丰富经验的工程师,决定跨界进入光伏材料行业。当时,国内光伏组件封装所需的光伏胶膜几乎全部依赖进口,被国外几家大公司垄断。

发展:林建华凭借在热熔网膜领域的技术积累,带领团队成功研发出EVA胶膜,打破了国外技术垄断。这一技术突破不仅降低了国内光伏组件的生产成本,也为福斯特在光伏材料领域的崛起奠定了坚实基础。

成果:2008年,福斯特的EVA胶膜产品凭借优异的性能和价格优势,成功打入国内光伏组件企业的供应名录,并跻身全球EVA胶膜供应商前三强。

Arduino公司的发展小趣事

随着Arduino电路板的成功推出,Arduino平台在2005年发布了第一款主板——Arduino NG。这款主板采用了Atmel公司的AVR单片机作为核心处理器,并结合了简单易用的开发环境。这一创新使得普通人也能够轻松地进行单片机编程和硬件开发,大大降低了电子制作的门槛。Arduino NG的发布标志着Arduino平台开始受到开发者和爱好者的广泛关注。

Green Power Solutions公司的发展小趣事
使用合适的工具打开稳压器的外壳,注意不要损坏内部元件。
Esterline Power Systems公司的发展小趣事

Esterline Power Systems深知人才是企业发展的核心动力。因此,公司高度重视人才培养和团队建设。公司建立了完善的培训体系,为员工提供多元化的培训和发展机会。同时,公司还注重营造良好的企业文化氛围,鼓励员工积极参与团队合作和创新实践。这些举措不仅提高了员工的专业技能和综合素质,也增强了公司的凝聚力和竞争力。

海芯科技(AVIA)公司的发展小趣事

海芯科技一直将产品研发视为公司发展的核心动力。经过长时间的研发与试验,公司成功推出了一系列具有市场竞争力的产品。这些产品不仅性能稳定、质量可靠,而且具有广泛的应用领域。随着产品在市场上的逐步推广和应用,海芯科技逐渐获得了客户的认可和信赖,市场份额也逐步扩大。

问答坊 | AI 解惑

汽车电子系统中处理器的选择(转载)

汽车正经历着一场数字革命的洗礼:纯机械系统和模拟电子的时代一去不复返。现今的汽车是数字化的汽车,内置了几十甚至上百个嵌入式处理器,它们通过数字网路相互连接,以控制和优化汽车内几乎每一个系统的运转。将来的汽车会集成更多的处理器,因为 ...…

查看全部问答>

PADS自己修改快捷键

pads快捷键放在目录下,,,可以自己定义修改快捷键的PDF.压缩包是我自己做的pads快捷键放在安装目录下就OK了.有了快捷键提高了LAYOUT速度哦.…

查看全部问答>

Windows CE设备驱动程序开发06.pdf

Windows CE设备驱动程序开发06.pdf…

查看全部问答>

关于内存颗粒的位宽问题……

我们都知道一个内存颗粒中的数据需要通过ROW(行)和COL(列)来对其进行访问,那么该颗粒的位宽是由什么决定的?是由COL来决定的吗?…

查看全部问答>

哪位高手有针对ST2410的u-boot?

各位大侠,哪位手里有针对ST2410移植好的u-boot?最近做的项目急用,哪位好心帮帮忙!小弟多谢了! 邮箱haishi-qhm@163.com QQ154634556 不胜感激!…

查看全部问答>

WinCE上 如何设置一个进程的优先级?

WinCE上 线程的优先级是可以设置的,请问如何设置一个进程的优先级? …

查看全部问答>

这样的程序在嵌入式设备下可能会出现什么问题 应该如何改进

viod main() { char str[1024]; .... return; } 这样的程序在嵌入式设备下可能会出现什么问题 应该如何改进 面试题 堆栈小,堆栈溢出的问题?…

查看全部问答>

“打一拍”含义

打一拍 = sample ...也可以說是delay 1個cycle.    打多拍,就是delay 多個cycle.              看設計上的須要吧.…

查看全部问答>

f2812外扩FLASH问题

请教一下,我用F2812扩一个大容量的FLASH,用的是三星的K9K1G系列的,应该怎么接, 因为FLASH芯片的数据口是并口,但地址却是用串行方式产生的…

查看全部问答>