AVR TWI读范例程序.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《AVR TWI读范例程序.docx》由会员分享,可在线阅读,更多相关《AVR TWI读范例程序.docx(13页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、AVR TWI读写范例程序(AT24C02)3 b$ X8 q+ B0 本程序简单的示范了如何使用ATMEGA16的TWI 读写AT24C02 IIC EEPROM新洁家园) c# bA. h. F* TWI协议) f9 Y9 : S! O1 j7 z (即IIC协议,请认真参考IIC协议的内容,否则根本就不能掌握)! P0 X! f$ |; X9 & |/ u. J$ g机械、电子电气、编程技术 一主多从的应用,M16作主机$ R! R, n WT (M16做从机和多主多从的应用不多,请自行参考相关文档)0 w; C* q( h+ w$ : e9 7 中断模式新洁家园$ e; _: B8 b
2、$ T (因为AVR的速度很高,而IIC的速度相对较低,机械、电子电气、编程技术 x0 z6 G J, X4 M 采用查询模式会长时间独占CPU,令CPU的利用率明显下降。% q- s7 M8 qP( p) o 特别是IIC速度受环境影响只能低速通讯时,对系统的实时性产生严重的影响。0 ; ?, C4 ?; ! A) B; W2 t 查询模式可以参考其它文档和软件模拟IIC的文档)9 e5 Q! pa H5 j9 I8 R# M) y AT24C02/04/08的操作特点- # 6 N+ i- K新洁家园出于简化程序考虑,各种数据没有对外输出,学习时建议使用JTAG ICE硬件仿真器& o:
3、U$ M+ J9 L) c! R& F0 A8 - L: O+ d; k- J& y7 O7 q8 D, m/ x# D机械、电子电气、编程技术#include ! L! C h! J1 K A2 / z#include 新洁家园0 x& ? d, j8 ! a# N6 e#include k% L- k5 ?$ w% X, h#include 4 n: U+ : f) |+ c) |新洁家园/时钟定为外部晶振7.3728MHz,F_CPU=7372800* p) J1 ?* V; x# t- #include A# m) O! W6 Y3 C/定义了各种模式下的状态码列表(TWSR已屏蔽预分
4、频位),本文后面附上中文描述 i: T7 n2 T0 |1 r) 8 ?机械、电子电气、编程技术/管脚定义* D) h/ F# s2 Y0 P9 h2 # d2 #definepinSCL 0 /PC0 SCL. R h# X9 J( j$ h2 J6 h/ O% _#definepinSDA 1 /PC1 SDA+ H2 M7 K0 I! G; U1 D- G/ B/为保险起见,最好在SCL/SDA接上110K的外部上拉电阻到VCC。4 % f* 3 W. O* U#define fSCL 100000 /TWI时钟为100KH6 * 8 w/ + 5 M9 q: Y- n/预分频系数=1(
5、TWPS=0)$ . ?! E# j0 ?F2 #if F_CPU fSCL*362 P% e; y+ |& j; U& O机械、电子电气、编程技术#define TWBR_SET 10; /TWBR必须大于等于10+ C# I+ C 9 i+ J7 D! y. #else4 |/ |# * e6 7 X#define TWBR_SET (F_CPU/fSCL-16)/2; /计算TWBR值+ N X! E W# z L2 X/ u) H机械、电子电气、编程技术#endif: W- i* R2 F* V# c8 l0 N; q#define TW_ACT (1TWINT)|(1TWEN)|(1
6、TWIE) P: a) a3 a5 X, M# H p9 D/TWCR只能IN/OUT,直接赋值比逻辑运算(|= &=)更节省空间fq, v& d( P5 p2 |新洁家园#define SLA_24CXX 0xA0 /24Cxx系列的厂商器件地址(高四位) lU$ A8 b3 _4 t1 / E#define ADDR_24C02 0x006 i EF2 T% f0 P1 o+ F AT24C02的地址线A2/1/0全部接地,SLAW=0xA0+0x001+0x00,SLAR=0xA0+0x008)1;7 m% U0 |& T2 G1 |5 i&=0x06; /考虑了24C04/08的EEP
7、ROM地址高位放在SLA里面( v! o1 M0 1 q( M) o8 0 D9 strTWI.SLA=sla+i;: fk# u- u% H! d1 n- V机械、电子电气、编程技术 strTWI.ADDR=addr;. m m$ T; d( v7 B) I* strTWI.pBUF=ptr;/ I; p- k, X0 ?! E( 机械、电子电气、编程技术 strTWI.DATALEN=len; # % s$ f. d8 U8 j; ? strTWI.STATE=ST_START;- D4 ?! U7 J6 0 2 A strTWI.FAILCNT=0;机械、电子电气、编程技术8 O) 4
8、o7 T P$ u2 L T TWCR=(1=0x60)|(status=0x00)/ X2 6 N4 U+ R2 w/ C /总线错误或从机模式引发的中断,不予处理1 z- Z B# R; p j# I7 j q return;4 * W; b/ c8 py( L $ c$ B/ d* e% j) % S( t3 I5 f switch(state)机械、电子电气、编程技术 g j7 y2 l, ) _1 o- k. m ; m/ f8 r. N8 T5 A ?6 S. E% O B新洁家园 case ST_START: /START状态检查4 L/ % X9 X; c if(status=
9、TW_START)% I& v6 W8 I2 R6 N- N8 N /发送start信号成功; j: , v6 j: M* u I TWDR=strTWI.SLA&0xFE; /发送器件地址写SLAW新洁家园+ v n3 V# C& p1 H7 Q2 TWCR=TW_ACT; /触发下一步动作,同时清start发送标志机械、电子电气、编程技术2 y1 S3 3 W( A ! U& |( Y, P; x else新洁家园 X$ r/ 1 e) B* c /发送start信号出错新洁家园3 T. T+ c- e( y: F state=ST_FAIL;. q* jBm& K, D, ; ) a)
10、O 3 YV- V+ F/ B机械、电子电气、编程技术 break; C0 W$ t8 0 a! d case ST_SLAW: /SLAW状态检查! 6 H0 R: R; Hg& e( W; h. W机械、电子电气、编程技术 if(status=TW_MT_SLA_ACK)7 z+ b: : w- H) ?. /发送器件地址成功, g9 v: B6 ?9 , d, b1 O& r TWDR=strTWI.ADDR; /发送eeprom地址4 F$ a8 L# J/ l 1 新洁家园 TWCR=TW_ACT; /触发下一步动作; J# v- gR# a, M 新洁家园# f- |7 Y9 z*
11、 % : T/ B7 p else T, q- m4 f5 p- y. ; F /发送器件地址出错+ u% _7 A3 L1 3 7 state=ST_FAIL;+ p/ 6 A. ) n* B n a机械、电子电气、编程技术 l- J& U% Q. l8 P break;+ : o! X+ V/ u4 H* A case ST_WADDR: /ADDR状态检查1 n9 O/ Y# L7 T; m7 if(status=TW_MT_DATA_ACK)新洁家园! c6 v5 mf5 w. N) a+ Q7 K3 T( U /发送eeprom地址成功, l6 u2 s L2 XR3 h I6 n.
12、 m6 H if (action=TW_READ)3 N5 O& k4 z5 q% Q, c, 8 9 | /读操作模式3 d; HB 0 E# L1 l) h1 TWCR=(1TWSTA)|TW_ACT; /发送restart信号,下一步将跳到RESTART分支$ % F2 ( X4 l4 u9 P ( g新洁家园 . N, ! W! y) A% e7 z W else( g& t; _9 i l c. e /写操作模式* S$ G4 y3 r3 s. _! m8 2 P* m新洁家园 TWDR=*strTWI.pBUF+; /写第一个字节, j: 6 s; |7 H- strTWI.DAT
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AVR TWI读范例程序 TWI 范例 程序
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内