本書針對Atmel公司的AVR系列單片機和ImageCraft公司的ICC AVR開發環境,詳細地介紹了AT90LS8535的C語言程序設計。全書共有13章,其內容既涉及到了單片機的結構原理、指令系統、內容資源和外部功能擴展,又包含了單片機的編程工具——ICC AVR C編程器的數據類型、控制流、函數和指針等。本書的特點是:深入淺出,從最基本的概念開始,循序漸進地講解單片機的應用開發;列舉了大量實例,使讀者能從實際應用中掌握單片機的開發與應用技術。本書適合作為從事單片機開發人員的參考用書。書中先后講解了C語言基礎、AVR單片機基礎,并舉了一些簡單的實例。本書非常適合初學者。 【目錄信息】 第1章 單片機系統概述 1. 1 AVR系列單片機的特點 1. 2 AT90系列單片機簡介 第2章 AT90LS8535單片機的基礎知識 2. 1 AT90LS8535單片機的總體結構 2. 1. 1 AT90LS8535單片機的中央處理器 2. 1. 2 AT90LS8535單片機的存儲器組織 2. 1. 3 AT90LS8535單片機的I/O接口 2. 1. 4 AT90LS8535單片機的內部資源 2. 1. 5 AT90LS8535單片機的時鐘電路 2. 1. 6 AT90LS8535單片機的系統復位 2. 1. 7 AT90LS8535單片機的節電方式 2. 1. 8 AT90LS8535單片機的芯片引腳 2. 2 AT90LS8535單片機的指令系統 2. 2. 1 匯編指令格式 2. 2. 2 尋址方式 2. 2. 3 偽指令 2. 2. 4 指令類型及數據操作方式 2. 3 應用程序設計 2. 3. 1 程序設計方法 2. 3. 2 應用程序舉例 第3章 AT90LS8535單片機的C編程 3. 1 支持高級語言編程的AVR系列單片機 3. 2 AVR的C編譯器 3. 3 ICCAVR介紹 3. 3. 1 安裝ICCAVR 3. 3. 2 設置ICCAVR 3. 4 用ICCAVR編寫應用程序 3. 5 下載程序文件 第4章 數據類型. 運算符和表達式 4. 1 ICCAVR支持的數據類型 4. 2 常量與變量 4. 2. 1 常量 4. 2. 2 變量 4. 3 AT90LS8535的存儲空間 4. 4 算術和賦值運算 4. 4. 1 算術運算符和算術表達式 4. 4. 2 賦值運算符和賦值表達式 4. 5 邏輯運算 4. 6 關系運算 4. 7 位操作 4. 7. 1 位邏輯運算 4. 7. 2 移位運算 4. 8 逗號運算 第5章 控制流 5. 1 C語言的結構化程序設計 5. 1. 1 順序結構 5. 1. 2 選擇結構 5. 1. 3 循環結構 5. 2 選擇語句 5. 2. 1 if語句 5. 2. 2 switch分支 5. 2. 3 選擇語句的嵌套 5. 3 循環語句 5. 3. 1 while語句 5. 3. 2 do…while語句 5. 3. 3 for語句 5. 3. 4 循環語句嵌套 5. 3. 5 break語句和continue語句 第6章 函數 6. 1 函數的定義 6. 1. 1 函數的定義的一般形式 6. 1. 2 函數的參數 6. 1. 3 函數的值 6. 2 函數的調用 6. 2. 1 函數的一般調用 6. 2. 2 函數的遞歸調用 6. 2. 3 函數的嵌套調用 6. 3 變量的類型及其存儲方式 6. 3. 1 局部變量 6. 3. 2 局部變量的存儲方式 6. 3. 3 全局變量 6. 3. 4 全局變量的存儲方式 6. 4 內部函數和外部函數 6. 4. 1 內部函數 6. 4. 2 外部函數 第7章 指針 7. 1 指針和指針變量 7. 2 指針變量的定義和引用 7. 2. 1 指針變量的定義 7. 2. 2 指針變量的引用 7. 2. 3 指針變量作為函數參數 7. 3 數組與指針 7. 3. 1 指向數組元素的指針變量 7. 3. 2 數組元素的引用 通過指針 7. 3. 3 數組名作為函數參數 7. 3. 4 指向多維數組的元素的指針變量 7. 4 字符串與指針 7. 4. 1 字符串的表示形式 7. 4. 2 字符串指針變量與字符數組的區別 7. 5 函數與指針 7. 5. 1 函數指針變量 7. 5. 2 指針型函數 7. 6 指向指針的指針 7. 7 有關指針數據類型和運算小結 7. 7. 1 有關指針的數據類型的小結 7. 7. 2 指針運算的小結 第8章 結構體和共用體 8. 1 結構體的定義和引用 8. 1. 1 結構體類型變量的定義 8. 1. 2 結構體類型變量的引用 8. 2 結構類型的說明 8. 3 結構體變量的初始化和賦值 8. 3. 1 結構體變量的初始化 8. 3. 2 結構體變量的賦值 8. 4 結構體數組 8. 4. 1 結構體數組的定義 8. 4. 2 結構體數組的初始化 8. 5 指向結構體類型變量的指針 8. 5. 1 指向結構體變量的指針 8. 5. 2 指向結構體數組的指針 8. 5. 3 指向結構體變量的指針做函數參數 8. 6 共用體 8. 6. 1 共用體的定義 8. 6. 2 共用體變量的引用 第9章 A190LS8535的內部資源 9. 1 I/O 口 9. 1. 1 端口A 9. 1. 2 端口B 9. 1. 3 端口C 9. 1. 4 端口D 9. 1. 5 I/O口的編程 9. 2 中斷 9. 2. 1 單片機的中斷功能 9. 2. 2 AT90LS8535單片機的中斷系統 9. 2. 3 1CCAVRC編譯器的中斷操作 9. 2. 4 中斷的編程 9. 3 串行數據通信 9. 3. 1 數據通信基礎 9. 3. 2 AT90LS8535的同步串行接口 9. 3. 3 AT90LS8535的異步串行接口 9. 4 定時/計數器 9. 4. 1 定時/計數器的分頻器 9. 4. 2 8位定時/計數器0 9. 4. 3 16位定時/計數器1 9. 4. 4 8位定時/計數器2 9. 5 EEPROM 9. 5. 1 與EEPROM有關的寄存器 9. 5. 2 EEPROM讀/寫操作 9. 5. 3 EEPROM的應用舉例 9. 6 模擬量輸入接口 9. 6. 1 模數轉換器的結構 9. 6. 2 ADC的使用 9. 6. 3 與模數轉換器有關的寄存器 9. 6. 4 ADC的噪聲消除 9. 6. 5 ADC的應用舉例 9. 7 模擬比較器 9. 7. 1 模擬比較器的結構 9. 7. 2 與模擬比較器有關的寄存器 9. 7. 3 模擬比較器的應用舉例 第10章 AT90LS8535的人機接口編程 10. 1 鍵盤接口 10. 1. 1 非矩陣式鍵盤 10. 1. 2 矩陣式鍵盤 10. 2 LED顯示輸出 10. 2. 1 LED的靜態顯示 10. 2. 2 LED的動態掃描顯示 10. 2. 3 動態掃描顯示專用芯片MC14489 10. 3 LCD顯示輸出 10. 3. 1 字符型LCD 10. 3. 2 點陣型LCD 10. 4 ISD2500系列語音芯片的編程 10. 4. 1 ISD2500的片內結構和引腳 10. 4. 2 ISD2500的操作 10. 4. 3 ISD2500和單片機的接口及編程 10. 5 TP-uP微型打印機 10. 5. 1 TP-uP打印機的接口和邏輯時序 10. 5. 2 P-uP打印機的打印命令和字符代碼 10. 5. 3 AT90LS8535與TP-uP系列打印機的接口及編程 10. 6 IC卡 10. 6. 1 IC卡讀寫裝置 10. 6. 2 IC卡軟件 第11章 AT90LS8535的外圍擴展 11. 1 簡單I/O擴展芯片 11. 1. 1 用74LS377擴展數據輸出接口 11. 1. 2 數據輸入接口 11. 2 模擬量輸出 11. 2. 1 D/A轉換器簡介 11. 2. 2 8位數模轉換器DAC0832 11. 2. 3 8位數模轉換器與單片機的接口及編程 11. 2. 4 12位數模轉換器DACl230 11. 2. 5 12位數模轉換器與單片機的接口及編程 11. 3 可編程I/O擴展芯片8255A 11. 3. 1 8255A的引腳和內部結構 11. 3. 2 8255A的工作方式 11. 3. 3 8255A的控制字 11. 3. 4 AT90LS8535和8255A的接口 11. 4 帶片內RAM的I/O擴展芯片8155 11. 4. 1 8155的引腳和內部結構. 11. 4. 2 8155的I/O口工作方式 11. 4. 3 8155的定時/計數器 11. 4. 4 8155的命令和狀態字 11. 4. 5 AT90LS8535與8155的接口及編程 11. 5 定時/計數器芯片8253 11. 5. 1 8253的信號引腳和邏輯結構 11. 5. 2 8253的工作方式 11. 5. 3 8253的控制字 11. 5. 4 AT90LS8535與8253的接口及編程 11. 6 實時時鐘芯片DS1302 11. 6. 1 DS1302的引腳和內部結構 11. 6. 2 DS1302的控制方式 11. 6. 3 AT90LS8535與DS1302的接口與編程 11. 7 數字溫度傳感器DS18B20 11. 7. 1 DSl8B20的引腳和內部結構 11. 7. 2 DS18B20的溫度測量 11. 7. 3 AT90LS8535與DS18B20的接口與編程 第12章 AT90LS8535的通信編程 12. 1 串口通信 12. 1. 1 異步串口UART通信 12. 1. 2 同步串口SPI通信 12. 2 I2C總線 12. 2. 1 I2C總線協議 12. 2. 2 采用AT90LS8535的并行I/O口模擬I2C總線 12. 3 CAN總線 12. 3. 1 CAN總線的特點 12. 3. 2 CAN協議的信息格式 12. 3. 3 CAN控制器SJA1000 12. 3. 4 AT90LS8535與SJA1000的接口及編程 12. 4 AT90LS8535單片機與PC的串行通信 12. 4. 1 基于VC 6. 0的PC串口通信 12. 4. 2 應用實例 第13章 系統設計中的程序處理方法 13. 1 數字濾波處理 13. 1. 1 平滑濾波 13. 1. 2 中值濾波 13. 1. 3 程序判斷濾波 13. 2 非線性處理 13. 2. 1 查表法 13. 2. 2 線性插值法
上傳時間: 2013-11-04
上傳用戶:元宵漢堡包
TLC2543是TI公司的12位串行模數轉換器,使用開關電容逐次逼近技術完成A/D轉換過程。由于是串行輸入結構,能夠節省51系列單片機I/O資源;且價格適中,分辨率較高,因此在儀器儀表中有較為廣泛的應用。 TLC2543的特點 (1)12位分辯率A/D轉換器; (2)在工作溫度范圍內10μs轉換時間; (3)11個模擬輸入通道; (4)3路內置自測試方式; (5)采樣率為66kbps; (6)線性誤差±1LSBmax; (7)有轉換結束輸出EOC; (8)具有單、雙極性輸出; (9)可編程的MSB或LSB前導; (10)可編程輸出數據長度。 TLC2543的引腳排列及說明 TLC2543有兩種封裝形式:DB、DW或N封裝以及FN封裝,這兩種封裝的引腳排列如圖1,引腳說明見表1 TLC2543電路圖和程序欣賞 #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit clock=P1^0; sbit d_in=P1^1; sbit d_out=P1^2; sbit _cs=P1^3; uchar a1,b1,c1,d1; float sum,sum1; double sum_final1; double sum_final; uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar wei[]={0xf7,0xfb,0xfd,0xfe}; void delay(unsigned char b) //50us { unsigned char a; for(;b>0;b--) for(a=22;a>0;a--); } void display(uchar a,uchar b,uchar c,uchar d) { P0=duan[a]|0x80; P2=wei[0]; delay(5); P2=0xff; P0=duan[b]; P2=wei[1]; delay(5); P2=0xff; P0=duan[c]; P2=wei[2]; delay(5); P2=0xff; P0=duan[d]; P2=wei[3]; delay(5); P2=0xff; } uint read(uchar port) { uchar i,al=0,ah=0; unsigned long ad; clock=0; _cs=0; port<<=4; for(i=0;i<4;i++) { d_in=port&0x80; clock=1; clock=0; port<<=1; } d_in=0; for(i=0;i<8;i++) { clock=1; clock=0; } _cs=1; delay(5); _cs=0; for(i=0;i<4;i++) { clock=1; ah<<=1; if(d_out)ah|=0x01; clock=0; } for(i=0;i<8;i++) { clock=1; al<<=1; if(d_out) al|=0x01; clock=0; } _cs=1; ad=(uint)ah; ad<<=8; ad|=al; return(ad); } void main() { uchar j; sum=0;sum1=0; sum_final=0; sum_final1=0; while(1) { for(j=0;j<128;j++) { sum1+=read(1); display(a1,b1,c1,d1); } sum=sum1/128; sum1=0; sum_final1=(sum/4095)*5; sum_final=sum_final1*1000; a1=(int)sum_final/1000; b1=(int)sum_final%1000/100; c1=(int)sum_final%1000%100/10; d1=(int)sum_final%10; display(a1,b1,c1,d1); } }
上傳時間: 2013-11-19
上傳用戶:shen1230
概述 HT46R32/HT46R34是8位高性能精簡指令集單片機,專門為需要A/D轉換的產品而設計,例如傳感器信號輸入。內置放大器/比較器和PWM調制功能使得這款單片機處理模擬信號的能力更加強大。 低功耗、I/O使用靈活、可編程分頻器、計數器、振蕩類型選擇、多通道A/D轉換運算放大器/比較器、脈沖測量功能、暫停和喚醒功能,使這款單片機可以廣泛應用于傳感器的信號處理、馬達控制、工業控制、消費類產品、子系統控制等等。
上傳時間: 2013-11-13
上傳用戶:哈哈hah
前言 自從盛群半導體公司成立以來,即致力于單片機產品的設計與開發。雖然盛群半導體提供給客戶各式各樣的半導體器件,但其中單片機仍是盛群的主要關鍵產品,未來盛群半導體仍將繼續擴展單片機產品系列完整性與功能性。通過長期累積的單片機研發經驗與技術,盛群半導體能為各式各樣的應用范圍開發出高性能且低價位的單片機芯片。許多連接到外部感應器的重要應用需要處理模擬信號,所有的這些應用,在它們可以被單片機處理之前需要通過一個A/D轉換器做模數信號的轉換。為了滿足這些需求,盛群開發出A/D系列的單片機,除了擁有I/O系列的所有特性和功能外,還含有集成的多通道A/D轉換器,它的解析度和通道個數可調。而PWM功能和I2C接口,則進一步增加了A/D系列單片機的功能和應用的可行性。
上傳時間: 2013-12-05
上傳用戶:waitingfy
在工作控制和智能化儀表中,通常由微型計算機進行實時控制及實時數據處理。計算機所加工的信息總是數字量,而被控制或測量對象的有關參量往往是連續變化的模擬量,如溫度、速度、壓力等等,與此對應的電信號是模擬電信號。計算機要處理這種信號,首先必須將模擬量轉換成數字量,這一轉換過程就是“模/數轉換(A/D)”
上傳時間: 2013-10-24
上傳用戶:tzl1975
提出了采用兩段式同軸波紋慢波結構實現雙頻高功率微波輸出的相對論返波振蕩器, 推導了該結構的TM0n模式色散方程,數值求解了兩段式同軸波紋慢波結構TM0n模色散曲線,分析了該器件X波段雙頻高功率微波輸出的產生機理, 分析中考慮了電子注在慢波結構第二段工作效率不變和下降時的雙頻工作點情況,并運用2.5 維全電磁粒子模擬程序驗證了雙頻微波信號的可靠性。關鍵詞高功率微波;雙頻;X 波段;相對論返波振蕩器 當前, 應用于高功率微波效應的微波器件只有一個主頻率,已有的實驗結果表明,在現有條件下,單頻高功率微波用于攻擊敵方的電子系統所需的功率遠遠大于單只高功率微波源所能產生的功率,即破壞閾值很高[1]。但是,如果用兩個或多個頻率相近的高功率微波波束產生拍頻后用于攻擊電子系統,那么所需的功率密度將大大減小,即效應閾值大大下降, 采用這種方式將有可能在現有的技術下使高功率微波實用化[2],但是雙頻及多頻高功率微波源器件的研究目前是十分前沿的課題,處于剛起步階段,在國內外極少有報道[2~4],因而,用單個微波源器件產生穩定輸出的雙頻甚至多頻高功率微波具有重要的實際應用價值和學術價值,是高功率微波領域又一個新興的研究方向, 在高功率微波武器和新體制雷達等方面將有良好的應用前景。
上傳時間: 2013-10-31
上傳用戶:kxyw404582151
HT46R23/HT46C23是8位高性能精簡指令集單片機,專門為需要A/D轉換的產品而設計,例如傳感器信號輸入。掩膜版本HT46C23與OTP版本HT46R23引腳和功能完全相同。低功耗、I/O使用靈活、可編程分頻器、計數器、振蕩類型選擇、多通道A/D轉換、脈沖測量功能、I2C通信、暫停和喚醒功能,使這款單片機可以廣泛應用于傳感器的A/D轉換、馬達控制、工業控制、消費類產品等系統中。
上傳時間: 2013-11-02
上傳用戶:aa54
HT46R22單片機在電磁爐功率控制中的應用:介紹了電磁爐的基本工作原理,并提出了一種采用HT46R22 單片機實現電磁爐功率穩定輸出的功率控制方法,最后簡單介紹了該方法的軟硬件設計過程。關鍵詞:電磁爐;HT46R22;功率控制引言近年來,隨著環保和節能意識的逐步提高,一種新興的"綠色的廚具"--電磁爐正在家庭中普及。它改變了傳統的明火烹調方式,利用電磁感應原理,使電流通過內置的線圈時產生磁場,磁場內的磁力線感應到鐵制器皿,產生無數高速運動的小渦流,渦流產生的巨大循環能量轉換為有效熱能,使鍋具自行高速加熱,最終直接加熱食物。電磁爐的熱效率達到90%以上,同時它無煙無灰,無污染,不升高室溫,不產生一氧化碳等有害物質,安全環保。電磁爐還采用了微電腦控制,能夠隨意控制溫度。正是由于上述種種優點,電磁爐在發達國家的家庭普及率已經達到80%以上。為了提高電熱轉換率,家用電磁爐一般采用的是高頻電磁爐,須將工頻電整流成直流電后再逆變成20kHz 以上的高頻振蕩電流,在高頻下,穩定功率輸出和實時檢測就成了設計的難點和關鍵所在。采用Holtek 公司產的A/D 型單片機HT46R22 可以方便地實現定溫控制、實時檢測、報警檢測和功率控制,本文著重介紹功率控制的實現。
上傳時間: 2013-10-21
上傳用戶:colinal
8051單片機系統擴展與接口技術:第一節 8051 單片機系統擴展概述第二節 單片機外部存儲器擴展第三節 單片機輸入輸出(I/O)口擴展及應用第四節 LED顯示器接口電路及顯示程序第五節 單片機鍵盤接口技術第六節 單片機與數模(D/A)及模數(A/D)轉換1、地址總線(Address Bus,簡寫為AB)地址總線可傳送單片機送出的地址信號,用于訪問外部存儲器單元或I/O端口。A 地址總線是單向的,地址信號只是由單片機向外發出。B 地址總線的數目決定了可直接訪問的存儲器單元的數目。例如N位地址,可以產生2N個連續地址編碼,因此可訪問2N個存儲單元,即通常所說的尋址范圍為 2N個地址單元。MCS—51單片機有十六位地址線,因此存儲器展范圍可達216 = 64KB地址單元。C 掛在總線上的器件,只有地址被選中的單元才能與CPU交換數據,其余的都暫時不能操作,否則會引起數據沖突。2、數據總線(Data Bus,簡寫為DB)數據總線用于在單片機與存儲器之間或單片機與I/O端口之間傳送數據。A 單片機系統數據總線的位數與單片機處理數據的字長一致。例如MCS—51單片機是8位字長,所以數據總線的位數也是8位。B 數據總線是雙向的,即可以進行兩個方向的數據傳送。3、控制總線(Control Bus,簡寫為CB)控制總線實際上就是一組控制信號線,包括單片機發出的,以及從其它部件送給單片機的各種控制或聯絡信號。對于一條控制信號線來說,其傳送方向是單向的,但是由不同方向的控制信號線組合的控制總線則表示為雙向的。總線結構形式大大減少了單片機系統中連接線的數目,提高了系統的可靠性,增加了系統的靈活性。此外,總線結構也使擴展易于實現,各功能部件只要符合總線規范,就可以很方便地接入系統,實現單片機擴展。
上傳時間: 2013-10-18
上傳用戶:assef
介紹用PIC16F84單片機制作的電子密碼鎖。PIC16F84單片機共18個引腳,13個可用I/O接口。芯片內有1K×14的FLASHROM程序存儲器,36×8的靜態RAM的通用寄存器,64×8的EEPROM的數據存儲器,8級深度的硬堆棧。 用PIC單片機設計的電子密碼鎖微芯公司生產的PIC8位COMS單片機,采用類RISC指令集和哈弗總線結構,以及先進的流水線時序,與傳統51單片機相比其在速度和性能方面更具優越性和先進性。PIC單片機的另一個優點是片上硬件資源豐富,集成常見的EPROM、DAC、PWM以及看門狗電路。這使得硬件電路的設計更加簡單,節約設計成本,提高整機性能。因此PIC單片機已成為產品開發,尤其是產品設計和研制階段的首選控制器。本文介紹用PIC16F84單片機制作的電子密碼鎖。PIC16F84單片機共18個引腳,13個可用I/O接口。芯片內有1K×14的FLASHROM程序存儲器,36×8的靜態RAM的通用寄存器,64×8的EEPROM的數據存儲器,8級深度的硬堆棧。硬件設計 電路原理見圖1。Xx8位數據線接4x4鍵盤矩陣電路,面板布局見表1,A、B、C、D為備用功能鍵。RA0、RA7輸出4組編碼二進制數據,經74LS139譯碼后輸出逐行掃描信號,送RB4-RB7列信號輸入端。余下半個139譯碼器動揚聲器。RB2接中功率三極管基極,驅動繼電器動作。有效密碼長度為4位,根據實際情況,可通過修改源程序增加密碼位數。產品初始密碼為3345,這是一隨機數,無特殊意義,目的是為防止被套解。用戶可按*號鍵修改密碼,按#號鍵結束。輸入密碼并按#號確認之后,腳輸出RB2腳輸出高電平,繼電器閉合,執行一次開鎖動作。 若用戶輸入的密碼正確,揚聲器發出一聲稍長的“滴”提示聲,若輸入的密碼與上次修改的不符,則發出短促的“滴”聲。連續3次輸入密碼錯誤之后,程序鎖死,揚聲器報警。直到CPU被復位或從新上電。軟件設計 軟件流程圖見圖3。CPU上電或復位之后將最近一次修改并保存到EEPROM的密碼讀出,最為參照密匙。然后等待用戶輸入開鎖密碼。若5分鐘以內沒有接受到用戶的任何輸入,CPU自動轉入掉電模式,用戶輸入任意值可喚醒CPU。每次修改密碼之后,CPU將新的密碼存入內部4個連續的EEPROM單元,掉電后該數據任有效。每執行一次開鎖指令,CPU將當前輸入密碼與該值比較,看是否真確,并給出相應的提示和控制。布 局 所有元件均使用SMD表貼封裝,縮小體積,便于產品安裝,60X60雙面PCB板,頂層是一體化輸入鍵盤,底層是元件層。成型后的產品體積小巧,能很方便的嵌入防盜鐵門、保險箱柜。
上傳時間: 2013-10-31
上傳用戶:uuuuuuu