導航:首頁 > 編程語言 > at24c04程序流程圖

at24c04程序流程圖

發布時間:2023-09-10 00:02:50

Ⅰ 怎樣製作簡易24CXX存儲器讀寫工具

抄1、先買一個電腦列印機的列印線(兩端有插頭);

Ⅱ 急求《單片機C語言程序設計實訓100例——基於8051+Proteus模擬》第三部分綜合設計C語言源代碼

這本書一共5章節,你說第三部分指的哪裡?
第五章才是綜合設計部分啊,而且這部分有好多常式,也不知道你要哪部分?
第1章 8051單片機C語言程序設計概述 1
1.1 8051單片機引腳 1
1.2 數據與程序內存 5
1.3 特殊功能寄存器 6
1.4 外部中斷、定時器/計數器及串口應用 8
1.5 有符號與無符號數應用、數位分解、位操作 9
1.6 變數、存儲類型與存儲模式 11
1.7 關於C語言運算符的優先順序 13
1.8 字元編碼 15
1.9 數組、字元串與指針 16
1.10 流程式控制制 18
1.11 可重入函數和中斷函數 19
1.12 C語言在單片機系統開發中的優勢 20
第2章 Proteus操作基礎 21
2.1 Proteus操作界面簡介 21
2.2 模擬電路原理圖設計 22
2.3 元件選擇 25
2.4 調試模擬 29
2.5 Proteus與Vision 3的聯合調試 29
2.6 Proteus在8051單片機應用系統開發的優勢 30
第3章 基礎程序設計 32
3.1 閃爍的LED 32
3.2 雙向來回的流水燈 34
3.3 花樣流水燈 36
3.4 LED模擬交通燈 38
3.5 分立式數碼管循環顯示0~9 40
3.6 集成式數碼管動態掃描顯示 41
3.7 按鍵調節數碼管閃爍增減顯示 44
3.8 數碼管顯示4×4鍵盤矩陣按鍵 46
3.9 普通開關與撥碼開關應用 49
3.10 繼電器及雙向可控硅控制照明設備 51
3.11 INT0中斷計數 53
3.12 INT0及INT1中斷計數 55
3.13 TIMER0控制單只LED閃爍 58
3.14 TIMER0控制數碼管動態管顯示 62
3.15 TIMER0控制8×8LED點陣屏顯示數字 65
3.16 TIMER0控制門鈴聲音輸出 68
3.17 定時器控制交通指示燈 70
3.18 TIMER1控制音階演奏 72
3.19 TIMER0、TIMER1及TIMER2實現外部信號計數與顯示 75
3.20 TIMER0、TIMER1及INT0控制報警器與旋轉燈 77
3.21 按鍵控制定時器選播多段音樂 79
3.22 鍵控看門狗 82
3.23 雙機串口雙向通信 84
3.24 PC與單片機雙向通信 90
3.25 單片機內置EEPROM讀/寫測試 95
第4章 硬體應用 99
4.1 74HC138解碼器與反向緩沖器控制數碼管顯示 100
4.2 串入並出晶元74HC595控制數碼管顯示四位數字 103
4.3 用74HC164驅動多隻數碼管顯示 106
4.4 並串轉換器74HC165應用 110
4.5 用74HC148擴展中斷 112
4.6 串口發送數據到2片8×8點陣屏滾動顯示 115
4.7 數碼管BCD解碼驅動器CD4511與DM7447應用 117
4.8 62256RAM擴展內存 119
4.9 用8255實現介面擴展 121
4.10 可編程介面晶元8155應用 124
4.11 串列共陰顯示驅動器控制4+2+2集成式數碼管顯示 129
4.12 14段與16段數碼管演示 133
4.13 16鍵解碼晶元74C922應用 136
4.14 1602字元液晶工作於8位模式直接驅動顯示 139
4.15 1602液晶顯示DS1302實時時鍾 148
4.16 1602液晶屏工作於8位模式由74LS373控制顯示 153
4.17 1602液晶屏工作於4位模式實時顯示當前時間 155
4.18 1602液晶屏顯示DS12887實時時鍾 159
4.19 時鍾日歷晶元PCF8583應用 167
4.20 2×20串列字元液晶屏顯示 174
4.21 LGM12864液晶屏顯示程序 177
4.22 TG126410液晶屏串列模式顯示 184
4.23 Nokia7110液晶屏菜單控製程序 192
4.24 T6963C液晶屏圖文演示 199
4.25 ADC0832 A/D轉換與LCD顯示 211
4.26 用DAC0832生成鋸齒波 215
4.27 ADC0808 PWM實驗 217
4.28 ADC0809 A/D轉換與顯示 220
4.29 用DAC0808實現數字調壓 221
4.30 16位A/D轉換晶元LTC1864應用 223
4.31 I2C介面存儲器AT24C04讀/寫與顯示 225
4.32 I2C存儲器設計的中文硬體字型檔應用 233
4.33 I2C介面4通道A/D與單通道D/A轉換器PCF8591應用 237
4.34 I2C介面DS1621溫度感測器測試 241
4.35 用兼容I2C介面的MAX6953驅動4片5×7點陣顯示器 246
4.36 用I2C介面控制MAX6955驅動16段數碼管顯示 250
4.37 I2C介面數字電位器AD5242應用 254
4.38 SPI介面存儲器AT25F1024讀/寫與顯示 257
4.39 SPI介面溫度感測器TC72應用測試 264
4.40 溫度感測器LM35全量程應用測試 268
4.41 SHT75溫濕度感測器測試 272
4.42 直流電機正、反轉及PWM調速控制 278
4.43 正反轉可控的步進電機 281
4.44 ULN2803驅動點陣屏仿電梯數字滾動顯示 284
4.45 液晶顯示MPX4250壓力值 286
4.46 12864LCD顯示24C08保存的開機畫面 289
4.47 用M145026與M145027設計的無線收發系統 293
4.48 DS18B20溫度感測器測試 296
4.49 1-Wire式可定址開關DS2405應用測試 303
4.50 MMC存儲卡測試 307
第5章 綜合設計 316
5.1 帶日歷時鍾及溫度顯示的電子萬年歷 316
5.2 用8051+1601LCD設計的整型計算器 321
5.3 電子秤模擬設計 328
5.4 1602液晶屏顯示仿手機鍵盤按鍵字元 332
5.5 用24C04與1602液晶屏設計的簡易加密電子鎖 336
5.6 1-Wire匯流排器件ROM搜索與多點溫度監測 341
5.7 高模擬數碼管電子鍾設計 356
5.8 用DS1302與12864LCD設計的可調式中文電子日歷 360
5.9 用T6963C液晶屏設計的指針式電子鍾 366
5.10 T6963C液晶屏中文顯示溫度與時間 370
5.11 T6963C液晶屏曲線顯示ADC0832兩路A/D轉換結果 372
5.12 溫度控制直流電機轉速 374
5.13 用74LS595與74LS154設計的16×16點陣屏 377
5.14 用8255與74LS154設計的16×16點陣屏 379
5.15 紅外遙控收發模擬 381
5.16 GP2D12紅外測距感測器應用 388
5.17 三端可調正穩壓器LM317應用測試 395
5.18 數碼管顯示的K型熱電偶溫度計 399
5.19 交流電壓檢測與數字顯示模擬 403
5.20 用MCP3421與RTD-PT100設計的鉑電阻溫度計 407
5.21 可接收串口信息的帶中英文硬字型檔的80×16 LED點陣屏 414
5.22 模擬射擊訓練游戲 422
5.23 GPS模擬 427
5.24 溫室監控系統模擬 431
5.25 基於Modbus匯流排的數據採集與開關控制系統設計模擬 437

