freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

單片機(jī)c程序設(shè)計(jì)ppt課件-文庫(kù)吧資料

2025-05-12 13:14本頁面
  

【正文】 read_data):讀出 EEPROM中指定單片機(jī)單元中的指定數(shù)據(jù) . *設(shè)置芯片的工作狀態(tài) (set_state):通過預(yù)設(shè)的常數(shù)設(shè)置芯片的工作狀態(tài) . 八個(gè)設(shè)置芯片工作狀態(tài)的常數(shù)如下 : WDT200設(shè)置 200ms看門狗 。 6 Sck 串行時(shí)鐘 :上升沿使 SI引腳進(jìn)行數(shù)據(jù)輸入 。 2 SO 串行輸出 :讀數(shù)據(jù)時(shí) ,在 SCK脈沖的下降沿由這個(gè)引腳送出 。 看門狗輸入 :加在 WDI引腳上的由高到低的電平變化將看門狗定時(shí)器復(fù)位 。在擴(kuò) 展多個(gè) SPI外圍器件時(shí) ,單片機(jī)應(yīng)分別通過 I/O口線來分時(shí)選通外圍器件 . SPI的數(shù)據(jù)傳送速度 ,主機(jī)方式最高可達(dá) 線由外部硬件端口選擇 ,因此用軟件實(shí)現(xiàn)起來較方便 . X5045的結(jié)構(gòu)和特性 ? 本器件將 4種功能合于一體 : (1)上電復(fù)位控制 :參見 P180 (2)看門狗定時(shí)器 :參見 P180 (3)降壓管理 (電壓跌落檢測(cè) ):參見 P181 (4)具有塊保護(hù)功能的串行 EEPROM:參見 P181 使用該片有助于簡(jiǎn)化應(yīng)用系統(tǒng)的設(shè)計(jì) ,減少印制板的占用 面積 ,提高可靠性 . 圖 89 是該芯片的 8腳 PDIP/SOIP/MSOP 封裝形式的引腳圖 . X5045的結(jié)構(gòu)和特性 ? 表 84是 X5045芯片引腳功能的說明 引腳 名稱 功能描述 1 CS/WDI 芯片選擇輸入 :CS高電平表未選中 。 使用這一軟件包非常簡(jiǎn)單 ,首先根據(jù)硬件連接定義好 SCL,SDA和WP這三個(gè)引腳 ,然后在調(diào)用函數(shù)中定義一個(gè)數(shù)組 ,用以存放待寫入的數(shù)據(jù) ,或讀出數(shù)據(jù)之后用來存放數(shù)據(jù) 。因此這里不對(duì) I2C總線接口原理進(jìn)行分析 ,而是學(xué)習(xí)如何使用成熟的軟件包對(duì) 24系列 EEPROM進(jìn)行編程操作 . ? 這個(gè)軟件包提供了從 EEPROM中讀出數(shù)據(jù)和向 EEPROM中寫入數(shù)據(jù)的兩個(gè)函數(shù) : void WrToROM(uchar Data[],uchar Address,uchar Num) void RdFromROM(uchar Data[],uchar Adress,uchar Num) 每一個(gè)函數(shù)讀用三個(gè)參數(shù) ,各有何作用參見 P176。 在 24系列 EEPROM的小容量芯片里 ,使用 1字節(jié)來表示存儲(chǔ)單元的地址 。 24系列 EEPROM的結(jié)構(gòu)及特性 ? EEPROM芯片尋址 在一條 I2C總線上可以掛接多少具有 I2C接口的器件 .在一次傳送中 ,單片機(jī) 所送出的命令或數(shù)據(jù)只能被其中的某一個(gè)器件接收并執(zhí)行 .為此 ,所有串行 I2C 接口都必需有一個(gè) 8位含有芯片地址的控制字 .這個(gè)控制字可以確定本芯片是 否被選通 ,以及將進(jìn)行讀還是寫的操作 . 控制字節(jié) 的 前 4位 :是針對(duì)不同類型器件的特征碼 . 控制字 的 第 8位 :是讀 /寫選擇位 ,以決定微處理器對(duì) EEPROM進(jìn)行讀還是寫操作 . 該位為 “ 1”—讀操作 。 VCC:電源端 。 WP:寫保護(hù) ,即對(duì)硬件數(shù)據(jù)的保護(hù) .接地時(shí) … 。 ?擦除 /寫入次數(shù) :一般在 10萬次以上 ,有的達(dá) 1000萬次 . (參見圖 88:左邊 ) SCL:串行時(shí)鐘端 .寫入用上升沿 ,輸出用下降沿同步 。頁寫入 。 *容量 128/256/512/1024/2048/4096/8192字節(jié) 。 } } } 程序?qū)崿F(xiàn) 。 } mDelay(500)。 if(UpDown) //要求由上向下 { LampCode=_cror_(LampCode,1)。 //調(diào)用鍵盤程序并獲得鍵值 if(Kvalue ) //如果該值不等于 0 { KProce(KValue)。 for(。 //存放流動(dòng)的數(shù)據(jù)代碼 P1=0xff。 } void main() { uchar KValue。 if((tmp|0xc3)==0xff) break。 //返回 //如尚未返回,說明一定有 1或更多位被按下 for(。 KValue|=0xc3。 //返回 mDelay(10)。 KValue|=0xc3。 P3|=0x3c。 } uchar Key() { uchar KValue。 if((KValueamp。 if((KValueamp。 if((KValueamp。} } } void KProce(uchar KValue) //鍵值處理 { if((KValueamp。i124。Delay0。 //起動(dòng)及停止標(biāo)志 /*延時(shí)程序由 Delay參數(shù)確定延遲時(shí)間 */ void mDelay(unsigned int Delay) { unsigned int i。 bit UpDown=0。 :下 ,按此鍵則燈由下而上流動(dòng) 。 :停止 ,按此鍵則停止流動(dòng) ,所有燈為暗 。 } } 程序?qū)崿F(xiàn) 。 //計(jì)數(shù) if(Counter==10) Counter=0。) { DispBuf[5]=Counter。 DispBuf[4]=0。 DispBuf[2]=0。 //T0中斷允許 DispBuf[0]=0。 //T0開始運(yùn)行 EA=1。 TL0=(655363000)%256。 TMOD=0x01。 P1=0xff。i++) {。Delay) { for(i=0。 for(。 //計(jì)數(shù)值加 1 if(Count==6) //如果計(jì)數(shù)值等于 6,則讓其回 0 Count=0。 //取字形碼 P0=tmp。 //P2與取出的位值相與 ,將某一位清零 tmp=DispBuf[Count]。 //P2與 11111100B相或 ,將高 6位置 1 P2=P2amp。//定時(shí)時(shí)間為 3000個(gè)周期 tmp=BitTab[Count]。 //計(jì)數(shù)器 ,顯示程序通過它得知現(xiàn)正顯示哪個(gè)數(shù)碼管 TH0=(655363000)/256。 //6字節(jié)的顯示緩沖區(qū) void Timer0() interrupt 1 { uchar tmp。 uchar code DispTab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80, 0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xFF}。) { Disp()。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1