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

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

?? pcf8591ad.c

?? c8051f020源代碼39個 使用Silicon Labs IDE 調(diào)試器
?? C
字號:
//參考程序A: PCF8591AD.C  PCF8591的AD轉(zhuǎn)換實驗.
/*芯片PCF8951共有四個A/D輸入通道:AD0,AD1,AD2,AD3,分別與四個電位器(R1,R2,R3,R4)連接,用以調(diào)節(jié)電位器的輸出電壓。其中AD0通道既可測量電位器輸出電壓,也可用于測量從J1插座輸入的外接電壓,須用開關J2加以選擇。J4插座提供由PCF8591輸出的時鐘方波信號。SAA1064驅(qū)動四個數(shù)碼管顯示一路AD轉(zhuǎn)換后得到的數(shù)據(jù)。顯示格式如下表:
通道號:		      AD轉(zhuǎn)換結果(高四位)    	   AD轉(zhuǎn)換結果(低四位)
   3	                     E	                            7
函數(shù)SLA_READ(char chip_select, char channel)中的channel就是通道號選擇變量.channel=0到3.本程序選定channel=3(用戶可修改),用小改刀調(diào)節(jié)R4,可觀察到數(shù)碼管上顯示的數(shù)據(jù)的變化.*/
#include <c8051f020.h>                    // SFR declarations
#include <intrins.h>
#define  WRITE       0x00                 // 寫位
#define  READ        0x01                 // 讀位           
#define  CHIP_B      0x70
#define  SMB_START      0x08  // (MT&MR)主收發(fā)器發(fā)送起始位成功.再將從機寫地址送SMB0DAT
#define  SMB_RP_START   0x10  // (MT & MR)主收發(fā)器重復發(fā)送起始位成功,再將從機讀地址送SMB0DAT
#define  SMB_MTADDACK   0x18  // (MT)主收發(fā)器發(fā)送從地址+W成功;收到 ACK        
#define  SMB_MTADDNACK  0x20  // (MT) 主收發(fā)器發(fā)送從地址+W成功;收到 NACK        
#define  SMB_MTDBACK    0x28  //(MT)主收發(fā)器發(fā)送數(shù)據(jù)字節(jié)成功;收到ACK.           
#define  SMB_MRADDACK   0x40  // (MR)主收發(fā)器發(fā)送從地址+R成功;收到 ACK.
#define  SMB_MRDBACK    0x50  // (MR)主收發(fā)器接收數(shù)據(jù)成功;主機發(fā)送ACK 
#define  SMB_MRDBNACK   0x58  // (MR)主收發(fā)器接收數(shù)據(jù)成功;主機發(fā)送NACK 
char COMWRITE;         //保存從地址 + R/W 位,用在 中斷服務函數(shù)中
char COMREAD;                                         
unsigned char totalnumber,sendnumber,WORD;     
unsigned char  INTERRUPT[20],L;
unsigned char xdata  channel=3;    // channel保存AD通道變量,channel=0--3.
unsigned char xdata SENDMODE;      // SENDMODE=1為寫(SLA_SEND),SENDMODE=0為讀(SLA_READ)
bit SM_BUSY;                      // 在收/發(fā)過程中,SM_BUSY被置1.中斷服務完成后被清為另.
unsigned char wr_data[8];         //保存寫入從器件的數(shù)據(jù)
unsigned char rd_data[8];         //保存從從器件中讀出的數(shù)據(jù)
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數(shù)碼管的字型碼
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();                // 系統(tǒng)時鐘初始化
   XBR0 = 0x01;                  // 設置P0.0為SDA,P0.1為SCL
   XBR2 = 0x40;                  // 使能交叉開關和弱上拉
   SMB0CN = 0x44;                // 允許SMBus并回應低電平(AA = 1)
   SMB0CR =0X0c9 ;    // 設定SMBus 速率 = 100 kHz(系統(tǒng)時鐘為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;       //數(shù)組wr_data[] 中存放的數(shù)據(jù)送SAA1064
		wr_data[1] = 0x17;       //SAA1064的控制字
		//wr_data[2] = 0x00;     //第一個數(shù)碼管顯示通道號
		wr_data[3] = 0x0;        //第二個數(shù)碼管熄滅
		temp = rd_data[0]>>4;    //AD采樣數(shù)據(jù)的高四位存入temp
		temp = Number[temp];     //查出temp對應的字形碼
		wr_data[4] = temp;
		temp = rd_data[0] & 0x0f;//AD采樣數(shù)據(jù)的低四位存入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;                                 // 延時計數(shù)器
   OSCXCN = 0x67;                         // 啟動外部時鐘(11.0592MHZ)
   for (i=0; i < 256; i++) ;              
   while (!(OSCXCN & 0x80)) ;             // 等待晶振穩(wěn)定
   OSCICN = 0x88;                         // 選擇外部晶振作為系統(tǒng)時鐘
                                          // 允許時鐘丟失檢測
}
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;                               // 啟動數(shù)據(jù)傳輸
	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]中存入通道號,送顯示在第一位數(shù)碼管上
   STO = 0;
   STA = 1;                               // 啟動傳輸
   while(SM_BUSY);                        // 等待傳輸完成
   return WORD;                           // 返回接收到的數(shù)據(jù)
}
void SMBUS_ISR (void) interrupt 7
{
   switch (SMB0STA){                    // 根據(jù) SMBus 的狀態(tài)字(SMB0STA)跳轉(zhuǎn)
   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)為寫狀態(tài).
			   sendnumber--;
			   if(sendnumber)
			   SMB0DAT = wr_data[totalnumber-sendnumber];
			   else{
			   		STO=1;
				   	SM_BUSY=0;
				}
               break;                    
            case 0:            // SENDMODE=0(SLA_SEND)為讀狀態(tài).   
			     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;
      // 狀態(tài)字SMB0STA無效. 
      default:
         STO = 1;
         SM_BUSY = 0;
         break;
      }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲福利国产精品| 欧美日韩高清一区二区| 日本一二三不卡| 国产毛片精品一区| 国产日本欧美一区二区| 成人av动漫网站| 亚洲美女电影在线| 欧美日韩精品一区二区三区| 午夜视频一区在线观看| 日韩手机在线导航| 国产一区二区三区美女| 国产精品嫩草99a| 91久久线看在观草草青青| 亚洲午夜免费福利视频| 这里只有精品视频在线观看| 蜜臀av性久久久久av蜜臀妖精| 久久色中文字幕| 91在线免费视频观看| 亚洲高清在线视频| 精品999在线播放| 91在线观看视频| 免费成人你懂的| 国产精品视频观看| 欧美精品日日鲁夜夜添| 国产美女主播视频一区| 亚洲综合在线五月| 欧美精品一区二区三| 99re这里只有精品视频首页| 日韩国产一区二| 国产精品国产三级国产普通话蜜臀 | 91福利在线导航| 国产一区不卡在线| 亚洲午夜精品17c| 国产欧美一区二区三区鸳鸯浴| av影院午夜一区| 日韩高清在线一区| 国产亚洲美州欧州综合国| 国产91精品一区二区麻豆亚洲| 亚洲精品视频自拍| 欧美一区二区免费观在线| 国模冰冰炮一区二区| 亚洲欧美综合色| 欧美一二三四在线| 成人激情动漫在线观看| 亚洲成av人片观看| 国产午夜亚洲精品不卡 | 亚洲一区二区三区视频在线播放| 欧美日韩www| 国产精品996| 亚洲精品高清视频在线观看| 欧美zozozo| 欧美在线观看你懂的| 久久草av在线| 狠狠网亚洲精品| 成人免费在线视频| 日韩一区二区在线观看视频| av不卡在线播放| 免费在线观看视频一区| 中文字幕永久在线不卡| 欧美一级久久久久久久大片| gogo大胆日本视频一区| 久久精品国产亚洲5555| 亚洲香肠在线观看| 久久久午夜精品理论片中文字幕| 欧美日韩免费视频| 不卡电影免费在线播放一区| 日韩av中文在线观看| 日韩一区在线免费观看| 51精品秘密在线观看| 顶级嫩模精品视频在线看| 美女脱光内衣内裤视频久久影院| 亚洲黄色在线视频| 久久精品一区四区| 欧美成人性福生活免费看| 色综合天天综合狠狠| 国产乱人伦偷精品视频不卡| 婷婷开心激情综合| 亚洲激情一二三区| 中文字幕亚洲不卡| 国产日韩欧美制服另类| 精品久久久久久最新网址| 欧美高清视频不卡网| 日本精品一级二级| 国产高清不卡一区二区| 精品一区二区三区日韩| 青青青爽久久午夜综合久久午夜| 一区二区三区精品在线观看| 国产精品高清亚洲| 国产精品毛片a∨一区二区三区 | 成人午夜又粗又硬又大| 国产一区二区三区在线看麻豆| 奇米色一区二区| 日韩av在线发布| 乱中年女人伦av一区二区| 视频精品一区二区| 日韩精品亚洲一区二区三区免费| 亚洲图片有声小说| 五月天激情小说综合| 午夜亚洲国产au精品一区二区| 樱花草国产18久久久久| 午夜伦欧美伦电影理论片| 午夜伦理一区二区| 日本午夜一区二区| 经典一区二区三区| 国产一区二区调教| 成人免费看视频| 91丨porny丨户外露出| 欧美亚洲禁片免费| 91麻豆精品国产91久久久久久| 91精品国产色综合久久久蜜香臀| 日韩欧美中文字幕公布| 精品国产91洋老外米糕| 久久精品视频免费观看| 亚洲欧洲精品一区二区精品久久久| 中文字幕欧美一区| 亚洲一区av在线| 三级精品在线观看| 国产综合色在线视频区| 福利91精品一区二区三区| 91免费视频大全| 91毛片在线观看| 欧美日韩一区在线| 精品久久久久久久久久久久久久久久久| 欧美日本一道本在线视频| 久久日韩粉嫩一区二区三区| 国产精品蜜臀在线观看| 亚洲永久精品大片| 蜜桃久久精品一区二区| 国产成人午夜高潮毛片| 色狠狠桃花综合| 日韩久久精品一区| 综合久久国产九一剧情麻豆| 日韩精品三区四区| caoporen国产精品视频| 欧美美女直播网站| 国产亚洲精品精华液| 亚洲乱码国产乱码精品精可以看 | 精品视频在线视频| 日韩一区二区免费在线观看| 国产欧美一区二区三区沐欲| 亚洲女同女同女同女同女同69| 舔着乳尖日韩一区| 大胆欧美人体老妇| 91精品欧美综合在线观看最新| 久久精品网站免费观看| 亚洲va欧美va天堂v国产综合| 国产精品一区一区| 欧美日韩美女一区二区| 国产精品视频麻豆| 美女视频一区在线观看| 色婷婷av一区二区三区之一色屋| 欧美制服丝袜第一页| 精品国产免费视频| 蜜桃久久久久久| 欧美色视频在线观看| 国产精品天天看| 久久99精品国产.久久久久久| 欧美熟乱第一页| 国产精品成人免费 | 精品一区二区三区久久久| 91视频免费看| 精品国产91乱码一区二区三区| 日本中文字幕一区二区有限公司| 97国产精品videossex| 久久精品视频在线看| 青青草国产精品97视觉盛宴| 91国偷自产一区二区三区成为亚洲经典| 久久午夜羞羞影院免费观看| 日韩国产精品久久| 在线观看91视频| 1区2区3区国产精品| 极品少妇一区二区| 精品日韩在线一区| 日本不卡123| 欧美精品乱码久久久久久| 一区二区视频在线看| 97精品国产露脸对白| 国产精品国产精品国产专区不蜜 | 亚洲视频免费观看| 国产a视频精品免费观看| 日韩视频一区二区| 日韩激情av在线| 在线播放国产精品二区一二区四区 | 国产91在线看| 久久久精品国产免大香伊| 紧缚奴在线一区二区三区| 日韩精品一区在线观看| 蜜桃一区二区三区在线观看| 欧美一区二区三区日韩| 日韩高清在线电影| 欧美日韩综合一区| 亚洲成av人影院| 日韩一区二区三区电影在线观看| 奇米精品一区二区三区在线观看 | 99r国产精品| 一区二区三区影院| 欧美自拍偷拍一区| 日本亚洲一区二区| 久久婷婷综合激情| 91在线免费播放|