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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? pcf8591ad.#1

?? c8051f020源代碼39個 使用Silicon Labs IDE 調(diào)試器
?? #1
字號:
//參考程序A: PCF8591AD.C  PCF8591的AD轉(zhuǎn)換實驗.
/*芯片PCF8951共有四個A/D輸入通道:AD0,AD1,AD2,AD3,分別與四個電位器(R1,R2,R3,R4)連接,用以調(diào)節(jié)電位器的輸出電壓。其中AD0通道既可測量電位器輸出電壓,也可用于測量從J1插座輸入的外接電壓,須用開關(guān)J2加以選擇。J4插座提供由PCF8591輸出的時鐘方波信號。SAA1064驅(qū)動四個數(shù)碼管顯示一路AD轉(zhuǎn)換后得到的數(shù)據(jù)。顯示格式如下表:
通道號:		      AD轉(zhuǎn)換結(jié)果(高四位)    	   AD轉(zhuǎn)換結(jié)果(低四位)
   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ā)送起始位成功.再將從機(jī)寫地址送SMB0DAT
#define  SMB_RP_START   0x10  // (MT & MR)主收發(fā)器重復(fù)發(fā)送起始位成功,再將從機(jī)讀地址送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ù)成功;主機(jī)發(fā)送ACK 
#define  SMB_MRDBNACK   0x58  // (MR)主收發(fā)器接收數(shù)據(jù)成功;主機(jī)發(fā)送NACK 
char COMWRITE;         //保存從地址 + R/W 位,用在 中斷服務(wù)函數(shù)中
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;                      // 在收/發(fā)過程中,SM_BUSY被置1.中斷服務(wù)完成后被清為另.
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;                  // 設(shè)置P0.0為SDA,P0.1為SCL
   XBR2 = 0x40;                  // 使能交叉開關(guān)和弱上拉
   SMB0CN = 0x44;                // 允許SMBus并回應(yīng)低電平(AA = 1)
   SMB0CR =0X0c9 ;    // 設(shè)定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對應(yīng)的字形碼
		wr_data[4] = temp;
		temp = rd_data[0] & 0x0f;//AD采樣數(shù)據(jù)的低四位存入temp
		temp = Number[temp];     //查出temp對應(yīng)的字形碼
		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 忙碌標(biāo)志位置1
   SMB0CN = 0x44;                         // SMBus 使能, 回應(yīng)(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;                           // 設(shè)置忙碌標(biāo)志位
   SMB0CN = 0x44;                         // 使能SMBus, 回應(yīng)(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;                        // 人工清除中斷標(biāo)志位
         break;
      case SMB_RP_START:	//0x10
         SMB0DAT = COMREAD;
         STA = 0;                       // 人工清除STA
         SI = 0;                        // 人工清除中斷標(biāo)志位
         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){         	// 檢查讀/寫標(biāo)志位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;                          // 在回應(yīng)周期送NACK
         SI = 0;
         break;
      case SMB_MRDBNACK:	//0x58
         rd_data[0] = SMB0DAT;
         STO = 1;
         SM_BUSY = 0;
         AA = 1;                          // 設(shè)置AA=1,準(zhǔn)備下一次傳送
         SI = 0;
         break;
      // 狀態(tài)字SMB0STA無效. 
      default:
         STO = 1;
         SM_BUSY = 0;
         break;
      }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲色图一区二区| 国产亚洲成av人在线观看导航 | 美女一区二区在线观看| 欧美一级视频精品观看| 毛片av一区二区| 日本一区二区免费在线| 91片黄在线观看| 亚洲国产欧美另类丝袜| 日韩欧美国产小视频| 国产丶欧美丶日本不卡视频| 自拍视频在线观看一区二区| 欧美日韩亚洲国产综合| 蜜臀91精品一区二区三区| 精品动漫一区二区三区在线观看| 懂色av一区二区夜夜嗨| 亚洲综合男人的天堂| 日韩精品一区二区三区老鸭窝| 成人影视亚洲图片在线| 亚洲福利视频三区| 国产情人综合久久777777| 一本色道久久综合亚洲精品按摩| 日韩电影一区二区三区| 国产亚洲欧美一级| 欧美中文字幕一区| 国产精品亚洲一区二区三区妖精 | 亚洲国产中文字幕| 久久精品日韩一区二区三区| 99re这里只有精品6| 麻豆视频一区二区| 亚洲人成网站影音先锋播放| 91精品国产综合久久久蜜臀图片| 丁香婷婷深情五月亚洲| 日韩中文字幕区一区有砖一区 | 久热成人在线视频| 一区二区三区四区蜜桃 | 一本色道久久加勒比精品| 久久精品久久精品| 亚洲精品日日夜夜| 久久色成人在线| 欧美日韩中字一区| 99久久久精品| 国产成人亚洲综合a∨婷婷图片 | 亚洲男人的天堂在线aⅴ视频| 精品国产免费人成电影在线观看四季 | 午夜伦欧美伦电影理论片| 国产欧美视频一区二区| 3atv一区二区三区| 在线视频国内自拍亚洲视频| 国产精品18久久久久久久久| 蜜桃视频在线观看一区二区| 亚洲激情综合网| 日韩理论片一区二区| 久久综合成人精品亚洲另类欧美| 在线播放欧美女士性生活| 日本福利一区二区| 色婷婷国产精品综合在线观看| 国产精品99久久不卡二区| 看电视剧不卡顿的网站| 美女视频免费一区| 日韩vs国产vs欧美| 婷婷国产v国产偷v亚洲高清| 亚洲女爱视频在线| 综合色天天鬼久久鬼色| 国产精品区一区二区三区| 久久精品免费在线观看| 精品88久久久久88久久久| 精品久久久久av影院| 日韩视频一区二区| 欧美大黄免费观看| 欧美一卡二卡三卡| 日韩一级片在线观看| 538prom精品视频线放| 91精品婷婷国产综合久久竹菊| 欧美在线观看视频在线| 欧美午夜精品电影| 欧美日韩精品欧美日韩精品一综合| 91高清在线观看| 欧美日韩一区二区不卡| 538prom精品视频线放| 日韩欧美一区二区不卡| 日韩亚洲欧美综合| 精品国产a毛片| 国产女主播视频一区二区| 日本一区二区三区视频视频| 国产精品久久久久9999吃药| 亚洲欧美激情小说另类| 亚洲精品免费播放| 亚洲成av人片观看| 激情另类小说区图片区视频区| 国产91在线观看丝袜| www.色综合.com| 日本一区二区不卡视频| 亚洲男女毛片无遮挡| 亚洲va欧美va国产va天堂影院| 日本强好片久久久久久aaa| 黄网站免费久久| 色综合一个色综合亚洲| 69av一区二区三区| 中文一区在线播放| 亚洲高清免费观看高清完整版在线观看| 日本怡春院一区二区| 国产激情一区二区三区四区 | 91麻豆精品在线观看| 欧美日韩激情一区| 久久综合国产精品| 亚洲欧洲综合另类| 日韩不卡一区二区| 99精品久久免费看蜜臀剧情介绍| 欧洲一区二区三区在线| 久久奇米777| 亚洲国产精品一区二区www在线| 久久99精品久久久久| 99久久伊人精品| 精品人在线二区三区| 亚洲欧美日韩人成在线播放| 日韩电影免费在线| 成人高清视频在线观看| 欧美精品电影在线播放| 国产精品天美传媒| 美女视频免费一区| 91网站视频在线观看| 欧美精品一区二区三| 亚洲一区二区三区四区五区中文 | 亚洲精品国产一区二区三区四区在线| 日韩影院免费视频| 91丨九色丨尤物| 精品国产成人系列| 丝袜国产日韩另类美女| 91丨porny丨在线| 久久久青草青青国产亚洲免观| 亚洲成人综合网站| 色综合天天综合狠狠| 久久先锋影音av| 麻豆国产欧美一区二区三区| 欧美婷婷六月丁香综合色| 国产午夜精品一区二区| 美女视频免费一区| 欧美福利视频一区| 亚洲精品亚洲人成人网在线播放| 国产很黄免费观看久久| 欧美一区二区三区播放老司机| 亚洲视频电影在线| 不卡视频在线看| 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲成在线观看| 欧洲日韩一区二区三区| 亚洲视频 欧洲视频| 不卡一区二区在线| 国产精品传媒在线| 国产成人精品三级| 欧美极品少妇xxxxⅹ高跟鞋 | 亚洲美女视频在线观看| 成人美女视频在线观看18| 久久精品综合网| 精品无码三级在线观看视频 | 97精品电影院| 17c精品麻豆一区二区免费| 国产成a人无v码亚洲福利| 亚洲精品一区二区三区蜜桃下载 | 日韩精品色哟哟| 91精品免费观看| 亚洲成人久久影院| 欧美另类z0zxhd电影| 天天综合网天天综合色| 欧美一区二区三区啪啪| 视频在线观看91| 欧美一卡2卡3卡4卡| 久久精品国产亚洲一区二区三区| 日韩三级在线免费观看| 久久精品久久99精品久久| 精品国精品自拍自在线| 国产精一品亚洲二区在线视频| 国产欧美一区二区精品性色| 不卡的电视剧免费网站有什么| 国产精品久久三| 色婷婷激情久久| 三级欧美韩日大片在线看| 欧美一级免费观看| 麻豆一区二区在线| 国产性天天综合网| 99视频有精品| 亚洲成a人片在线不卡一二三区| 欧美一区二区国产| 国产中文字幕一区| 日韩美女视频一区二区 | 久久久亚洲综合| 成人aaaa免费全部观看| 亚洲亚洲精品在线观看| 这里只有精品免费| 国模一区二区三区白浆| 亚洲色图另类专区| 欧美一区二区三区啪啪| 国产福利电影一区二区三区| 亚洲四区在线观看| 日韩欧美黄色影院| 成人午夜视频在线观看| 亚洲国产一区二区三区 | 欧洲国内综合视频| 极品少妇xxxx精品少妇| 中文字幕一区二区三区在线播放 |