導航:首頁 > 操作系統 > 實驗單片機存儲器的應用編程

實驗單片機存儲器的應用編程

發布時間:2022-07-04 10:55:14

『壹』 51單片機C編程:存儲器擴展

21ic電子技術論壇上有不少大神,或許可以幫到你。。祝你成功!

『貳』 MC908GP32單片機的Flash存儲器的編程過程

在HC08系列單片機中,對Flash進行擦除或寫入操作需要遵循一定的時序和步驟。對於整個MC68HC908系列的各個型號,這些步驟是一樣的,但時序要求可能略有不同,針對具體型號的Flash進行編程時應參考相應的晶元手冊。同時需要注意的是,一些型號的監控ROM內含有Flash編程子程序,用戶可直接調用,例如MC68HC908JL3;有的型號則沒有,例如MC908GP32,這種情況需自行編制子程序。下面介紹MC908GP32的Flash編程的基本操作。 下面過程可以擦除GP32的Flash存儲器的一頁(128位元組):
①$2→FLCR(1→ERASE位,0→MASS位):進行頁面擦除。
②讀Flash塊保護寄存器FLBPR。
③向被擦除的Flash頁內任意一個地址寫入任意值,為方便起見,一般向待擦除頁首地址寫入0。
④延時tnvs(>10µs)。
⑤$A→FLCR(1→HVEN位)。
⑥延時terase(>1ms)。
⑦$8→FLCR(0→ERASE位)。
⑧延時tnvh(>5µs)。
⑨$0→FLCR(0→HVEN位)。
⑩延時trcv(>1µs),完成一頁的擦除操作。 下面過程擦除GP32的整個Flash區域,以便把新的程序裝入Flash存儲器,這是應用系統研製過程中開發工具對GP32編程的准備工作。
①$6→FLCR(1→ERASE位,1→MASS位):進行整體擦除。
②讀Flash塊保護寄存器FLBPR。
③向被擦除的Flash任意一個地址寫入任意值,為方便起見,一般向首地址寫入0。
④延時tnvs(>10µs)。
⑤$E→FLCR(1→HVEN位、MASS位、ERASE位)。
⑥延時tMerase(>4ms)。
⑦$C→FLCR(0→ERASE位)。
⑧延時tnvhl(>100µs)。
⑨$0→FLCR(0→HVEN位、MASS位)。
⑩延時trcv(>1µs),完成整體擦除操作。 MC908GP32的Flash編程操作以行(64位元組)為單位進行的。當然,一次寫入可以小於一行,但不能大於一行。對於已經寫過的部分,未經擦除不能重新寫入變更其數據,否則將引起數據出錯。寫入過程如下:
①$1→FLCR(1→PGM位)。
②讀Flash塊保護寄存器FLBPR。
③向將要寫入的Flash行內任意一個地址寫入任意值,為方便起見,一般向行首地址寫入0,這一步選定了所要編程的行,以下的目標地址必須在這一行中。
④先延時tnvs(>10µs);再將$9→FLCR(1→HVEN位)。
⑤先延時tpgs(>5µs);再將待寫數據寫入對應的Flash地址。
⑥延時tprog(>30µs),完成一個位元組的寫入(編程)工作。
⑦重復⑤、⑥,直至同一行內各位元組寫入完畢。
⑧$8→FLCR(0→PGM位)。
⑨先延時tnvh(>5µs);再將$0→FLCR(0→HVEN位)。
⑩延時trcv(>1µs)以後,完成本行寫入工作,可以讀出校驗。

『叄』 單片機編程

單片機編程的語言既可以用C,也可以用匯編。
用匯編的優勢主要是程序可以被編程者優化,而不是由編譯器優化,這樣就可以絕對可控,程序的安全性和執行速度受編程者水平限制,不過總的執行速度較C語言快,代碼占程序存儲器的容量較C語言小。這樣,匯編程序更適合程序存儲器和數據存儲器較小的老式單片機。但是,匯編程序畢竟是機器語言的匯編助記符,所以存在指令難記,指令功能弱的缺點,造成學習困難。
C語言的優勢與缺點正好與匯編相反。C語言畢竟是一種高級語言,具有較好的學習性,幾乎不必記憶指令,學習容易,而且編譯時的優化由編譯器管理,一般不受編程者水平限制。由於機器優化的局限性,C語言總的執行速度較匯編語言慢,代碼占程序存儲器的容量較匯編語言大。這樣,C程序更適合程序存儲器和數據存儲器較大的新式單片機。
建議初學者先使用C語言快速入門,然後再研究匯編語言,優化程序設計。

