上一課我們的第一個(gè)項(xiàng)目完成了,可能有懂C語言的朋友會(huì)說,"這和PC機(jī)上的C語言沒有多大的區(qū)別呀"。的確沒有太大的區(qū)別,C語言只是一種程序語言的統(tǒng)稱,針對不同的處理器相關(guān)的C語言都會(huì)有一些細(xì)節(jié)的改變。編寫PC機(jī)的
接觸單片機(jī)快兩年了,不過只是非常業(yè)余的興趣,實(shí)踐卻不多,到現(xiàn)在還算是個(gè)初學(xué)者吧。這幾天給自己的任務(wù)就是搞定步進(jìn)電機(jī)的單片機(jī)控制。以前曾看過有關(guān)步進(jìn)電機(jī)原理和控制的資料,畢竟自己沒有做過,對其具體原理還
在嵌入式系統(tǒng)中,延時(shí)是經(jīng)常需要使用的一種手段,延時(shí)的方法可以通過使用類似于"NOP"的指令來實(shí)現(xiàn),但是如果延時(shí)的時(shí)間比較 長,如果使用太多的"NOP"指令則會(huì)消耗過多的儲(chǔ)存空間,最好的方法是使用子程序(匯編語言中)或子函數(shù)(高級語言中)。
上一文中擴(kuò)展了單片機(jī)的程序存儲(chǔ)器,4KB存儲(chǔ)空間提升到64KB。其實(shí),4K的代碼空間還湊合,但是51自帶的256B數(shù)據(jù)存儲(chǔ)空間使用起來還真緊張,其中留給用戶的連128B都不到,所以不得不擴(kuò)展片外RAM。擴(kuò)展RAM方法和擴(kuò)展RO
源于一年前想自己動(dòng)手給51寫個(gè)OS,編譯選Large模式,調(diào)試時(shí)整個(gè)流程都跑的好好的,可是燒寫到片上后得不到預(yù)期的效果,后來查書才知道51單片機(jī)片上只有4KRom,如果沒有擴(kuò)展片外Rom,當(dāng)訪問4K以外的程序空間,程序指針
最開始學(xué)習(xí)C語言時(shí),使用printf和scanf進(jìn)行格式化輸入輸出十分方便。學(xué)習(xí)單片機(jī)有很長時(shí)間了,之前要再屏幕上顯示一個(gè)變量或者通過串口傳出一些變量值觀測的話,需要進(jìn)行一系列的取余取整運(yùn)算,很是麻煩。最近又研究
單片機(jī)簡介單片微型計(jì)算機(jī)簡稱單片機(jī),簡單來說就是集CPU(運(yùn)算、控制)、RAM(數(shù)據(jù)存儲(chǔ)-內(nèi)存)、ROM(程序存儲(chǔ))、輸入輸出設(shè)備(串口、并口等)和中斷系統(tǒng)處于同一芯片的器件,在我們自己的個(gè)人電腦中,CPU、RAM、ROM、I/
一、填空題1、51單片機(jī)的定時(shí)器T1工作在工作方式0計(jì)數(shù)模式下,定時(shí)器T0工作在工作方式1定時(shí)模式下。則TMOD的值應(yīng)為 0x41 。2、AT89S51單片機(jī)定時(shí)器的四種工作方式中,可自動(dòng)裝載初始值的是方式 2 ,該工作方式是 8
特點(diǎn):哈佛結(jié)構(gòu),程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器分開,兩者各有一個(gè)相互獨(dú)立的64K(0x0000 ~ 0xFFFF)的尋址空間(準(zhǔn)確地說,內(nèi)部數(shù)據(jù)存儲(chǔ)器與外部數(shù)據(jù)存儲(chǔ)器不是一回事)。程序存儲(chǔ)器:① 用于存放程序(可執(zhí)行的二進(jìn)制代碼映像
存儲(chǔ)器分為程序存儲(chǔ)器(ROM)和數(shù)據(jù)存儲(chǔ)器(RAM),兩種又都可以分為片內(nèi)和片外,片外即需要自己在單片機(jī)外部擴(kuò)展。8051單片機(jī)的片內(nèi)程序存儲(chǔ)器有4K,片內(nèi)數(shù)據(jù)存儲(chǔ)器有256個(gè)字節(jié),其中又分為高128字節(jié)位特殊功能寄存器區(qū)
一般編譯器的堆棧用于保存局部變量、函數(shù)的參數(shù)、函數(shù)的返回值、中斷上下文信息等。但Keil對局部變量、函數(shù)參數(shù)預(yù)先分配空間(放在靜態(tài)全局變量區(qū)),Keil的堆棧只是用于保存函數(shù)嵌套調(diào)用的PC、中斷上下文信息。從主程
(1)以直接地址為目的操作數(shù)的指令MOV direct,A 例: MOV 20H,AMOV direct,Rn MOV 20H,R1MOV direct1,direct2 MOV 20H,30HMOV direct,@Ri MOV 20H,@R1MOV direct,#data MOV 20H,#34H(2)以間接地址為目的操作數(shù)的指
單片機(jī)簡介單片微型計(jì)算機(jī)簡稱單片機(jī),簡單來說就是集CPU(運(yùn)算、控制)、RAM(數(shù)據(jù)存儲(chǔ)-內(nèi)存)、ROM(程序存儲(chǔ))、輸入輸出設(shè)備(串口、并口等)和中斷系統(tǒng)處于同一芯片的器件,在我們自己的個(gè)人電腦中,CPU、RAM、ROM、I/
單片機(jī)定時(shí)器的使用可以說非常簡單,只要掌握原理,有一點(diǎn)的C語言基礎(chǔ)就行了。要點(diǎn)有以下幾個(gè):1. 一定要知道英文縮寫的原形,這樣寄存器的名字就不用記了。理解是最好的記憶方法。好的教材一定會(huì)給出所有英文縮寫的
上一篇說了一點(diǎn)點(diǎn)關(guān)于8X8點(diǎn)陣的驅(qū)動(dòng)編寫技巧以及寫LED燈時(shí)應(yīng)注意的一些小細(xì)節(jié),那么這次我就繼續(xù)補(bǔ)上上次挖的坑吧,說一下16X16點(diǎn)陣的編寫技巧,主要講一下思路,因?yàn)樵趯?6X16點(diǎn)陣驅(qū)動(dòng)時(shí),很多人一上來大腦一片空白
首先點(diǎn)陣:(以最簡單的8X8為例,16X16的以后再說) 8X8點(diǎn)陣個(gè)人感覺點(diǎn)陣需要注意的地方有:第一個(gè)就是驅(qū)動(dòng)點(diǎn)陣的方式我認(rèn)為8X8點(diǎn)陣的驅(qū)動(dòng)程序分為行掃描和列掃描兩種。比如行掃描就是用一層for循環(huán):先選中第一行,
這次我接著上次的說,講一下 復(fù)合按鍵和 矩陣鍵盤。先說矩陣鍵盤,因?yàn)槲覍懙慕M合鍵代碼是在矩陣鍵盤的基礎(chǔ)上寫的,當(dāng)然在獨(dú)立按鍵上寫組合鍵更簡單一些。所以當(dāng)你矩陣鍵盤的組合鍵會(huì)寫的時(shí)候,你在獨(dú)立按鍵上的組合
說明一下,我下面要說的LCD1602的芯片驅(qū)動(dòng)是HD44780,如果你們的LCD1602驅(qū)動(dòng)芯片不是HD44780,那么下面的內(nèi)容是不適用的。我對LCD1602的整體理解這里說一下我對LCD1602的整體理解哈,LCD1602是一個(gè)可以顯示兩行字符的
上次說的LCD1602的編程挺復(fù)雜的,這次我說一個(gè)簡單一點(diǎn)的:步進(jìn)電機(jī)。這里不說步進(jìn)電機(jī)的 "細(xì)分" 實(shí)驗(yàn),只說一下有關(guān)步進(jìn)電機(jī)的基礎(chǔ)概念以及步進(jìn)電機(jī)的三種工作方式——單拍、雙拍、單雙拍,現(xiàn)在步進(jìn)電機(jī)
一、PWMPulse Width Modulation脈沖寬度調(diào)制,簡稱PWM。PWM(脈沖寬度調(diào)制)對模擬信號(hào)電平進(jìn)行數(shù)字編碼的方法,計(jì)算機(jī)只能輸出0或5V的數(shù)字電壓值而不能輸出模擬電壓,而我們?nèi)绻氆@得一個(gè)模擬電壓值,則需通過使用高