自在自线亚洲а∨天堂在线-中文字幕一区视频播放-扒开双腿猛进入喷水高潮叫声-欧美日本亚洲一区二区-老熟妇高潮偷拍一区二区-国产精品高清一区二区不卡-午夜色福利视频一区二区三区-亚洲国产成人精品福利在线观看-亚洲欧美成人一区二区在线电影

機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
多機(jī)紅外通信發(fā)送端(C程序代碼)
多機(jī)紅外通信發(fā)送端(C程序代碼)
 更新時(shí)間:2008-7-26 20:29:41  點(diǎn)擊數(shù):2
【字體: 字體顏色

/****************************************************************
*文件名: Host.C
*版權(quán):  www.zlgmcu.com
*日期:  16:27 04-3-16
*功能:  多機(jī)紅外通信發(fā)送端程序代碼
****************************************************************/
#include "reg932.h"
#define uchar unsigned char

sbit KEY1=P0^0;     //定義KEY1
sbit KEY2=P0^1;     //定義KEY2
     
sbit Infr=P0^3;     //定義紅外輸出端口
//--------------------------------------
void CCU_Init();     //CCU初始化
void KeyISR_Init();    //鍵盤中斷初始化
void ReadKey();     //判斷按鍵
void Power_Down();    //完全掉電

void StartDevice01();   //啟動(dòng)設(shè)備1(燈)
void StartDevice02();   //啟動(dòng)設(shè)備2(門/窗)
void SendHead();     //發(fā)送幀頭
void SendData(uchar Data);  //發(fā)送數(shù)據(jù)

void delay400us();    //延時(shí)400us
void delayms(uchar i);   //ms級(jí)延時(shí)
//--------------------------------------
void KEY_ISR() interrupt 7{
 EA=0;       //關(guān)中斷
 
 PCONA=0x00;      //功能模塊上電
 CCU_Init();      //CCU模塊初始化

 delayms(10);     //延時(shí)10ms
 ReadKey();      //判斷按鍵

 KBCON=0x00;      //清鍵盤中斷標(biāo)志
 delayms(50);     //延時(shí)50ms
 EA=1;       //開中斷
}

//--------------------------------------
main()
{
 P0M1=0x00;      //設(shè)置P0口為準(zhǔn)雙向
 P0M2=0x00;
 P2M1=0x40;      //設(shè)置P26為開漏      
 P2M2=0x40;
 CCU_Init();      //CCU初始化
 KeyISR_Init();     //鍵盤初始化
 while(1)
 {
  Power_Down();    //完全掉電
 }
}
//--------------------------------------
//功能:進(jìn)入掉電模式
//--------------------------------------
void Power_Down()
{
 PCONA=0xFF;      //外部功能模塊掉電
 PCON=0x03;      //進(jìn)入掉電模式
}
//-------------------------------------------------------------
//功能: CCU模塊初始化,使OCA(P2.7)輸出38KHz,50%占空比的PWM波,
//使用內(nèi)部RC振蕩器時(shí):CCU頻率=((7375000/2)/6)*32=9.833MHz
//定時(shí)器重裝值=CCU頻率/紅外線載頻=9833333/38000=258.772=0x102
//-------------------------------------------------------------
void CCU_Init()
{

    TOR2H=0x02;                     //定時(shí)器重裝值
    TOR2L=0x05;
    OCRAH=0x01;                     //(OCRAH:OCRAL)=(TOR2H:TOR2L)/2,PWM的占空比為50%
    OCRAL=0x02;
    TCR21=0x85;                     //PLL預(yù)分頻為5+1
    CCCRA=1;                        //非反相的PWM在比較匹配時(shí)置位,在CCU定時(shí)器向下溢出時(shí)清0

    PLLEN=1;      // 啟動(dòng) PLL
 OCA=1;
    while(PLLEN==0);
    TCR20=0x82;      // 設(shè)置輸出模式,非反相PWM

}
//--------------------------------------
//功能:鍵盤中斷初始化
//--------------------------------------
void KeyISR_Init()
{
 KBMASK=0x03;     //設(shè)置P01->P00為中斷源
 KBCON=0x00;      //清除鍵盤中斷標(biāo)志
 EKBI=1;       //鍵盤中斷允許
 EA=1;       //開中斷
}
//--------------------------------------
//功能:鍵盤判斷
//--------------------------------------
void ReadKey()

 delayms(12);     //延時(shí)去抖動(dòng)

 if(KEY1==0)      //等待KEY1按下
 {
  while(KEY1==0);    //等待KEY1為1
  StartDevice01();   //啟動(dòng)設(shè)備1(燈)
 }
 else if(KEY2==0)    //等待KEY2按下
 {
  while(KEY2==0);    //等待KEY2為1
  StartDevice02();   //啟動(dòng)設(shè)備2(門/窗)
 }
}

//--------------------------------------
//功能:?jiǎn)?dòng)設(shè)備1(門/窗) 
//--------------------------------------
void StartDevice01()    
{
 SendHead();      //發(fā)送幀頭
 SendData(1);     //發(fā)送數(shù)據(jù)“1”,
}
//--------------------------------------
//功能:?jiǎn)?dòng)設(shè)備2(門/窗)
//--------------------------------------
void StartDevice02()
{
 SendHead();      //發(fā)送幀頭
 SendData(2);     //發(fā)送數(shù)據(jù)“2”,
}
//--------------------------------------
//功能:發(fā)送幀頭
//--------------------------------------
void SendHead()
{
 Infr=0;       //將Infr拉為低電平
 delayms(50);
 Infr=1;       //將Infr拉為高電平
 delayms(10);

 Infr=0;       //將Infr拉為低電平
 delayms(1);
 Infr=1;       //將Infr拉為高電平
 delayms(1);
 Infr=0;       //將Infr拉為低電平
 delayms(1);
}
//--------------------------------------
//功能:發(fā)送數(shù)據(jù),從高位到低位依次發(fā)送8個(gè)位
//入口參數(shù):要發(fā)送的數(shù)據(jù)
//--------------------------------------
void SendData(uchar  Data)
{
 uchar Temp;
 uchar i=8;
 while(i>0)
 {
  Temp=Data&0x80;    //取欲發(fā)送數(shù)的最高位
  if(Temp==0x80)    //對(duì)最高位進(jìn)行判斷.
  { 
   Infr=1;     //為1則將Infr拉高
  }
  else
  {
   Infr=0;     //為0,則將Infr拉低
  }
  
  i--;
  Data=Data<<1;    //循環(huán)移位
  delay400us();    //延時(shí)
 }
}
//--------------------------------------
//在內(nèi)部RC作用的情況下,延時(shí)1000.9us
//--------------------------------------
void delayms(uchar i)
{
 int j;
 while(i>0)
 {
  for(j=0;j<670;j++);
  i--;
 }
}
//---------------------------------------
//在內(nèi)部RC作用的情況下,延時(shí) 401us;
//---------------------------------------
void delay400us()
{
 int i;
 for(i=0;i<283;i++);
}//---------------------------------------

  • 上一篇: 多機(jī)紅外通信發(fā)送端程序代碼(匯編)
  • 下一篇: 多機(jī)紅外通信接收端(匯編程序代碼)
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1