建議你到腳本之家網站去搜索一下看看有沒有這本書的電子檔。

Ⅲ 求解51單片機I2C對24c02讀寫匯編程序

ORG 0000H
LJMP MAIN

SCL BIT P2.1
SDA BIT P2.0
TEMP EQU 30H
BYTE_ADDR EQU 31H
;---------------I2C通訊程序----------------
;------------------------------------------
;---------------讀取I2C數據----------------
;讀取一個位元組
;輸入:BYTE_ADDR,讀取位元組地址
;輸出:A
;------------------------------------------
I2CREAD:
LCALL I2C_START ;起始
MOV A,#0A0H
LCALL I2C_TXBYTE ;發送晶元地址數據+寫信號
LCALL I2C_RXACK ;接收ACK
MOV A,BYTE_ADDR
LCALL I2C_TXBYTE ;發送RAM地址數據
LCALL I2C_RXACK ;接收ACK
LCALL I2C_START ;起始
MOV A,#0A1H
LCALL I2C_TXBYTE ;發送地址數據+讀信號
LCALL I2C_RXACK ;接收ACK
LCALL I2C_RXBYTE ;接收數據
SETB C ;讀一個位元組C=1
LCALL I2C_TXACK ;發送NAK
LCALL I2C_STOP ;讀取完成
RET
;----------------------------
;R4=讀出位元組數
;BYTE_ADDR=讀出初始地址
;R1=數據指針
;----------------------------
I2C_PAGE_RD:
LCALL I2C_START ;起始
MOV A,#0A0H
LCALL I2C_TXBYTE ;發送晶元地址數據+寫信號
LCALL I2C_RXACK ;接收ACK
MOV A,BYTE_ADDR
LCALL I2C_TXBYTE ;發送RAM地址數據
LCALL I2C_RXACK ;接收ACK
LCALL I2C_START ;起始
MOV A,#0A1H
LCALL I2C_TXBYTE ;發送地址數據+讀信號
LCALL I2C_RXACK ;接收ACK
NXT_BYTE:
LCALL I2C_RXBYTE ;接收數據
MOV @R1,A
INC R1
CLR C ;連續讀C=0
LCALL I2C_TXACK ;發送NAK
LCALL I2C_DELAY
DJNZ R4,NXT_BYTE
LCALL I2C_NOACK ;NOACK
LCALL I2C_STOP ;讀取完成
RET
;----------------寫一位元組I2C數據------------
;寫入一個位元組
;輸入:BYTE_ADDR,寫入位元組地址;A=寫入數據
;輸出:無
;------------------------------------------
I2CWRITE:
PUSH ACC
LCALL I2C_START ;開始寫
MOV A,#0A0H
LCALL I2C_TXBYTE ;發送地址數據+寫信號
LCALL I2C_RXACK ;接收ACK
MOV A,BYTE_ADDR
LCALL I2C_TXBYTE ;發送RAM地址數據
LCALL I2C_RXACK ;接收ACK
POP ACC
LCALL I2C_TXBYTE ;寫數據
LCALL I2C_RXACK ;接收ACK
LCALL I2C_STOP ;寫完成
LCALL I2C_DLYMS ;延時1ms
RET
;----------------------------
;R4=寫入位元組數
;BYTE_ADDR=寫入初始地址
;R1=數據指針
;----------------------------
I2C_PAGE_WR:
LCALL I2C_START ;開始寫
MOV A,#0A0H
LCALL I2C_TXBYTE ;發送地址數據+寫信號
LCALL I2C_RXACK ;接收ACK
MOV A,BYTE_ADDR
LCALL I2C_TXBYTE ;發送RAM地址數據
LCALL I2C_RXACK ;接收ACK
NEXT_DATA: ;WRITE 16 BYTES TO
MOV A,@R1 ;EEPROM
LCALL I2C_TXBYTE ;寫數據
LCALL I2C_RXACK ;接收ACK
INC R1
DJNZ R4,NEXT_DATA
LCALL I2C_STOP ;寫完成
LCALL I2C_DLYMS ;延時1ms
RET
;----------------------------
;發送I2C起始信號
;----------------------------
I2C_START:
SETB SCL ;時鍾高電平時數據下降沿為啟動信號
LCALL I2C_DELAY
SETB SDA
LCALL I2C_DELAY
CLR SDA ;數據線下降沿
LCALL I2C_DELAY ;延時
CLR SCL ;時鍾->低
LCALL I2C_DELAY ;延時
RET
;----------------------------
;發送I2C停止信號
;----------------------------
I2C_STOP:
CLR SDA
LCALL I2C_DELAY ;延時
SETB SCL ;時鍾->高
LCALL I2C_DELAY ;延時
SETB SDA ;數據線上升沿
LCALL I2C_DELAY ;延時
CLR SCL
RET
;----------------------------
;發送ACK/NAK信號
;----------------------------
I2C_TXACK:
MOV SDA,C ;送ACK數據
LCALL I2C_DELAY ;延時
SETB SCL ;時鍾->高
LCALL I2C_DELAY ;延時
CLR SCL ;時鍾->低
LCALL I2C_DELAY ;延時
SETB SDA ;發送完成
RET
;----------------------------
;接收ACK/NAK信號
;----------------------------
I2C_RXACK:
SETB SDA ;准備讀數據
LCALL I2C_DELAY ;延時
SETB SCL ;時鍾->高
LCALL I2C_DELAY ;延時
MOV C,SDA ;讀取ACK信號
CLR SCL ;時鍾->低
LCALL I2C_DELAY ;延時
RET
;----------------------------
I2C_NOACK:
SETB SDA ;NO ACKNOWLEDGE
LCALL I2C_DELAY
SETB SCL
LCALL I2C_DELAY
CLR SCL
LCALL I2C_DELAY
RET
;----------------------------
;發送一位元組數據
;----------------------------
I2C_TXBYTE:
MOV R7,#8 ;8位計數
TXNEXT:
RLC A ;移出數據位
MOV SDA,C ;數據送數據口
SETB SCL ;時鍾->高
LCALL I2C_DELAY ;延時
CLR SCL ;時鍾->低
LCALL I2C_DELAY ;延時
DJNZ R7,TXNEXT ;送下一位
RET
;----------------------------
;接收一位元組數據
;----------------------------
I2C_RXBYTE:
MOV R7,#8 ;8位計數
RXNEXT:
SETB SCL ;時鍾->高
LCALL I2C_DELAY ;延時
MOV C,SDA
RLC A
CLR SCL ;時鍾->低
LCALL I2C_DELAY ;延時
DJNZ R7,RXNEXT ;收下一位
RET
;----------------------------
I2C_DELAY: ;
NOP
NOP
RET ;
;----------------------------
I2C_DLYMS:
PUSH 0
PUSH 1
MOV R1,#2
I2CDL:
MOV R0,#248
DJNZ R0,$
DJNZ R1,I2CDL
POP 1
POP 0
RET
;----------------------------
MAIN:
MOV SP,#60H
MOV A,#0AAH
MOV BYTE_ADDR,#0
LCALL I2CWRITE
LCALL I2CREAD
MOV P1,A
SJMP $
END
;----------------------------

