亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bo hao.c

?? 用89S52作的遠程序電話撥號系統
?? C
字號:
/*******************************************************************/
/*                                                                 */
/* ME500B片機開發系統演示程序 - 電話撥號器                         */
/*                                                                 */
/* LCD1602顯示                                                     */
/*                                                                 */
/* 版本: V1.0 (2006/11/20)                                        */
/* 作者: gguoqing (Email: gguoqing@willar.com)                    */
/* 網站: www.willar.com(偉納電子)   www.mcusj.com(偉納單片機世界) */
/* 郵箱: support@willar.com                                       */
/*                                                                 */
/*【版權】Copyright(C)偉納電子 www.willar.com  All Rights Reserved */
/*【聲明】此程序僅用于學習與參考,引用請注明版權和作者信息!       */
/*                                                                 */
/*******************************************************************/

#include <reg51.h>
#include <intrins.h>
	                
#define uchar unsigned char
#define uint  unsigned int

sbit BEEP = P3^7;          //蜂鳴器驅動線
uchar  dis_buf=0x00;       //顯示緩存     
uchar  dis_buf1[ ] = {0x00,0x00,0x00,0x00,0x00,0x00,
                      0x00,0x00,0x00,0x00,0x00,0x00};   
                           //電話號碼存儲單元
uchar  temp,m;
uchar  key,keynum;        //鍵順序嗎

sbit LCD_RS = P2^0;             
sbit LCD_RW = P2^1;
sbit LCD_EN = P2^2;

sbit MT_RS  = P2^3;
sbit MT_RW  = P2^4;
sbit MT_CS  = P2^5;
sbit MT_CK  = P2^6;
sbit TEL    = P2^7;      //電話摘掛機控制線 

uchar code  cdis1[ ] = {"TELEPHONE DIALER"};
uchar code  cdis2[ ] = {"TEL:            "};

#define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};


/*************************************************************
*                                                            *
* 延時子程序                                                 *
* 晶振 11.0592MHz  延時為1ms                                 *
*                                                            *
*************************************************************/
void  delay(uint x)
{ uchar j;
    while((x--)!=0)
    { 
	  for(j=0;j<115;j++)
         {;}
    }
}

/*************************************************************
*                                                            *
*檢查LCD忙狀態                                               *
*lcd_busy為1時,忙,等待。lcd-busy為0時,閑,可寫指令與數據   *
*                                                            *
*************************************************************/ 
bit lcd_busy()
 {                          
    bit result;
    LCD_RS = 0;
    LCD_RW = 1;
    LCD_EN = 1;
    delayNOP();
    result = (bit)(P0&0x80);
    LCD_EN = 0;
    return(result); 
 }

/*************************************************************
*                                                            *
*寫指令數據到LCD                                             *
*RS=L,RW=L,E=高脈沖,D0-D7=指令碼。                        *
*                                                            *
*************************************************************/
void lcd_wcmd(uchar cmd)

{                          
   while(lcd_busy());
    LCD_RS = 0;
    LCD_RW = 0;
    LCD_EN = 0;
    _nop_();
    _nop_(); 
    P0 = cmd;
    delayNOP();
    LCD_EN = 1;
    delayNOP();
    LCD_EN = 0;  
}

/************************************************************
*                                                           *
*寫顯示數據到LCD                                            *
*RS=H,RW=L,E=高脈沖,D0-D7=數據。                         *
*                                                           *
************************************************************/
void lcd_wdat(uchar dat)
{                          
   while(lcd_busy());
    LCD_RS = 1;
    LCD_RW = 0;
    LCD_EN = 0;
    P0 = dat;
    delayNOP();
    LCD_EN = 1;
    delayNOP();
    LCD_EN = 0; 
}

/************************************************************
*                                                           *
*  LCD初始化設定                                            *
*                                                           *
************************************************************/
void lcd_init()
{ 
    delay(15);                   
    lcd_wcmd(0x38);      //16*2顯示,5*7點陣,8位數據
    delay(5);
    lcd_wcmd(0x38);         
    delay(5);
    lcd_wcmd(0x38);         
    delay(5);

    lcd_wcmd(0x0c);      //顯示開,關光標
    delay(5);
    lcd_wcmd(0x06);      //移動光標
    delay(5);
    lcd_wcmd(0x01);      //清除LCD的顯示內容
    delay(5);
}

/************************************************************
*                                                           *
*  設定顯示位置                                             *
*                                                           *
************************************************************/

void lcd_pos(uchar pos)
{                          
  lcd_wcmd(pos | 0x80);  //數據指針=80+地址變量
}

