物聯(lián)網(wǎng)智能控制及管理_第1頁
物聯(lián)網(wǎng)智能控制及管理_第2頁
物聯(lián)網(wǎng)智能控制及管理_第3頁
物聯(lián)網(wǎng)智能控制及管理_第4頁
物聯(lián)網(wǎng)智能控制及管理_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、第四章第四章 教學實驗板介紹教學實驗板介紹學習板概述學習板概述l電源電路l跑馬燈控制l交通燈控制l鍵盤接口l繼電器控制l串行通信接口l日歷時鐘芯片的應用l顯示技術(shù)l外部RAM擴展設計l加速度檢測電路模塊l模數(shù)轉(zhuǎn)換模塊電路設計l溫度檢測電路設計l網(wǎng)絡模塊電源電路電源電路l正常使用教學實驗板時,使用計算機USB口提供的電源即可。如右圖為計算機USB口供電電路 ,VCC為+5V。l如果使用了功耗較大的元器件,可以使用+5V的外接電源,還設計了外接電源接口電路。 lW5200以太網(wǎng)控制芯片和加速度傳感器MMA7660的供電電壓是3.3V,為了使用這兩個芯片,在教學實驗板上,設計了+5V轉(zhuǎn)3.3V電路。

2、 跑馬燈控制跑馬燈控制lLED0LED7接單片機的P0.0P0.7管腳。lJP1模塊通過跳線帽連接2、3管腳來選通給跑馬燈電路供電還是給后面介紹的交通燈演示電路供電。軟件設計軟件設計#include stc15.h#include intrins.hvoid main(void) unsigned int LED=0 xfe; unsigned char i; P0=LED; while(1) for (i=0;i7;i+) LED=_crol_(LED,1);/數(shù)據(jù)左移 P0=LED; delay(10000); for (i=0;i7;i+) LED=_cror_(LED,1);/數(shù)據(jù)右移

3、 P0=LED; delay(10000); 交通燈控制交通燈控制l交通燈電路與跑馬燈電路共用一個I/O口,LED0LED7也接至單片機的P0口l使用跳線帽連接JP1模塊的1、2腳以給交通燈電路供電l其中的RP2為330的排電阻,起限流作用。l變量定義如右欄所示。#include stc15.hsbit e_green=P05;/定義東西方向的綠燈sbit e_yellow=P04;/定義東西方向的黃燈sbit e_red=P03;/定義東西方向的紅燈sbit n_green=P02;/定義南北方向的綠燈sbit n_yellow=P01;/定義南北方向的黃燈sbit n_red=P00;/定

4、義南北方向的紅燈/聲明計數(shù)變量unsigned char base_cnt,cycle_cnt, yellow_flash_cnt;unsigned char sn_yellow_flash=0,we_yellow_flash=0;鍵盤接口鍵盤接口l按鍵去抖動方法按鍵較少時,可以用RS觸發(fā)器構(gòu)成去抖動電路,也可以采用集成去抖動電路集成去抖動電路,如MAX6818。按鍵較多時,硬件開銷較大,宜采用軟件去抖動軟件去抖動的方法。l軟件去抖動的方法就是軟件延時方法,通過軟件延時去抖動是最常見的方法。l矩陣鍵盤電路原理按鍵電路的實質(zhì)是一個電阻分壓器部分軟件代碼:#include stc15.hunsig

5、ned int ad_value=0;void ADC_init(void);char ADC_check_Key(void);void Delay5ms();void main(void)繼電器控制繼電器控制l繼電器控制的驅(qū)動電路由三極管Q11和Q12組成,Q11和Q12起功率放大的作用。l標號RLY_N和RLY_P分別連接單片機的對應網(wǎng)絡標號(對應I/O引腳P3.4和P3.5)。l其中左邊的繼電器為K1,右邊的繼電器為K2。lLED20和LED21分別用于指示繼電器是否閉合,閉合時亮。lD1和D2是續(xù)流二極管。l注意:注意:進行繼電器實驗時,由于繼電器需要電流較大,而計算機的USB口無法提

6、供較大電流,有可能繼電器無法正常工作,此時,請讀者給教學實驗板外接5V電源。 #include stc15.hsbit RLY_P=P35; /定義Postive引腳sbit RLY_N=P34; /定義Negtive引腳void Delay10ms(void);void main(void) unsigned char cnt; RLY_P=1; /設置Postive初始狀態(tài) RLY_N=0; /設置Negtive初始狀態(tài) while(1) RLY_P=RLY_P; /Postive引腳取反 RLY_N=RLY_N; /Negtive引腳取反 for(cnt=0;cnt50;cnt+)Del

