羅湖做網(wǎng)站的公司哪家好營(yíng)銷方式和手段有哪些
存儲(chǔ)器的介紹?
⒈ROM的功能?ROM的數(shù)據(jù)在程序運(yùn)行的時(shí)候是不容改變的,除非你再次燒寫(xiě)程序,他就會(huì)改變,就像我們的書(shū)本,印上去就改不了了,除非再次印刷,這個(gè)就是ROM的原理。
注→在后面發(fā)展的ROM是可以可寫(xiě)可讀并且是可以達(dá)到掉電不丟失的(但是它名字還是ROM)
🍎存放單片機(jī)工作時(shí)的程序,單片機(jī)在上電工作的時(shí)候,程序指令制導(dǎo)單片機(jī)完成設(shè)定的功能。沒(méi)有ROM存儲(chǔ)器,單片機(jī)是不能夠進(jìn)行工作的。
⒉RAM的功能?RAM就是在程序運(yùn)行中,數(shù)據(jù)會(huì)隨時(shí)改變的,就像我們的黑板,寫(xiě)上了可以擦,擦完再寫(xiě)上去,相當(dāng)于程序運(yùn)行的時(shí)候,調(diào)用ROM里面的數(shù)據(jù)進(jìn)行各種運(yùn)算。🍏數(shù)據(jù)存儲(chǔ)器(RAM)存儲(chǔ)單片機(jī)運(yùn)行期間所需要的數(shù)據(jù)和臨時(shí)生成的數(shù)據(jù)是需要能夠快速讀出和寫(xiě)入數(shù)據(jù)的。此類存儲(chǔ)器在掉電之后,存儲(chǔ)的數(shù)據(jù)會(huì)丟失,并不能永久保存。
PROM:只能寫(xiě)入一次,第一次寫(xiě)好以后就一直是這個(gè)數(shù)據(jù)了不能被修改(一次性)
EPROM:PROM的升級(jí)版本。
E2PROM:AT24C02也是E2PROM。
⑴RAM的優(yōu)勢(shì)?存儲(chǔ)速度特別快。缺點(diǎn)?掉電丟失。
⑵ROM的優(yōu)勢(shì)?掉電不丟失。缺點(diǎn)?存儲(chǔ)比較慢速度更不上。
🍎綜上所示?所以我們是需要這兩者相互結(jié)合。
我們需要高速存儲(chǔ)的使用就放進(jìn)到RAM程序運(yùn)行的時(shí)候都是存儲(chǔ)在RAM里面,然后我們需要永久保存的時(shí)候就使用ROM存儲(chǔ)。我們就很好的利用這兩個(gè)存儲(chǔ)器的長(zhǎng)處。
存儲(chǔ)單元
🍊說(shuō)明?任何計(jì)算系統(tǒng)都需要兩種類型的存儲(chǔ)器→程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。程序存儲(chǔ)器,顧名思義,包含程序,即要由CPU執(zhí)行的指令。另一方面,數(shù)據(jù)存儲(chǔ)器需要在執(zhí)行指令時(shí)存儲(chǔ)臨時(shí)數(shù)據(jù)。通常,程序存儲(chǔ)器是只讀存儲(chǔ)器或ROM,數(shù)據(jù)存儲(chǔ)器是隨機(jī)存儲(chǔ)器或RAM。數(shù)據(jù)存儲(chǔ)器有時(shí)也稱為讀寫(xiě)存儲(chǔ)器(R/WM)
存儲(chǔ)器的簡(jiǎn)化模型
注→上述右圖的二極管[單向?qū)щ娦註是防止對(duì)其它行產(chǎn)生干擾作用抑制干擾方式。
注→PROM之所以稱之為:一次性編程是因?yàn)樗{(lán)色的二極管很容易被擊穿,擊穿之后就相當(dāng)于短路了。而沒(méi)有擊穿就相當(dāng)于是斷開(kāi)。
存儲(chǔ)器在電路內(nèi)部實(shí)際上都是一個(gè)網(wǎng)狀結(jié)構(gòu)。其中橫向的線我們可以稱之為是地址總線就是用來(lái)選擇哪一位線就是哪一位地址,而下面這個(gè)線(縱向)就是我們的數(shù)據(jù)總線。
假設(shè)?我們選擇了第一行給了一個(gè)高電平("1")剩下的我們暫時(shí)不接。然后我們把這些網(wǎng)格交錯(cuò)的地方第一個(gè)第二個(gè)第三個(gè)節(jié)點(diǎn)給連接上,剩下的都不進(jìn)行連接。那么我們?cè)谧x取下面的這個(gè)⑧位的數(shù)據(jù)總線上就是:第一個(gè)、第二個(gè)、第三個(gè)節(jié)點(diǎn)連接上了就從縱向下來(lái)就是("1")后面的線沒(méi)有進(jìn)行連接那么它就是一個(gè)懸空的狀態(tài)可以暫時(shí)把它當(dāng)作是("0")
那么這里存儲(chǔ)的數(shù)據(jù)就是:1 1 1 0 0 0 0 0 注意這是第一行存儲(chǔ)的數(shù)據(jù)。那么第二行實(shí)際上也是一樣的。
如上↑便是存儲(chǔ)器存儲(chǔ)的最基本的原理。
重點(diǎn)?存儲(chǔ)器是一種網(wǎng)格形式、左邊給個(gè)地址下面就可以輸出數(shù)據(jù)。
重點(diǎn)說(shuō)明?這個(gè)地址一次只能選中一行(全體目光向我看齊😛)所以一般在地址總線之前我們都會(huì)加一個(gè)譯碼器(138譯碼器)
AT24C02
AT24C02是一種可以實(shí)現(xiàn)掉電不丟失的存儲(chǔ)器。
可用于保存單片機(jī)運(yùn)行時(shí)想要永久保存的數(shù)據(jù)信息。
例:就像我們單片機(jī)在運(yùn)行時(shí)候的參數(shù)吖~像溫度傳感器高于某一個(gè)設(shè)定的閾值會(huì)報(bào)警,然后這個(gè)閾值還是可以調(diào)節(jié)的,然后把它調(diào)節(jié)好的時(shí)候就可以存進(jìn)AT24C02。當(dāng)下次斷電再重啟的時(shí)候你就是可以讀取之前的數(shù)據(jù)了用作于這個(gè)。??
存儲(chǔ)介質(zhì)→E2PROM。
通訊接口→I2C總線。
容量→256字節(jié)。
引腳以及應(yīng)用電路
⒎腳WP(高電平有效)
在計(jì)算機(jī)運(yùn)行中,有些信息只允許使用而不允許修改,就要對(duì)存儲(chǔ)這些信息的區(qū)域采取保護(hù)措施,這種保護(hù)措施稱為寫(xiě)保護(hù)。即對(duì)該存儲(chǔ)區(qū)的信息只允許讀出以被使用,但不允許寫(xiě)入以防止破壞。在上述的應(yīng)用電路當(dāng)中我們是給它接地的。
★注→I2C硬件接口是開(kāi)漏模式,這個(gè)接口只能輸出低電平,要實(shí)現(xiàn)高電平就要靠上拉電阻去拉高。?
內(nèi)部結(jié)構(gòu)框圖
I2C(IIC)總線介紹
- I2C總線(Inter IC BUS)是由Philips公司開(kāi)發(fā)的一種通用數(shù)據(jù)總線。
- 兩根通信線?SCL(Serial Clock) &?SDA(Serial Data)
- 拓展?SCL控制線[時(shí)鐘線](同步)通信雙方靠一根時(shí)鐘線來(lái)約定通信速率SDA(數(shù)據(jù)線)
- 同步、半雙工,帶數(shù)據(jù)應(yīng)答。
- 通用的I2C總線,可以使各種設(shè)備的通信標(biāo)準(zhǔn)統(tǒng)一,對(duì)于廠家來(lái)說(shuō),使用成熟的方案可以縮短芯片設(shè)計(jì)周期、提高穩(wěn)定性,對(duì)于應(yīng)用者來(lái)說(shuō),使用通用的通信協(xié)議可以避免學(xué)習(xí)各種各樣的自定義協(xié)議,降低了學(xué)習(xí)和應(yīng)用的難度。但是學(xué)習(xí)I2C還是有一定的學(xué)習(xí)難度的,但是當(dāng)你學(xué)會(huì)了I2C對(duì)于要用到它的通信協(xié)議來(lái)說(shuō)你又會(huì)覺(jué)得不那么的難了。?
- 顯示屏幕(像素點(diǎn)好)
- DS3231(精度高)
- 陀螺儀自帶傳感器。
I2C電路規(guī)范
- 所有I2C設(shè)備的SCL連在一起以及SDA連在一起。
- 設(shè)備的SCL和SDA均要配置成開(kāi)漏輸出模式。
- SCL和SDA各添加一個(gè)上拉電阻,阻值一般為4.7KΩ左右。
- 開(kāi)漏輸出和上拉電阻的共同作用實(shí)現(xiàn)了“線與”的功能,此設(shè)計(jì)主要是為了解決多機(jī)通信互相干擾的問(wèn)題。
I2C時(shí)序結(jié)構(gòu)
起始條件→[SCL]高電平期間,SDA從高電平切換到低電平。
終止條件→[SCL]高電平期間,SDA從低電平切換到高電平。
🍎注→在起始條件的時(shí)候我們最后還是把SCL給拉低的主要目的是為了能夠與最后的終止條件進(jìn)行一個(gè)銜接的狀態(tài)。保證起始條件的時(shí)候SCL最后為低電平。
重點(diǎn)?最后的數(shù)據(jù)幀都是以S為起始P為終止的。
發(fā)送一個(gè)字節(jié)
SCL低電平期間,主機(jī)(單片機(jī))將數(shù)據(jù)位依次放到SDA線上(高位在前)
然后拉高SCL,從機(jī)(AT24C02)將在SCL高電平期間讀取數(shù)據(jù)位,所以SCL高電平期間SDA不允許有數(shù)據(jù)變化,依次循環(huán)上述過(guò)程8次(依次從最高位再到最低位),即可發(fā)送一個(gè)字節(jié)。在下述圖中那個(gè)x代表數(shù)據(jù)變化的。
🍏注→主機(jī)相當(dāng)于是單片機(jī)而AT24C02相當(dāng)于是從機(jī),在所有的線都是由主機(jī)進(jìn)行控制的。
接收一個(gè)字節(jié)
SCL低電平期間,從機(jī)(AT24C02)將數(shù)據(jù)位依次放到SDA線上(高位在前)
然后拉高SCL,主機(jī)(單片機(jī))將在SCL高電平期間讀取SDA數(shù)據(jù)位,同時(shí)在SCL高電平期間SDA不允許有數(shù)據(jù)變化,依次循環(huán)上述過(guò)程8次,即可接收一個(gè)字節(jié)。
注?主機(jī)在接收之前,需要釋放SDA。我們把SDA置1就相當(dāng)于釋放,我們從機(jī)(AT24C02)是完全不會(huì)干預(yù)我們的這個(gè)通信線的。換言之我們的主機(jī)(單片機(jī))釋放掉SDA數(shù)據(jù)線把這個(gè)線的控制權(quán)交給從機(jī)(AT24C02),此時(shí)就是從機(jī)(AT24C02)拿到了控制權(quán)。?
發(fā)送/接收(應(yīng)答)
📑IIC它是帶有數(shù)據(jù)應(yīng)答的,所以當(dāng)我們?cè)?/span>發(fā)送一個(gè)字節(jié)之后需要接收應(yīng)答。然后接收應(yīng)答之后就需要發(fā)送應(yīng)
SA發(fā)送應(yīng)答→在接收完一個(gè)字節(jié)之后,主機(jī)在下一個(gè)時(shí)鐘發(fā)送一位數(shù)據(jù),數(shù)據(jù)0表示應(yīng)答,數(shù)據(jù)1表示非應(yīng)答。
RA接收應(yīng)答→在發(fā)送完一個(gè)字節(jié)之后,主機(jī)在下一個(gè)時(shí)鐘接收一位數(shù)據(jù),判斷從機(jī)是否應(yīng)答,數(shù)據(jù)0表示應(yīng)答,數(shù)據(jù)1表示非應(yīng)答(主機(jī)在接收之前,需要釋放SDA=1)
I2C數(shù)據(jù)幀
向誰(shuí)→由從機(jī)AT24C02地址規(guī)定的。
發(fā)→由字節(jié)上最后一位的地址來(lái)進(jìn)行決定的。
什么→由S:BYTE x 規(guī)定的。
🤙發(fā)送一幀數(shù)據(jù)在協(xié)議上規(guī)定如下所示🤙
開(kāi)始(起始條件) 發(fā)送從機(jī)(AT24C02)地址加寫(xiě) 接收應(yīng)答 發(fā)送第一個(gè)字節(jié)數(shù)據(jù) 接收應(yīng)答 發(fā)送第二個(gè)字節(jié)數(shù)據(jù) 接收應(yīng)答 .....(直到第N個(gè)BYTE,然后接收應(yīng)答) 結(jié)束(終止條件)
🍎注?整體和上述的發(fā)送一幀數(shù)據(jù)差不多知識(shí)改變了格式。
由 寫(xiě) 變成了 讀。
由 發(fā)送 變成了 接收。
下面是復(fù)合格式數(shù)據(jù)幀。
🍎注→實(shí)際上就是發(fā)送一幀數(shù)據(jù)把(Stop)去掉再和接收一幀數(shù)據(jù)給進(jìn)行的結(jié)合。?
在上述就是AT20C02的讀寫(xiě)功能。
字節(jié)寫(xiě):在“字地址”處寫(xiě)入“數(shù)據(jù)”。
隨機(jī)讀:讀出在“字地址”處的“數(shù)據(jù)”。