/************************************************************
*                                                           *
* 矩陣鍵盤掃描函數                                          *
* 鍵值保存在key                                             *
*                                                           *
************************************************************/
uchar  keyscan(void)
 { 
    P1=0x0F;                 //低四位輸入  
    delay(1);
	temp=P1;                 //讀P1口 
    temp=temp&0x0F;
    temp=~(temp|0xF0);
    if(temp==1)
        key=0;
    else if(temp==2)
        key=1;
    else if(temp==4)
        key=2;
    else if(temp==8)
        key=3;
    else
        key=16;
        
    P1=0xF0;                //高四位輸入
    delay(1);
	temp=P1;                //讀P1口       
    temp=temp&0xF0;
    temp=~((temp>>4)|0xF0);
    if(temp==1)
        key=key+0;
    else if(temp==2)
        key=key+4;
    else if(temp==4)
        key=key+8;
    else if(temp==8)
        key=key+12;
    else
        key=16;

    return(key);
}

/************************************************************
*                                                           *
* 延時 x*0.14ms                                             *
*                                                           *
************************************************************/
void delay0(uchar x)    
{
 unsigned char i;
  while(x--)
 {
  for (i = 0; i<13; i++) {}
 }
}

/************************************************************
*                                                           *
* 蜂鳴器響一聲                                              *
*                                                           *
************************************************************/
void beep()
{
  unsigned char i;
  for (i=0;i<180;i++)
   {
   delay0(6);
   BEEP=!BEEP;       //BEEP取反
   } 
   BEEP=1;           //關閉蜂鳴器
   delay(250);       //延時     
}

/************************************************************
*                                                           *
* 鍵入電話號碼函數                                          *
*                                                           *
************************************************************/
void  key_input ()
 {  
  	P1=0xF0;
	if(P1!=0xF0)                //判是否有健按下
	{
   	  keyscan();
	  beep();
      
      if(key==0x0f)              //是否為發送鍵
	  return;

	  if(key==0)                 //0轉換為電話碼"a"
	  key=0x0a;

      dis_buf1[keynum]=key;      //健值送存儲單元

	  dis_buf =dis_buf1[keynum]; //健值送顯示單元
 
      if(dis_buf==0x0a)          //數據轉換
	  dis_buf=0x00;

      dis_buf = dis_buf & 0x0f;
    
      if(dis_buf>9)               //轉換為ASCII碼
      dis_buf = dis_buf+0x37;
      else
      dis_buf = dis_buf+0x30;

	  lcd_pos(0x44+keynum);             
      lcd_wdat(dis_buf);         //顯示健值

	  keynum++;                  //按鍵次數計數
	}
 }

/*************************************************************
*                                                            *
* MT8880 寫狀態函數                                          *
* RS=1,RW=0,寫狀態寄存器                                     *
*                                                            *
*************************************************************/
void  write_status(uchar value)
{
   MT_RS=1;
   MT_RW =0;
   MT_CK =0;

   P1 = value;     //寫 8880CRA和CRB.
   MT_CK =1;
   delayNOP();
   MT_CK =0;
}

/*************************************************************
*                                                            *
* MT8880 初始化函數                                          *
*                                                            *
*************************************************************/
void  MT_INIT() 
{
   MT_CS=0;             //MT8880使能
   delayNOP();
   write_status(0x10);  //寫 8880CRA,CRA=0000.
   write_status(0x10);  //寫 8880CRA,CRA=0000.
   write_status(0x18);  //寫 8880CRA,CRA=1000,允許選擇CRB.
   write_status(0x10);  //寫 8880CRB,CRB=0000
   MT_CS=1;             //禁止MT8880工作
}

/*************************************************************
*                                                            *
* MT8880   發碼程序                                          *
*                                                            *
* RS=1,RW=0,寫狀態寄存器                                     *
* RS=1,RW=1,讀狀態寄存器                                     *
* RS=0,RW=0,寫發送寄存器                                     *
*                                                            *
*************************************************************/ 
void  MT_TRAN()
{
   uchar  i;

   lcd_pos(0x40);           //設置顯示位置為第二行     
   for(m=0;m<16;m++)
   lcd_wdat(cdis2[m]);

   MT_CS=0;
   delayNOP();

   write_status(0x1d);      //寫 8880CRA,CRA=1101.
   write_status(0x10);      //寫 8880CRB,CRB=0000.
                            //8880模式2為TONE,DTMF,IRQ,BURST
 
   MT_RS=0;                //寫發送寄存器
   MT_RW =0;
   MT_CK =0;

   for(i=0;i<keynum;i++)
   {
     dis_buf1[i]=dis_buf1[i]&0x0f;  //取數據低4位
	 P1 = dis_buf1[i];
	 MT_CK =1;                      //發送號碼
     delayNOP();
     MT_CK =0;
 
	 if(dis_buf1[i]==0x0a)
	 dis_buf1[i]=0x00;

     dis_buf1[i]=dis_buf1[i]+0x30;  //轉換為ASCII碼
	 lcd_pos(0x44+i);             
     lcd_wdat(dis_buf1[i]);         //顯示撥號碼

     delay(300);                    //調整撥號速率
   }
    MT_CS=1;
}