Ⅳ 流量積算儀 定量控制

AT89C55WD在智能流量積算儀中的應用

ATMEL公司推出的帶有看門狗功能的單片機AT89C55WD帶有20K的程序存儲器,是8051系列中一款較為先進的產品,其看門狗功能可以大大提高產品的穩定性,大容量的內部程序存儲器可以容納功能豐富的軟體。下面簡要介紹以A51為開發工具,以AT89C55WD單片機為核心,開發流量積算控制儀的設計和實現方法。
一、流量積算控制儀總體布局

流量積算儀有5個輸入通道:分別為流量L、壓力補償P、熱電偶TC、熱電阻Pt100、頻率F。由通道開關控制。流量積算儀的基本工作原理是:通過輸入信號電路把各種模擬信號經通道開關送入A/D轉換器,轉換成數字信號(頻率信號直接由微處理器進行計數),微處理器根據采樣的結果和數字設定內容進行計算比較後顯示及控制輸出。

(圖1)原理方框圖

(圖2)總體功能圖

二、系統電路構成

流量積算控制儀電路由單片機AT89C55WD、5+8位LED顯示電路、通道開關TC4052電路、A/D採集電路、數據存儲電路AT24C04、電源管理電路IMP708、變送輸出電路TLC465、AD694、開關量輸出電路、鍵盤和電源及饋電輸出等電路組成,下面簡要介紹各個組成部分。

