本書針對(duì)Atmel公司的AVR系列單片機(jī)和ImageCraft公司的ICC AVR開發(fā)環(huán)境,詳細(xì)地介紹了AT90LS8535的C語(yǔ)言程序設(shè)計(jì)。全書共有13章,其內(nèi)容既涉及到了單片機(jī)的結(jié)構(gòu)原理、指令系統(tǒng)、內(nèi)容資源和外部功能擴(kuò)展,又包含了單片機(jī)的編程工具——ICC AVR C編程器的數(shù)據(jù)類型、控制流、函數(shù)和指針等。本書的特點(diǎn)是:深入淺出,從最基本的概念開始,循序漸進(jìn)地講解單片機(jī)的應(yīng)用開發(fā);列舉了大量實(shí)例,使讀者能從實(shí)際應(yīng)用中掌握單片機(jī)的開發(fā)與應(yīng)用技術(shù)。本書適合作為從事單片機(jī)開發(fā)人員的參考用書。書中先后講解了C語(yǔ)言基礎(chǔ)、AVR單片機(jī)基礎(chǔ),并舉了一些簡(jiǎn)單的實(shí)例。本書非常適合初學(xué)者。 【目錄信息】 第1章 單片機(jī)系統(tǒng)概述 1. 1 AVR系列單片機(jī)的特點(diǎn) 1. 2 AT90系列單片機(jī)簡(jiǎn)介 第2章 AT90LS8535單片機(jī)的基礎(chǔ)知識(shí) 2. 1 AT90LS8535單片機(jī)的總體結(jié)構(gòu) 2. 1. 1 AT90LS8535單片機(jī)的中央處理器 2. 1. 2 AT90LS8535單片機(jī)的存儲(chǔ)器組織 2. 1. 3 AT90LS8535單片機(jī)的I/O接口 2. 1. 4 AT90LS8535單片機(jī)的內(nèi)部資源 2. 1. 5 AT90LS8535單片機(jī)的時(shí)鐘電路 2. 1. 6 AT90LS8535單片機(jī)的系統(tǒng)復(fù)位 2. 1. 7 AT90LS8535單片機(jī)的節(jié)電方式 2. 1. 8 AT90LS8535單片機(jī)的芯片引腳 2. 2 AT90LS8535單片機(jī)的指令系統(tǒng) 2. 2. 1 匯編指令格式 2. 2. 2 尋址方式 2. 2. 3 偽指令 2. 2. 4 指令類型及數(shù)據(jù)操作方式 2. 3 應(yīng)用程序設(shè)計(jì) 2. 3. 1 程序設(shè)計(jì)方法 2. 3. 2 應(yīng)用程序舉例 第3章 AT90LS8535單片機(jī)的C編程 3. 1 支持高級(jí)語(yǔ)言編程的AVR系列單片機(jī) 3. 2 AVR的C編譯器 3. 3 ICCAVR介紹 3. 3. 1 安裝ICCAVR 3. 3. 2 設(shè)置ICCAVR 3. 4 用ICCAVR編寫應(yīng)用程序 3. 5 下載程序文件 第4章 數(shù)據(jù)類型. 運(yùn)算符和表達(dá)式 4. 1 ICCAVR支持的數(shù)據(jù)類型 4. 2 常量與變量 4. 2. 1 常量 4. 2. 2 變量 4. 3 AT90LS8535的存儲(chǔ)空間 4. 4 算術(shù)和賦值運(yùn)算 4. 4. 1 算術(shù)運(yùn)算符和算術(shù)表達(dá)式 4. 4. 2 賦值運(yùn)算符和賦值表達(dá)式 4. 5 邏輯運(yùn)算 4. 6 關(guān)系運(yùn)算 4. 7 位操作 4. 7. 1 位邏輯運(yùn)算 4. 7. 2 移位運(yùn)算 4. 8 逗號(hào)運(yùn)算 第5章 控制流 5. 1 C語(yǔ)言的結(jié)構(gòu)化程序設(shè)計(jì) 5. 1. 1 順序結(jié)構(gòu) 5. 1. 2 選擇結(jié)構(gòu) 5. 1. 3 循環(huán)結(jié)構(gòu) 5. 2 選擇語(yǔ)句 5. 2. 1 if語(yǔ)句 5. 2. 2 switch分支 5. 2. 3 選擇語(yǔ)句的嵌套 5. 3 循環(huán)語(yǔ)句 5. 3. 1 while語(yǔ)句 5. 3. 2 do…while語(yǔ)句 5. 3. 3 for語(yǔ)句 5. 3. 4 循環(huán)語(yǔ)句嵌套 5. 3. 5 break語(yǔ)句和continue語(yǔ)句 第6章 函數(shù) 6. 1 函數(shù)的定義 6. 1. 1 函數(shù)的定義的一般形式 6. 1. 2 函數(shù)的參數(shù) 6. 1. 3 函數(shù)的值 6. 2 函數(shù)的調(diào)用 6. 2. 1 函數(shù)的一般調(diào)用 6. 2. 2 函數(shù)的遞歸調(diào)用 6. 2. 3 函數(shù)的嵌套調(diào)用 6. 3 變量的類型及其存儲(chǔ)方式 6. 3. 1 局部變量 6. 3. 2 局部變量的存儲(chǔ)方式 6. 3. 3 全局變量 6. 3. 4 全局變量的存儲(chǔ)方式 6. 4 內(nèi)部函數(shù)和外部函數(shù) 6. 4. 1 內(nèi)部函數(shù) 6. 4. 2 外部函數(shù) 第7章 指針 7. 1 指針和指針變量 7. 2 指針變量的定義和引用 7. 2. 1 指針變量的定義 7. 2. 2 指針變量的引用 7. 2. 3 指針變量作為函數(shù)參數(shù) 7. 3 數(shù)組與指針 7. 3. 1 指向數(shù)組元素的指針變量 7. 3. 2 數(shù)組元素的引用 通過(guò)指針 7. 3. 3 數(shù)組名作為函數(shù)參數(shù) 7. 3. 4 指向多維數(shù)組的元素的指針變量 7. 4 字符串與指針 7. 4. 1 字符串的表示形式 7. 4. 2 字符串指針變量與字符數(shù)組的區(qū)別 7. 5 函數(shù)與指針 7. 5. 1 函數(shù)指針變量 7. 5. 2 指針型函數(shù) 7. 6 指向指針的指針 7. 7 有關(guān)指針數(shù)據(jù)類型和運(yùn)算小結(jié) 7. 7. 1 有關(guān)指針的數(shù)據(jù)類型的小結(jié) 7. 7. 2 指針運(yùn)算的小結(jié) 第8章 結(jié)構(gòu)體和共用體 8. 1 結(jié)構(gòu)體的定義和引用 8. 1. 1 結(jié)構(gòu)體類型變量的定義 8. 1. 2 結(jié)構(gòu)體類型變量的引用 8. 2 結(jié)構(gòu)類型的說(shuō)明 8. 3 結(jié)構(gòu)體變量的初始化和賦值 8. 3. 1 結(jié)構(gòu)體變量的初始化 8. 3. 2 結(jié)構(gòu)體變量的賦值 8. 4 結(jié)構(gòu)體數(shù)組 8. 4. 1 結(jié)構(gòu)體數(shù)組的定義 8. 4. 2 結(jié)構(gòu)體數(shù)組的初始化 8. 5 指向結(jié)構(gòu)體類型變量的指針 8. 5. 1 指向結(jié)構(gòu)體變量的指針 8. 5. 2 指向結(jié)構(gòu)體數(shù)組的指針 8. 5. 3 指向結(jié)構(gòu)體變量的指針做函數(shù)參數(shù) 8. 6 共用體 8. 6. 1 共用體的定義 8. 6. 2 共用體變量的引用 第9章 A190LS8535的內(nèi)部資源 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 單片機(jī)的中斷功能 9. 2. 2 AT90LS8535單片機(jī)的中斷系統(tǒng) 9. 2. 3 1CCAVRC編譯器的中斷操作 9. 2. 4 中斷的編程 9. 3 串行數(shù)據(jù)通信 9. 3. 1 數(shù)據(jù)通信基礎(chǔ) 9. 3. 2 AT90LS8535的同步串行接口 9. 3. 3 AT90LS8535的異步串行接口 9. 4 定時(shí)/計(jì)數(shù)器 9. 4. 1 定時(shí)/計(jì)數(shù)器的分頻器 9. 4. 2 8位定時(shí)/計(jì)數(shù)器0 9. 4. 3 16位定時(shí)/計(jì)數(shù)器1 9. 4. 4 8位定時(shí)/計(jì)數(shù)器2 9. 5 EEPROM 9. 5. 1 與EEPROM有關(guān)的寄存器 9. 5. 2 EEPROM讀/寫操作 9. 5. 3 EEPROM的應(yīng)用舉例 9. 6 模擬量輸入接口 9. 6. 1 模數(shù)轉(zhuǎn)換器的結(jié)構(gòu) 9. 6. 2 ADC的使用 9. 6. 3 與模數(shù)轉(zhuǎn)換器有關(guān)的寄存器 9. 6. 4 ADC的噪聲消除 9. 6. 5 ADC的應(yīng)用舉例 9. 7 模擬比較器 9. 7. 1 模擬比較器的結(jié)構(gòu) 9. 7. 2 與模擬比較器有關(guān)的寄存器 9. 7. 3 模擬比較器的應(yīng)用舉例 第10章 AT90LS8535的人機(jī)接口編程 10. 1 鍵盤接口 10. 1. 1 非矩陣式鍵盤 10. 1. 2 矩陣式鍵盤 10. 2 LED顯示輸出 10. 2. 1 LED的靜態(tài)顯示 10. 2. 2 LED的動(dòng)態(tài)掃描顯示 10. 2. 3 動(dòng)態(tài)掃描顯示專用芯片MC14489 10. 3 LCD顯示輸出 10. 3. 1 字符型LCD 10. 3. 2 點(diǎn)陣型LCD 10. 4 ISD2500系列語(yǔ)音芯片的編程 10. 4. 1 ISD2500的片內(nèi)結(jié)構(gòu)和引腳 10. 4. 2 ISD2500的操作 10. 4. 3 ISD2500和單片機(jī)的接口及編程 10. 5 TP-uP微型打印機(jī) 10. 5. 1 TP-uP打印機(jī)的接口和邏輯時(shí)序 10. 5. 2 P-uP打印機(jī)的打印命令和字符代碼 10. 5. 3 AT90LS8535與TP-uP系列打印機(jī)的接口及編程 10. 6 IC卡 10. 6. 1 IC卡讀寫裝置 10. 6. 2 IC卡軟件 第11章 AT90LS8535的外圍擴(kuò)展 11. 1 簡(jiǎn)單I/O擴(kuò)展芯片 11. 1. 1 用74LS377擴(kuò)展數(shù)據(jù)輸出接口 11. 1. 2 數(shù)據(jù)輸入接口 11. 2 模擬量輸出 11. 2. 1 D/A轉(zhuǎn)換器簡(jiǎn)介 11. 2. 2 8位數(shù)模轉(zhuǎn)換器DAC0832 11. 2. 3 8位數(shù)模轉(zhuǎn)換器與單片機(jī)的接口及編程 11. 2. 4 12位數(shù)模轉(zhuǎn)換器DACl230 11. 2. 5 12位數(shù)模轉(zhuǎn)換器與單片機(jī)的接口及編程 11. 3 可編程I/O擴(kuò)展芯片8255A 11. 3. 1 8255A的引腳和內(nèi)部結(jié)構(gòu) 11. 3. 2 8255A的工作方式 11. 3. 3 8255A的控制字 11. 3. 4 AT90LS8535和8255A的接口 11. 4 帶片內(nèi)RAM的I/O擴(kuò)展芯片8155 11. 4. 1 8155的引腳和內(nèi)部結(jié)構(gòu). 11. 4. 2 8155的I/O口工作方式 11. 4. 3 8155的定時(shí)/計(jì)數(shù)器 11. 4. 4 8155的命令和狀態(tài)字 11. 4. 5 AT90LS8535與8155的接口及編程 11. 5 定時(shí)/計(jì)數(shù)器芯片8253 11. 5. 1 8253的信號(hào)引腳和邏輯結(jié)構(gòu) 11. 5. 2 8253的工作方式 11. 5. 3 8253的控制字 11. 5. 4 AT90LS8535與8253的接口及編程 11. 6 實(shí)時(shí)時(shí)鐘芯片DS1302 11. 6. 1 DS1302的引腳和內(nèi)部結(jié)構(gòu) 11. 6. 2 DS1302的控制方式 11. 6. 3 AT90LS8535與DS1302的接口與編程 11. 7 數(shù)字溫度傳感器DS18B20 11. 7. 1 DSl8B20的引腳和內(nèi)部結(jié)構(gòu) 11. 7. 2 DS18B20的溫度測(cè)量 11. 7. 3 AT90LS8535與DS18B20的接口與編程 第12章 AT90LS8535的通信編程 12. 1 串口通信 12. 1. 1 異步串口UART通信 12. 1. 2 同步串口SPI通信 12. 2 I2C總線 12. 2. 1 I2C總線協(xié)議 12. 2. 2 采用AT90LS8535的并行I/O口模擬I2C總線 12. 3 CAN總線 12. 3. 1 CAN總線的特點(diǎn) 12. 3. 2 CAN協(xié)議的信息格式 12. 3. 3 CAN控制器SJA1000 12. 3. 4 AT90LS8535與SJA1000的接口及編程 12. 4 AT90LS8535單片機(jī)與PC的串行通信 12. 4. 1 基于VC 6. 0的PC串口通信 12. 4. 2 應(yīng)用實(shí)例 第13章 系統(tǒng)設(shè)計(jì)中的程序處理方法 13. 1 數(shù)字濾波處理 13. 1. 1 平滑濾波 13. 1. 2 中值濾波 13. 1. 3 程序判斷濾波 13. 2 非線性處理 13. 2. 1 查表法 13. 2. 2 線性插值法
標(biāo)簽: AVR 單片機(jī) C語(yǔ)言編程 應(yīng)用實(shí)例
上傳時(shí)間: 2013-11-04
上傳用戶:元宵漢堡包
《AVR單片機(jī)原理及應(yīng)用》詳細(xì)介紹了ATMEL公司開發(fā)的ATmega8系列高速嵌入式單片機(jī)的硬件結(jié)構(gòu)、工作原理、指令系統(tǒng)、接口電路、C編程實(shí)例,以及一些特殊功能的應(yīng)用和設(shè)計(jì),對(duì)讀者掌握和使用其他ATmega8系列的單片機(jī)具有極高的參考價(jià)值 AVR單片機(jī)原理及應(yīng)用》具有較強(qiáng)的系統(tǒng)性和實(shí)用性,可作為有關(guān)工程技術(shù)人員和硬件工程師的應(yīng)用手冊(cè),亦可作為高等院校自動(dòng)化、計(jì)算機(jī)、儀器儀表、電子等專業(yè)的教學(xué)參考書。 目錄 第1章 緒論 1.1 AVR單片機(jī)的主要特性 1.2 主流單片機(jī)系列產(chǎn)品比較 1.2.1 ATMEL公司的單片機(jī) 1.2.2 Mkcochip公司的單片機(jī) 1.2.3 Cygnal公司的單片機(jī) 第2章 AVR系統(tǒng)結(jié)構(gòu)概況 2.1 AVR單片機(jī)ATmega8的總體結(jié)構(gòu) 2.1.1 ATmega8特點(diǎn) 2.1.2 結(jié)構(gòu)框圖 2.1.3 ATmega8單片機(jī)封裝與引腳 2.2 中央處理器 2.2.1 算術(shù)邏輯單元 2.2.2 指令執(zhí)行時(shí)序 2.2.3 復(fù)位和中斷處理 2.3 ATmega8存儲(chǔ)器 2.3.1 Flash程序存儲(chǔ)器 2.3.2 SRAM 2.3.3 E2pROM 2.3.4 I/O寄存器 2.3.5 ATmega8的鎖定位、熔絲位、標(biāo)識(shí)位和校正位 2.4 系統(tǒng)時(shí)鐘及其分配 2.4.1 時(shí)鐘源 2.4.2 外部晶振 2.4.3 外部低頻石英晶振 2.4.4 外部:RC振蕩器 2.4.5 可校準(zhǔn)內(nèi)部.RC振蕩器 2.4.6 外部時(shí)鐘源 2.4.7 異步定時(shí)器/計(jì)數(shù)器振蕩器 2.5 系統(tǒng)電源管理和休眠模式 2.5.1 MCU控制寄存器 2.5.2 空閑模式 2.5.3 ADC降噪模式 2.5.4 掉電模式 2.5.5 省電模式 2.5.6 等待模式 2.5.7 最小功耗 2.6 系統(tǒng)復(fù)位 2.6.1 復(fù)位源 2.6.2 MCU控制狀態(tài)寄存器——MCUCSR 2.6.3 內(nèi)部參考電壓源 2.7 I/O端口 2.7.1 通用數(shù)字I/O端口 2.7.2 數(shù)字輸入使能和休眠模式 2.7.3 端口的第二功能 第3章 ATmega8指令系統(tǒng) 3.1 ATmega8匯編指令格式 3.1.1 匯編語(yǔ)言源文件 3.1.2 指令系統(tǒng)中使用的符號(hào) 3.1.3 ATmega8指令 3.1.4 匯編器偽指令 3.1.5 表達(dá)式 3.1.6 文件“M8def.inc” 3.2 尋址方式和尋址空間 3.3 算術(shù)和邏輯指令 3.3.1 加法指令 3.3.2 減法指令 3.3.3 取反碼指令 3.3.4 取補(bǔ)碼指令 3.3.5 比較指令 3.3.6 邏輯與指令 3.3.7 邏輯或指令 3.3.8 邏輯異或 3.3.9 乘法指令 3.4 轉(zhuǎn)移指令 3.4.1 無(wú)條件轉(zhuǎn)移指令 3.4.2 條件轉(zhuǎn)移指令 3.4.3 子程序調(diào)用和返回指令 3.5 數(shù)據(jù)傳送指令 3.5.1 直接尋址數(shù)據(jù)傳送指令 3.5.2 間接尋址數(shù)據(jù)傳送指令 3.5.3 從程序存儲(chǔ)器中取數(shù)裝入寄存器指令 3.5.4 寫程序存儲(chǔ)器指令 3.5.5 I/0端口數(shù)據(jù)傳送 3.5.6 堆棧操作指令 3.6 位操作和位測(cè)試指令 3.6.1 帶進(jìn)位邏輯操作指令 3.6.2 位變量傳送指令 3.6.3 位變量修改指令 3.7 MCU控制指令 3.8 指令的應(yīng)用 第4章 中斷系統(tǒng) 4.1 外部向量 4.2 外部中斷 4.3 中斷寄存器 第5章 自編程功能 5.1 引導(dǎo)加載技術(shù) 5.2 相關(guān)I/O寄存器 5.3 Flash程序存儲(chǔ)器的自編程 5.4 Flash自編程應(yīng)用 第6章 定時(shí)器/計(jì)數(shù)器 6.1 定時(shí)器/計(jì)數(shù)器預(yù)定比例分頻器 6.2 8位定時(shí)器/計(jì)數(shù)器O(T/CO) 6.3 16位定時(shí)器/計(jì)數(shù)器1(T/C1) 6.3.1 T/C1的結(jié)構(gòu) 6.3.2 T/C1的操作模式 6.3.3 T/121的計(jì)數(shù)時(shí)序 6.3.4 T/C1的寄存器 6.4 8位定時(shí)器/計(jì)數(shù)器2(T/C2) 6.4.1 T/C2的組成結(jié)構(gòu) 6.4.2 T/C2的操作模式 6.4.3 T/C2的計(jì)數(shù)時(shí)序 6.4.4 T/02的寄存器 6.4.5 T/C2的異步操作 6.5 看門狗定時(shí)器 第7章 AVR單片機(jī)通信接口 7.1 AVR單片機(jī)串行接口 7.1.1 同步串行接口 7.1.2 通用串行接口 7.2 兩線串行TWT總線接口 7.2.1 TWT模塊概述 7.2.2 TWT寄存器描述 7.2.3 TWT總線的使用 7.2.4 多主機(jī)系統(tǒng)和仲裁 第8章 AVR單片機(jī)A/D轉(zhuǎn)換及模擬比較器 8.1 A/D轉(zhuǎn)換 8.1.1 A/D轉(zhuǎn)換概述 8.1.2 ADC噪聲抑制器 8.1.3 ADC有關(guān)的寄存器 8.2 AvR單片機(jī)模擬比較器 第9章 系統(tǒng)擴(kuò)展技術(shù) 9.1 串行接口8位LED顯示驅(qū)動(dòng)器MAX7219 9.1.1 概述 9.1.2 引腳功能及內(nèi)部結(jié)構(gòu) 9.1.3 操作說(shuō)明 9.1.4 應(yīng)用 9.1.5 軟件設(shè)計(jì) 9.2 AT24C系列兩線串行總線E2PPOM 9.2.1 概述 9.2.2 引腳功能及內(nèi)部結(jié)構(gòu) 9.2.3 操作說(shuō)明 9.2.4 軟件設(shè)計(jì) 9.3 AT93C46——三線串行總線E2PPOM接口芯片 9.3.1 概述 9.3.2 內(nèi)部結(jié)構(gòu)及引腳功能 9.3.3 操作說(shuō)明 9.3.4 軟件設(shè)計(jì) 9.4 串行12位的ADCTL543 9.4.1 概述 9.4.2 內(nèi)部結(jié)構(gòu)及引腳功能 9.4.3 操作說(shuō)明 9.4.4 AD620放大器介紹 9.4.5 軟件設(shè)計(jì) 9.5 串行輸出16位ADCMAXl95 9.5.1 概述 9.5.2 引腳功能及內(nèi)部結(jié)構(gòu) 9.5.3 操作說(shuō)明 9.5.4 應(yīng)用 9.5.5 軟件設(shè)計(jì) 9.6 串行輸入DACTLC5615 9.6.1 概述 9.6.2 引腳功能及內(nèi)部結(jié)構(gòu) 9.6.3 操作說(shuō)明 9.6.4 軟件設(shè)計(jì) 9.7 串行12位的DACTLC5618 9.7.1 概述 9.7.2 內(nèi)部結(jié)構(gòu)及引腳功能 9.7.3 操作說(shuō)明 9.7.4 軟件設(shè)計(jì) 9.8 串行非易失性靜態(tài)RAMX24C44 9.8.1 概述 9.8.2 引腳功能及內(nèi)部結(jié)構(gòu) 9.8.3 操作說(shuō)明 9.8.4 軟件設(shè)計(jì) 9.9 數(shù)據(jù)閃速存儲(chǔ)器AT45DB041B 9.9.1 概述 9.9.2 引腳功能及內(nèi)部結(jié)構(gòu) 9.9.3 操作說(shuō)明 9.9.4 軟件設(shè)計(jì) 9.10 GM8164串行I/0擴(kuò)展芯片 9.10.1 概述 9.10.2 引腳功能說(shuō)明 9.10.3 操作說(shuō)明 9.10.4 軟件設(shè)計(jì) 9.11 接口綜合實(shí)例 附錄1 ICCACR簡(jiǎn)介 附錄2 ATmega8指令表 參考文獻(xiàn)
上傳時(shí)間: 2013-10-29
上傳用戶:lanwei
附件為:LCD12864顯示漢字和數(shù)字的程序與電路 /* 自定義延時(shí)子函數(shù) */ void delayms(uchar z) { int x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } /* 判斷LCD忙信號(hào)狀態(tài) */ void buys() { int dat; RW=1; RS=0; do { P0=0x00; E=1; dat=P0; E=0; dat=0x80 & dat; } while(!(dat==0x00)); } /* LCD寫指令函數(shù) */ void w_com(uchar com) { //buys(); RW=0; RS=0; E=1; P0=com; E=0; } /* LCD寫數(shù)據(jù)函數(shù) */ void w_date(uchar date) { //buys(); RW=0; RS=1; E=1; P0=date; E=0; } /* LCD選屏函數(shù) */ void select_screen(uchar screen) { switch(screen) { case 0: //選擇全屏 CS1=0; CS2=0; break; case 1: //選擇左屏 CS1=0; CS2=1; break; case 2: //選擇右屏 CS1=1; CS2=0; break; /* case 3: //選擇右屏 CS1=1; CS2=1; break; */ } } /* LCDx向上滾屏顯示 */ void lcd_rol() { int x; for(x=0;x<64;x++) { select_screen(0); w_com(0xc0+x); delayms(500); } } /* LCD清屏函數(shù):清屏從第一頁(yè)的第一列開始,總共8頁(yè),64列 */ void clear_screen(screen) { int x,y; select_screen(screen); //screen:0-選擇全屏,1-選擇左半屏,2-選擇右半屏 for(x=0xb8;x<0xc0;x++) //從0xb8-0xbf,共8頁(yè) { w_com(x); w_com(0x40); //列的初始地址是0x40 for(y=0;y<64;y++) { w_date(0x00); } } } /* LCD顯示漢字字庫(kù)函數(shù) */ void lcd_display_hanzi(uchar screen,uchar page,uchar col,uint mun) { //screen:選擇屏幕參數(shù),page:選擇頁(yè)參數(shù)0-3,col:選擇列參數(shù)0-3,mun:顯示第幾個(gè)漢字的參數(shù) int a; mun=mun*32; select_screen(screen); w_com(0xb8+(page*2)); w_com(0x40+(col*16)); for ( a=0;a<16;a++) { w_date(hanzi[mun++]); } w_com(0xb8+(page*2)+1); w_com(0x40+(col*16)); for ( a=0;a<16;a++) { w_date(hanzi[mun++]); } } /* LCD顯示字符字庫(kù)函數(shù) */ void lcd_display_zifuk(uchar screen,uchar page,uchar col,uchar mun) { //screen:選擇屏幕參數(shù),page:選擇頁(yè)參數(shù)0-3,col:選擇列參數(shù)0-7,mun:顯示第幾個(gè)漢字的參數(shù) int a; mun=mun*16; select_screen(screen); w_com(0xb8+(page*2)); w_com(0x40+(col*8)); for ( a=0;a<8;a++) { w_date(zifu[mun++]); } w_com(0xb8+(page*2)+1); w_com(0x40+(col*8)); for ( a=0;a<8;a++) { w_date(zifu[mun++]); } } /* LCD顯示數(shù)字字庫(kù)函數(shù) */ void lcd_display_shuzi(uchar screen,uchar page,uchar col,uchar mun) { //screen:選擇屏幕參數(shù),page:選擇頁(yè)參數(shù)0-3,col:選擇列參數(shù)0-7,mun:顯示第幾個(gè)漢字的參數(shù) int a; mun=mun*16; select_screen(screen); w_com(0xb8+(page*2)); w_com(0x40+(col*8)); for ( a=0;a<8;a++) { w_date(shuzi[mun++]); } w_com(0xb8+(page*2)+1); w_com(0x40+(col*8)); for ( a=0;a<8;a++) { w_date(shuzi[mun++]); } } /* LCD初始化函數(shù) */ void lcd_init() { w_com(0x3f); //LCD開顯示 w_com(0xc0); //LCD行初始地址,共64行 w_com(0xb8); //LCD頁(yè)初始地址,共8頁(yè) w_com(0x40); //LCD列初始地址,共64列 } /* LCD顯示主函數(shù) */ void main() { //第一行 int x; lcd_init(); //LCD初始化 clear_screen(0); //LCD清屏幕 lcd_display_shuzi(1,0,4,5); //LCD顯示數(shù)字 lcd_display_shuzi(1,0,5,1); //LCD顯示數(shù)字 lcd_display_hanzi(1,0,3,0); //LCD顯示漢字 lcd_display_hanzi(2,0,0,1); //LCD顯示漢字 //LCD字符漢字 lcd_display_hanzi(2,0,1,2); //LCD顯示漢字 //第二行 lcd_display_zifuk(1,1,2,0); //LCD顯示字符 lcd_display_zifuk(1,1,3,0); //LCD顯示字符 lcd_display_zifuk(1,1,4,0); //LCD顯示字符 lcd_display_zifuk(1,1,5,4); //LCD顯示字符 lcd_display_shuzi(1,1,6,8); //LCD顯示字符 lcd_display_shuzi(1,1,7,9); //LCD顯示字符 lcd_display_shuzi(2,1,0,5); //LCD顯示字符 lcd_display_shuzi(2,1,1,1); //LCD顯示字符 lcd_display_zifuk(2,1,2,4); lcd_display_zifuk(2,1,3,1); lcd_display_zifuk(2,1,4,2); lcd_display_zifuk(2,1,5,3); //第三行 for(x=0;x<4;x++) { lcd_display_hanzi(1,2,x,3+x); //LCD顯示漢字 } for(x=0;x<4;x++) { lcd_display_hanzi(2,2,x,7+x); //LCD顯示漢字 } //第四行 for(x=0;x<4;x++) { lcd_display_zifuk(1,3,x,5+x); //LCD顯示漢字 } lcd_display_shuzi(1,3,4,7); lcd_display_shuzi(1,3,5,5); lcd_display_shuzi(1,3,6,5); lcd_display_zifuk(1,3,7,9); lcd_display_shuzi(2,3,0,8); lcd_display_shuzi(2,3,1,9); lcd_display_shuzi(2,3,2,9); lcd_display_shuzi(2,3,3,5); lcd_display_shuzi(2,3,4,6); lcd_display_shuzi(2,3,5,8); lcd_display_shuzi(2,3,6,9); lcd_display_shuzi(2,3,7,2); while(1); /* while(1) { // LCD向上滾屏顯示 lcd_rol(); } */ }
標(biāo)簽: 12864 LCD 漢字 數(shù)字
上傳時(shí)間: 2013-11-08
上傳用戶:aeiouetla
51單片機(jī)串行口初值計(jì)算器
標(biāo)簽: 51單片機(jī) 串行口 初值計(jì)算器
上傳時(shí)間: 2013-10-08
上傳用戶:qw12
TLC2543是TI公司的12位串行模數(shù)轉(zhuǎn)換器,使用開關(guān)電容逐次逼近技術(shù)完成A/D轉(zhuǎn)換過(guò)程。由于是串行輸入結(jié)構(gòu),能夠節(jié)省51系列單片機(jī)I/O資源;且價(jià)格適中,分辨率較高,因此在儀器儀表中有較為廣泛的應(yīng)用。 TLC2543的特點(diǎn) (1)12位分辯率A/D轉(zhuǎn)換器; (2)在工作溫度范圍內(nèi)10μs轉(zhuǎn)換時(shí)間; (3)11個(gè)模擬輸入通道; (4)3路內(nèi)置自測(cè)試方式; (5)采樣率為66kbps; (6)線性誤差±1LSBmax; (7)有轉(zhuǎn)換結(jié)束輸出EOC; (8)具有單、雙極性輸出; (9)可編程的MSB或LSB前導(dǎo); (10)可編程輸出數(shù)據(jù)長(zhǎng)度。 TLC2543的引腳排列及說(shuō)明 TLC2543有兩種封裝形式:DB、DW或N封裝以及FN封裝,這兩種封裝的引腳排列如圖1,引腳說(shuō)明見表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); } }
上傳時(shí)間: 2013-11-19
上傳用戶:shen1230
atmega128串行操作lcd12864,另有ADC,PWM波,定時(shí)器的使用程序
標(biāo)簽: atmega 12864 128 lcd
上傳時(shí)間: 2013-10-18
上傳用戶:zm7516678
單片機(jī)系統(tǒng)多串行口設(shè)計(jì)技術(shù)研究
標(biāo)簽: 單片機(jī)系統(tǒng) 串行口 設(shè)計(jì)技術(shù)
上傳時(shí)間: 2013-10-16
上傳用戶:aig85
本資料是關(guān)于單片機(jī)電路設(shè)計(jì)的一些經(jīng)驗(yàn),希望對(duì)大家有所幫助。。。 前言 MCU發(fā)展趨勢(shì) 未來(lái)以及相當(dāng)長(zhǎng)的一段時(shí)間內(nèi),單片機(jī)應(yīng)用技術(shù)的發(fā)展趨勢(shì)為: 1、全盤CMOS化 CMOS 電路具有眾多的優(yōu)點(diǎn),如極寬的工作電壓范圍、極佳的本質(zhì)低功耗及功耗管理特征,形成了嵌入式系統(tǒng)獨(dú)特的低功耗及功耗管理應(yīng)用技術(shù)。 2、最大化的SoC設(shè)計(jì) 目前單片機(jī)已逐漸向片上系統(tǒng)發(fā)展,原有的單片機(jī)逐漸發(fā)展成通用型SoC 單片機(jī)(如C8051F 系列)或SoC 的標(biāo)準(zhǔn)IP 內(nèi)核(如DW8051_core),以及各種專用的SoC 單片機(jī)。 3、以串行方式為主的外圍擴(kuò)展 目前單片機(jī)外圍器件普遍提供了串行擴(kuò)展方式。串行擴(kuò)展具有簡(jiǎn)單、靈活、電路系統(tǒng)簡(jiǎn)單、占用I/O資源少等優(yōu)點(diǎn),是一種流行的擴(kuò)展方式。 4、8位機(jī)仍有巨大發(fā)展空間 電路常識(shí)性概念(1)-輸入、輸出阻抗 1、輸入阻抗 輸入阻抗是指一個(gè)電路輸入端的等效阻抗。在輸入端上加上一個(gè)電壓源U,測(cè)量輸入端的電流I,則輸入阻抗Rin=U/I。你可以把輸入端想象成一個(gè)電阻的兩端,這個(gè)電阻的阻值,就是輸入阻抗。 輸入阻抗跟一個(gè)普通的電抗元件沒什么兩樣,它反映了對(duì)電流阻礙作用的大小。 對(duì)于電壓驅(qū)動(dòng)的電路,輸入阻抗越大,則對(duì)電壓源的負(fù)載就越輕,因而就越容易驅(qū)動(dòng),也不會(huì)對(duì)信號(hào)源有影響;而對(duì)于電流驅(qū)動(dòng)型的電路,輸入阻抗越小,則對(duì)電流源的負(fù)載就越輕。因此,我們可以這樣認(rèn)為:如果是用電壓源來(lái)驅(qū)動(dòng)的,則輸入阻抗越大越好;如果是用電流源來(lái)驅(qū)動(dòng)的,則阻抗越小越好(注:只適合于低頻電路,在高頻電路中,還要考慮阻抗匹配問(wèn)題。另外如果要獲取最大輸出功率時(shí),也要考慮阻抗匹配問(wèn)題。)
標(biāo)簽: 單片機(jī)電路 常識(shí) 設(shè)計(jì)經(jīng)驗(yàn)
上傳時(shí)間: 2013-11-08
上傳用戶:元宵漢堡包
8位串行輸入平行輸入移位緩存器
上傳時(shí)間: 2013-11-05
上傳用戶:long14578
主要性能 與MCS-51單片機(jī)產(chǎn)品兼容 8K字節(jié)在線系統(tǒng)可編程Flash存儲(chǔ)器 1000次擦寫周期 4.0V-5.5V工作電壓 全靜態(tài)操作:0Hz~33Hz 三級(jí)加密程序存儲(chǔ)器 256*8字節(jié)的內(nèi)部數(shù)據(jù)存儲(chǔ)器 32個(gè)可編程I/O口線 三個(gè)16位定時(shí)器/計(jì)數(shù)器 八個(gè)中斷源 全雙工UART串行通道 低功耗空閑和掉電模式 掉電后中斷可喚醒 看門狗定時(shí)器 雙數(shù)據(jù)指針 掉電標(biāo)識(shí)符 快速編程周期 靈活I(lǐng)SP編程(字節(jié)和 模式) 綠色(-免費(fèi))工作包操作
上傳時(shí)間: 2013-10-29
上傳用戶:jisiwole
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1