历史上的今天
返回首页

历史上的今天

今天是:2024年09月07日(星期六)

2020年09月07日 | PIC16F1826定时器实现呼吸灯效果主程序

2020-09-07 来源:51hei

void main(void)

{

    TMR0IF=0;//清除TMR0中断标志位

    TMR0=255;//设置中断初始值255

    unsigned int k = 1;

    unsigned int TIMER0 = 0,TIMER1 = 0,TIMER2 = 0;

    unsigned char Flag_1 = 1;

    unsigned char Flag_2 = 1;

    unsigned char Flag_3 = 1;

    Pin_Init();

      Answ_Out = 0;

      Light1 = 0;

      Light2 = 0;

      Light3 = 0;

      Light4 = 0;

    while(1)

    {

        if( (TMR0IF == 1) && (Flag_1 ==1) )           //开启定时器溢出中断

        {

            TIMER0 ++;              //计数器+1

            TMR0IF = 0;             //定时器溢出标志位清零

            TMR0 = 255;

        }

        if( TIMER0 == k )           //如果计数器的值等于设定的值

        {

            Light4 = 1;             //灯灭

        }

        if( TIMER0 == 100 )          //计数器加到90

        {

            Light4 = 0;             //灯亮

            TIMER0 = 0;

            k++;                  //设定值初始化

        }

        if( k == 99 )

        {

            Light4 = 0;

            k =1;

            Flag_3 = 1;

            Flag_1 = 0;

        }

        if( (TMR0IF == 1) && (Flag_2 ==1) )           //开启定时器溢出中断

        {

            TIMER1 ++;              //计数器+1

            TMR0IF = 0;             //定时器溢出标志位清零

            TMR0 = 255;

        }

        if( TIMER1 == 40040)

        {

            Light4 = 1;

            TIMER1 = 0;

            Flag_1 = 1;

            Flag_2 = 0;

        }

        if( (TMR0IF == 1) && (Flag_3 ==1) )           //开启定时器溢出中断

        {

            TIMER2 ++;              //计数器+1

            TMR0IF = 0;             //定时器溢出标志位清零

            TMR0 = 255;

        }

        if( TIMER2 == k )           //如果计数器的值等于设定的值

        {

            Light4 = 0;             //灯亮

        }

        if( TIMER2 == 100 )          //计数器加到90

        {

            Light4 = 1;             //灯灭

            TIMER2 = 0;

            k++;                  //设定值初始化

        }

        if( k == 99 )

        {

            Light4 = 0;

            k =1;

            Flag_2 = 1;

            Flag_3 = 0;

        }

    }

}


推荐阅读

史海拾趣

Dynawave Incorporated公司的发展小趣事

在快速发展的过程中,Dynawave意识到企业文化的重要性。他们注重培养员工的团队合作精神和创新能力,鼓励员工积极参与公司的各项活动。同时,公司还建立了完善的激励机制和福利制度,为员工提供了良好的工作环境和发展空间。这些举措增强了员工的归属感和忠诚度,为公司的长期发展奠定了坚实的基础。

Connect-Tech Products Corp公司的发展小趣事

Connect-Tech Products Corp公司深知人才是企业发展的核心力量。因此,公司注重人才培养和团队建设,通过定期举办培训、组织技术交流活动等方式,提升员工的专业技能和综合素质。同时,公司还建立了完善的激励机制,鼓励员工创新创造,为公司的发展贡献智慧和力量。这些举措不仅增强了公司的凝聚力和向心力,也为企业的发展提供了有力的人才保障。

Defense Logistics Agency公司的发展小趣事

随着军事现代化的推进,DLA意识到整合与优化供应链的重要性。于是,DLA开始着手整合各个军事部门的后勤系统,实现资源的集中管理和统一调配。通过引入先进的供应链管理技术,DLA大幅提高了物资采购、存储、运输和分发的效率,确保了美军在全球范围内的作战需求得到及时、准确的满足。