/************************************************************
*                                                           *
* 主程序                                                    *
*                                                           *
************************************************************/ 
void  main()
{    
    P0=0xFF;                    //置P0口
    P2=0xFF;                    //置P2口  
    delay(10);                  //延時
    MT_CS=1;                    //禁止MT8880工作
    lcd_init();                 //初始化LCD             
        
    lcd_pos(0);                 //設置顯示位置為第一行
    for(m=0;m<16;m++)
    lcd_wdat(cdis1[m]);

    lcd_pos(0x40);              //設置顯示位置為第二行     
    for(m=0;m<16;m++)
    lcd_wdat(cdis2[m]);
    
    while(1)
    { 
      key_input();              //輸入撥號號碼

	  if(key==0x0f)             //撥號
	  {
	    TEL = 0;                //摘機
        delay(2000);            //延時等待撥號音出現
        MT_INIT();              //MT8880初始化
        MT_TRAN();              //MT8880撥號

        delay(5000);            //調整在線時間
        delay(5000);
        delay(5000);

		TEL = 1;                //掛機
        
        MT_CS=1;                //禁止MT8880工作
		key=0x00;
		keynum=0x00;

		lcd_pos(0x40);          //設置顯示位置為第二行     
        for(m=0;m<16;m++)
        lcd_wdat(cdis2[m]);

		delay(1000);
	   }	  
	}      
}   

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

使用說明:
    先使用矩陣鍵盤輸入你要撥的電話號碼,LCD顯示你輸入的電話