『肆』 51單片機實驗程序

#include "REG52.H"

unsigned char Extep_Time ;

/*
* T0定時器初始化 //
*/
void SystemInit(void)
{
TMOD = 0x01;
TH0 = (65536 - 50000) / 256;
TL0 = (65536 - 50000) % 256;
ET0 = 1;
TR0 = 1;
EA = 1;
}

int main(void)
{
// IO初始化
P0 = 0xFF;
P1 = 0xFF;
P0 = 0xFF;
P1 = 0xFF;
// T0定時器初始化
SystemInit();
while(1);
}

/*
* T0定時器中斷服務程序
*/
void Timero_IRQ(void) interrupt 1
{
Extep_Time++;
if(Extep_Time == 20)
{
Extep_Time = 0;
P0 = ~P0;
}
}

『伍』 單片機實驗編製程序對外部存儲器進行讀寫操作

MOV A,#DATA(要寫入的數據);
MOV DPTR,#Address(要存放數據的外部存儲器單元地址);
MOVX @DPTR,A;
MOVX A,@DPTR;
CJNZ A,#DATA(判斷時認為要傳送的正確數據),LABEL
CLR P1.0
JMP END
LABEL:CLR P1.1
END:AJMP $

『陸』 單片機是什麼如何編程輸入單片機

單片機(Microcontrollers)是一種集成電路晶元,是採用超大規模集成電路技術把具有數據處理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計數器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊矽片上構成的一個小而完善的微型計算機系統。生活中的電腦、手機、電視都包含著單片機方方面面的應用。
在初學單片機時主要會用到51單片機,除此之外還有AVR、STM32、ARM等常用的單片機,單片機性能越好,操作越復雜,學習內容越廣。
將程序燒錄入單片機時我們會需要用到編譯器,將C語言或匯編語言編譯成單片機能夠識別的機器語言,即二進制。常用的軟體有Keil、IAR等,編譯完成後會使用燒錄軟體、燒錄器如ISP等將代碼燒錄入單片機。
網路: http://ke..com/link?url=jhpGm1NhiryFmLB6vD__UH0VHdheD3N1ctM_

『柒』 單片機ram 存儲器讀寫實驗

這個不太好解答了。
樓主問的應該是ROM吧?
RAM是內存,掉電丟數據的。
一般儲存器是指ROM,掉電不會丟失數據。
而單片機也太籠統了,好多品牌和型號呢,51和STM32用的比較多,不知道樓主要哪種的常式?
還有就是ROM也分很多呀,可以是FLASH,也可以使EPPROM等等~~~
當然不管是什麼ROM,大部分都有一個特性是要先擦除後寫入~~~而且擦除的速度比較慢。
給個採納唄~

『捌』 C51單片機編程:試編程將外部數據存儲器8000H至8032H單元的內容送至內部數據存儲器

DATM:
MOV DPTR,#8000H
MOV R2,#33H
MOV R0,#30H
LOOP:
MOVX A,@DPTR
MOV @R0,A
INC DPTR
INC R0
DJNZ R2,LOOP
RET

『玖』 51單片機是什麼如何學習它的編程都用在哪些方面

51單片機是對所有兼容Intel 8031指令系統的單片機的統稱。

由於intel生產的8031的升級版8051工藝成熟,成為當時市場應用量最大的單片機,所以對此類兼容晶元統稱51單片機。

該系列單片機的始祖是Intel的8031單片機,後來隨著Flash rom技術的發展,8031單片機取得了長足的進展,成為應用最廣泛的8位單片機之一,其代表型號是ATMEL公司的AT89系列,它廣泛應用於工業測控系統之中。很多公司都有51系列的兼容機型推出,今後很長的一段時間內將佔有大量市場。51單片機是基礎入門的一個單片機,還是應用最廣泛的一種。

現在每年仍舊會使用幾十億片51系列的兼容晶元,在你想得到的電器、玩具上,比如:遙控燈具、洗衣機、冰箱、電子鍾表、顯示器、汽車(每輛汽車可能會用到十幾到幾十片)。。。。。

