MCS-51單片機(jī)數(shù)據(jù)存儲(chǔ)器的擴(kuò)展:3 數(shù)據(jù)存儲(chǔ)器的擴(kuò)展MCS-51單片機(jī)內(nèi)部有128或256個(gè)字節(jié)的數(shù)據(jù)存儲(chǔ)器,這些存儲(chǔ)器通常被用作工作寄存器、堆棧、臨時(shí)變量等等,一般已經(jīng)夠用,但是如果系統(tǒng)要存儲(chǔ)大量的數(shù)據(jù),比如數(shù)據(jù)采集系統(tǒng),那么片內(nèi)的數(shù)據(jù)存儲(chǔ)器就不夠用了,需要進(jìn)行擴(kuò)展。3.1 常用的數(shù)據(jù)存儲(chǔ)器單片機(jī)中常用的數(shù)據(jù)存儲(chǔ)器是靜態(tài)RAM存儲(chǔ)器(SRAM),圖7是幾種常用的數(shù)據(jù)存儲(chǔ)器的引腳圖,以62256為例介紹,其中:A0~A14:地址輸入線;D0~D7:數(shù)據(jù)線; CE:選片信號(hào)輸入線,低電平有效; OE:讀選通信號(hào)輸入線,低電平有效; WE:寫選通信號(hào)輸入線,低電平有效;CE2:6264芯片的高有效選通端;VCC:工作電源,一般接+5V;GND:工作地.
標(biāo)簽: MCS 51 單片機(jī) 數(shù)據(jù)存儲(chǔ)器
上傳時(shí)間: 2013-10-28
上傳用戶:jkhjkh1982
keil 使用筆記:在Memory窗口上輸入address_type:address才能看到正確地址的變量debug~perfermance analyzer加入要察看的模塊名稱,然后view~perfermance analyzer window 可以察看各個(gè)模塊運(yùn)行時(shí)間①Display address_type:address B:Bit address C:Code Memory Bx:Code Bank D D:80H 命令可以查看特殊寄存器 data D I:0 命令可以查看內(nèi)部RAM數(shù)據(jù)iData; D X:0 命令可以查看外部RAM數(shù)據(jù)xData; ②R1 //顯示R1 register ~R1 //顯示變量R1 R1 = R7 //對(duì)寄存器Rx操作R1 = --R7 R1 = 0x20 ③main //顯示main()的開始地址d main //顯示main()的代碼④向RAM.ROM中寫數(shù)據(jù)Enter data_type address_type:address expr,expr.... data_type:int char double float long E char data:0x20 1,2,3,4 //向data區(qū)0x20開始的地址寫1,2,3,4 變量放在RAM的30H,要把定義放在main前面!另外特別注意,內(nèi)部RAM通常供C程序存放中間變量等,所以一定要看看編譯后的程序中是否存在存儲(chǔ)單元沖突的情況,比如如果程序中 使用了別的寄存器組的話,08-1FH單元就不能用了unsigned long data i _at_ 0x30
上傳時(shí)間: 2013-11-05
上傳用戶:dongqiangqiang
89S51看門狗功能的使用方法:在ATMEL的89S51系列的89S51與89C51功能相同,指令兼容。HEX程序無需任何轉(zhuǎn)換可以直接使用。89S51只比89C51增加了一個(gè)看門狗功能。向看門狗寄存器(WDTRST地址是0A6H)中先寫入01EH,再寫入0E1H,即可激活看門狗。匯編程序如下:Mov 0A6H,#01EH ;先送1EMov 0A6H,#0E1H ;后送E1C51程序如下:在AT89X51.h聲明文件中增加一行 sfr WDTRST = 0xA6來聲明看門狗寄存器。Main(){WDTRST=0x1E; //先送1EWDTRST=0xE1; //后送E1喂狗指令與激活相同:WDTRST=0x1E;WDTRST=0xE1;
上傳時(shí)間: 2013-10-08
上傳用戶:lyy1234
過載保護(hù)輸入的使用:SPMC75F2413A芯片包含有過載保護(hù)電路。當(dāng)過載保護(hù)輸入引腳(OL)拉低時(shí),該電路開始工作。過載保護(hù)輸入信號(hào)通過FCK/4時(shí)鐘采樣。采樣個(gè)數(shù)可以從0到15。有三種方法可以解除過載保護(hù):由定時(shí)器比較匹配釋放,延時(shí)釋放或自動(dòng)釋放。當(dāng)過載保護(hù)輸入已經(jīng)恢復(fù)高電平使可以使用以上三種方法釋放。在過載保護(hù)期間可以設(shè)置為不禁止任何相位的輸出,禁止所有相位的輸出,禁止PWM相位的輸出或所有的高/低相位依據(jù)其有效性被禁止輸出。禁止方式是由(P_OLx_Ctrl.OLMD, x = 1, 2)選擇的,電機(jī)驅(qū)動(dòng)PWM輸出在被禁止之前是由他們的瞬時(shí)開啟狀態(tài)決定的。被禁止的相位意味著將相位置于無效的電平。1.1.1 控制和狀態(tài)寄存器P_OL1_Ctrl($7468):過載輸入1控制和狀態(tài)寄存器P_OL2_Ctrl($7469):過載輸入2控制和狀態(tài)寄存器
標(biāo)簽: 2413A F2413 SPMC 2413
上傳時(shí)間: 2013-11-15
上傳用戶:moshushi0009
數(shù)字I/O腳有專用和復(fù)用。數(shù)字I/O腳的功能通過9個(gè)16位控制寄存器來控制??刂萍拇嫫鞣譃閮深悾海?)I/O復(fù)用控制寄存器(MCRX),來選擇I/O腳是外設(shè)功能還是I/O功能。(2)數(shù)據(jù)方向控制寄存器(PXDATDIR):控制雙向I/O腳的數(shù)據(jù)和數(shù)據(jù)方向。注意:數(shù)字I/O腳是通過映射在數(shù)據(jù)空間的控制寄存器來控制的,與器件的I/O空間無任何關(guān)系。240X/240XA多達(dá)41只數(shù)字I/O腳,多數(shù)具有復(fù)用功能。
標(biāo)簽: 數(shù)字
上傳時(shí)間: 2013-10-31
上傳用戶:qimingxing130
PIC16F84 單片機(jī)的內(nèi)部硬件資源:學(xué)些PIC 單片機(jī),在Microchip 尚未推出其他Flash 系列的情況下,很多菜鳥都是從PIC16F84 開始的,我們把它整理了一份中文資料供大家學(xué)習(xí)。首先介紹PIC16F84 單片機(jī)的內(nèi)部結(jié)構(gòu),如圖1 所示的框圖。由圖1 看出,其基本組成可分為四個(gè)主要部分,即運(yùn)算器ALU 和工作寄存器W;程序存儲(chǔ)器;數(shù)據(jù)存儲(chǔ)器和輸入/輸出(I/O)口;堆棧存儲(chǔ)器和定時(shí)器等。現(xiàn)分別介紹如下。
上傳時(shí)間: 2013-12-26
上傳用戶:zgu489
如何使用高級(jí)觸發(fā)測量程序跑飛:LA系列邏輯分析儀內(nèi)部集成了32位的定時(shí)器、32位的計(jì)數(shù)器和高速比較模塊,高效的使用以上模塊資源可以使您的測量事半功倍。邏輯分析儀在實(shí)際應(yīng)用中主要作用有:1.觀察波形,看看測量波形中是否存在毛刺、干擾、頻率是否正確等;2.時(shí)序測量,對(duì)被測信號(hào)進(jìn)行時(shí)序校對(duì),看看操作時(shí)序是否符合要求。3.輔助分析,利用邏輯分析儀完善的協(xié)議分析功能來進(jìn)行輔助分析;4.查錯(cuò)功能,利用邏輯分析儀強(qiáng)大的觸發(fā)功能來進(jìn)行錯(cuò)誤捕獲。當(dāng)單片機(jī)的PC值(程序計(jì)數(shù)器)對(duì)沒有程序的地方進(jìn)行取指時(shí),稱為程序跑飛。程序跑飛的原因有多種,主要有以下原因:1) 客觀原因:單片機(jī)受到外界強(qiáng)干擾造成PC值寄存器改變;2)程序Bug:用戶程序調(diào)用函數(shù)指針,對(duì)非程序空間進(jìn)行對(duì)用。以80C51單片機(jī)為例子,當(dāng)程序跑到非用戶程序區(qū)時(shí),單片機(jī)使用PSEN對(duì)外部程序進(jìn)行取指,使用邏輯分析儀可以設(shè)置觸發(fā)條件,當(dāng)使用PSEN對(duì)外部程序進(jìn)行取指時(shí)進(jìn)行記錄,把出錯(cuò)情況前后的狀態(tài)記錄下來進(jìn)行分析,查找出錯(cuò)原因。如80C51的取指范圍正確為0x0000~0x3fff,則當(dāng)對(duì)0x3fff以上地址進(jìn)行取指時(shí)為程序跑飛。分析80C51對(duì)外部程序取指的時(shí)序,如圖1所示。
上傳時(shí)間: 2013-10-11
上傳用戶:panpanpan
深入淺出AVR單片機(jī)思路清晰,以AVR單片機(jī)為載體,介紹了初學(xué)單片機(jī)所必須掌握的專業(yè)知識(shí)。書中語言嚴(yán)謹(jǐn)?shù)环τ哪L(fēng)趣,配以大量的照片、圖示和實(shí)例程序,使讀者在愉悅中完成專業(yè)知識(shí)的學(xué)習(xí),并培養(yǎng)了學(xué)習(xí)嵌入式系統(tǒng)的興趣。本書在講述AVR單片機(jī)的同時(shí),更注重于對(duì)讀者學(xué)習(xí)和設(shè)計(jì)能力的啟發(fā)、培養(yǎng),幫助他們養(yǎng)成“從實(shí)踐中來,到實(shí)踐中去”的科學(xué)方法論,為進(jìn)一步的學(xué)習(xí)創(chuàng)造了基礎(chǔ)。 本書講述淺顯、內(nèi)容豐富、編排合理、實(shí)例詳盡。首先介紹了如何閱讀器件資料的方法,然后熟悉ICCAVR集成開發(fā)環(huán)境并搭建實(shí)驗(yàn)開發(fā)裝置,接著從實(shí)際應(yīng)用出發(fā),啟發(fā)式地介紹AVR單片機(jī)的常用資源和對(duì)應(yīng)軟件方法,最后較為全面地補(bǔ)充了從事嵌入式系統(tǒng)開發(fā)要擴(kuò)展的軟件知識(shí)。 第1篇 Are you ready? 第1章 學(xué)會(huì)閱讀Datasheet 1.1 如何閱讀PDF文件,如何獲得Datasheet文件 1.2 Datasheet告訴我們些什么 1.3 如何看懂AVR的Datasheet 1.4 如何得到幫助 1.5 匯編語言執(zhí)行時(shí)間的計(jì)算方法 1.6 ATmega48/88/168常用熔絲的作用及其配置方法 1.7 對(duì)誤燒寫為外部時(shí)鐘模式的解鎖方法 實(shí)例1 閱讀74HC595 Datasheet 第2章 深入開發(fā)環(huán)境 2.1 認(rèn)識(shí)ICC編譯環(huán)境 2.2 事半功倍的代碼生成器 2.3 ICC之不得不說的故事 2.4 AVR最小系統(tǒng)和下載線DIY 實(shí)例2 AVR最小系統(tǒng)DIY第2篇 Let\'s go! 第3章 從跑馬燈開始 3.1 輸入/輸出界面 3.1.1 單片機(jī)的輸入/輸出設(shè)備——引腳 3.1.2 “芯”里有數(shù)——數(shù)碼管顯示 3.1.3 單片機(jī)的輸入/輸出設(shè)備——從按鍵到鍵盤 3.2 用ATmega48/88/168單片機(jī)端口驅(qū)動(dòng)數(shù)碼管 3.3 操縱ATmega48/88/168單片機(jī)端口 3.4 端口內(nèi)建上拉電阻的使用 3.5 端口位操作 實(shí)例3 跑馬燈 實(shí)例4 數(shù)碼管的顯示(上) 實(shí)例5 數(shù)碼管的顯示(下) 實(shí)例6 矩陣鍵盤 第4章 對(duì)不起接個(gè)電話 4.1 十萬火急——中斷 4.2 中斷的特性 4.3 使用中斷時(shí)的注意事項(xiàng) 4.4 ATmega48/88/168單片機(jī)有哪些中斷源 4.5 如何編寫一個(gè)中斷的服務(wù)程序代碼 4.6 ATmega48/88/168單片機(jī)中斷的開關(guān)控制 4.7 ATmega48/88/168中斷標(biāo)志位 4.8 ATmega48/88/168中斷優(yōu)先級(jí) 4.9 ATmega48/88/168單片機(jī)中斷向量 4.10 中斷與查詢之爭 4.11 用查詢方式響應(yīng)外設(shè)中斷 4.12 中斷誤觸發(fā) 4.13 前后臺(tái)與原子操作 實(shí)例7 中斷喚醒的鍵盤掃描 實(shí)例8 旋轉(zhuǎn)編碼器 第5章 一秒究竟有多長 5.1 單片機(jī)與時(shí)間 5.2 軟件延時(shí) 5.3 不需要加載的“自由計(jì)時(shí)器” 5.4 通過重加載控制定時(shí)中斷周期 5.5 使用代碼生成器生成定時(shí)器1初始化代碼 5.6 定時(shí)器的其他工作模式 5.7 PWM波及其應(yīng)用簡介 5.8 人類能看懂的電子時(shí)鐘——實(shí)時(shí)時(shí)鐘簡介 實(shí)例9 閃爍的燈 實(shí)例10 漸明漸暗的燈 實(shí)例11 復(fù)雜閃爍控制 第6章 電量低 6.1 從猜數(shù)游戲到A/D轉(zhuǎn)換器 6.2 ATmega48/88/168的A/D轉(zhuǎn)換器 6.3 ATmega48/88/168單片機(jī)中與A/D相關(guān)的引腳 6.4 ATmega48/88/168單片機(jī)中與A/D相關(guān)的寄存器 6.5 使用A/D時(shí)需要注意些什么 6.6 怎樣知道A/D轉(zhuǎn)換完成 6.7 讀取A/D的轉(zhuǎn)換結(jié)果 6.8 使用代碼生成器生成ADC初始化代碼 6.9 書寫具有工程結(jié)構(gòu)的初始化代碼 6.10 電量計(jì)原理概述 …… 第7章 正在過收費(fèi)站 第8章 包裝的學(xué)問 第9章 傻孩子求職記 第10章 MISSION UPDATE第3篇 Code Name C 第11章 朝花夕拾 第12章 指針都是紙老虎 第13章 來自身邊的啟示 第14章 初識(shí)嵌入式系統(tǒng)
上傳時(shí)間: 2014-05-05
上傳用戶:佳期如夢
單片機(jī)指令系統(tǒng) 3.1 MCS-51指令簡介 3.2 指令系統(tǒng) 3.1 MCS-51指令簡介 二、MCS-51系列單片機(jī)指令系統(tǒng)分類 按尋址方式分為以下七種:按功能分為以下四種: 1、立即立即尋址 1、數(shù)據(jù)傳送指令位操 2、直接尋址 2、算術(shù)運(yùn)算指令 3、寄存器尋址 3、邏輯運(yùn)算指令 4、寄存器間接尋址指令 4、控制轉(zhuǎn)移類指令 5、相對(duì)尋址 5、位操作指令 6、變址尋址 7、位尋址 三、尋址方式 3、寄存器間接尋址 MOV A, @R1 操作數(shù)是通過寄存器間接得到的。 4、立即尋址 MOV A, #40H 操作數(shù)在指令中直接給出。 5、基址寄存器加變址寄存器尋址 以DPTR或PC為基址寄存器,以A為變址寄存器, 以兩者相加形成的16位地址為操作數(shù)的地址。 MOVC A, @A+DPTR MOVC A, @A+PC 四、指令中常用符號(hào)說明 Rn——當(dāng)前寄存器區(qū)的8個(gè)工作寄存器R0~R7(n=0~7); Ri——當(dāng)前寄存器區(qū)可作地址寄存器的2個(gè)工作寄存器R0和R1(i=0,1); direct——8位內(nèi)部數(shù)據(jù)存儲(chǔ)器單元的地址及特殊功能寄存器的地址; #data——表示8位常數(shù)(立即數(shù)); #datal6——表示16位常數(shù); add 16——表示16位地址; addrll——表示11位地址; rel——8位帶符號(hào)的地址偏移量; bit——表示位地址; @——間接尋址寄存器或基址寄存器的前綴; ( )——表示括號(hào)中單元的內(nèi)容 (( ))——表示間接尋址的內(nèi)容; 五、MCS-51指令簡介 1. 以累加器A為目的操作數(shù)的指令 2. 以Rn為目的操作數(shù)的指令 3. 以直接地址為目的操作數(shù)的指令 4. 以寄存器間接地址為目的操作數(shù)指令 應(yīng)用舉例1 8段數(shù)碼管顯示 應(yīng)用舉例2 3.2 指令系統(tǒng) 2、堆棧操作指令 3. 累加器A與外部數(shù)據(jù)傳輸指令 4. 查表指令 MOVC A, @A+PC 例子: 5. 字節(jié)交換指令 6. 半字節(jié)交換指令 二、算術(shù)操作類指令 PSW寄存器 2. 帶進(jìn)位加法指令 3. 加1指令 4. 十進(jìn)制調(diào)整指令 5. 帶借位減法指令(Subtraction) 6. 減1指令(Decrease) 7. 乘法指令(Multiplication) 8. 除法指令(Division) 三、邏輯運(yùn)算指令 1. 簡單邏輯操作指令 2. 循環(huán)指令 帶進(jìn)位左循環(huán)指令(Rotate Accumulator Left through Carry flag) 右循環(huán)指令(Rotate Accumulator Right) 帶進(jìn)位右循環(huán)指令(Rotate A Right with C) 3. 邏輯與指令 4. 邏輯或指令 5. 邏輯異或指令 四、控制轉(zhuǎn)移類指令 1. 跳轉(zhuǎn)指令 相對(duì)轉(zhuǎn)移指令 SJMP rel PC←(PC)+2 PC←(PC)+rel 程序中標(biāo)號(hào)與地址之間的關(guān)系 2. 條件轉(zhuǎn)移指令 3. 比較不相等轉(zhuǎn)移指令 4. 減 1 不為 0 轉(zhuǎn)移指令 5. 調(diào)用子程序指令 7. 中斷返回指令 五、位操作指令 1. 數(shù)據(jù)位傳送指令 2. 位變量邏輯指令 3. 條件轉(zhuǎn)移類指令
標(biāo)簽: 單片機(jī) 指令系統(tǒng)
上傳時(shí)間: 2013-10-27
上傳用戶:xuanjie
C51基本結(jié)構(gòu)程序設(shè)計(jì)1. 掌握if語句來實(shí)現(xiàn)選擇結(jié)構(gòu),能利用if語句編寫相應(yīng)的分枝結(jié)構(gòu)的程序。在嵌套if語句中,一定要搞清楚else與哪個(gè)if結(jié)合的問題。2.掌握switch語句來實(shí)現(xiàn)多向分枝選擇結(jié)構(gòu),能利用switch語句編寫相應(yīng)的分枝結(jié)構(gòu)的程序。 3. 掌握循環(huán)語句的即初始化、循環(huán)體、循環(huán)控制及結(jié)束四個(gè)部分,并能進(jìn)行循環(huán)語句的程序設(shè)計(jì)。分別掌握for 語句、while語句以及do-while語句的使用語法及方法,能利用這三種循環(huán)結(jié)構(gòu)進(jìn)行循環(huán)程序設(shè)計(jì),理解這三種語句的異同。4.理解并掌握continue、break語句在循環(huán)結(jié)構(gòu)和選擇結(jié)構(gòu)中的作用。對(duì)于goto語句,理解該語句優(yōu)缺點(diǎn)。C51語言是結(jié)構(gòu)化編程語言。結(jié)構(gòu)化語言的基本元素是模塊,它是程序的一部分.只有一個(gè)出口和一個(gè)入口.不允許有偶然的中途插入或以模塊的其它路徑退出。結(jié)構(gòu)化編程語言在沒有妥善保護(hù)或恢復(fù)堆棧和其它相關(guān)的寄存器之前,不應(yīng)隨便跳入或跳出一個(gè)模塊。因此使用這種結(jié)構(gòu)化語言進(jìn)行編程,當(dāng)要退出中斷時(shí),堆棧不會(huì)因?yàn)槌绦蚴褂昧巳魏慰梢越邮艿拿疃罎ⅰ?nbsp; 結(jié)構(gòu)化程序由若干模塊組成,每個(gè)模塊中包含著若干個(gè)基本結(jié)構(gòu),而每個(gè)基本結(jié)構(gòu)中可以有若干條語句。歸納起來,C51程序有順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)共三種結(jié)構(gòu)。
標(biāo)簽: C51 基本結(jié)構(gòu) 程序設(shè)計(jì)
上傳時(shí)間: 2013-11-01
上傳用戶:四只眼
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1