7、ay10ms(); 串行通信接口串行通信接口l串行口串行口1通信通信用戶程序下載時,使用的是串口1,需要和計算機進行連接。因此,在教學實驗板上設計了USB轉(zhuǎn)UART接口。電路連接如圖所示。其中,URXD1連接單片機串口1(UART1)的URXD(P3.0)引腳,UTXD1連接單片機串口1(UART1)的UTXD(P3.1)引腳。SW1是整個教學實驗板的電源開關(guān)。#include stc15.h /包含STC15F2K60S2寄存器定義文件void main(void) SCON=0 x50;/8位數(shù)據(jù),方式1,允許接收 AUXR=0 x14;/T2為1T模式。并啟動定時器2 AUXR|=0 x

8、01; /設置波特率為115200bps T2H=0 xff; /定時器2高8位 T2L=0 xe8; /定時器2低8位 ES = 1; /允許串行口中斷 EA = 1; /開總中斷 for(;); /等待中斷,與while(1)效果相同void Serial_ISR(void) interrupt 4 unsigned char mydata; if (RI)/如果是接收中斷 RI=0; mydata=SBUF;/將接收緩沖區(qū)的數(shù)據(jù)保存到mydata變量中 SBUF=mydata+1;/將接收到的數(shù)據(jù)+1后發(fā)回 else/如果是發(fā)送中斷,將TI清零 TI=0; 串行通信接口串行通信接口l串行

9、口串行口2通信通信l在工程應用中,經(jīng)常用到RS485通信接口。在教學實驗板上,利用STC15F2K60S2單片機的串行口串行口2和和MAX485芯片芯片設計了RS485接口 lRXD2是單片機串行口2的數(shù)據(jù)接收引腳(與P1.0復用)TXD2是單片機串行口2的數(shù)據(jù)發(fā)送引腳(與P1.1復用)lIO485連接單片機的P3.7,用于RS485的收發(fā)控制。 軟件設計:軟件設計:程序代碼所實現(xiàn)的功能是“PC機機主單主單片機片機從單片機從單片機主單片機主單片機PC機機”的通信過程。串口1用作單片機和PC機之間的通信,串口2經(jīng)由MAX485用作主單片機和從單片機之間的通信。主單片機通過串口1從PC機獲得數(shù)據(jù),

10、將數(shù)據(jù)通過RS485發(fā)給從單片機,從單片機將數(shù)據(jù)加1后通過RS485發(fā)回主單片機,主單片機接到數(shù)據(jù)再通過串口1發(fā)回到PC機,并通過“串口調(diào)試助手”觀察數(shù)據(jù)是否正確。 日歷時鐘芯片日歷時鐘芯片PCF8563芯片構(gòu)成芯片構(gòu)成 lPCF8563是一款帶 I2C總線的低功耗CMOS實時時鐘/日歷芯片。lPCF8563的多種報警功能、定時器功能、時鐘輸出功能以及中斷輸出功能能完成各種復雜的定時服務,甚至可為單片機提供看門狗功能。 lPCF8563的引腳描述如上圖所示。日歷時鐘芯片日歷時鐘芯片PCF8563內(nèi)部寄存器內(nèi)部寄存器 l二進制格式寄存器概況二進制格式寄存器概況 lBCD格式寄存器概況格式寄存器概

11、況 PCF8563的應用的應用lPCF8563的INT引腳連接單片機的外部中斷INT1引腳P3.3lI2C總線的時鐘信號線連接單片機的P5.4lI2C總線的數(shù)據(jù)信號線連接單片機的P5.5l在演示代碼中,演示了每秒鐘定時顯示時間功能;為了顯示方便,加入了串行通信功能,在串口助手等相關(guān)軟件中,可以查看相應的狀態(tài)和數(shù)據(jù)。 #include stc15.h#include intrins.h/_nop_()函數(shù)包含在其中函數(shù)包含在其中#include string.h/memset()函數(shù)包含在其中函數(shù)包含在其中void num_to_str(unsigned char a,unsigned char

12、 *str); /不帶符號不帶符號void INT1_init(void);/外部中斷外部中斷1子函數(shù)子函數(shù)/- UART相關(guān)相關(guān) -#defineFOSC 11059200/晶振頻率晶振頻率 #defineBAUD 115200 /UART波特率波特率void Uart_init(void);void Uart_SendString(unsigned char *s);/- I2C相關(guān)相關(guān) -void Delay_n_nop(void);void IIC_Start(void);void IIC_Stop (void);void IIC_Ack(void);void IIC_NAK(void

