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

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

?? pcf8591ad.#1

?? C8051F系列單片機外圍電路功能模塊程序
?? #1
字號:
//參考程序A: PCF8591AD.C  PCF8591的AD轉換實驗.
/*芯片PCF8951共有四個A/D輸入通道:AD0,AD1,AD2,AD3,分別與四個電位器(R1,R2,R3,R4)連接,用以調節電位器的輸出電壓。其中AD0通道既可測量電位器輸出電壓,也可用于測量從J1插座輸入的外接電壓,須用開關J2加以選擇。J4插座提供由PCF8591輸出的時鐘方波信號。SAA1064驅動四個數碼管顯示一路AD轉換后得到的數據。顯示格式如下表:
通道號:		      AD轉換結果(高四位)    	   AD轉換結果(低四位)
   3	                     E	                            7
函數SLA_READ(char chip_select, char channel)中的channel就是通道號選擇變量.channel=0到3.本程序選定channel=3(用戶可修改),用小改刀調節R4,可觀察到數碼管上顯示的數據的變化.*/
#include <c8051f020.h>                    // SFR declarations
#include <intrins.h>
#define  WRITE       0x00                 // 寫位
#define  READ        0x01                 // 讀位           
#define  CHIP_B      0x70
#define  SMB_START      0x08  // (MT&MR)主收發器發送起始位成功.再將從機寫地址送SMB0DAT
#define  SMB_RP_START   0x10  // (MT & MR)主收發器重復發送起始位成功,再將從機讀地址送SMB0DAT
#define  SMB_MTADDACK   0x18  // (MT)主收發器發送從地址+W成功;收到 ACK        
#define  SMB_MTADDNACK  0x20  // (MT) 主收發器發送從地址+W成功;收到 NACK        
#define  SMB_MTDBACK    0x28  //(MT)主收發器發送數據字節成功;收到ACK.           
#define  SMB_MRADDACK   0x40  // (MR)主收發器發送從地址+R成功;收到 ACK.
#define  SMB_MRDBACK    0x50  // (MR)主收發器接收數據成功;主機發送ACK 
#define  SMB_MRDBNACK   0x58  // (MR)主收發器接收數據成功;主機發送NACK 
char COMWRITE;         //保存從地址 + R/W 位,用在 中斷服務函數中
char COMREAD;                                         
unsigned char totalnumber,sendnumber,WORD;     
unsigned char  INTERRUPT[20],L;
unsigned char xdata  channel=2;    // channel保存AD通道變量,channel=0--3.
unsigned char xdata SENDMODE;      // SENDMODE=1為寫(SLA_SEND),SENDMODE=0為讀(SLA_READ)
bit SM_BUSY;                      // 在收/發過程中,SM_BUSY被置1.中斷服務完成后被清為另.
unsigned char wr_data[8];         //保存寫入從器件的數據
unsigned char rd_data[8];         //保存從從器件中讀出的數據
void SYSCLK_Init (void);
void SMBUS_ISR (void);
char SLA_READ(char chip_select, char channel);
//channel就是通道號選擇變量.channel=0到3
void SLA_SEND(char chip_select, char *wr_data, char number);
//chip_select為從器件的寫地址
char temp;              
char Number[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};  //LED數碼管的字型碼
void sleep_ms(unsigned int count)//延時
{
  unsigned char ii,jj;
  for(ii=0;ii<count;ii++)
    {
      for(jj=0;jj<250;jj++)
	  _nop_();			
    }	
}