1.單片機AT89C55WD及電路組成

單片機AT89C55WD通過P0.0~P0.3驅動3D1顯示驅動晶元HD7279,再去驅動5位數碼管,顯示瞬時流量PV值;同時驅動5個按鍵和8個LED指示燈。通過P0.4~P0.7驅動3D2顯示驅動晶元HD7279,再去驅動8位數碼管,顯示流量累積值SV。通過P1.0~P1.3控制CS5523 A/D轉換器採集數據。將採集到的數據通過一系列的運算處理,如圖3所示,並將運算結果通過顯窗口分別將瞬時值和積算值顯示出來,同時點亮相應的指示燈。由於突發事件停電,會造成數據丟失。為了避免數據丟失,我們採用了IMP708晶元進行掉電保護,當電壓下降到708閥值(如4.6伏)時,將相關數據存入AT24C04中,電源恢復後,重新載入這些數據。另外鍵盤數據和流量積算值等也存儲在AT24C04中。

2.顯示和鍵盤電路

在積算儀中使用LED 數碼管顯示器,瞬時流量值的顯示採用2隻四聯LG3641AG共陰數碼管,積算流量值的顯示採用1隻四聯LG5641AG和一隻LG5611共陰數碼管。其驅動晶元是2支HD7279,既解決了13位數碼管的驅動,同時又解決了5個按鍵、8個指示燈的驅動。HD7279是一款LED數碼管和鍵盤介面晶元: 可驅動8位LED數碼管和64鍵鍵盤,SPI介面,外圍元件非常少。與單片機介面採用SPI串列介面方式,方便實用。

