完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
见图:
因为自己写了很多个版本的I2C,结果都是这个STOP SETUP tiME VIOLATED,然后在网上找了一个程序发现也是这样的错误。请问各位这是什么问题如何解决? 另附上程序: ///?????:89S51 ///??:12MHz #include #include "INTRINS.H" #define uchar unsigned char #define uint unsigned int ***it scl = P2^1; ***it sda = P2^0; /*********74H573???*********/ ***it dula = P2^7;//?? ***it wela = P2^6;//?? ***it LED = P2^5;//??? uchar tt=0; uchar i=0,j=0,temp=0,a=0,b=0,c=0; /*******?????_??********/ uchar code table_duan[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f}; /*********?????**********/ uchar code table_wei[]={0xfe,0xfd,0xfb,0xf7,0xef}; void delay1(uint x) { uint i,j ; for(i=x;i--;i>0) for(j=110;j--;j>0); } /**************************** ???? **************************/ void display(uchar wee,uchar H_hour,uchar L_hour,uchar H_min,uchar L_min) { dula=1; P0=table_duan[wee];//???5?,?? dula=0; wela=1; P0=table_wei[0]; wela=0; delay1(1); dula=1; P0=table_duan[H_hour];//???4?,???? dula=0; wela=1; P0=table_wei[1]; wela=0; delay1(1); dula=1; P0=table_duan[L_hour];//???3?,???? dula=0; wela=1; P0=table_wei[2]; wela=0; delay1(1); dula=1; P0=table_duan[H_min];//???2?,???? dula=0; wela=1; P0=table_wei[3]; wela=0; delay1(1); dula=1; P0=table_duan[L_min];//???1?,???? dula=0; wela=1; P0=table_wei[4]; wela=0; delay1(1); } void delay() { ;; } void start() //???? { sda=1; delay(); scl=1; delay(); sda=0; delay(); } void stop() //?? { sda=0; delay(); scl=1; delay(); sda=1; delay(); } void respons() //?? { uchar i; scl=1; delay(); while((sda==1)&&(i<250))i++; scl=0; delay(); } void init() { sda=1; delay(); scl=1; delay(); } void write_byte(uchar date) { uchar i,temp; temp=date; for(i=0;i<8;i++) { temp=temp<<1; scl=0; delay(); sda=CY; delay(); scl=1; delay(); // scl=0; // delay(); } scl=0; delay(); sda=1; delay(); } uchar read_byte() { uchar i,k; scl=0; delay(); sda=1; delay(); for(i=0;i<8;i++) { scl=1; delay(); k=(k<<1)|sda; scl=0; delay(); } return k; } void write_add(uchar address,uchar date) { start(); write_byte(0xa0); respons(); write_byte(address); respons(); write_byte(date); respons(); stop(); } uchar read_add(uchar address) { uchar date; start(); write_byte(0xa0); respons(); write_byte(address); respons(); start(); write_byte(0xa1); respons(); date=read_byte(); stop(); return date; } /*------------------------------------------------------------- ??? ??:?????EEPROM AT24C02??????? ------------------------------------------------------------*/ void main() { TMOD=0x01;//?????0?????1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1;//???? ET0=1;//????0?? TR0=0;//?????0 P2=P2&0xc0; init(); for(i=0; i<255; i++) { write_add(i,i); delay1(1); } TR0=1; while(1) { if(j == 255)j=0; TR0=0; temp=read_add(j); TR0=1; a=temp/100; b=temp%100/10; c=temp%100%10; display(a,b,c,0,0); } } void timer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; tt++; if(tt == 5) { tt = 0; LED = ~LED;//?????????? j++; } }
|
|
相关推荐
3个回答
|
|
|
加上个debug,每条程序都是写入地址后就说有错,卡死。
|
|
|
|
|
|
顶一下,学习路过
|
|
|
|
|
|
顶一下,学习路过
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2609 浏览 0 评论
5303 浏览 0 评论
PROTUES仿真no model specified for adc0809,谁有ADC0809的model?
17604 浏览 1 评论
单片机应用技术的ISIS professional电路设置仿真老是报错怎么办
17902 浏览 0 评论
21173 浏览 3 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 13:34 , Processed in 0.879806 second(s), Total 80, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
4967