版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第四章第四章 C51C51程序設計程序設計 -2-2實例實例開題報告第6,9,10,12還沒有發(fā)給齊教師,明天下午5:00之前必需交給齊教師。1-wire總線及運用總線及運用 n一根數據線。設備主機或從機經過一個漏極開路端口,一根數據線。設備主機或從機經過一個漏極開路端口,銜接至該數據線,這樣允許設備在不發(fā)送數據時釋放數據銜接至該數據線,這樣允許設備在不發(fā)送數據時釋放數據總線,以便總線被其它設備所運用??偩€,以便總線被其它設備所運用。 1-wire1-wire總線端口為總線端口為漏極開路,單總線要求外接一個約漏極開路,單總線要求外接一個約5k 5k 的上拉電阻,這樣的上拉電阻,這樣單總線的閑置
2、形狀為高電平。單總線的閑置形狀為高電平。n主機對主機對1-Wire1-Wire總線的根本操作分為復位、讀和寫三種,其總線的根本操作分為復位、讀和寫三種,其中一切的讀寫操作均為低位在前,高位在后。中一切的讀寫操作均為低位在前,高位在后。 n典型的單總線命令序列典型的單總線命令序列n第一步第一步 初始化;初始化;n第二步第二步 ROM ROM 命令命令 跟隨需求交換的數據;跟隨需求交換的數據;n第三步第三步 功能命令功能命令 跟隨需求交換的數據;跟隨需求交換的數據;實例:實例:DS18B20單線溫度傳感器單線溫度傳感器n主要特征n全數字溫度轉換及輸出。 n1-wire總線數據通訊。 n最高12位分
3、辨率,精度可達土0.5攝氏度。 n12位分辨率,最大任務周期為750毫秒。 n檢測溫度范圍為-55+125。n內置EEPROM,限溫報警功能。 n64位光刻ROM,內置產品序列號,方便多機掛接。 n多樣封裝方式,順應不同硬件系統(tǒng)。 n DS18B20任務原理n三種形狀的存儲器資源nROM 只讀存儲器,用于存放DS18B20ID編碼。nRAM 數據暫存器,用于內部計算和數據存取,數據在掉電后喪失,DS18B20共9個字節(jié)RAM,每個字節(jié)為8位。nEEPROM 非易失性記憶體,用于存放長期需求保管的數據,上下限溫度報警值和校驗數據。nRAM及EEPROMn構造圖: n控制器對18b20操作流程n復
4、位:給DS18B20單總線至少480uS的低電平信號。n存在脈沖:復位電平終了之后,控制器應該將數據單總線拉高,以便于在1560uS后接納存在脈沖,存在脈沖為一個60240uS的低電平信號。n控制器發(fā)送ROM指令:ROM指令共有5條,每一個任務周期只能發(fā)一條,ROM指令分別是讀ROM數據、指定匹配芯片、騰躍ROM、芯片搜索、報警芯片搜索。普通只掛接單個18B20芯片時可以跳過ROM指令n控制器發(fā)送存儲器操作指令:分別是寫RAM數據、讀RAM數據、將RAM數據復制到EEPROM、溫度轉換、將EEPROM中的報警值復制到RAM、任務方式切換。n執(zhí)行或數據讀寫:一個存儲器操作指令終了后那么將進展指令
5、執(zhí)行或數據的讀寫,這個操作要視存儲器操作指令而定。n幾種時間隙nDS18B20復位及應對關系n寫時間隙n讀時間隙留意:必需在讀間隙開場的15uS內讀取數據位才可以保證通訊的正確。 nDS18B20與單片機接法n 例如程序:void Init_DS18B20(void)/18b20初始化初始化 DQ = 1;/DQ復位復位_nop_();_nop_();_nop_(); DQ = 0; /拉低拉低DQ delay(200);/約約600usDQ = 1; /拉高總線拉高總線 delay(20); / 75us,30:100us uchar Read_byte(void) /讀一字節(jié)讀一字節(jié) uc
6、har i=0; uchar dat = 0; for (i=8;i0;i-) DQ = 1;_nop_();_nop_();_nop_();_nop_();DQ = 0; /從高拉到低,產生讀時間隙從高拉到低,產生讀時間隙_nop_();_nop_();/至少堅持低電平至少堅持低電平1us_nop_();_nop_();_nop_();_nop_();dat=1; /右移一位右移一位DQ = 1; /15us內停頓將內停頓將DQ拉低拉低,15us內數據有效內數據有效_nop_();_nop_();/稍作延時稍作延時_nop_();_nop_();if(DQ) /假設高電平假設高電平 置置1d
7、at|=0 x80; delay(30); /至少堅持至少堅持60us,100us,確保讀數據勝利確保讀數據勝利 DQ = 1;/終了拉高終了拉高 return(dat); void Write_byte(uchar dat) /寫一個字節(jié)寫一個字節(jié) uchar i=0; for (i=8; i0; i-) DQ = 1;_nop_();_nop_();/稍作延時稍作延時 _nop_();_nop_();_nop_();_nop_();DQ = 0;/拉低拉低DQ開場寫開場寫 _nop_();_nop_();_nop_();_nop_();/15us內釋放總線內釋放總線 _nop_();_no
8、p_();_nop_();_nop_();DQ = dat&0 x01; /從從lsb開場開場 delay(20); /75us 至少需堅持至少需堅持60us寫時間隙寫時間隙dat=1; /右移一位右移一位DQ = 1;/終了拉高終了拉高delay(4); uint Get_Temperature(void) /讀溫度函數讀溫度函數 uchar a=0; uchar b=0; uint t=0; Init_DS18B20(); Write_byte(0 xCC); /只接一個只接一個18b20芯片,芯片,skip ROM Write_byte(0 x44); /溫度轉換溫度轉換 delay(2
9、00); /延時延時600us 等待轉換完成等待轉換完成,普通轉換時間為普通轉換時間為500us Init_DS18B20(); Write_byte(0 xCC); /skip ROM Write_byte(0 xBE); /從從RAM讀數據讀數據 a=Read_byte(); /先讀低位先讀低位 b=Read_byte(); /再讀高位再讀高位 t=b8; t=t|a; /t為最后讀得的數據為最后讀得的數據 return (t); 雙向二線制串行通訊總線,時鐘線雙向二線制串行通訊總線,時鐘線SCL, 數據線數據線SDA。NXP 半導體原半導體原Philips 半導體于半導體于20 多年前發(fā)
10、明。多年前發(fā)明。I2C總線是同步串行數據傳輸總線??偩€是同步串行數據傳輸總線。經常運用的帶經常運用的帶I2C總線通用外圍器件有:總線通用外圍器件有:SRAM、E2PROM、ADC/DAC、RTC、I/O口等??诘?。帶帶I2C總線的外圍設備模塊有由總線的外圍設備模塊有由LED驅動控制器構成驅動控制器構成的的LED顯示器,由各種顯示器,由各種LCD驅動控制器構成的段式、驅動控制器構成的段式、字符點陣、圖形點陣液晶顯示器等。字符點陣、圖形點陣液晶顯示器等。I2C總線及運用總線及運用nI2C 總線的信號線總線的信號線nI2C 總線只需求由兩根信號線組成,一根是串行數據線總線只需求由兩根信號線組成,一根
11、是串行數據線SDA,另一根是串行時鐘線,另一根是串行時鐘線SCL,均為為開漏構造,故,均為為開漏構造,故總線上必需有上拉電阻總線上必需有上拉電阻Rp,通??蛇x,通??蛇x510k。nI2C總線時序定義:總線時序定義: n起始條件和停頓條件起始條件和停頓條件START and STOP conditionsn起始條件:當起始條件:當SCL 處于高電平期間時,處于高電平期間時,SDA 從高電平向低從高電平向低電平跳變時產生起始條件??偩€在起始條件產生后便處于電平跳變時產生起始條件??偩€在起始條件產生后便處于忙的形狀。起始條件經常簡記為忙的形狀。起始條件經常簡記為S。n停頓條件:當停頓條件:當SCL
12、處于高電平期間時,處于高電平期間時,SDA 從低電平向高從低電平向高電平跳變時產生停頓條件??偩€在停頓條件產生后處于空電平跳變時產生停頓條件。總線在停頓條件產生后處于空閑形狀。停頓條件簡記為閑形狀。停頓條件簡記為P。nI2C 總線上數據的有效性總線上數據的有效性Data validityn數據線數據線SDA 的電平形狀必需在時鐘線的電平形狀必需在時鐘線SCL 處于高電平處于高電平期間堅持穩(wěn)定不變。期間堅持穩(wěn)定不變。SDA 的電平形狀只需在的電平形狀只需在SCL 處于處于低電平期間才允許改動。但是在低電平期間才允許改動。但是在I2C 總線的起始和終了總線的起始和終了時例外。時例外。n從機地址從機
13、地址Slave AddressnI2C 總線不需求地址譯碼器和片選信號。多個具總線不需求地址譯碼器和片選信號。多個具有有I2C 總線接口的器件都可以銜接到同一條總線接口的器件都可以銜接到同一條I2C 總線上,它們之間經過器件地址來區(qū)分??偩€上,它們之間經過器件地址來區(qū)分。n主機是主控器件,它不需求器件地址,其它器件主機是主控器件,它不需求器件地址,其它器件都屬于從機,要有器件地址。必需保證同一條都屬于從機,要有器件地址。必需保證同一條I2C 總線上一切從機的地址都是獨一??偩€上一切從機的地址都是獨一。n普通從機地址由普通從機地址由7 位地址位和一位讀寫標志位地址位和一位讀寫標志R/W 組成,組
14、成,7 位地址占據高位地址占據高7 位,讀寫位在最后。讀位,讀寫位在最后。讀寫位是寫位是0,表示主機將要向從機寫入數據;讀寫位,表示主機將要向從機寫入數據;讀寫位是是1,那么表示主機將要從從機讀取數據。,那么表示主機將要從從機讀取數據。n從機地址由一個固定和一個可編程的部分構成。從機地址由一個固定和一個可編程的部分構成。從機地址的可編程部分使最大數量的一樣器件可從機地址的可編程部分使最大數量的一樣器件可以銜接到以銜接到I2C 總線上,器件可編程地址位的數量總線上,器件可編程地址位的數量由管腳決議,假設器件由管腳決議,假設器件3 個可編程的地址管腳,個可編程的地址管腳,那么那么I2C總線上共可以
15、銜接總線上共可以銜接8 個一樣的器件。個一樣的器件。nI2C數據傳輸的方式數據傳輸的方式n以字節(jié)以字節(jié)Byte為單位收發(fā)數據。首先傳輸的是為單位收發(fā)數據。首先傳輸的是數據的最高位數據的最高位MSB,第,第7 位,最后傳輸的是位,最后傳輸的是最低位最低位LSB,第,第0 位。另外,每個字節(jié)之后位。另外,每個字節(jié)之后還要跟一個呼應位,稱為應對。還要跟一個呼應位,稱為應對。n應對應對Acknowledgen每傳輸一個字節(jié),要跟一個應對形狀位。接納器每傳輸一個字節(jié),要跟一個應對形狀位。接納器接納數據的情況可經過應對位來告知發(fā)送器。應接納數據的情況可經過應對位來告知發(fā)送器。應對位的時鐘脈沖由主機產生,而
16、應對位的數據形對位的時鐘脈沖由主機產生,而應對位的數據形狀那么遵照狀那么遵照“誰接納誰產生的原那么,即總是誰接納誰產生的原那么,即總是由接納器產生應對位。主機向從機發(fā)送數據時,由接納器產生應對位。主機向從機發(fā)送數據時,應對位由從機產生;主機從從機接納數據時,應應對位由從機產生;主機從從機接納數據時,應對位由主機產生。對位由主機產生。nI2C總線上第總線上第9個脈沖對應應對位,個脈沖對應應對位,SDA為為0 表示表示接納器應對接納器應對ACK,A;為;為1 那么表示非應對那么表示非應對NACK,/A。n根本的數據傳輸格式根本的數據傳輸格式主機向從機發(fā)送數據的根本格式主機向從機發(fā)送數據的根本格式主
17、機從從機接納數據的根本格式主機從從機接納數據的根本格式留意:主機向從機發(fā)送最后一個字節(jié)的數據時,從機能夠應對也留意:主機向從機發(fā)送最后一個字節(jié)的數據時,從機能夠應對也能夠非應對,但不論怎樣主機都可以產生停頓條件。假設主機在能夠非應對,但不論怎樣主機都可以產生停頓條件。假設主機在向從機發(fā)送數據甚至包括從機地址在內時檢測到從機非應對,向從機發(fā)送數據甚至包括從機地址在內時檢測到從機非應對,那么該當及時停頓傳輸。那么該當及時停頓傳輸。n數據傳輸時序圖數據傳輸時序圖主機向從機寫數據主機向從機寫數據 24LC01主機讀從機數據主機讀從機數據24LC01EEPROM 24LC01Bn主要特征n低至2.5V的
18、單電源供電;n低功耗的CMOS技術;n128 bytes1288的存儲塊;n規(guī)范2線串行接口總線 ,I2C總線;n兼容100 kHz (2.5V) 、 400kHz (5.0V);n高達8 bytes的頁寫入緩存;n2 ms頁寫入時間周期;n硬件寫維護。n硬件電路I2C經過經過IO口模擬口模擬void Start(void) /起始信號起始信號Sda=1;Scl=1;delay1us();Sda=0;delay1us();void Stop(void) /停頓停頓Sda=0;Scl=1;delay1us();Sda=1;delay1us();void Ack(void) /應對應對Sda=0;
19、delay1us();Scl=1;delay1us();Scl=0;void NoAck(void) /不應對不應對Sda=1;delay1us();Scl=1;delay1us();Scl=0;void Send(unsigned char Data) /發(fā)送字節(jié)發(fā)送字節(jié)unsigned char xdata BitCounter=8; unsigned char xdata temp; dotemp=Data;Scl=0;delay1us();if(temp&0 x80)=0 x80)Sda=1;elseSda=0;delay1us();Scl=1;delay1us();temp=Data
20、1; /左移左移1位位Data=temp;BitCounter- -;while(BitCounter);Scl=0;unsigned char Read(void) /讀取字節(jié)讀取字節(jié)unsigned char xdata temp=0;unsigned char xdata temp1=0;unsigned char xdata BitCounter=8;Sda=1;doScl=0;delay1us();Scl=1;delay1us();if(Sda) temp=temp|0 x01; elsetemp=temp&0 xfe; if(BitCounter-1) temp1=temp8) &
21、 0 xff;/先寫高先寫高8位位Send(Temp_Data);Ack();Stop();delay1ms(5);Start(); Send(0 xa0); Ack();Send(Address+1); Ack();Temp_Data=Data_Write & 0 xff;/低低8位位Send(Temp_Data);Ack();Stop();delay1ms(5);unsigned int RdFromROM(unsigned char Address)/讀取數據讀取數據unsigned int xdata Temp_Data;Start();Send(0 xa0);Ack();Send(A
22、ddress);Ack();Start();Send(0 xa1);Ack();Temp_Data=(Read()*256;/高高8位位NoAck();Stop();delay1ms(5);Start();Send(0 xa0);Ack();Send(Address+1);Ack();Start();Send(0 xa1);Ack();Temp_Data += Read();/低低8位位NoAck();Stop();delay1ms(5);return Temp_Data;經過單片機自帶經過單片機自帶I2C接口接口P89C669自帶I2C功能實現對EEPROM單字節(jié)的讀取與寫入,寫入單個字節(jié)和
23、讀取只需分別調用bit ISendbyte_1(uchar sla,uchar suba,uchar c)和bit IRcvStr(uchar sla,uchar suba,uchar *s,uchar no)即可,參考資料:P89C669 I2C軟件包。/*懇求總線懇求總線功能:進展功能:進展I2C 總線的初始化包括時鐘速率總線的初始化包括時鐘速率I2C 使能發(fā)送起始信號等使能發(fā)送起始信號等 */void GetBus()I2CON=0 xc4;/use internal SCL generatorI2CLL=50;/bits data rate=fosc/(I2CLL+I2CLH)I2CL
24、H=50;I2CON=I2CON|0 x20; /*STA=1,懇求成為主機起動總線懇求成為主機起動總線 */ while(SI=0);/*發(fā)送數據函數發(fā)送數據函數 功能:用于向總線發(fā)送數據功能:用于向總線發(fā)送數據 */void SendByte(uchar c)I2DAT=c;I2CON=0XC4; /*去除去除SI 位等等位等等 */while(SI=0);/*向有子地址器件發(fā)送一個字節(jié)數據函數向有子地址器件發(fā)送一個字節(jié)數據函數 */bit ISendbyte_1(uchar sla,uchar suba,uchar c)GetBus(); /*啟動總線啟動總線 */SendByte(sl
25、a); /*發(fā)送器件地址發(fā)送器件地址 */if(I2STAT!=0X18)I2CON=0XD4;return(0);SendByte(suba); /*發(fā)送器件子地址發(fā)送器件子地址 */if(I2STAT!=0X28)I2CON=0XD4;return(0);SendByte(c); /*發(fā)送數據發(fā)送數據 */if(I2STAT!=0X28)I2CON=0XD4;return(0);I2CON=0XD4; /*終了總線終了總線 */return(1);/*向有子地址器件讀取多字節(jié)數據函數向有子地址器件讀取多字節(jié)數據函數 函數原型函數原型: bit ISendStr(uchar sla,ucha
26、r suba,ucahr *s,uchar no);功能功能: 從啟動總線到發(fā)送地址子地址從啟動總線到發(fā)送地址子地址,讀數據終了總線的全過程讀數據終了總線的全過程,從器件從器件 地址地址sla 子地址子地址suba 讀出的內容放入讀出的內容放入s 指向的存儲區(qū)讀指向的存儲區(qū)讀no 個字節(jié)個字節(jié) 假設前往假設前往1 表示操作勝利否那么操作有誤表示操作勝利否那么操作有誤 */bit IRcvStr(uchar sla,uchar suba,uchar *s,uchar no)uchar i;GetBus(); /*啟動總線啟動總線 */SendByte(sla); /*發(fā)送器件地址發(fā)送器件地址 *
27、/if(I2STAT!=0X18)I2CON=0XD4;return(0);SendByte(suba); /*發(fā)送器件子地址發(fā)送器件子地址 */if(I2STAT!=0X28)I2CON=0XD4;return(0);I2CON=0XE4; /*重新啟動總線重新啟動總線 */while(SI=0);SendByte(sla+1);if(I2STAT!=0X40)I2CON=0XD4;return(0);for(i=0;ino-1;i+)I2CON=0XC4; /*接納一字節(jié)數據并發(fā)送應對位*/while(SI=0);if(I2STAT!=0X50)I2CON=0XD4;return(0);*
28、s=I2DAT; /*讀取數據 */s+;I2CON=0XC0; /*接納最后一字節(jié)數據并發(fā)送非應對位*/while(SI=0);*s=I2DAT;I2CON=0XD4; /*終了總線 */return(1);RS232C/RS485n電子工業(yè)協(xié)會電子工業(yè)協(xié)會EIA公布的公布的RS-232C是用得最多的一種是用得最多的一種串行通訊規(guī)范,它是從遠程通訊規(guī)范中導出來的,是運用串行通訊規(guī)范,它是從遠程通訊規(guī)范中導出來的,是運用于數據終端設備于數據終端設備DTE和數據通訊設備和數據通訊設備DCE之間的之間的接口。該規(guī)范除包括物理目的外,還包括闡明按位串行傳接口。該規(guī)范除包括物理目的外,還包括闡明按位串
29、行傳送時的電氣目的。送時的電氣目的。RS-232CRS-232C電氣特性電氣特性在電氣性能方面,在電氣性能方面,RS-232CRS-232C運用負邏輯。邏輯運用負邏輯。邏輯“1“1電平電平是在是在 -5V -5V-15V-15V范圍內,邏輯范圍內,邏輯“0“0電平是在電平是在+5V+5V+15V+15V范范圍內。圍內。規(guī)范要求規(guī)范要求RS-232CRS-232C接納器必需可以識別接納器必需可以識別+3V+3V以上的信號作以上的信號作為邏輯為邏輯“0“0,-3V-3V以下的信號作為邏輯以下的信號作為邏輯“1“1,即有,即有2V2V的噪聲容限。的噪聲容限。RS-232CRS-232C的主要電氣特性
30、見下表。的主要電氣特性見下表。最大電纜長度最大電纜長度15m 最大數據傳輸率最大數據傳輸率20KB/s 驅動器輸出電壓開路驅動器輸出電壓開路 25V 25V最大最大 驅動器輸出電壓滿載驅動器輸出電壓滿載 5 52525( (最大最大 驅動器輸出電阻驅動器輸出電阻300最小最小 驅動器輸出短路電流驅動器輸出短路電流 500mA 500mA 接納器輸入電阻接納器輸入電阻37k 接納器輸入門限電壓值接納器輸入門限電壓值-3+3V最大最大 接納器輸入電壓接納器輸入電壓-25+25V最大最大 nRS-232CRS-232C數據傳送格式數據傳送格式 nRS-232CRS-232C的數據傳送格式是位串行方式
31、,傳輸數的數據傳送格式是位串行方式,傳輸數據的格式如以下圖所示,這是微處置機運用系統(tǒng)據的格式如以下圖所示,這是微處置機運用系統(tǒng)中最通用的格式。數據的延續(xù)傳送由最低有效數中最通用的格式。數據的延續(xù)傳送由最低有效數字位開場,以奇偶校驗位作終了。字位開場,以奇偶校驗位作終了。nRS-485RS-485規(guī)范規(guī)范 :n由由RS-232CRS-232C的電氣特性表可知,假設不采用調制的電氣特性表可知,假設不采用調制解調器,其傳輸間隔很短,且最大數據傳輸率也解調器,其傳輸間隔很短,且最大數據傳輸率也遭到限制。遭到限制。n因此,因此,EIAEIA又公布了可以適宜于遠間隔傳輸的又公布了可以適宜于遠間隔傳輸的RS
32、-RS-485485規(guī)范。規(guī)范。 nRS485RS485用差分接納器接納信號電壓,差分信號的用差分接納器接納信號電壓,差分信號的抗噪聲才干強。抗噪聲才干強。 特特 性性RS-422、RS-485最大電纜長度最大電纜長度1200m 最大數據傳輸率最大數據傳輸率10MB/s 驅動器輸出電壓開路驅動器輸出電壓開路6V最大輸出端之間最大輸出端之間 驅動器輸出電壓滿載驅動器輸出電壓滿載2V最小輸出端之間最小輸出端之間 驅動器輸出短路電流驅動器輸出短路電流 150mA 150mA最大最大 接納器輸入電阻接納器輸入電阻大于等于大于等于4k 接納器輸入門限電壓值接納器輸入門限電壓值-0.2+0.2V(最大最大
33、) 接納器輸入電壓接納器輸入電壓-12V+12V最大最大 當采用當采用+5V電源供電時,電源供電時,RS-485信號定義如下:信號定義如下:假設差分電壓信號為假設差分電壓信號為2500200mV時,為邏輯時,為邏輯“0;假設差分電壓信號為假設差分電壓信號為2500200mV時,為邏輯時,為邏輯“1;nMAX485主要特征:n采用單一電源+5 V任務,額定電流為300 A,采用半雙工通訊方式。完成將TTL電平轉換為RS-485電平的功能。n內部含有一個驅動器和接納器。RO和DI端分別為接納器的輸出和驅動器的輸入端,與單片機銜接時只需分別與單片機的RXD和TXD相連即可;/RE和DE端分別為接納和
34、發(fā)送的使能端,當/RE為邏輯0時,器件處于接納形狀;當DE為邏輯1時,器件處于發(fā)送形狀,由于MAX485任務在半雙工形狀,所以只需用單片機的一個管腳控制這兩個引腳即可;nA端和B端分別為接納和發(fā)送的差分信號端,當A引腳的電平高于B時,代表發(fā)送的數據為1;當A的電平低于B端時,代表發(fā)送的數據為0。n與單片機銜接時,只需求一個信號控制MAX485的接納和發(fā)送即可。同時將A和B端之間加匹配電阻,普通可選100的電阻。nMAX485芯片硬件電路圖n例如程序void init_uart(void) /串行口初始化串行口初始化 PCON = 0;/ Set PCON register, clear SMO
35、D0 and SMOD1 bits/*initiate uart0*/T2MOD = 0; / T2OE=0;DCEN=0;S0CON = 0 x50; / uart 0 in mode 1 (8 bit), REN=1 RCAP2H= 0 xff;/ffb8:9600 Bds at 11.059MHzRCAP2L= 0 xb8;/ffdc:19200 Bds at 11.059MHzTCLK=1;/T2 overflow as the baud rate generator for uart0 transmit RCLK=1;/T2 overflow as the baud rate gen
36、erator for uart0 receiveEXEN2=0; /ignore events on T2EX C_T2=0; /timer modeTR2=1; /timer2 runES0R = 1 ; /開放開放UART0 接納中斷接納中斷 EA = 1; / Enable global interrupt UART1_CONTROL=R1_ENABLE;/enable UART1 receive(in max485)UART0_CONTROL=R0_ENABLE;/enable UART0 receive(in max485)void respond_PLC_uart0(void) /
37、單片機與單片機與PLC進展進展485通訊通訊uchar i=0;if(ID_num%2)=0)ID_num_send=ID_num/2;else if(ID_num%2)=1)ID_num_send=(ID_num+1)/2;ReCommand0 = *; /設置起始位、從機地址、終止位設置起始位、從機地址、終止位ReCommand1 = ID_num_send;/地址地址 if(flag_alert_LM=1) ReCommand2 = 0 x01;/亮度報警信息亮度報警信息 elseReCommand2 = 0 x0;/正常正常 ReCommand3=tm_send1;/溫度值溫度值 Re
38、Command4=tm_send0;ReCommand5=lumin_buf2;ReCommand6=lumin_buf1;ReCommand7=lumin_buf0;ReCommand9 = #; /終了位終了位if(MASTER=0)&(SPARE=1)ReCommand8=0 x0;/主燈任務主燈任務 else if(SPARE=0)&(MASTER=1)ReCommand8=0 x01;/備燈任務備燈任務 ES0R = 0 ; /封鎖封鎖UART0 接納中斷接納中斷 UART0_CONTROL=T0_ENABLE;/發(fā)送使能發(fā)送使能 for(i=0;i10;i+)S0BUF=ReCom
39、mandi;while(TI_0=0)feed_watchdog();TI_0=0;UART0_CONTROL=R0_ENABLE;/接納使能接納使能 _nop_();_nop_();_nop_();_nop_();ES0R = 1 ; /開放開放UART0 接納中斷接納中斷 /* Uart0 receive interrut*/void IntUart0Rx( void ) interrupt 4RI_0=0; /去除接納標志去除接納標志 if(S0BUF = )Command0=S0BUF;UartCount =0;else if (S0BUF = $)Command3=S0BUF;UartCount =0;else if (UartCount 3)UartCount+;CommandUartCount= S0BUF;else UartCount =0;SPI總線:總線:由同步串行外設接口由同步串行外設接口SPI構成的串行總線是構成的串行總線是一種三線同步總線??偩€上可以銜接多個一種三線同步總線??偩€上可以銜接多個可以作為主機的微控制器可以作為主機的微控制器MCU及裝有及裝有SPI接口的接口的I/O設備如液晶驅動、設備如液晶驅動、A/D轉換等外轉換
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度航空運輸貨物代理委托及質量控制合同3篇
- 2024離婚財產分割協(xié)議公證與投資分割
- 2024版軟件許可與技術支持合同
- 二零二五年度股權激勵與員工離職補償合同樣本3篇
- 年度飛機碳剎車預制件戰(zhàn)略市場規(guī)劃報告
- 高校二零二五年度實驗室科研人員聘用合同2篇
- 針對2025年度環(huán)保項目的技術研發(fā)合作合同3篇
- 2024-2025學年高中語文第三課神奇的漢字3方塊的奧妙-漢字的結構練習含解析新人教版選修語言文字應用
- 2024-2025學年高中政治第三單元思想方法與創(chuàng)新意識第9課第2框用對立統(tǒng)一的觀點看問題訓練含解析新人教版必修4
- 2025年度特色餐飲業(yè)司爐員綜合管理服務合同3篇
- GB/T 11072-1989銻化銦多晶、單晶及切割片
- GB 15831-2006鋼管腳手架扣件
- 有機化學機理題(福山)
- 醫(yī)學會自律規(guī)范
- 商務溝通第二版第4章書面溝通
- 950項機電安裝施工工藝標準合集(含管線套管、支吊架、風口安裝)
- 微生物學與免疫學-11免疫分子課件
- 《動物遺傳育種學》動物醫(yī)學全套教學課件
- 弱電工程自檢報告
- 民法案例分析教程(第五版)完整版課件全套ppt教學教程最全電子教案
- 7.6用銳角三角函數解決問題 (2)
評論
0/150
提交評論