3. A/D採集電路

A/D採集電路主要由16-bit的CS5523構成,該晶元是SPI串列介面,具有片選端。而4個通道的輸入則選用了TC4052進行控制。

4.看門狗電路

AT89C55WD與MCS-51相兼容,可對內核進行1000次的電擦寫,其電壓、電流和功耗都比較小,帶有20K的可重寫快閃記憶體和硬體看門狗定時器。
看門狗定時器是在系統軟體崩潰後進行恢復的一種方法,WDT由13位計數器和看門狗復位特殊功能寄存器(WDTRST SFR)組成,在預設設置下,系統復位時即關閉。要使WDT有效,用戶必須向0A6H單元的WDTRST SFR順序寫入01EH和0E1H。當WDT有效,計數器每經過一個機器周期後加1,除了硬體或WDT溢出復位,沒有任何方法可使WDT無效。當計數器溢出,WDT就在RST引腳產生一個復位的高脈沖。
要使WDT持續有效,就必須每隔一定時間往WDTRST寫入01EH和0E1H來避免WDT溢出。當WDT的13位計數器計數至8191(1FFFH)時,計數器便溢出,引起設備的復位。這就意味著用戶必須至少每8191個機器周期復位WDT一次。使WDT復位,必須向只寫寄存器WDTRST寫入01EH和0E1H。當WDT溢出時在RST引腳產生一個復位的高電平脈沖,持續時間為:98×TOSC ,TOSC=1/FOSC。為了充分利用WDT,在要求防止WDT溢出復位時,應每隔一定周期寫WDTRST一次。

下面給出一個常式:
將看門狗定時器放在T1中,每中斷一次,需50ms,當計數器,計滿1秒給R19加1。當主程序或子程序在10秒之內還未對R19清0,說明程序可能「跑飛」,此時看門狗使能,將AT89C55WD復位,從地址0000H處開始執行。
R19 DATA 13H ;
R23 DATA 17H ;ms計數器

