用C語言進(jìn)行MCS51系列單片機(jī)程序設(shè)計(jì)是單片機(jī)開發(fā)和應(yīng)用的必然趨勢(shì)。Keil公司的C51編譯器支持經(jīng)典8051和8051派生產(chǎn)品的版本,通稱為Cx51。應(yīng)該說,Cx51是C語言在MCS51單片機(jī)上的擴(kuò)展,既有C語言的共性,又有它自己的特點(diǎn)。本文介紹的是Cx51程序設(shè)計(jì)時(shí)堆棧的計(jì)算方法。
基于MCS51設(shè)計(jì)的概念版的信號(hào)發(fā)生器
在此利用廉價(jià)的MCS51單片機(jī)設(shè)計(jì)了包含常用傳感器、數(shù)據(jù)采集模塊與USB通信接口的LabVIEW 實(shí)驗(yàn)教學(xué)系統(tǒng)。該系統(tǒng)使用USB接口與上位機(jī)通信并提供電源,而上位機(jī)編程直接調(diào)用VISA驅(qū)動(dòng)USB接口,大大降低了數(shù)據(jù)采集程序設(shè)計(jì)的難度。該系統(tǒng)可以滿足大學(xué)虛擬儀器實(shí)驗(yàn)教學(xué)的需要,性價(jià)比高,具有良好的推廣前景。
MCS51單片機(jī)標(biāo)準(zhǔn)構(gòu)成只有一組全雙工UART串行口,P3.0-RXD收、P3.1-TXD發(fā),如果要完成多路串口收發(fā),一般使用外部擴(kuò)展芯片,例如:GM8123/25,完成一擴(kuò)多路串口,但是,由于增加擴(kuò)展芯片,造成硬件成本增加,PCB板面增大,抗干擾性下降等不良因素,因此能盡量使用現(xiàn)有串口,利用分時(shí)切換技術(shù),完成串行口不同類型,不同端口的數(shù)據(jù)傳送是優(yōu)先選擇。
16位數(shù)據(jù)傳送指令(1條)這是89C51單片機(jī)唯一的一條16位立即數(shù)傳遞指令,其功能是將一個(gè)16位的立即數(shù)送入數(shù)據(jù)指針DPTR中去。其中高8位送入DPH,低8位送入DPL。MOV DPTR,#data16;#dataH→(DPH),#dataL→(DPL)16位
在此利用廉價(jià)的MCS51單片機(jī)設(shè)計(jì)了包含常用傳感器、數(shù)據(jù)采集模塊與USB通信接口的LabVIEW 實(shí)驗(yàn)教學(xué)系統(tǒng)。該系統(tǒng)使用USB接口與上位機(jī)通信并提供電源,而上位機(jī)編程直接調(diào)用VISA驅(qū)動(dòng)USB接口,大大降低了數(shù)據(jù)采集程序設(shè)計(jì)
方式1是16位計(jì)數(shù)結(jié)構(gòu)的工作方式,計(jì)數(shù)器由TH0全部8位和TL0全部8位構(gòu)成。與工作方式0基本相同,區(qū)別僅在于工作方式1的計(jì)數(shù)器TL1和TH1組成16位計(jì)數(shù)器,從而比工作方式0有更寬的定時(shí)/計(jì)數(shù)范圍。當(dāng)為計(jì)數(shù)工作方式時(shí),計(jì)數(shù)
算術(shù)運(yùn)算指令共有24條,算術(shù)運(yùn)算主要是執(zhí)行加、減、乘、除法四則運(yùn)算。另外MCS-51指令系統(tǒng)中有相當(dāng)一部分是進(jìn)行加、減1操作,BCD碼的運(yùn)算和調(diào)整,我們都?xì)w類為運(yùn)算指令。雖然MCS-51單片機(jī)的算術(shù)邏輯單元ALU僅能對(duì)8位
1、 算術(shù)邏輯單元(ALU)2、 累加器A,B寄存器、暫存器3、 程序狀態(tài)字(PSW):C AC FO RS1 RS0 OV - P4、 十進(jìn)制調(diào)整電路、布爾處理器它們功能包括: 加、減、乘、除算術(shù)運(yùn)算加1、減1運(yùn)算十進(jìn)制數(shù)調(diào)整 位操作置1、清
交換指令(5條)這5條指令的功能是把累加器A中的內(nèi)容與源操作數(shù)所指的數(shù)據(jù)相互交換。XCH A,Rn;(A)←→(Rn)累加器與工作寄存器Rn中的內(nèi)容互換XCH A,@Ri;(A)←→((Ri))累加器與工作寄存器Ri所指的存儲(chǔ)單元中
MSC-51 3字節(jié)和4字節(jié)浮點(diǎn)數(shù)計(jì)算程序,主要用于數(shù)據(jù)采集及上傳,經(jīng)過IEEE轉(zhuǎn)換,在上位機(jī)直接顯示.;這是本人使用的MSC-51 3字節(jié)和4字節(jié)浮點(diǎn)數(shù)計(jì)算程序,主要用于數(shù)據(jù)采集及上傳,經(jīng)過IEEE轉(zhuǎn)換,在上位機(jī)直接顯示。;本人
單片機(jī)的復(fù)位操作使單片機(jī)進(jìn)入初始化狀態(tài),其中包括使程序計(jì)數(shù)器PC=0000H,這表明程序從0000H地址單元開始執(zhí)行。單片機(jī)冷啟動(dòng)后,片內(nèi)RAM為隨機(jī)值,運(yùn)行中的復(fù)位操作不改變片內(nèi)RAM區(qū)中的內(nèi)容,21個(gè)特殊功能寄存器復(fù)
2個(gè)8位方式。工作方式3只適用于定時(shí)器0。如果使定時(shí)器1為工作方式3,則定時(shí)器1將處于關(guān)閉狀態(tài)。當(dāng)T0為工作方式3時(shí),THo和TL0分成2個(gè)獨(dú)立的8位計(jì)數(shù)器。其中,TL0既可用作定時(shí)器,又可用作計(jì)數(shù)器,并使用原T0的所有控制
指令總數(shù):111條操作碼:255個(gè)助記符:48個(gè)表3-1 MCS-51指令分類數(shù)據(jù)傳送指令(29)數(shù)據(jù)處理指令(48)位操作指令(12)程序控制指令(22)1)內(nèi)部傳送(16)2)外部傳送(4)3)查表(2)4)交換(5)5)棧操作(2)1)算術(shù)運(yùn)算(24)2)邏輯運(yùn)
堆棧操作類指令(2條)這4類指令的作用是把直接尋址單元的內(nèi)容傳送到堆棧指針SP所指的單元中,以及把SP所指單元的內(nèi)容送到直接尋址單元中。這類指令只有兩條,下述的第一條常稱為入棧操作指令,第二條稱為出棧操作指
以寄存器Rn為目的操作數(shù)的指令(3條)這3條指令的功能是把源操作數(shù)指定的內(nèi)容送到所選定的工作寄存器Rn中,源操作數(shù)不變。有直接、立即和寄存器尋址方式:MOV Rn,data ;(data)→(Rn) 直接尋址單元中的內(nèi)容送到寄
我們平常老是講8051,又有什么8031,現(xiàn)在又有89C51,89s51它們之間究竟是什么關(guān)系?MCS51是指由美國INTEL公司(生產(chǎn)CPU的英特爾)生產(chǎn)的一系列單片機(jī)的總稱,這一系列單片機(jī)包括了好些品種,如8031,8051,8751,8032
查表指令(2條)這組指令的功能是對(duì)存放于程序存儲(chǔ)器中的數(shù)據(jù)表格進(jìn)行查找傳送,使用變址尋址方式:MOVC A,@A+DPTR;((A))+(DPTR)→(A) 表格地址單元中的內(nèi)容送到累加器A中MOVC A,@A+PC;((PC))+1→(A),
;閃爍顯示等待鍵入子程序;功能:R1指向閃爍位地址,等待鍵入,并返回鍵值;占用:A,B,R0,R5;入口:R1出口:AORG0150HCURSOR:MOVR0,#3FH;R0指向顯示緩沖區(qū)CUR_0:MOVB,@R1;R1指向閃爍位地址CUR_1:MOV@R1,BJNCCUR_3MO
LCALLaddr16;長(zhǎng)調(diào)用ACALLaddr11;絕對(duì)調(diào)用1.LCALLaddr16;轉(zhuǎn)移范圍64KB,不影響標(biāo)志位。執(zhí)行中自動(dòng)完成如下過程:(PC)(PC)+ 3(SP)(SP)+ 1((SP))(PC7 ~ 0), 保護(hù)斷點(diǎn)地址低字節(jié);(SP)(SP)+ 2((