13、);void IIC_SendByte(unsigned char val);unsigned char IIC_ReadByte(void);bit IIC_ChkAck(void); void IICWriteData(unsigned char RegAdd, unsigned char Data);unsigned char IICReadData(unsigned char RegAdd) reentrant;void IICRead_nData(unsigned char RegAdd,unsigned char Len,unsigned char* Datas);/- RTC相關(guān)

14、相關(guān) -略略-/PCF8563T RTC芯片芯片 片內(nèi)片內(nèi)16個個BYTE寄存器地址寄存器地址sbit IIC_SDA=P55;/RTC數(shù)據(jù)引腳數(shù)據(jù)引腳sbit IIC_SCL=P54;/RTC數(shù)據(jù)引腳數(shù)據(jù)引腳 sbit mos_bit=com_data7;sbit low_bit=com_data0;void RTC_Set_Mod(bit isTestMod,bit isENPowerReset,bit isRun);void RTC_Set_Time(unsigned char Mynian,unsigned char Myyue,unsigned char Myri,unsigned

15、char Myxingqi, unsigned char Myshi,unsigned char Myfen,unsigned char Mymiao, bit is_19shiji,bit is_AccurateTime);void RTC_TIMER_Mod(bit EN_TIMER,unsigned char Mod_TIMER_CNT);void RTC_Set_CLKOUT(bit EN_CLKOUT,unsigned char Mod_CLKOUT);void RTC_init(void);void RTC_Read_Time(void);void Show_Time_toUART

16、(void);void main(void) /- 主程序主程序 - LED數(shù)碼管顯示技術(shù)數(shù)碼管顯示技術(shù) #include stc15.hsbit BITG=P21; /位使能控制定義sbit BITR=P22; /位鎖存端定義sbit SEGG=P23;/段使能控制定義sbit SEGR=P20;/段鎖存端定義/LED編碼表unsigned char code LED10=0 x03,0 x9f,0 x25,0 x0d,0 x99,0 x49,0 x41,0 x1f,0 x01,0 x09; /位碼控制表unsigned char code g8=0 xfe,0 xfd,0 xfb,0 xf

17、7,0 xef,0 xdf,0 xbf,0 x7f;void sendspi(unsigned char spidata,unsigned char isBit);void main (void) l教學實驗板設計了兩組4位的8段數(shù)碼管,使用兩片74HC595串行-并行轉(zhuǎn)換芯片分別作數(shù)碼控制和位選擇 l部分代碼設計如下部分代碼設計如下: LCD顯示技術(shù)顯示技術(shù)OCM4X8C液晶顯示模塊液晶顯示模塊 lOCM4X8C液晶顯示模塊是12864點陣的漢字圖形型液晶顯示模塊:l可顯示漢字及圖形可顯示漢字及圖形內(nèi)置國標GB2312碼簡體中文字庫(16X16點陣)128個字符(8X16點陣)64X256點

18、陣顯示RAM(GDRAM)l提供兩種接口提供兩種接口與CPU連接:8-位并行接口和串行接口l具有多種功能具有多種功能:光標顯示、畫面移位、睡眠模式等。 120VssVddVOSCLKDB0DB1NCSTDRSDB2DB3DB4DB5NCRSTDB6DB7PSBLEDALEDK教學實驗板采用教學實驗板采用SPI方式與方式與OCM4X8C傳輸數(shù)傳輸數(shù)據(jù)。接口電路的連接如右圖所示。據(jù)。接口電路的連接如右圖所示。BLED為背為背光電源控制,光電源控制,LED_LCD_MOSI 接數(shù)據(jù)端口,接數(shù)據(jù)端口,LED_LCD_SCLK接時鐘。接時鐘。LCD顯示技術(shù)顯示技術(shù)軟件設計軟件設計部分代碼顯示如下:部分代

19、碼顯示如下:#include stc15.h#define READ 1#define WRIT 0#define DATA 1#define CMD 0sbit BLED=P41; /背光控制typedef unsigned char uchar;typedef unsigned int uint;void delay(unsigned int us10);/延遲子程序void LCD_spi_init(void);/SPI初始化程序void LCD_send(uchar spidata,uchar isread,uchar isdata); /顯示數(shù)據(jù)發(fā)送子程序void LCD_init_

