單片機(jī)原理與應(yīng)用《課程簡介》:單片機(jī)已成為電子系統(tǒng)中進(jìn)行數(shù)據(jù)采集、信息處理、通信聯(lián)絡(luò)和實施控制的重要器件。通常利用單片機(jī)技術(shù)在各種系統(tǒng)、儀器設(shè)備或裝置中,形成嵌入式智能系統(tǒng)或子系統(tǒng)。因此,單片機(jī)技術(shù)是電類專業(yè)特別是電子信息類學(xué)生必須具備的基本功。本課程以51系列單片機(jī)為模型,主要向?qū)W生介紹單片機(jī)的基本結(jié)構(gòu)、工作原理、指令系統(tǒng)與程序設(shè)計、系統(tǒng)擴(kuò)展與工程應(yīng)用。作為微機(jī)原理與接口技術(shù)的后續(xù)課程,本課程強調(diào)實踐環(huán)節(jié),側(cè)重系統(tǒng)構(gòu)成與應(yīng)用設(shè)計。力求通過實踐環(huán)節(jié),軟、硬結(jié)合,培養(yǎng)初步的單片機(jī)開發(fā)能力,并使其前導(dǎo)課程講授的基本概念得到綜合與深化。由于課時的限制,綜合性的應(yīng)用設(shè)計安排在后續(xù)課程《微機(jī)應(yīng)用系統(tǒng)設(shè)計》中進(jìn)行。 課 程 內(nèi) 容:第一章 單片微型計算機(jī)概述單片機(jī)的發(fā)展與應(yīng)用 MCS-51系列單片機(jī)簡介第二章 MCS-51系列單片機(jī)結(jié)構(gòu)MCS-51單片機(jī)基本結(jié)構(gòu) CPU 時序簡介 存儲器空間結(jié)構(gòu) 片內(nèi)RAM與SFR時鐘電路與復(fù)位電路 并行I/O口與總線擴(kuò)展第三章 MCS-51單片機(jī)指令系統(tǒng)指令系統(tǒng)簡介數(shù)據(jù)傳送指令 數(shù)據(jù)處理指令 位處理指令 程序控制指令匯編語言程序設(shè)計方法 程序調(diào)試的常用方法第四章 SCB-I 單片單板機(jī)SCB-I 單片單板機(jī)結(jié)構(gòu)簡介 監(jiān)控系統(tǒng)簡介SCB-I 單片單板機(jī)的基本操作 第五章 單片機(jī)常用接口電路的軟、硬件設(shè)計LED顯示接口電路與應(yīng)用編程鍵盤接口電路與應(yīng)用編程計數(shù)器/定時器工作原理及其應(yīng)用編程MCS-51中斷系統(tǒng)及其應(yīng)用編程8255擴(kuò)展并行接口及其應(yīng)用編程串行通信接口及其應(yīng)用編程A/D與D/A轉(zhuǎn)換接口及其應(yīng)用編程*第六章 單片機(jī)應(yīng)用系統(tǒng)設(shè)計舉例第七章 單片機(jī)開發(fā)工具簡介* 加“*”為選講內(nèi)容教學(xué)要求:1、 了解單片機(jī)的一般性概念及單片機(jī)技術(shù)的發(fā)展。2、 掌握51系列單片機(jī)的基本結(jié)構(gòu)與工作原理。3、 掌握51系列單片機(jī)的指令系統(tǒng)與程序設(shè)計的基本方法。4、 以單片單板機(jī)為樣板,掌握51系列單片機(jī)的系統(tǒng)擴(kuò)展設(shè)計。5、 通過實驗,掌握單片機(jī)常用接口電路的軟硬件設(shè)計及其應(yīng)用。6、 以上為本課程的基本要求。作為提高要求,對有能力、有興趣的學(xué)生,若能較快地完成基本實驗,可在規(guī)定課時內(nèi)安排有一定難度的綜合性實驗,以提高其應(yīng)用設(shè)計的能力。 課時安排和考核方式:1、 講課40學(xué)時,實驗20學(xué)時,課內(nèi)外學(xué)時比 1:2 ;(實驗從第七周開始,7個基本實驗,選做1個綜合實驗)2、 考核方式平時考查 20實驗考核 40(含實驗過程、實驗驗收與實驗報告)期末筆試 40參考書:《MCS-51單片機(jī)應(yīng)用設(shè)計》 張毅剛 等編 哈爾濱工業(yè)大學(xué)出版社《MCS-51系列單片機(jī)原理及應(yīng)用》 孫涵芳 徐愛卿 編著 北京航空航天大學(xué)出版社《單片微機(jī)與測控技術(shù)》 趙秀菊 等編 東南大學(xué)出版社《單片微型機(jī)原理、應(yīng)用與實驗》 張友德 等編 復(fù)旦大學(xué)出版社 《單片機(jī)實驗》 肖璋 雷兆宜 編 暨南大學(xué)講義
上傳時間: 2014-01-08
上傳用戶:417313137
《物聯(lián)網(wǎng)核心技術(shù):從入門到精通》是小編查閱各方面資料后加以梳理后整理出來的電子書。本電子書是關(guān)于物聯(lián)網(wǎng)核心技術(shù)的介紹,主要論述了物聯(lián)網(wǎng)概述、物聯(lián)網(wǎng)的發(fā)展、物聯(lián)網(wǎng)最新動態(tài)、物聯(lián)網(wǎng)技術(shù)及其應(yīng)用、物聯(lián)網(wǎng)前景及其挑戰(zhàn)以及物聯(lián)網(wǎng)相關(guān)技術(shù)資料下載等內(nèi)容。本電子書的內(nèi)容由淺入深、充實豐富,希望各位工程師/電子發(fā)燒友們通過對本電子書的學(xué)習(xí),能真正的做到從入門到精通的境界。 目 錄 1 引言 2 物聯(lián)網(wǎng)概述 3 物聯(lián)網(wǎng)的發(fā)展 3.1新漢著力ARM SOC解決方案開發(fā),迎接物聯(lián)網(wǎng)時代到來 3.2中國政府全力支持物聯(lián)網(wǎng)的發(fā)展 4 物聯(lián)網(wǎng)最新動態(tài) 4.1全球大學(xué)生“操練”物聯(lián)網(wǎng) 4.2 IPv6正式上線 或突破物聯(lián)網(wǎng)尋址難題 4.3三大運營商忙布局IPV6 物聯(lián)網(wǎng)規(guī)模將破5000億 5 物聯(lián)網(wǎng)技術(shù) 5.1怎樣架構(gòu)物聯(lián)網(wǎng)云平臺 5.2 物聯(lián)網(wǎng)技術(shù)核心詳解:RFID 5.3 物聯(lián)網(wǎng)中的電子身份識別簡介 5.4 TIA標(biāo)準(zhǔn)成物聯(lián)網(wǎng)及M2M技術(shù)未來的基礎(chǔ) 6 物聯(lián)網(wǎng)的應(yīng)用 6.1基于物聯(lián)網(wǎng)技術(shù)的高校資產(chǎn)管理系統(tǒng) 6.2物聯(lián)網(wǎng)技術(shù)在我國金融領(lǐng)域的應(yīng)用解析 6.3基于物聯(lián)網(wǎng)的廠區(qū)路燈模擬控制系統(tǒng) 7 物聯(lián)網(wǎng)前景與挑戰(zhàn) 7.1低端平板“血戰(zhàn)到底”,飛思卡爾尋覓物聯(lián)網(wǎng)藍(lán)海 7.2 中國移動王建宙兩會提案:加快物聯(lián)網(wǎng)商用進(jìn)程 7.3 iPv6加速普及,物聯(lián)網(wǎng)商用在即 8 物聯(lián)網(wǎng)相關(guān)資料下載地址 8.1 物聯(lián)網(wǎng)入門教程_英文版 8.2物聯(lián)網(wǎng)智能交通擁堵判別算法的研究與實現(xiàn) 8.3物聯(lián)網(wǎng)(WSN)綜合教學(xué)_開發(fā)系統(tǒng)SLRF-WSN-E綜合演示說明
標(biāo)簽: 物聯(lián)網(wǎng)技術(shù) 核心 發(fā)燒友 創(chuàng)新
上傳時間: 2013-11-10
上傳用戶:tom_man2008
無線感測器已變得越來越普及,短期內(nèi)其開發(fā)和部署數(shù)量將急遽增加。而無線通訊技術(shù)的突飛猛進(jìn),也使得智慧型網(wǎng)路中的無線感測器能夠緊密互連。此外,系統(tǒng)單晶片(SoC)的密度不斷提高,讓各式各樣的多功能、小尺寸無線感測器系統(tǒng)相繼問市。儘管如此,工程師仍面臨一個重大的挑戰(zhàn):即電源消耗。
上傳時間: 2013-10-30
上傳用戶:wojiaohs
注:1.這篇文章斷斷續(xù)續(xù)寫了很久,畫圖技術(shù)也不精,難免錯漏,大家湊合看.有問題可以留言. 2.論壇排版把我的代碼縮進(jìn)全弄沒了,大家將代碼粘貼到arduino編譯器,然后按ctrl+T重新格式化代碼格式即可看的舒服. 一、什么是PWM PWM 即Pulse Wavelength Modulation 脈寬調(diào)制波,通過調(diào)整輸出信號占空比,從而達(dá)到改 變輸出平均電壓的目的。相信Arduino 的PWM 大家都不陌生,在Arduino Duemilanove 2009 中,有6 個8 位精度PWM 引腳,分別是3, 5, 6, 9, 10, 11 腳。我們可以使用analogWrite()控 制PWM 腳輸出頻率大概在500Hz 的左右的PWM 調(diào)制波。分辨率8 位即2 的8 次方等于 256 級精度。但是有時候我們會覺得6 個PWM 引腳不夠用。比如我們做一個10 路燈調(diào)光, 就需要有10 個PWM 腳。Arduino Duemilanove 2009 有13 個數(shù)字輸出腳,如果它們都可以 PWM 的話,就能滿足條件了。于是本文介紹用軟件模擬PWM。 二、Arduino 軟件模擬PWM Arduino PWM 調(diào)壓原理:PWM 有好幾種方法。而Arduino 因為電源和實現(xiàn)難度限制,一般 使用周期恒定,占空比變化的單極性PWM。 通過調(diào)整一個周期里面輸出腳高/低電平的時間比(即是占空比)去獲得給一個用電器不同 的平均功率。 如圖所示,假設(shè)PWM 波形周期1ms(即1kHz),分辨率1000 級。那么需要一個信號時間 精度1ms/1000=1us 的信號源,即1MHz。所以說,PWM 的實現(xiàn)難點在于需要使用很高頻的 信號源,才能獲得快速與高精度。下面先由一個簡單的PWM 程序開始: const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { if((bright++) == 255) bright = 0; for(int i = 0; i < 255; i++) { if(i < bright) { digitalWrite(PWMPin, HIGH); delayMicroseconds(30); } else { digitalWrite(PWMPin, LOW); delayMicroseconds(30); } } } 這是一個軟件PWM 控制Arduino D13 引腳的例子。只需要一塊Arduino 即可測試此代碼。 程序解析:由for 循環(huán)可以看出,完成一個PWM 周期,共循環(huán)255 次。 假設(shè)bright=100 時候,在第0~100 次循環(huán)中,i 等于1 到99 均小于bright,于是輸出PWMPin 高電平; 然后第100 到255 次循環(huán)里面,i 等于100~255 大于bright,于是輸出PWMPin 低電平。無 論輸出高低電平都保持30us。 那么說,如果bright=100 的話,就有100 次循環(huán)是高電平,155 次循環(huán)是低電平。 如果忽略指令執(zhí)行時間的話,這次的PWM 波形占空比為100/255,如果調(diào)整bright 的值, 就能改變接在D13 的LED 的亮度。 這里設(shè)置了每次for 循環(huán)之后,將bright 加一,并且當(dāng)bright 加到255 時歸0。所以,我們 看到的最終效果就是LED 慢慢變亮,到頂之后然后突然暗回去重新變亮。 這是最基本的PWM 方法,也應(yīng)該是大家想的比較多的想法。 然后介紹一個簡單一點的。思維風(fēng)格完全不同。不過對于驅(qū)動一個LED 來說,效果與上面 的程序一樣。 const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { digitalWrite(PWMPin, HIGH); delayMicroseconds(bright*30); digitalWrite(PWMPin, LOW); delayMicroseconds((255 - bright)*30); if((bright++) == 255) bright = 0; } 可以看出,這段代碼少了一個For 循環(huán)。它先輸出一個高電平,然后維持(bright*30)us。然 后輸出一個低電平,維持時間((255-bright)*30)us。這樣兩次高低就能完成一個PWM 周期。 分辨率也是255。 三、多引腳PWM Arduino 本身已有PWM 引腳并且運行起來不占CPU 時間,所以軟件模擬一個引腳的PWM 完全沒有實用意義。我們軟件模擬的價值在于:他能將任意的數(shù)字IO 口變成PWM 引腳。 當(dāng)一片Arduino 要同時控制多個PWM,并且沒有其他重任務(wù)的時候,就要用軟件PWM 了。 多引腳PWM 有一種下面的方式: int brights[14] = {0}; //定義14個引腳的初始亮度,可以隨意設(shè)置 int StartPWMPin = 0, EndPWMPin = 13; //設(shè)置D0~D13為PWM 引腳 int PWMResolution = 255; //設(shè)置PWM 占空比分辨率 void setup() { //定義所有IO 端輸出 for(int i = StartPWMPin; i <= EndPWMPin; i++) { pinMode(i, OUTPUT); //隨便定義個初始亮度,便于觀察 brights[ i ] = random(0, 255); } } void loop() { //這for 循環(huán)是為14盞燈做漸亮的。每次Arduino loop()循環(huán), //brights 自增一次。直到brights=255時候,將brights 置零重新計數(shù)。 for(int i = StartPWMPin; i <= EndPWMPin; i++) { if((brights[i]++) == PWMResolution) brights[i] = 0; } for(int i = 0; i <= PWMResolution; i++) //i 是計數(shù)一個PWM 周期 { for(int j = StartPWMPin; j <= EndPWMPin; j++) //每個PWM 周期均遍歷所有引腳 { if(i < brights[j])\ 所以我們要更改PWM 周期的話,我們將精度(代碼里面的變量:PWMResolution)降低就行,比如一般調(diào)整LED 亮度的話,我們用64 級精度就行。這樣速度就是2x32x64=4ms。就不會閃了。
上傳時間: 2013-10-08
上傳用戶:dingdingcandy
根據(jù)目前印制電路板制造技術(shù)的發(fā)展趨勢,印制電路板的制造難度越來越高,品質(zhì)要求也越來越嚴(yán)格。為確保印制電路板的高質(zhì)量和高穩(wěn)定性,實現(xiàn)全面質(zhì)量管理和環(huán)境控制,必須充分了解印制電路板制造技術(shù)的特性,但印制電路板制造技術(shù)是綜合性的技術(shù)結(jié)晶,它涉及到物理、化學(xué)、光學(xué)、光化學(xué)、高分子、流體力學(xué)、化學(xué)動力學(xué)等諸多方面的基礎(chǔ)知識,如材料的結(jié)構(gòu)、成份和性能:工藝裝備的精度、穩(wěn)定性、效率、加工質(zhì)量;工藝方法的可行性;檢測手段的精度與高可靠性及環(huán)境中的溫度、濕度、潔凈度等問題。這些問題都會直接和間接地影響到印制電路板的品質(zhì)。由于涉及到的方面與問題比較多,就很容易產(chǎn)生形形色色的質(zhì)量缺陷。為確保“預(yù)防為主,解決問題為輔”的原則的貫徹執(zhí)行,必須認(rèn)真地了解各工序最容易出現(xiàn)及產(chǎn)生的質(zhì)量問題,快速地采取工藝措施加以排除,確保生產(chǎn)能順利地進(jìn)行。為此,特收集、匯總和整理有關(guān)這方面的材料,編輯這本《印制電路板故障排除手冊》供同行參考。
上傳時間: 2013-11-13
上傳用戶:yiwen213
注:1.這篇文章斷斷續(xù)續(xù)寫了很久,畫圖技術(shù)也不精,難免錯漏,大家湊合看.有問題可以留言. 2.論壇排版把我的代碼縮進(jìn)全弄沒了,大家將代碼粘貼到arduino編譯器,然后按ctrl+T重新格式化代碼格式即可看的舒服. 一、什么是PWM PWM 即Pulse Wavelength Modulation 脈寬調(diào)制波,通過調(diào)整輸出信號占空比,從而達(dá)到改 變輸出平均電壓的目的。相信Arduino 的PWM 大家都不陌生,在Arduino Duemilanove 2009 中,有6 個8 位精度PWM 引腳,分別是3, 5, 6, 9, 10, 11 腳。我們可以使用analogWrite()控 制PWM 腳輸出頻率大概在500Hz 的左右的PWM 調(diào)制波。分辨率8 位即2 的8 次方等于 256 級精度。但是有時候我們會覺得6 個PWM 引腳不夠用。比如我們做一個10 路燈調(diào)光, 就需要有10 個PWM 腳。Arduino Duemilanove 2009 有13 個數(shù)字輸出腳,如果它們都可以 PWM 的話,就能滿足條件了。于是本文介紹用軟件模擬PWM。 二、Arduino 軟件模擬PWM Arduino PWM 調(diào)壓原理:PWM 有好幾種方法。而Arduino 因為電源和實現(xiàn)難度限制,一般 使用周期恒定,占空比變化的單極性PWM。 通過調(diào)整一個周期里面輸出腳高/低電平的時間比(即是占空比)去獲得給一個用電器不同 的平均功率。 如圖所示,假設(shè)PWM 波形周期1ms(即1kHz),分辨率1000 級。那么需要一個信號時間 精度1ms/1000=1us 的信號源,即1MHz。所以說,PWM 的實現(xiàn)難點在于需要使用很高頻的 信號源,才能獲得快速與高精度。下面先由一個簡單的PWM 程序開始: const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { if((bright++) == 255) bright = 0; for(int i = 0; i < 255; i++) { if(i < bright) { digitalWrite(PWMPin, HIGH); delayMicroseconds(30); } else { digitalWrite(PWMPin, LOW); delayMicroseconds(30); } } } 這是一個軟件PWM 控制Arduino D13 引腳的例子。只需要一塊Arduino 即可測試此代碼。 程序解析:由for 循環(huán)可以看出,完成一個PWM 周期,共循環(huán)255 次。 假設(shè)bright=100 時候,在第0~100 次循環(huán)中,i 等于1 到99 均小于bright,于是輸出PWMPin 高電平; 然后第100 到255 次循環(huán)里面,i 等于100~255 大于bright,于是輸出PWMPin 低電平。無 論輸出高低電平都保持30us。 那么說,如果bright=100 的話,就有100 次循環(huán)是高電平,155 次循環(huán)是低電平。 如果忽略指令執(zhí)行時間的話,這次的PWM 波形占空比為100/255,如果調(diào)整bright 的值, 就能改變接在D13 的LED 的亮度。 這里設(shè)置了每次for 循環(huán)之后,將bright 加一,并且當(dāng)bright 加到255 時歸0。所以,我們 看到的最終效果就是LED 慢慢變亮,到頂之后然后突然暗回去重新變亮。 這是最基本的PWM 方法,也應(yīng)該是大家想的比較多的想法。 然后介紹一個簡單一點的。思維風(fēng)格完全不同。不過對于驅(qū)動一個LED 來說,效果與上面 的程序一樣。 const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { digitalWrite(PWMPin, HIGH); delayMicroseconds(bright*30); digitalWrite(PWMPin, LOW); delayMicroseconds((255 - bright)*30); if((bright++) == 255) bright = 0; } 可以看出,這段代碼少了一個For 循環(huán)。它先輸出一個高電平,然后維持(bright*30)us。然 后輸出一個低電平,維持時間((255-bright)*30)us。這樣兩次高低就能完成一個PWM 周期。 分辨率也是255。 三、多引腳PWM Arduino 本身已有PWM 引腳并且運行起來不占CPU 時間,所以軟件模擬一個引腳的PWM 完全沒有實用意義。我們軟件模擬的價值在于:他能將任意的數(shù)字IO 口變成PWM 引腳。 當(dāng)一片Arduino 要同時控制多個PWM,并且沒有其他重任務(wù)的時候,就要用軟件PWM 了。 多引腳PWM 有一種下面的方式: int brights[14] = {0}; //定義14個引腳的初始亮度,可以隨意設(shè)置 int StartPWMPin = 0, EndPWMPin = 13; //設(shè)置D0~D13為PWM 引腳 int PWMResolution = 255; //設(shè)置PWM 占空比分辨率 void setup() { //定義所有IO 端輸出 for(int i = StartPWMPin; i <= EndPWMPin; i++) { pinMode(i, OUTPUT); //隨便定義個初始亮度,便于觀察 brights[ i ] = random(0, 255); } } void loop() { //這for 循環(huán)是為14盞燈做漸亮的。每次Arduino loop()循環(huán), //brights 自增一次。直到brights=255時候,將brights 置零重新計數(shù)。 for(int i = StartPWMPin; i <= EndPWMPin; i++) { if((brights[i]++) == PWMResolution) brights[i] = 0; } for(int i = 0; i <= PWMResolution; i++) //i 是計數(shù)一個PWM 周期 { for(int j = StartPWMPin; j <= EndPWMPin; j++) //每個PWM 周期均遍歷所有引腳 { if(i < brights[j])\ 所以我們要更改PWM 周期的話,我們將精度(代碼里面的變量:PWMResolution)降低就行,比如一般調(diào)整LED 亮度的話,我們用64 級精度就行。這樣速度就是2x32x64=4ms。就不會閃了。
上傳時間: 2013-10-23
上傳用戶:mqien
用MATLAB寫的神經(jīng)網(wǎng)絡(luò)PID控制源程序,類似劉金錕的《先進(jìn)PID控制及MATLAB仿真》
標(biāo)簽: MATLAB PID 神經(jīng)網(wǎng)絡(luò) 控制
上傳時間: 2015-05-14
上傳用戶:dongbaobao
在 Java EE 的藍(lán)圖中,JSP Servlet是屬於Web層技術(shù),JSP與Servlet是一體的兩面,您可以使用單獨一項技術(shù)來解決動態(tài)網(wǎng)頁呈現(xiàn)的需求,但最好的方式是取兩者的長處,JSP是網(wǎng)頁設(shè)計人員導(dǎo)向的,而Servlet是程式設(shè)計人員導(dǎo)向的,釐清它們之間的職責(zé)可以讓兩個不同專長的團(tuán)隊彼此合作,並降低相互間的牽制作用。
上傳時間: 2016-11-15
上傳用戶:sxdtlqqjl
單片機(jī)控制交通燈設(shè)計 十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。那么靠什么來實現(xiàn)這井然秩序呢?靠的是交通信號燈的自動指揮系統(tǒng)。交通信號燈控制方式很多。本設(shè)計主要分為五大模塊輸入控制電路、時鐘控制電路、片內(nèi)外程序切換控制、顯示電路。以MSC-51系列單片機(jī)IntelAT89C51為中心器件來設(shè)計交通燈控制器,實現(xiàn)了AT89C51芯片的P0口設(shè)置紅、綠燈、黃燈燃亮?xí)r間的功能;為了系統(tǒng)穩(wěn)定可靠采用了74LS14施密特觸發(fā)器芯片的消抖電路,避免了系統(tǒng)因輸入信號抖動產(chǎn)生誤操作;顯示時間直接通過AT89C51的P2口輸出,由CD4511驅(qū)動LED數(shù)碼管顯示紅燈燃亮?xí)r間。
上傳時間: 2017-04-15
上傳用戶:bruce5996
要求輸出國際象棋棋盤。 1.程序分析:用i控制行,j來控制列,根據(jù)i+j的和的變化來控制輸出黑方格,還是白方格。 2.程序源代碼:
上傳時間: 2014-12-06
上傳用戶:sclyutian
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1