產(chǎn)品型號(hào):VK2C21A/B/C/D 產(chǎn)品品牌:VINKA/永嘉微/永嘉微電 封裝形式:SOP28/24/20/16 裸片:DICE(邦定COB)/COG(邦定玻璃用) 產(chǎn)品年份:新年份 聯(lián) 系 人:許碩 Q Q:191 888 5898 聯(lián)系手機(jī):18898582398(信) 原廠直銷,工程服務(wù),技術(shù)支持,價(jià)格最具優(yōu)勢(shì)!QT459 VK2C21A/B/C/D概述: VK2C21是一個(gè)點(diǎn)陣式存儲(chǔ)映射的LCD驅(qū)動(dòng)器,可支持最大80點(diǎn)(20SEGx4COM)或者最大128點(diǎn)(16SEGx8COM)的LCD屏。單片機(jī)可通過(guò)I2C接口配置顯示參數(shù)和讀寫顯示數(shù)據(jù),也可通過(guò)指令進(jìn)入省電模式。其高抗干擾,低功耗的特性適用于水電氣表以及工控儀表類產(chǎn)品。 特點(diǎn): ★ 工作電壓 2.4-5.5V ★ 內(nèi)置32 kHz RC振蕩器 ★ 偏置電壓(BIAS)可配置為1/3、1/4 ★ COM周期(DUTY)可配置為1/4、1/8 ★ 內(nèi)置顯示RAM為20x4位、16x8位 ★ 幀頻可配置為80Hz、160Hz ★ 省電模式(通過(guò)關(guān)顯示和關(guān)振蕩器進(jìn)入)
標(biāo)簽: VK2C21 VK2C21A VK2C21B VK2C21C VK2C21D LCD抗干擾段碼屏驅(qū)動(dòng) 段碼屏驅(qū)動(dòng)抗干擾
上傳時(shí)間: 2022-06-09
上傳用戶:2937735731
描述了NTC使用B值計(jì)算出實(shí)際溫度與輸出的電壓之間的關(guān)系。
標(biāo)簽: ntc計(jì)算
上傳時(shí)間: 2022-06-15
上傳用戶:
BC20-TE-B NB-Iot 評(píng)估板評(píng)估板原廠原理圖V1.2。完整對(duì)應(yīng)實(shí)物裝置。
上傳時(shí)間: 2022-06-17
上傳用戶:
ASR M08-B設(shè)置軟件 V3.2 arduino 2560+ASRM08-B測(cè)試程序 arduino UNO+ASRM08-B測(cè)試程序語(yǔ)音控制臺(tái)燈電路圖及C51源碼(不帶校驗(yàn)碼) 繼電器模塊設(shè)置。 ASR M08-B是一款語(yǔ)音識(shí)別模塊。首先對(duì)模塊添加一些關(guān)鍵字,對(duì)著該模塊說(shuō)出關(guān)鍵字,串口會(huì)返回三位的數(shù),如果是返回特定的三位數(shù)字,還會(huì)引起ASR M08-B的相關(guān)引腳電平的變化。【測(cè)試】①打開(kāi)“ASR M08-B設(shè)置軟件 V3.2.exe”。②選擇“串口號(hào)”、“打開(kāi)串口”、點(diǎn)選“十六進(jìn)制顯示”。③將USB轉(zhuǎn)串口模塊連接到語(yǔ)音識(shí)別模塊上。接線方法如下:語(yǔ)音模塊TXD --> USB模塊RXD語(yǔ)音模塊RXD --> USB模塊TXD語(yǔ)音模塊GND --> USB模塊GND語(yǔ)音模塊3V3 --> USB模塊3V3(此端為3.3V電源供電端。)④將模塊的開(kāi)關(guān)撥到“A”端,最好再按一次上面的大按鈕(按一次即可,為了確保模塊工作在正確的模式)。⑤對(duì)著模塊說(shuō)“開(kāi)燈”、“關(guān)燈”模塊會(huì)返回“0B”、“0A”,表示正常(注意:0B對(duì)應(yīng)返回值010,0B對(duì)應(yīng)返回值010,返回是16進(jìn)制顯示的嘛,設(shè)置的時(shí)候是10進(jìn)制設(shè)置的)。
標(biāo)簽: ASR M08-B
上傳時(shí)間: 2022-07-06
上傳用戶:aben
本書針對(duì)Atmel公司的AVR系列單片機(jī)和ImageCraft公司的ICC AVR開(kāi)發(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)是:深入淺出,從最基本的概念開(kāi)始,循序漸進(jìn)地講解單片機(jī)的應(yīng)用開(kāi)發(fā);列舉了大量實(shí)例,使讀者能從實(shí)際應(yīng)用中掌握單片機(jī)的開(kāi)發(fā)與應(yīng)用技術(shù)。本書適合作為從事單片機(jī)開(kāi)發(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
上傳用戶:元宵漢堡包
假定從8位AD中讀取數(shù)據(jù)(如果是更高位的AD可定義數(shù)據(jù)類型為int),子程序?yàn)間et_ad(); 1、限幅濾波法(又稱程序判斷濾波法) A、方法: 根據(jù)經(jīng)驗(yàn)判斷,確定兩次采樣允許的最大偏差值(設(shè)為A) 每次檢測(cè)到新值時(shí)判斷: 如果本次值與上次值之差<=A,則本次值有效 如果本次值與上次值之差>A,則本次值無(wú)效,放棄本次值,用上次值代替本次值 B、優(yōu)點(diǎn): 能有效克服因偶然因素引起的脈沖干擾 C、缺點(diǎn) 無(wú)法抑制那種周期性的干擾 平滑度差 /* A值可根據(jù)實(shí)際情況調(diào)整 value為有效值,new_value為當(dāng)前采樣值 濾波程序返回有效的實(shí)際值 */ #define A 10 char value; char filter() { char new_value; new_value = get_ad(); if ( ( new_value - value > A ) || ( value - new_value > A ) return value; return new_value; } 2、中位值濾波法 A、方法: 連續(xù)采樣N次(N取奇數(shù)) 把N次采樣值按大小排列 取中間值為本次有效值 B、優(yōu)點(diǎn): 能有效克服因偶然因素引起的波動(dòng)干擾 對(duì)溫度、液位的變化緩慢的被測(cè)參數(shù)有良好的濾波效果 C、缺點(diǎn): 對(duì)流量、速度等快速變化的參數(shù)不宜 /* N值可根據(jù)實(shí)際情況調(diào)整 排序采用冒泡法*/
上傳時(shí)間: 2014-12-26
上傳用戶:nanshan
All inputs of the C16x family have Schmitt-Trigger input characteristics. These Schmitt-Triggers are intended to always provide proper internal low and high levels, even if anundefined voltage level (between TTL-VIL and TTL-VIH) is externally applied to the pin.The hysteresis of these inputs, however, is very small, and can not be properly used in anapplication to suppress signal noise, and to shape slow rising/falling input transitions.Thus, it must be taken care that rising/falling input signals pass the undefined area of theTTL-specification between VIL and VIH with a sufficient rise/fall time, as generally usualand specified for TTL components (e.g. 74LS series: gates 1V/us, clock inputs 20V/us).The effect of the implemented Schmitt-Trigger is that even if the input signal remains inthe undefined area, well defined low/high levels are generated internally. Note that allinput signals are evaluated at specific sample points (depending on the input and theperipheral function connected to it), at that signal transitions are detected if twoconsecutive samples show different levels. Thus, only the current level of an input signalat these sample points is relevant, that means, the necessary rise/fall times of the inputsignal is only dependant on the sample rate, that is the distance in time between twoconsecutive evaluation time points. If an input signal, for instance, is sampled throughsoftware every 10us, it is irrelevant, which input level would be seen between thesamples. Thus, it would be allowable for the signal to take 10us to pass through theundefined area. Due to the sample rate of 10us, it is assured that only one sample canoccur while the signal is within the undefined area, and no incorrect transition will bedetected. For inputs which are connected to a peripheral function, e.g. capture inputs, thesample rate is determined by the clock cycle of the peripheral unit. In the case of theCAPCOM unit this means a sample rate of 400ns @ 20MHz CPU clock. This requiresinput signals to pass through the undefined area within these 400ns in order to avoidmultiple capture events.For input signals, which do not provide the required rise/fall times, external circuitry mustbe used to shape the signal transitions.In the attached diagram, the effect of the sample rate is shown. The numbers 1 to 5 in thediagram represent possible sample points. Waveform a) shows the result if the inputsignal transition time through the undefined TTL-level area is less than the time distancebetween the sample points (sampling at 1, 2, 3, and 4). Waveform b) can be the result ifthe sampling is performed more than once within the undefined area (sampling at 1, 2, 5,3, and 4).Sample points:1. Evaluation of the signal clearly results in a low level2. Either a low or a high level can be sampled here. If low is sampled, no transition willbe detected. If the sample results in a high level, a transition is detected, and anappropriate action (e.g. capture) might take place.3. Evaluation here clearly results in a high level. If the previous sample 2) had alreadydetected a high, there is no change. If the previous sample 2) showed a low, atransition from low to high is detected now.
標(biāo)簽: Signal Input Fall Rise
上傳時(shí)間: 2013-10-23
上傳用戶:copu
串行編程器源程序(Keil C語(yǔ)言)//FID=01:AT89C2051系列編程器//實(shí)現(xiàn)編程的讀,寫,擦等細(xì)節(jié)//AT89C2051的特殊處:給XTAL一個(gè)脈沖,地址計(jì)數(shù)加1;P1的引腳排列與AT89C51相反,需要用函數(shù)轉(zhuǎn)換#include <e51pro.h> #define C2051_P3_7 P1_0#define C2051_P1 P0//注意引腳排列相反#define C2051_P3_0 P1_1#define C2051_P3_1 P1_2#define C2051_XTAL P1_4#define C2051_P3_2 P1_5#define C2051_P3_3 P1_6#define C2051_P3_4 P1_7#define C2051_P3_5 P3_5 void InitPro01()//編程前的準(zhǔn)備工作{ SetVpp0V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=0; Delay_ms(20); nAddress=0x0000; SetVpp5V();} void ProOver01()//編程結(jié)束后的工作,設(shè)置合適的引腳電平{ SetVpp5V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=1;} BYTE GetData()//從P0口獲得數(shù)據(jù){ B_0=P0_7; B_1=P0_6; B_2=P0_5; B_3=P0_4; B_4=P0_3; B_5=P0_2; B_6=P0_1; B_7=P0_0; return B;} void SetData(BYTE DataByte)//轉(zhuǎn)換并設(shè)置P0口的數(shù)據(jù){ B=DataByte; P0_0=B_7; P0_1=B_6; P0_2=B_5; P0_3=B_4; P0_4=B_3; P0_5=B_2; P0_6=B_1; P0_7=B_0;} void ReadSign01()//讀特征字{ InitPro01(); Delay_ms(1);//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào) C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(20); ComBuf[2]=GetData(); C2051_XTAL=1; C2051_XTAL=0; Delay_us(20); ComBuf[3]=GetData(); ComBuf[4]=0xff;//----------------------------------------------------------------------------- ProOver01();} void Erase01()//擦除器件{ InitPro01();//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào) C2051_P3_3=1; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(1); SetVpp12V(); Delay_ms(1); C2051_P3_2=0; Delay_ms(10); C2051_P3_2=1; Delay_ms(1);//----------------------------------------------------------------------------- ProOver01();} BOOL Write01(BYTE Data)//寫器件{//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào) //寫一個(gè)單元 C2051_P3_3=0; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; SetData(Data); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); Delay_us(20); C2051_P3_4=0; Delay_ms(2); nTimeOut=0; P0=0xff; nTimeOut=0; while(!GetData()==Data)//效驗(yàn):循環(huán)讀,直到讀出與寫入的數(shù)相同 { nTimeOut++; if(nTimeOut>1000)//超時(shí)了 { return 0; } } C2051_XTAL=1; C2051_XTAL=0;//一個(gè)脈沖指向下一個(gè)單元//----------------------------------------------------------------------------- return 1;} BYTE Read01()//讀器件{ BYTE Data;//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào) //讀一個(gè)單元 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=1; C2051_P3_7=1; Data=GetData(); C2051_XTAL=1; C2051_XTAL=0;//一個(gè)脈沖指向下一個(gè)單元//----------------------------------------------------------------------------- return Data;} void Lock01()//寫鎖定位{ InitPro01();//先設(shè)置成編程狀態(tài)//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào) if(ComBuf[2]>=1)//ComBuf[2]為鎖定位 { C2051_P3_3=1; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; Delay_us(20); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); } if(ComBuf[2]>=2) { C2051_P3_3=1; C2051_P3_4=1; C2051_P3_5=0; C2051_P3_7=0; Delay_us(20); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); }//----------------------------------------------------------------------------- ProOver01();} void PreparePro01()//設(shè)置pw中的函數(shù)指針,讓主程序可以調(diào)用上面的函數(shù){ pw.fpInitPro=InitPro01; pw.fpReadSign=ReadSign01; pw.fpErase=Erase01; pw.fpWrite=Write01; pw.fpRead=Read01; pw.fpLock=Lock01; pw.fpProOver=ProOver01;}
上傳時(shí)間: 2013-11-12
上傳用戶:gut1234567
1、程序的基本格式先介紹二條偽指令:EQU ——標(biāo)號(hào)賦值偽指令ORG ——地址定義偽指令PIC16C5X在RESET后指令計(jì)算器PC被置為全“1”,所以PIC16C5X幾種型號(hào)芯片的復(fù)位地址為:PIC16C54/55:1FFHPIC16C56:3FFHPIC16C57/58:7FFH一般來(lái)說(shuō),PIC的源程序并沒(méi)有要求統(tǒng)一的格式,大家可以根據(jù)自己的風(fēng)格來(lái)編寫。但這里我們推薦一種清晰明了的格式TITLE This is ⋯⋯ ;程序標(biāo)題;--------------------------------------;名稱定義和變量定義;--------------------------------------F0 EQU 0RTCC EQU 1PC EQU 2STATUS EQU 3FSR EQU 4RA EQU 5RB EQU 6RC EQU 7┋PIC16C54 EQU 1FFH ;芯片復(fù)位地址PIC16C56 EQU 3FFHPIC16C57 EQU 7FFH;-----------------------------------------ORG PIC16C54 GOTO MAIN ;在復(fù)位地址處轉(zhuǎn)入主程序ORG 0 ;在0000H開(kāi)始存放程序;-----------------------------------------;子程序區(qū);-----------------------------------------DELAY MOVLW 255┋RETLW 0;------------------------------------------;主程序區(qū);------------------------------------------MAINMOVLW B‘00000000’TRIS RB ;RB已由偽指令定義為6,即B口┋LOOPBSF RB,7 CALL DELAYBCF RB,7 CALL DELAY┋GOTO LOOP;-------------------------------------------END ;程序結(jié)束注:MAIN標(biāo)號(hào)一定要處在0頁(yè)面內(nèi)。2、程序設(shè)計(jì)基礎(chǔ)
標(biāo)簽: PIC 單片機(jī)程序設(shè)計(jì)
上傳時(shí)間: 2013-11-14
上傳用戶:cjf0304
C++完美演繹 經(jīng)典算法 如 /* 頭文件:my_Include.h */ #include <stdio.h> /* 展開(kāi)C語(yǔ)言的內(nèi)建函數(shù)指令 */ #define PI 3.1415926 /* 宏常量,在稍后章節(jié)再詳解 */ #define circle(radius) (PI*radius*radius) /* 宏函數(shù),圓的面積 */ /* 將比較數(shù)值大小的函數(shù)寫在自編include文件內(nèi) */ int show_big_or_small (int a,int b,int c) { int tmp if (a>b) { tmp = a a = b b = tmp } if (b>c) { tmp = b b = c c = tmp } if (a>b) { tmp = a a = b b = tmp } printf("由小至大排序之后的結(jié)果:%d %d %d\n", a, b, c) } 程序執(zhí)行結(jié)果: 由小至大排序之后的結(jié)果:1 2 3 可將內(nèi)建函數(shù)的include文件展開(kāi)在自編的include文件中 圓圈的面積是=201.0619264
標(biāo)簽: my_Include include define 3.141
上傳時(shí)間: 2014-01-17
上傳用戶:epson850
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1