20、all(void); /LCD初始化程序void LCD_send_string(uchar *s); /顯示漢字字符串子程序void main(void) LCD_spi_init();LCD_init_all(); LCD_send(0 x82,WRIT,CMD); /設定光標位置 LCD_send_string(單片機);LCD_send(0,WRIT,DATA); /顯示“0”LCD_send(1,WRIT,DATA); /顯示“1”while(1);外部外部RAM擴展設計擴展設計 l32KB RAM采用IS62C256AL,地址鎖存芯片用74HC573P0口作為數(shù)據(jù)和地址低字節(jié)的復用

21、端口用P4.5作為地址鎖存器74HC573的使能引腳P2.7作為IS62C256AL的片選l軟件設計軟件設計在地址0 x0000處定義一個大于內(nèi)部RAM容量(2KB)的數(shù)組,方便外部RAM的測試。由于程序運行時其他變量還需要一定的RAM空間,所以本程序把aa0 x7001的容量設為0 x7001,小于32k BYTE的外部RAM空間。測試方式:測試方式:在大于內(nèi)部RAM容量(2KB)處預存一個值,之后能正確地讀出來,就說明外部RAM構(gòu)建成功。 加速度檢測電路設計加速度檢測電路設計 MMA7660 lMMA7660是-1.5g 1.5g范圍的XYZ三軸檢測加速度傳感器,數(shù)字I2C輸出,是低功耗、

22、小容性MEMS傳感器。l具有低通濾波器,用于0g和增益誤差的補償。用戶可配置轉(zhuǎn)化成6位數(shù)值。l模擬電壓為2.43.6V,數(shù)字工作電壓1.713.6V,可進行三軸取向/運動的檢測l廣泛應用于手機、PDA、便攜PC的防盜、游戲的運動檢測。 l電路連接電路連接如右圖所示。部分示例代碼如下:部分示例代碼如下:#include stc15.h#include string.h#include mma7660_IIC.h#include mma7660_App.h #define ACC_DEBUG /調(diào)試程序塊#defineFOSC 11059200/晶振頻率 #defineBAUD 115200/UA

23、RT波特率extern unsigned char Uart_in_Data; extern bit Flage_Uart_Busy;extern bit Flage_Uart_signal_in; /串口有信號輸入標識void Uart_Init(void);void Uart_SendData(unsigned char dat);void Uart_SendString(unsigned char *s);void num_to_str(char a,char *str);bit Flage_ACC_Infor_Input=0; /加速度傳感器的中斷信號void main(void)模數(shù)

24、轉(zhuǎn)換模塊電路設計模數(shù)轉(zhuǎn)換模塊電路設計 l硬件接圖硬件接圖如圖所示lSTC15F2K60S2單片機集成有8路路10位位高速電壓輸入型模數(shù)轉(zhuǎn)換器(ADC),速度可達到300KHz(30萬次/秒)l可做溫度檢測、壓力檢測、電池電壓檢測、按鍵掃描、頻譜檢測等l部分代碼如下:部分代碼如下:#include stc15.h#include string.h#define FOSC 11059200/晶振頻率 #define BAUD 115200 /UART波特率void delay(unsigned int n);long int intpow(int base,int power); /指數(shù)函數(shù)bit

25、 GetCharBit(char dat,char n_bit);void Uart_Init(void);void ADC_init(void);unsigned char val_disp;void main(void)溫度檢測模塊溫度檢測模塊l在教學實驗板上設計了DS18B20單線數(shù)字檢測電路單線數(shù)字檢測電路。DS18B20具有如下特點:獨特的單線接口僅需一個端口引腳進行通信;簡單的多分布應用;無需外部器件;可通過數(shù)據(jù)線供電;零待機功耗;檢測范圍-55+125,以0.5遞增;華氏器件-67+257 ,以0.9 遞增;溫度以9位或12位數(shù)字量讀出;溫度數(shù)字量轉(zhuǎn)換時間200ms(典型值);用戶可定義的非易失性溫度報警設置;報警搜索命令識別標志超過程序設定溫度(溫度報警條件)的器件應用包括溫度控制、工業(yè)系統(tǒng)、消費系統(tǒng)、溫度計或熱感測系統(tǒng)。l將端口端口DQ接到單片機接到單片機P4.1管腳管腳,且接上4.7K的上拉電阻到5V的VCC。如圖所示。 溫度檢測模塊溫度檢測模塊軟件設計軟件設計l

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論