久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

EEPROM的扇區操作是用IAP好還是ISP好

查看數: 2087 | 評論數: 13 | 收藏 1
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2022-8-10 12:29

正文摘要:

/*---------------------------- 扇區擦除 ----------------------------*/ void IapEraseSector(WORD addr) {     IAP_CONTR = ENABLE_IAP;         //使能IAP ...

回復

ID:95375 發表于 2022-8-14 23:15
188610329 發表于 2022-8-10 20:39
STC手冊   89系列  第 270 頁。

謝謝,就是硬件不同而不同。
ID:95375 發表于 2022-8-14 23:14
yzwzfyz 發表于 2022-8-10 16:42
以51單片機為例:其存儲器分為三塊。
1、程序存儲器:可尋址空間64K,用于存放用戶的程序,CPU取指令只能 ...

已明白,謝謝!
ID:95375 發表于 2022-8-14 23:12
188610329 發表于 2022-8-10 20:45
你用不用 頭文件的?

你打開  STC15.H     這個頭文件

明白了,就是頭文件里沒定義想用都沒得用
ID:401564 發表于 2022-8-11 13:47
我感覺沒有必要糾結什么的吧
數據手冊上有什么,就用什么
如果想知道,可以對比一下擦除時間之類的區別
ID:624769 發表于 2022-8-10 20:45
liyago 發表于 2022-8-10 18:46
什么不同的地址呢?是不是說這兩個只是兩種不同的方法,用哪種都行?

     型號        大小   扇區數 ...

你用不用 頭文件的?

你打開  STC15.H     這個頭文件
你只能找到:
sfr IAP_CONTR = 0xC7;
而找不到:
sfr ISP_CONTR = ????

反過來,你打開  STC89C5xRC.H 這個頭文件
你只能找到:
sfr ISP_CONTR = 0xE7;
而找不到:
sfr IAP_CONTR = ????

這就是 STC的改版,地址不一樣了,名字也不一樣,明白了??
沒有哪個更好,因為 一個單片機里 只有其中一個。

ID:624769 發表于 2022-8-10 20:39

STC手冊   89系列  第 270 頁。
http://www.zg4o1577.cn/bbs/dpj-82368-1.html


看到如下圖:



注意,紅框位置的  地址。

STC15 系列手冊   第 841 頁。

看到如下圖:


注意,紅框位置的 地址。

由于,地址本身不同,所以  一個用 ISP 命名, 一個用 IAP命名, 防止因為用錯頭文件,而出了問題也不知道問題在哪里。
即,雖然是同一個操作方式,但是,由于寄存器地址不同,所以給了不同的名字。目的是為了區分 版本差別。
同理, T2 定時器, 89系列名字 叫 TL2, TH2,  15系列里面叫  T2L, T2H,  都是 定時器 初值定義, 但是寄存器地址 變了,所以,名字就要變。
ID:95375 發表于 2022-8-10 18:46
188610329 發表于 2022-8-10 14:18
ISP和iap,對應的sfr寄存器地址不同,不是哪個好,而是為了區別不同的地址。

什么不同的地址呢?是不是說這兩個只是兩種不同的方法,用哪種都行?

     型號        大小   扇區數  開始地址  結束地址   MOVC讀偏移地址
STC15F/L2K32S2   29K    58扇區  0x0000  ~  0x73FF        0x8000

比如要讀寫STC15F2k32s2,用哪種方法都一樣是吧
ID:161164 發表于 2022-8-10 17:04
188610329 發表于 2022-8-10 15:45
89的手冊,寄存器是ISP_????,頭文件也是,89,90的寄存器是ISP_xxxx,15,8的頭文件是iapxxxx,指向的地 ...

???

ID:123289 發表于 2022-8-10 16:42
以51單片機為例:其存儲器分為三塊。
1、程序存儲器:可尋址空間64K,用于存放用戶的程序,CPU取指令只能在此空間。
2、外部分擴展存儲器:可尋址空間64K,用于存放數據,CPU無法在此空間取指令。
3、內部分RAM:256字節。這里略去功能介紹。
問題來了:如果用戶弄了2K的EEPROM,如何讓它能被CPU尋址(訪問)到呢?
有兩種方案:
1、程序一般用不了64K的全部空間,于是在【程序存儲器】中挖出2K的空間,將它做成EEPROM。這是STC一種做法。例如:IAP15Fxxxx型號芯片。
由于程序存儲器通常只能在燒錄時寫入,而EEPROM卻需要在程序運行中,由程序讀、寫或擦除,為此STC又特意開發了一套寫、擦它的方式。但讀取仍可以用通用的指令進行,如:MOVC A, @A+DPTR。
這種方案好處是:無需單獨再做EEPROM,直接利用【程序存儲器】的FLASH空間當作EEPROM用,且大小空間比較自由靈活,用不完的FALSH空間可以隨便用。
這里有一個風險:比如:0000-11FFH放的是程序,如果你把此區域當作是EEPROM,對它進行寫、擦操作,則程序就被破壞掉了。所以這個方案需要你知道程度占多長?哪些區域是程序用不到的地方。
不過風險中,也有一個重要的好處:可以用程序,修改自己的程序!例如,程序在運行中就能進行自我升級:擦除原來的程序重新寫入新的程序!這是高級用法,就不在此介紹了。
2、在【外部分擴展存儲器】中挖出2K的空間,將它做成EEPROM,這是常用的方式,不多介紹了。
樓主用C語言寫程序,兩種方式無所謂好壞之分。但必須知道EEPROM的數據是在哪個區域,因為你在定義一個EEPROM中的數據變量時,需要用到。
如果不考慮在線或遠程升級程序,建議用第2種方式的EEPROM芯片,需要考慮的問題少,不易出錯。
ID:624769 發表于 2022-8-10 15:45
lkc8210 發表于 2022-8-10 15:12
在STC-ISP的EEPROM范例程序里從89看到8H
全都是用IAP
ISP的程序從哪來的?

89的手冊,寄存器是ISP_????,頭文件也是,89,90的寄存器是ISP_xxxx,15,8的頭文件是iapxxxx,指向的地址是不同的。
ID:161164 發表于 2022-8-10 15:12
在STC-ISP的EEPROM范例程序里從89看到8H
全都是用IAP
ISP的程序從哪來的?
ID:624769 發表于 2022-8-10 14:18
ISP和iap,對應的sfr寄存器地址不同,不是哪個好,而是為了區別不同的地址。

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 三级成人在线 | 国产91丝袜在线18 | 日韩久久精品 | 中文字幕国产精品视频 | 亚洲精品九九 | 激情久久网 | 成人黄色av网站 | 日韩视频精品 | 欧美理论片在线观看 | 久久99精品久久久久久国产越南 | 欧美激情视频一区二区三区在线播放 | 伊人狠狠| 日本福利视频 | 狠狠婷婷综合久久久久久妖精 | 久久av一区二区三区 | 欧美综合在线观看 | 9久久精品| 亚洲一区二区三区高清 | 国产精品 亚洲一区 | 在线日韩av电影 | 毛片在线看看 | 午夜三区 | 中文日韩在线 | 亚洲成人午夜在线 | 中文一区 | 亚洲人人舔人人 | 色av一区二区三区 | 天堂网avav | 亚洲欧洲中文 | 国产黄色在线观看 | 日日夜夜精品视频 | 国产精品国产三级国产aⅴ原创 | 成人欧美一区二区三区在线观看 | 香蕉久久a毛片 | 精品欧美乱码久久久久久1区2区 | 国产 欧美 日韩 一区 | 欧美www在线观看 | 婷婷久久网 | 日韩一区二区三区视频 | 理论片午午伦夜理片影院 | 成年人在线观看 |