void MAIN (void)
{
    WDTCN = 0xde;                 // 禁止看門狗
   WDTCN = 0xad;
   SYSCLK_Init();                // 系統時鐘初始化
   XBR0 = 0x01;                  // 設置P0.0為SDA,P0.1為SCL
   XBR2 = 0x40;                  // 使能交叉開關和弱上拉
   SMB0CN = 0x44;                // 允許SMBus并回應低電平(AA = 1)
   SMB0CR =0X0c9 ;    // 設定SMBus 速率 = 100 kHz(系統時鐘為11.0692MHZ)
   EIE1 |= 2;                     // SMBus 中斷使能
   SM_BUSY = 0;                   // 釋放SMBus總線
   SI = 0;
   EA = 1;                        // 開中斷
  while(1){
   SLA_READ(0x90,channel);//(寫地址WR_ADD=0x90,AD通道選擇變量channel=0---3)
		sleep_ms(200);
		wr_data[0] = 0x00;       //數組wr_data[] 中存放的數據送SAA1064
		wr_data[1] = 0x17;       //SAA1064的控制字
		//wr_data[2] = 0x00;     //第一個數碼管顯示通道號
		wr_data[3] = 0x0;        //第二個數碼管熄滅
		temp = rd_data[0]>>4;    //AD采樣數據的高四位存入temp
		temp = Number[temp];     //查出temp對應的字形碼
		wr_data[4] = temp;
		temp = rd_data[0] & 0x0f;//AD采樣數據的低四位存入temp
		temp = Number[temp];     //查出temp對應的字形碼
		wr_data[5] = temp;
		SLA_SEND(CHIP_B,wr_data,0x06);
		sleep_ms(200);
		sleep_ms(200);
		sleep_ms(200);
		sleep_ms(200);
   }
   
}
void SYSCLK_Init (void)
{
   int i;                                 // 延時計數器
   OSCXCN = 0x67;                         // 啟動外部時鐘(11.0592MHZ)
   for (i=0; i < 256; i++) ;              
   while (!(OSCXCN & 0x80)) ;             // 等待晶振穩定
   OSCICN = 0x88;                         // 選擇外部晶振作為系統時鐘
                                          // 允許時鐘丟失檢測
}
void SLA_SEND(char chip_select, char *wr_data, char number)
{
   SENDMODE=0x01;
   totalnumber=number;
   sendnumber=number;
   while(SM_BUSY);                        //SMBus忙碌即等待
   SM_BUSY = 1;                           // SMBus 忙碌標志位置1
   SMB0CN = 0x44;                         // SMBus 使能, 回應(ACK)為低電平.
   COMWRITE = (chip_select | WRITE);       // COMWRITE = 7 位地址位加寫位
   STO = 0;
   STA = 1;                               // 啟動數據傳輸
	while(SM_BUSY);   
}
char SLA_READ(char chip_select, char channel)
{   
   SENDMODE=0;                            //SENDMODE=0,讀出方式(SLA_READ)
   while(SM_BUSY);                        // SMBus忙碌即等待
   SM_BUSY = 1;                           // 設置忙碌標志位
   SMB0CN = 0x44;                         // 使能SMBus, 回應(ACK)低電平 .
   COMREAD = (chip_select | READ);        //// COMWRITE = 7 位地址位加讀位 
   COMWRITE = (chip_select | WRITE); 
   wr_data[0]=channel;              //PCF8591控制字(AD通道號)---->wr_data[0]
     temp =channel;
  	temp = Number[temp];
   wr_data[2]=temp;                    //wr_data[2]中存入通道號,送顯示在第一位數碼管上
   STO = 0;
   STA = 1;                               // 啟動傳輸
   while(SM_BUSY);                        // 等待傳輸完成
   return WORD;                           // 返回接收到的數據
}
void SMBUS_ISR (void) interrupt 7
{
   switch (SMB0STA){                    // 根據 SMBus 的狀態字(SMB0STA)跳轉
   case SMB_START:	//0x08
         SMB0DAT = COMWRITE ;			// 裝入從寫地址
         STA = 0;                       // 人工清除STA
         SI = 0;                        // 人工清除中斷標志位
         break;
      case SMB_RP_START:	//0x10
         SMB0DAT = COMREAD;
         STA = 0;                       // 人工清除STA
         SI = 0;                        // 人工清除中斷標志位
         break;
      case SMB_MTADDACK:	//0x18
         SMB0DAT = wr_data[0];
         SI = 0;                        
         break;
      case SMB_MTADDNACK:	//0x20
         STO = 1;
         STA = 1;
         SI = 0;                       
         break;
      case SMB_MTDBACK:		//0x28
         switch (SENDMODE){         	// 檢查讀/寫標志位SENDMODE.
            case 1:                    // SENDMODE=1(SLA_SEND)為寫狀態.
			   sendnumber--;
			   if(sendnumber)
			   SMB0DAT = wr_data[totalnumber-sendnumber];
			   else{
			   		STO=1;
				   	SM_BUSY=0;
				}
               break;                    
            case 0:            // SENDMODE=0(SLA_SEND)為讀狀態.   
			     STO = 0;
               STA = 1;
               break;                         
            default:                   
               STO = 1;
               SM_BUSY = 0;
               break;
         }
         SI = 0;
         break;
      case SMB_MRADDACK:	//0x40
         AA = 0;                          // 在回應周期送NACK
         SI = 0;
         break;
      case SMB_MRDBNACK:	//0x58
         rd_data[0] = SMB0DAT;
         STO = 1;
         SM_BUSY = 0;
         AA = 1;                          // 設置AA=1,準備下一次傳送
         SI = 0;
         break;
      // 狀態字SMB0STA無效. 
      default:
         STO = 1;
         SM_BUSY = 0;
         break;
      }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品在线视频一区| 欧美亚洲一区二区三区四区| 天堂久久久久va久久久久| 成人欧美一区二区三区在线播放| 国产精品视频一二三区 | 国产精品888| 久久99精品久久久久久| 极品少妇xxxx精品少妇偷拍| 国产乱人伦偷精品视频免下载| 国产成人午夜精品5599| 久久se这里有精品| 高清国产一区二区三区| 东方aⅴ免费观看久久av| 色婷婷亚洲一区二区三区| 色诱视频网站一区| 欧美精品乱人伦久久久久久| 欧美一区二区三区在| 中文字幕高清一区| 国产精品久久久久久久久图文区 | 欧美日韩综合在线| 8v天堂国产在线一区二区| 日韩精品一区二区三区视频播放 | 一片黄亚洲嫩模| 午夜伊人狠狠久久| 精品亚洲欧美一区| 91香蕉视频污在线| 日韩一二三区视频| 亚洲天堂精品在线观看| 日本欧美一区二区在线观看| 高清国产一区二区三区| 欧美剧情片在线观看| 欧美国产1区2区| 秋霞电影网一区二区| 成人综合日日夜夜| 91麻豆精品国产自产在线| 国产日韩欧美综合一区| 日韩黄色免费网站| 成人丝袜高跟foot| 日韩精品一区二区三区中文精品| 亚洲视频在线一区| 国产在线精品一区二区不卡了 | 午夜久久久影院| 99久久777色| 2020国产精品| 日本vs亚洲vs韩国一区三区二区 | 一区二区三区在线视频播放| 日本不卡123| 欧美日韩免费电影| 亚洲欧美日韩国产综合在线| 国产永久精品大片wwwapp| 欧美色中文字幕| 综合久久给合久久狠狠狠97色| 麻豆91在线播放免费| 欧美视频一区二区三区四区 | 欧美日韩国产小视频在线观看| 久久久久久久久久电影| 另类小说综合欧美亚洲| 欧美日韩精品系列| 亚洲男人的天堂av| 成人动漫视频在线| 国产色综合一区| 国产乱码精品一区二区三| 欧美va天堂va视频va在线| 日韩影院免费视频| 69堂精品视频| 麻豆精品国产传媒mv男同| 欧美精品高清视频| 午夜精品福利在线| 欧美丰满一区二区免费视频| 亚洲不卡在线观看| 91精品国产一区二区三区| 香蕉久久一区二区不卡无毒影院| 91黄色免费看| 性做久久久久久久免费看| 欧美色电影在线| 日韩av中文在线观看| 精品日韩一区二区| 国内久久精品视频| 中文在线一区二区| 91亚洲精品一区二区乱码| 中文字幕一区二区三区不卡在线| 99免费精品在线| 亚洲在线视频网站| 69堂国产成人免费视频| 国内不卡的二区三区中文字幕| 精品国内二区三区| 成人永久免费视频| 亚洲女人的天堂| 欧美精品亚洲二区| 国产裸体歌舞团一区二区| 国产精品乱子久久久久| 欧美天天综合网| 久久国产精品一区二区| 国产精品你懂的在线欣赏| 色国产精品一区在线观看| 日韩国产欧美三级| 久久久久国色av免费看影院| 99视频精品免费视频| 午夜精品视频一区| 精品免费国产二区三区 | 悠悠色在线精品| 欧美在线看片a免费观看| 免费观看成人鲁鲁鲁鲁鲁视频| 久久精品一区二区三区四区| 日本高清不卡aⅴ免费网站| 久久爱www久久做| 亚洲伊人色欲综合网| 久久久久97国产精华液好用吗| 色婷婷激情久久| 狠狠色2019综合网| 亚洲免费电影在线| 精品日韩欧美一区二区| 欧美偷拍一区二区| 成人动漫在线一区| 捆绑紧缚一区二区三区视频| 亚洲人快播电影网| 精品日韩99亚洲| 欧美色窝79yyyycom| 成人精品一区二区三区中文字幕| 天天av天天翘天天综合网| 亚洲视频1区2区| 久久综合九色综合欧美就去吻| 在线观看免费亚洲| 99精品视频在线免费观看| 精品亚洲国内自在自线福利| 天堂精品中文字幕在线| 一区二区在线观看免费| 久久久精品国产99久久精品芒果| 欧美日韩电影在线| 91福利国产精品| 91首页免费视频| 成人免费毛片片v| 国内精品国产三级国产a久久| 天天影视网天天综合色在线播放| 怡红院av一区二区三区| 国产精品美女久久久久高潮| 久久久天堂av| 久久婷婷综合激情| 久久久噜噜噜久噜久久综合| 欧美成人乱码一区二区三区| 欧美久久久久久久久| 欧美日韩色一区| 在线观看视频91| 91传媒视频在线播放| 在线一区二区视频| 欧美性猛片aaaaaaa做受| 色屁屁一区二区| 欧美性猛交xxxx乱大交退制版 | 蜜臀av一区二区| 青青青伊人色综合久久| 日本午夜精品视频在线观看| 免费高清在线一区| 免费成人在线视频观看| 精品在线一区二区三区| 激情小说欧美图片| 国产很黄免费观看久久| 高清shemale亚洲人妖| 在线免费观看日本欧美| 极品少妇xxxx精品少妇| 亚洲v中文字幕| 亚洲妇熟xx妇色黄| 亚洲久本草在线中文字幕| 亚洲精品水蜜桃| 一区二区三区欧美亚洲| 亚洲国产精品久久艾草纯爱| 亚洲福利一区二区| 蜜臀久久99精品久久久久宅男| 美腿丝袜亚洲三区| 国产成人av一区二区三区在线| 成人av网站在线| 欧美视频三区在线播放| 欧美成人精精品一区二区频| 久久精品网站免费观看| 亚洲免费av在线| 麻豆视频观看网址久久| 丰满放荡岳乱妇91ww| 欧美日韩一区二区三区四区 | 国内精品第一页| 成人精品国产一区二区4080| 91福利精品视频| 精品免费视频.| 欧美成人三级在线| 日韩一级片在线观看| 国产女主播视频一区二区| 亚洲最新在线观看| 精品一区二区三区久久| 99久久综合99久久综合网站| 欧美图区在线视频| 中文字幕久久午夜不卡| 午夜精品久久久久影视| 国产成人av福利| 69久久99精品久久久久婷婷| 国产精品免费人成网站| 五月天视频一区| 91麻豆免费看片| 欧美精品一区二区三区高清aⅴ | 在线不卡中文字幕播放| 久久久国际精品| 日韩经典中文字幕一区| 91极品视觉盛宴|