號碼,可以輸入12位。檢查號碼輸入無誤后,按"F"健即可進行撥號。

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一级专区免费大片| 亚洲成人动漫在线观看| xfplay精品久久| 欧美成人a∨高清免费观看| 制服丝袜亚洲精品中文字幕| 欧美伊人久久久久久午夜久久久久| 97se亚洲国产综合自在线不卡| 不卡的av网站| 一本到不卡精品视频在线观看| 色综合天天综合色综合av| 色综合天天综合狠狠| 欧美在线999| 91精品久久久久久久99蜜桃| 91精品国产一区二区三区| 日韩一区二区在线观看视频 | 亚洲视频一区二区免费在线观看| 国产精品毛片久久久久久| 国产精品国产三级国产普通话99 | 国产亚洲精品bt天堂精选| 国产视频一区二区三区在线观看| 国产无一区二区| 国产精品护士白丝一区av| 一区二区日韩电影| 日韩电影在线免费看| 老司机精品视频线观看86 | 91精品国产欧美一区二区成人| 91精品国产色综合久久不卡蜜臀| 日韩欧美国产一区二区三区| 久久影音资源网| 国产精品久久久久久久久免费相片 | 国产综合色在线| 成人一区二区三区视频在线观看| 99精品在线观看视频| 欧美在线三级电影| 日韩一级完整毛片| 国产午夜一区二区三区| 亚洲免费看黄网站| 午夜精品影院在线观看| 国产麻豆精品在线观看| 99久久精品国产麻豆演员表| 91麻豆精品国产91久久久资源速度| 日韩欧美中文一区二区| 国产精品天美传媒沈樵| 亚洲成人一二三| 欧美最猛黑人xxxxx猛交| 欧美日韩高清在线播放| 久久亚洲影视婷婷| 亚洲精品成人悠悠色影视| 免费国产亚洲视频| 不卡的av电影| 日韩欧美一区二区视频| 日韩一区在线看| 日本不卡一二三| 99精品久久免费看蜜臀剧情介绍| 91精品国产丝袜白色高跟鞋| 1024成人网| 麻豆一区二区在线| 91日韩精品一区| 久久午夜免费电影| 亚洲成在线观看| 国产99精品国产| 欧美一区二区久久久| 日韩毛片一二三区| 国内精品伊人久久久久影院对白| 欧美性生活一区| 国产精品久久一级| 精品在线一区二区三区| 欧美在线免费观看视频| 中文字幕av资源一区| 日韩av电影天堂| 在线观看免费亚洲| 国产精品不卡在线观看| 久88久久88久久久| 欧美影院午夜播放| 综合自拍亚洲综合图不卡区| 国内精品写真在线观看| 欧美日韩精品一区视频| 亚洲欧美日韩国产综合| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 五月综合激情网| 99亚偷拍自图区亚洲| 欧美精品一区二区在线观看| 欧美综合久久久| 亚洲桃色在线一区| 国产成人免费9x9x人网站视频| 欧美成人免费网站| 麻豆一区二区三区| 欧美精品自拍偷拍动漫精品| 一区二区三区91| 色婷婷av一区二区| 18欧美亚洲精品| 成人免费毛片嘿嘿连载视频| 久久久一区二区三区| 喷水一区二区三区| 6080午夜不卡| 天天操天天综合网| 欧美精品三级在线观看| 日韩精品午夜视频| 制服丝袜亚洲网站| 蜜臀av性久久久久蜜臀aⅴ| 欧美日韩中文字幕一区二区| ...xxx性欧美| www.亚洲人| 亚洲日本在线看| 一本色道久久综合亚洲精品按摩| 亚洲视频香蕉人妖| 91久久精品午夜一区二区| 伊人色综合久久天天| 在线观看免费亚洲| 丝袜美腿亚洲综合| 欧美一区永久视频免费观看| 奇米精品一区二区三区在线观看| 欧美tk—视频vk| 国产精品一区二区久激情瑜伽| 国产日韩欧美精品一区| av激情亚洲男人天堂| 亚洲欧美另类在线| 在线亚洲欧美专区二区| 天天综合天天做天天综合| 欧美一卡2卡三卡4卡5免费| 国产综合色精品一区二区三区| 国产蜜臀av在线一区二区三区| 成人教育av在线| 亚洲精品一卡二卡| 欧美精品一二三| 狠狠色综合色综合网络| 中文文精品字幕一区二区| 99精品偷自拍| 水野朝阳av一区二区三区| 日韩精品一区二区在线| 成人免费视频视频| 亚洲激情五月婷婷| 日韩欧美国产一二三区| 成人午夜看片网址| 亚洲午夜一区二区| 精品国产青草久久久久福利| www.欧美.com| 日韩av电影免费观看高清完整版 | 国产精品人妖ts系列视频| 色婷婷综合五月| 日韩av午夜在线观看| 日本一区二区三区四区| 欧美系列在线观看| 精品一区二区在线看| 亚洲色图在线看| 日韩一区二区免费在线观看| 粉嫩嫩av羞羞动漫久久久| 亚洲欧美激情在线| 日韩欧美一级片| 色哟哟亚洲精品| 久久99久久久欧美国产| √…a在线天堂一区| 日韩欧美黄色影院| 91麻豆国产自产在线观看| 美女视频黄 久久| 国产精品婷婷午夜在线观看| 欧美美女激情18p| 丰满白嫩尤物一区二区| 日韩av一区二区三区| 1024国产精品| 26uuu国产在线精品一区二区| 日本道精品一区二区三区| 国产在线一区二区| 日韩激情视频在线观看| 亚洲欧洲国产专区| 精品噜噜噜噜久久久久久久久试看| 91影院在线免费观看| 韩国精品一区二区| 日韩精品一级二级| 综合自拍亚洲综合图不卡区| 2014亚洲片线观看视频免费| 欧美三级中文字幕在线观看| 国产成人综合自拍| 精品一区在线看| 视频一区二区三区入口| 一区二区三区精品视频| 国产精品无人区| 久久婷婷成人综合色| 91精品国产色综合久久ai换脸 | 97成人超碰视| 国产一本一道久久香蕉| 午夜精品一区二区三区免费视频| 亚洲三级小视频| 中文字幕成人在线观看| 欧美xxx久久| 欧美日本在线视频| 色婷婷激情一区二区三区| 欧美日韩成人高清| 一本大道久久a久久精二百| 成人影视亚洲图片在线| 国产寡妇亲子伦一区二区| 久久国内精品自在自线400部| 日韩av网站免费在线| 天堂在线一区二区| 亚洲综合色在线| 亚洲综合色视频| 夜夜嗨av一区二区三区中文字幕| 国产欧美日韩在线视频| 久久久国产精华| 久久九九久精品国产免费直播|