單片機(jī)
大家好,我叫吳堅(jiān)鴻,從事單片機(jī)項(xiàng)目開(kāi)發(fā)已經(jīng)有快十年了。現(xiàn)在借21IC這個(gè)平臺(tái)把我認(rèn)為最有價(jià)值的東西分享給大家。我這個(gè)技術(shù)貼每個(gè)星期更新一兩篇,直到我江郎才盡為止。再次感謝21IC給我們提供這個(gè)交流分享的平臺(tái)。
第一節(jié):吳堅(jiān)鴻談初學(xué)單片機(jī)的誤區(qū)。
第二節(jié):delay()延時(shí)實(shí)現(xiàn)LED燈的閃爍。
第三節(jié):累計(jì)主循環(huán)次數(shù)使LED燈閃爍。
第四節(jié):累計(jì)定時(shí)中斷次數(shù)使LED燈閃爍。
第五節(jié):蜂鳴器的驅(qū)動(dòng)程序。
第六節(jié):在主函數(shù)中利用累計(jì)主循環(huán)次數(shù)來(lái)實(shí)現(xiàn)獨(dú)立按鍵的檢測(cè)。
第七節(jié):在主函數(shù)中利用累計(jì)定時(shí)中斷的次數(shù)來(lái)實(shí)現(xiàn)獨(dú)立按鍵的檢測(cè)。
第八節(jié):在定時(shí)中斷函數(shù)里執(zhí)行獨(dú)立按鍵的掃描程序。
第九節(jié):獨(dú)立按鍵的雙擊按鍵觸發(fā)。
第十節(jié):兩個(gè)獨(dú)立按鍵的組合按鍵觸發(fā)。
第十一節(jié):同一個(gè)按鍵短按與長(zhǎng)按的區(qū)別觸發(fā)。
第十二節(jié):按住一個(gè)獨(dú)立按鍵不松手的連續(xù)步進(jìn)觸發(fā)。
第十三節(jié):按住一個(gè)獨(dú)立按鍵不松手的加速勻速觸發(fā)。
第十四節(jié):矩陣鍵盤的單個(gè)觸發(fā)。
第十五節(jié):矩陣鍵盤單個(gè)觸發(fā)的壓縮代碼編程。
第十六節(jié):矩陣鍵盤的組合按鍵觸發(fā)。
第十七節(jié):兩片聯(lián)級(jí)74HC595驅(qū)動(dòng)16個(gè)LED燈的基本驅(qū)動(dòng)程序。
.第十八節(jié):把74HC595驅(qū)動(dòng)程序翻譯成類似單片機(jī)IO口直接驅(qū)動(dòng)的方式。
第十九節(jié):依次逐個(gè)點(diǎn)亮LED之后,再依次逐個(gè)熄滅LED的跑馬燈程序。
第二十節(jié):依次逐個(gè)亮燈并且每次只能亮一個(gè)燈的跑馬燈程序。
第二十一節(jié):多任務(wù)并行處理兩路跑馬燈。
第二十二節(jié):獨(dú)立按鍵控制跑馬燈的方向。
第二十三節(jié):獨(dú)立按鍵控制跑馬燈的速度。
第二十四節(jié):獨(dú)立按鍵控制跑馬燈的啟動(dòng)和暫停。
第二十五節(jié):用LED燈和按鍵來(lái)模擬工業(yè)自動(dòng)化設(shè)備的運(yùn)動(dòng)控制。
第二十六節(jié):在主函數(shù)while循環(huán)中驅(qū)動(dòng)數(shù)碼管的動(dòng)態(tài)掃描程序。
第二十七節(jié):在定時(shí)中斷里動(dòng)態(tài)掃描數(shù)碼管的程序。
第二十八節(jié):數(shù)碼管通過(guò)切換窗口來(lái)設(shè)置參數(shù)。
第二十九節(jié):數(shù)碼管通過(guò)切換窗口來(lái)設(shè)置參數(shù),并且不顯示為0的高位。
第三十節(jié):數(shù)碼管通過(guò)閃爍來(lái)設(shè)置數(shù)據(jù)。
第三十一節(jié):數(shù)碼管通過(guò)一二級(jí)菜單來(lái)設(shè)置數(shù)據(jù)的綜合程序。
第三十二節(jié):數(shù)碼管中的倒計(jì)時(shí)程序。
第三十三節(jié):能設(shè)置速度檔位的數(shù)碼管倒計(jì)時(shí)程序。
第三十四節(jié):在數(shù)碼管中實(shí)現(xiàn)iphone4S開(kāi)機(jī)密碼鎖的程序。
第三十五節(jié):帶數(shù)碼管顯示的象棋比賽專用計(jì)時(shí)器。
第三十六節(jié):帶數(shù)碼管顯示的加法簡(jiǎn)易計(jì)算器。
第三十七節(jié):數(shù)碼管作為儀表盤顯示跑馬燈的方向,速度和運(yùn)行狀態(tài)。
第三十八節(jié):判斷數(shù)據(jù)尾來(lái)接收一串?dāng)?shù)據(jù)的串口通用程序框架。
第三十九節(jié):判斷數(shù)據(jù)頭來(lái)接收一串?dāng)?shù)據(jù)的串口通用程序框架。
第四十節(jié):常用的自定義串口通訊協(xié)議。
第四十一節(jié):在串口接收中斷里即時(shí)解析數(shù)據(jù)頭的特殊程序框架。
第四十二節(jié):通過(guò)串口用delay延時(shí)方式發(fā)送一串?dāng)?shù)據(jù)。
第四十三節(jié):通過(guò)串口用計(jì)數(shù)延時(shí)方式發(fā)送一串?dāng)?shù)據(jù)。
第四十四節(jié):從機(jī)的串口收發(fā)綜合程序框架
第四十五節(jié):主機(jī)的串口收發(fā)綜合程序框架
第四十六節(jié):利用AT24C02進(jìn)行掉電后的數(shù)據(jù)保存。
第四十七節(jié):操作AT24C02時(shí),利用“一氣呵成的定時(shí)器延時(shí)”改善數(shù)碼管的閃爍現(xiàn)象。
第四十八節(jié):利用DS1302做一個(gè)實(shí)時(shí)時(shí)鐘 。
第四十九節(jié):利用DS18B20做一個(gè)溫控器 。
第五十節(jié):利用ADC0832采集電壓信號(hào),用平均法和區(qū)間法進(jìn)行軟件濾波處理。
第五十一節(jié):利用ADC0832采集電壓信號(hào),用連續(xù)N次一致性的方法進(jìn)行濾波處理。
第五十二節(jié):程序后續(xù)升級(jí)修改的利器,return語(yǔ)句鮮為人知的用法。
第五十三節(jié):指針的第一大好處,讓一個(gè)函數(shù)可以封裝多個(gè)相當(dāng)于return語(yǔ)句返回的參數(shù)。
第五十四節(jié):指針的第二大好處,指針作為數(shù)組在函數(shù)中的輸入接口。
第五十五節(jié):指針的第三大好處,指針作為數(shù)組在函數(shù)中的輸出接口。
第五十六節(jié):指針的第四大好處,指針作為數(shù)組在函數(shù)中的輸入輸出接口。
第五十七節(jié):為指針加上緊箍咒const,避免意外修改了只做輸入接口的數(shù)據(jù)。
第五十八節(jié):指針的第五大好處,指針在眾多數(shù)組中的中轉(zhuǎn)站作用。
第五十九節(jié):串口程序第40,44,45節(jié)中存在一個(gè)bug,特此緊急公告。
第六十節(jié):用關(guān)中斷和互斥量來(lái)保護(hù)多線程共享的全局變量。
第六十一節(jié):組合BCD碼,非組合BCD碼,以及數(shù)值三者之間的相互轉(zhuǎn)換和關(guān)系。
第六十二節(jié):大數(shù)據(jù)的加法運(yùn)算。
第六十三節(jié):大數(shù)據(jù)的減法運(yùn)算。
第六十四節(jié):大數(shù)據(jù)的乘法運(yùn)算。
第六十五節(jié):大數(shù)據(jù)的除法運(yùn)算。
第六十六節(jié):?jiǎn)纹瑱C(jī)外部中斷的基礎(chǔ)。
第六十七節(jié):利用外部中斷實(shí)現(xiàn)模擬串口數(shù)據(jù)的收發(fā)。
第六十八節(jié):?jiǎn)纹瑱C(jī)C語(yǔ)言的多文件編程技巧。
第六十九節(jié):使用static關(guān)鍵字可以減少全局變量的使用。
第七十節(jié):深入講解液晶屏的構(gòu)字過(guò)程。
第七十一節(jié):液晶屏的字符,16點(diǎn)陣,24點(diǎn)陣和32點(diǎn)陣的顯示程序。
第七十二節(jié):在液晶屏中把字體順時(shí)針旋轉(zhuǎn)90度顯示的算法程序。
第七十三節(jié):在液晶屏中把字體鏡像顯示的算法程序。
第七十四節(jié):在液晶屏中讓字體可以跨區(qū)域無(wú)縫對(duì)接顯示的算法程序。
第七十五節(jié):在12864液晶屏中讓字體以1個(gè)點(diǎn)陣為單位進(jìn)行移動(dòng)顯示的算法程序。
第七十六節(jié):如何把一個(gè)任意數(shù)值的變量顯示在液晶屏上。
第七十七節(jié):在1個(gè)窗口里通過(guò)移動(dòng)光標(biāo)來(lái)設(shè)置不同參數(shù)的液晶屏菜單程序。
第七十八節(jié):在多個(gè)窗口里通過(guò)移動(dòng)光標(biāo)來(lái)設(shè)置不同參數(shù)的液晶屏菜單程序。
第七十九節(jié):通過(guò)主菜單移動(dòng)光標(biāo)來(lái)進(jìn)入子菜單窗口的液晶屏程序。
第八十節(jié):調(diào)用液晶屏內(nèi)部字庫(kù)來(lái)顯示漢字或字符的坐標(biāo)體系和本質(zhì)。
第八十一節(jié):液晶屏顯示串口發(fā)送過(guò)來(lái)的任意漢字和字符。
第八十二節(jié):如何通過(guò)調(diào)用液晶屏內(nèi)部字庫(kù)把一個(gè)任意數(shù)值的變量顯示出來(lái)。
第八十三節(jié):矩陣鍵盤輸入任意數(shù)字或小數(shù)點(diǎn)的液晶屏顯示程序。
第八十四節(jié):實(shí)時(shí)同步把鍵盤輸入的BCD碼數(shù)組轉(zhuǎn)換成數(shù)值的液晶屏顯示程序。
第八十五節(jié):實(shí)時(shí)同步把加減按鍵輸入的數(shù)值轉(zhuǎn)換成BCD碼數(shù)組的液晶屏顯示程序。
第八十六節(jié):數(shù)字鍵盤與液晶菜單的綜合程序。
第八十七節(jié):鄭文顯捐贈(zèng)的工控項(xiàng)目源代碼。
第八十八節(jié):電子稱連續(xù)不斷從串口對(duì)外發(fā)送數(shù)據(jù),單片機(jī)靠關(guān)鍵字快速截取有效數(shù)據(jù)串。
第八十九節(jié):用單片機(jī)內(nèi)部定時(shí)器做一個(gè)時(shí)鐘。
第九十節(jié):針對(duì)行程開(kāi)關(guān)感應(yīng)器,分享一種既能及時(shí)響應(yīng),又能抗干擾處理的識(shí)別思路。