欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1544|回復: 0
打印 上一主題 下一主題
收起左側

報警與LED之中斷與定時應用加AVR及51單片機原檔資料

[復制鏈接]
跳轉到指定樓層
樓主






//--------------------------------------------------------51部份代碼----------------------------------------------------------------//

#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit SPK = P3^7;
uchar FRQ = 0x00;

void Delayms(uint ms)
{
         uchar i;
        while(ms--)
        {
                 for(i=0;i<120;i++);
        }
}

void main()
{
         P2 =   0x00;
        TMOD = 0x11;
        TH0 = 0x00;
        TL0 = 0xff;
        IT0 = 1;

        TR0 = 0;
        TR1 = 0;
        while(1)
        {
                 FRQ++;
                Delayms(1);
        }
}

void EX0_INT() interrupt 0
{
         TR0 = !TR0;
        TR1 = !TR1;
}

void T0_INT() interrupt 1
{
         TH0 = 0xfe;
        TL0 = FRQ;
        SPK = ~SPK;
}

void T1_INT() interrupt 3
{
         TH0 = -4200/256;
        TL0 = -4200%256;
        P2 = _crol_(P2,1);
}



//--------------------------------------------------------AVR部份代碼----------------------------------------------------------------//

#include<iom16v.h>
#include<macros.h>

#define uchar   unsigned char
#define uint  unsigned int

uchar  key = 0;               

uchar  led_huayang = 0xe0;           
void delay_1ms(unsigned char z)
{
    unsigned int i,j;
        
        for(i=0;i<z;i++)
                for(j=0;j<200;j++);
}


void   main()
{
        DDRC = 0xff;
        
        DDRD =~ (1<<2);
        
        PORTD = (1<<2);
        
        GICR = 0X40;
        
        SREG=0x80 ;
        
        while(1)
               
        {
                chushizhi++;
                delay_1ms(1);
        }        
}

#pragma interrupt_handler Timer0:iv_TIMER0_OVF
void Timer0()

{
        TCNT0 = 183 ;
        
        if( led_huayang & 0x80) led_huayang =( led_huayang<< 1 )| 0x01;
        
        else    led_huayang<<= 1;
        
        PORTC = led_huayang;
}

#pragma interrupt_handler Timer1:iv_TIMER1_OVF
void Timer1()

{
        TCNT1 = 0xfe00 + chushizhi;
    SPK();
}

#pragma interrupt_handler int0_INT:2
void int0_INT(void)
{
  key =! key;
        
        if(key)
               
        {
                TIMSK |= 0X05;
               
                led_huayang = 0xe0;
        }
        else
        {        
                TIMSK = 0X00;
               
                PORTC = 0X00;
               
                PORTD &=~ (1<<7);
        }                    
}

        

完全代碼附件中

avr_bj_led.zip (10.69 KB, 下載次數: 5)        51_bj_led.zip (16.8 KB, 下載次數: 4)






評分

參與人數 2黑幣 +58 收起 理由
站著說話不腰疼 + 8
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表