學習它很簡單,到當地書店、圖書館、隨手可以找到幾十種單片機入門書,8成以上是講51系列單片機的。

----------------

學習編輯

作為一個初學者,如何單片機入門?

知識上,其實不需要多少東西,會簡單的C語言,知道51單片機的基本結構就可以了。一般的大學畢業生都可以了,自學過這2門課程的高中生也夠條件。設備上,一般是建議購買一個模擬器,例如,的「雙功能下載線」就具有良好的穩定性和較快的下載速度,上位機可擴展,可以下載更多的單片機及嵌入式晶元。通過實驗,這樣才可以進行實際的,全面的學習。日後在工作上,模擬器也大有用處。還有,一般光有模擬器是不行,還得有一個實際的電路,即學習板,如圖,即為,單片機最小系統。

學習板以強大的介面為主,單片機的學習分兩方面,一方面是單片機的原理及內部結構,另一方面是單片機的介面技術。這些都是需要平時多積累,多動手,多思考,這樣才能學好單片機技術。

註:「雙功能下載線」在網路文庫里有詳細的使用說明,並且上位機會定期更新以支持更多的單片機。

單片機學習的4個階段

一、整體了解

要知道 單片機是什麼?單片機有何用?如何系統學習單片機?單片機系統設計的流程是怎樣的,需要掌握哪些輔助軟體?

了解這些之後,我們的學習就有了目標和方向。

二、揭秘單片機很難學,是因為其內部結構、編程語言抽象,且實際應用中與其他電子技術和元器件知識相互關聯,需結合起來一起設計開發產品。所以,第二階段要了解單片機的內部結構是怎樣的?單片機開發經常會用到哪些電子技術和元器件知識?如何將一條條編程指令組合成一段段有效的程序?

三、解密之所以單片機能成為控制核心,設計出包羅萬象的應用系統來,是因為開發者利用了單片機提供的種種功能及各種外設。所以,第三階段我們要掌握單片機的各種功能,再加上諸如感測器、模數轉換、掃描顯示、串列、中斷的應用思維,結合更多的元器件、電子電路知識,逐個學習、體會實際的單片機系統的秘密。

四、遠航通過以上三個階段,讀者基本就可掌握單片機的應用了。但要設計出豐富的單片機系統,解決復雜的實際問題,還需要了解更多的外設知識及其與單片機的聯系(如電動機、各類

存儲器、繼電器、紅外管等)。這些需要不斷的學習和積累。有時候,接到一些開發任務,就需要你針對這個任務自覺地去搜集、學習相關知識,在實踐中不斷載學習和提高。

參考網路:http://ke..com/link?url=

『拾』 單片機存儲器的程序存儲器