Advanced Ceramic X Corporation公司的发展小趣事

在全球化和信息化的大背景下,DLA面临着诸多挑战,如跨国采购的风险、网络安全威胁等。然而,DLA始终坚持创新驱动、持续发展的理念,通过加强国际合作、完善法律法规等方式积极应对挑战。同时,DLA还注重人才培养和团队建设,打造了一支高素质、专业化的后勤保障队伍。这些努力为DLA的持续发展提供了有力保障。

HELUKABEL公司的发展小趣事

Defense Logistics Agency(DLA)于1961年成立,是美国国防部(DOD)的一个独立作战支援机构。在成立初期,DLA就明确了其战略定位:为全球范围内的美军及国防部其他部门提供统一、高效的后勤保障服务。这一战略定位的确立,为DLA的后续发展指明了方向。

光磊(GL)公司的发展小趣事

随着军事现代化的推进,DLA意识到整合与优化供应链的重要性。于是,DLA开始着手整合各个军事部门的后勤系统,实现资源的集中管理和统一调配。通过引入先进的供应链管理技术,DLA大幅提高了物资采购、存储、运输和分发的效率,确保了美军在全球范围内的作战需求得到及时、准确的满足。

问答坊 | AI 解惑

用汇编语言编一个分等级的递增置数程序

有两个键↑,↓.根据按键的时间长短,分成3个等级,从0000开始置数,最大可达9999。第一个等级,按↑递增很慢,按键时间超过5秒,进入第二个等级,递增比原来快多了,继续按键5秒,进入第三等级,递增超快,只看到最高位变化,按键停止后。再次按键 ...…

查看全部问答>

非接触智能卡介绍

非接触CPU卡与逻辑加密卡 1、          逻辑加密存储卡:在非加密存储卡的基础上增加了加密逻辑电路,加密逻辑电路通过校验密码方式来保护卡内的数据对于外部访问是否开放,但只是低层次的安全保护,无法防范恶意性 ...…

查看全部问答>

我的CY7C68013上电不能识别,为什么?

reset电路100k,1uf,SDL,SDA都上拉了,会是什么问题呢? …

查看全部问答>

求教一下,为什么我的电脑装不了EVC4

求教各位高手一下,为什么我的电脑装不了EVC4.我现在用的是XP的系统,电脑上已经装上vc6和vs2005了,我装EVC出现这下面的问题. Setup Initialization Error   There is insufficient memory to run Setup.Try closing any open applicatio ...…

查看全部问答>

printf()函数详解(学习)

printf的格式控制的完整格式: % - 0 m.n l或h 格式字符 下面对组成格式说明的各项加以说明: ①%:表示格式说明的起始符号,不可缺少。 ②-:有-表示左对齐输出,如省略表示右对齐输出。 ③0:有0表示指定空位填0,如省略表示指定空位不填。 ④m.n ...…

查看全部问答>

F2812烧写中遇到的问题

我想把ucos移植去2812,但是在烧写中遇到了一些问题,这个问题我在论坛见过,不过不清楚具体是怎样解决的~ 下面是遇到的状况: 使用ti的烧写插件烧写FLASH时出现以下提示: Code Composer could not locate: FlashAPIInterface.c Would you lik ...…

查看全部问答>

如何采集电涡流位移传感器负电压输出

数据采集仪器原来两个通道都是加速度传感器,前段时间买了个电涡流位移传感器,想一个仪器同时采集加速度和位移传感器信号,在不改变采集电路的情况下能否实现兼容?电涡流位移传感器输出是-2V到-18V.是直流和交流的耦合输出形式,我只需要交流部分 ...…

查看全部问答>

智能电网之概念学习

什么是智能电网?   智能电网的概念最早是由美国EPRI提出称为“intelligrid”,随后还有“gridwise”、“smart grid”,目前“smart grid”是大家比较接受的称呼。而对智能电网的描述则各有所表,美国、欧盟、中国等都有不同的定义,我从 ...…

查看全部问答>