T1int: ;定時(計時)器
MOV TH1, #4CH
MOV TL1, #00H ;計滿重裝初值(約50ms)
INC R23 ;(20次*50ms)=1000ms=1s
MOV A,R23
CJNE A,#20,T1int_01 ;計滿1s向下
INC R19 ;用於看門狗定時
MOV A,R19
CLR C
SUBB A,#10
JC T1int_01 ;10秒到向下,復位
CLR EA
MOV WDTRST,#01EH ;WDT使能,13bit
MOV WDTRST,#0E1H ;TOSC=1/FOSC.
JMP $
T1int_01: RETI

三、系統軟體部分

系統軟體採用A51匯編語言編程。

1.編程語言

本系統採用Keil公司V7.0的C51編譯器。A51是一個有通用特性機用法的重定位宏匯編器,能很好地與INTEL公司的MASM51宏匯編兼容,支持模塊化編程,可以方便地與高級語言介面。

2. 數學模型與程序設計

流量積算儀的數學模型很復雜,涉及到幾十個公式,但基本公式為:
(1)質量流量 (2)標准體積流量

(3)密度運算公式

式中:ρ—工況密度,ρ20—標況密度,T0—為273.15℃,T—溫度補償輸入信號(單位:℃),P—壓力補償輸入信號,P0—設計壓力(標況=0.10133MPa),PA—儀表工作點的大氣壓力。

(圖3)基本數學模型與程序分支結構

3.工作過程

由於整個系統較復雜,幾個流程圖很難表述清楚整個軟體的運算過程。這里給出一個粗略的流程圖,來表述流量積算儀的簡單的工作流程。詳見圖4所示。

(圖4)程序流程圖

四、程序

整個源程序(含注釋)265KB,把佔用空間較大的飽和蒸汽、過熱蒸汽、Pt100、K分度、E分度熱電偶表格也放在了程序存儲器上。匯編後的HEX文件約16KB,僅用了20KB程序存儲器的五分之四,剩下的4K可留給將來添加新功能。 結束語 在研製流量積算控制儀的過程中,我們採用A51編程進行軟體開發,以AT24C04作為控制參數和積算值等存儲器,同時設置了看門狗,程序「跑飛」的現象幾乎不存在。加上有電源管理晶元IMP807,由於掉電而引起的數據丟失現象不存在。

我們研製的流量積算控制儀的智能化程度相當高,如:
溫度T或壓力P補償出現異常時(無溫壓補償除外),同時差壓ΔP大於0,溫度或壓力指示燈閃爍,用以提示溫度或壓力補償出現了異常。密度ρ取最近一次的值。斷電後密度值不保持,重新上電密度值取ρ=1,有差壓ΔP就有流量L,但此時流量值為近似值。待故障排除後,流量積算值恢復正常。
http://www.c51.cn/Article/mcuzh/200604/4105.html

閱讀全文

與at24c04程序流程圖相關的資料

熱點內容
怎麼把九游殘留數據刪除 瀏覽:828
有什麼女生主動聊天的app 瀏覽:436
有哪些可以督促自己的app 瀏覽:244
用USB傳輸視頻文件夾顯示為空 瀏覽:710
恢復文件軟體免費版手機 瀏覽:648
lg怎麼隱藏文件 瀏覽:836
蘋果免費讀書app推薦 瀏覽:497
劉駿微信 瀏覽:113
書旗舊版本80 瀏覽:467
教編程考什麼證 瀏覽:990
下載編程貓後哪裡有客服 瀏覽:13
如何編輯歌曲文件格式 瀏覽:638
cf無限領取cdk工具 瀏覽:350
如何讓手機文件保存到電腦上 瀏覽:459
sa資料庫默認密碼是多少 瀏覽:191
電腦正在查找文件 瀏覽:541
一個文件盒省內寄順豐多少錢 瀏覽:41
誅仙62坐騎怎麼升級到63 瀏覽:926
linux以日期查看日誌記錄 瀏覽:446
工業大數據是什麼東西 瀏覽:881

友情鏈接