MCS-51中,程序存儲器通過16位程序計數器(PC)定址,具有64KB定址能力,也即可以在64KB的地址空間任意定址。其中,具有4KB片內程序存儲器空間,地址為000H-0FFFH(注:8031無片內程序存儲器);片外程序存儲器空間最大可擴展到64KB,地址為0000H-FFFFH,片內、外統一編址。
1、程序存儲器片內與片外地址
由於片內、外統一編址,所以片內4KB存儲空間地址000H-0FFFH與片外存儲器地址000H-0FFFH發生沖突。但是,CPU是訪問片內存儲器還是訪問片外存儲器,可由引腳上所接的電平來確定。
1)當EA引腳接高電平時,若程序計數器(PC)值超出片內存儲空間,則自動轉向片外程序存儲器空間執行程序;
2)當EA引腳接低電平時,單片機只能執行片外程序存儲器的程序。
另外,因為8031沒有片內程序存儲器,所以就將EA引腳固定接低電平,通過外部擴展程序存儲器來存放程序;而對其它MCS-51,若沒有片外程序存儲器,那應將引腳固定接高電平。通過EA引腳所接電平不同,解決了程序存儲器中片內、片外地址沖突問題。
2、程序存儲器中的特殊單元
MCS-51程序存儲器中,有6個存儲單元具有特殊用途。
0000H單元為系統啟動地址。MCS-51單片機啟動復位後,程序計數器(PC)的內容為0000H,所以系統將從0000H單元取指令,並開始執行程序。程序設計時一般在該地址存放一條絕對跳轉指令,轉入主程序的入口地址。
另外0003H一002AH日被均勻地分成5段,用於5個中斷服務程序的入口。
其中0003H、000BH、0013H、O01BH、0023H為5個中斷源的中斷服務程序的入口地址。
中斷源的中斷服務程序的入口地址,即當中斷產生相應的中斷服務程序的起始地址被裝入程序計數器(PC),系統將從該地址取指令,並執行程序 。 8051有256個單元的內片數據存儲器,其中00H-7FH為片內隨機存儲器RAM,也叫低128B;80H-FFH為特殊功能寄存器,也叫高128B。低128B又分為工作寄存器區、位定址區、用戶RAM區。
1.工作寄存器區(00H-1FH)
在00H-1FH共32個單元,被均勻地分為四組工作寄存器堆:RB0、RB1、RB2、RB3,每組寄存器堆包含8個工作寄存器,均以R0-R7來命名,這些寄存器被稱為通用寄存器。工作寄存器用於臨時存放8位信息。在使用時,由程序狀態字寄存器中的RS0、RS1來選擇工作寄存器堆。
2.位定址區(20H-2FH)
片內數據存儲器的20H-2FH存儲區為位定址區,既可作為一般單元按位元組定址,也可按位進行定址。位定址區有16個位元組,位地址為00H-7FH。
3.用戶RAM區(30H-7FH)
用戶RAM區主要用作數據緩沖區和堆棧。這個存儲區只能按位元組定址,用作存放數據及作為堆棧區。通常堆棧區被設置在這塊存儲區,由堆棧寄存器SP指定,CPU復位時SP=07H,使得堆棧實際上是從08H開始的,但08H-1FH屬於工作寄存器區 。 MCS-51單片機的特殊功能寄存器 符號 地址 功能介紹 B F0H B寄存器 ACC E0H 累加器 PSW D0H 程序狀態字 TH2* CDH 定時器/計數器2(高8位) TL2* CCH 定時器/計數器2(低8位) RLDH* CBH 外部輸入(P1.1)計數器/自動再裝入模式時初值寄存器高八位 RLDL* CAH 外部輸入(P1.1)計數器/自動再裝入模式時初值寄存器低八位 T2CON* C8H T2定時器/計數器控制寄存器 IP B8H 中斷優先順序控制寄存器 P3 B0H P3口鎖存器 IE A8H 中斷允許控制寄存器 P2 A0H P2口鎖存器 SBUF 99H 串列口鎖存器 SCON 98H 串列口控制寄存器 P1 90H P1口鎖存器 TH1 8DH 定時器/計數器1(高8位) TH0 8CH 定時器/計數器0(高8位) TL1 8BH 定時器/計數器1(低8位) TL0 8AH 定時器/計數器0(低8位) TMOD 89H T0、T1定時器/計數器方式控制寄存器 TCON 88H T0、T1定時器/計數器控制寄存器 DPH 83H 數據地址指針(高8位) DPL 82H 數據地址指針(低8位) SP 81H 堆棧指針 P0 80H P0口鎖存器 PCON 87H 電源控制寄存器

閱讀全文

與實驗單片機存儲器的應用編程相關的資料

熱點內容
單片機如何使用proteus 瀏覽:987
java常用的伺服器 瀏覽:277
集結APP在哪裡下載 瀏覽:798
歐洲cf玩什麼伺服器 瀏覽:527
如何連接另一台電腦上的共享文件夾 瀏覽:679
如何讓桌面文件夾搬家到e盤 瀏覽:71
java自動格式化 瀏覽:617
ipad怎麼查看文件夾大小 瀏覽:581
手工粘土解壓球 瀏覽:550
在線視頻教育源碼 瀏覽:41
快四十學什麼編程 瀏覽:754
gnumakelinux 瀏覽:537
視易峰雲伺服器怎麼改系統 瀏覽:535
javamap取值 瀏覽:768
mac和win磁碟加密軟體 瀏覽:474
蘋果為什麼會連接不到伺服器 瀏覽:726
pdf格式文件如何保存 瀏覽:303
小霸王伺服器tx什麼意思 瀏覽:75
解釋dns命令 瀏覽:584
dmx512怎麼編程 瀏覽:744