单片机C语言程序设计实训100例

源代码在线查看: 24c04.i

软件大小: 12498 K
上传用户: zaindyclg
关键词: 100 单片机 C语言 程序设计
下载地址: 免注册下载 普通下载 VIP

相关代码

								#line 1 "24c04.c" /0				  				#line 1 "C:\KEIL\C51\INC\REG52.H" /0																												 				 				 				 				 				 				 sfr P0    = 0x80;				 sfr P1    = 0x90;				 sfr P2    = 0xA0;				 sfr P3    = 0xB0;				 sfr PSW   = 0xD0;				 sfr ACC   = 0xE0;				 sfr B     = 0xF0;				 sfr SP    = 0x81;				 sfr DPL   = 0x82;				 sfr DPH   = 0x83;				 sfr PCON  = 0x87;				 sfr TCON  = 0x88;				 sfr TMOD  = 0x89;				 sfr TL0   = 0x8A;				 sfr TL1   = 0x8B;				 sfr TH0   = 0x8C;				 sfr TH1   = 0x8D;				 sfr IE    = 0xA8;				 sfr IP    = 0xB8;				 sfr SCON  = 0x98;				 sfr SBUF  = 0x99;				 				 				 sfr T2CON  = 0xC8;				 sfr RCAP2L = 0xCA;				 sfr RCAP2H = 0xCB;				 sfr TL2    = 0xCC;				 sfr TH2    = 0xCD;				 				 				 				 				 sbit CY    = PSW^7;				 sbit AC    = PSW^6;				 sbit F0    = PSW^5;				 sbit RS1   = PSW^4;				 sbit RS0   = PSW^3;				 sbit OV    = PSW^2;				 sbit P     = PSW^0;  				 				 				 sbit TF1   = TCON^7;				 sbit TR1   = TCON^6;				 sbit TF0   = TCON^5;				 sbit TR0   = TCON^4;				 sbit IE1   = TCON^3;				 sbit IT1   = TCON^2;				 sbit IE0   = TCON^1;				 sbit IT0   = TCON^0;				 				 				 sbit EA    = IE^7;				 sbit ET2   = IE^5;  				 sbit ES    = IE^4;				 sbit ET1   = IE^3;				 sbit EX1   = IE^2;				 sbit ET0   = IE^1;				 sbit EX0   = IE^0;				 				 				 sbit PT2   = IP^5;				 sbit PS    = IP^4;				 sbit PT1   = IP^3;				 sbit PX1   = IP^2;				 sbit PT0   = IP^1;				 sbit PX0   = IP^0;				 				 				 sbit RD    = P3^7;				 sbit WR    = P3^6;				 sbit T1    = P3^5;				 sbit T0    = P3^4;				 sbit INT1  = P3^3;				 sbit INT0  = P3^2;				 sbit TXD   = P3^1;				 sbit RXD   = P3^0;				 				 				 sbit SM0   = SCON^7;				 sbit SM1   = SCON^6;				 sbit SM2   = SCON^5;				 sbit REN   = SCON^4;				 sbit TB8   = SCON^3;				 sbit RB8   = SCON^2;				 sbit TI    = SCON^1;				 sbit RI    = SCON^0;				 				 				 sbit T2EX  = P1^1;  				 sbit T2    = P1^0;  				 				 				 sbit TF2    = T2CON^7;				 sbit EXF2   = T2CON^6;				 sbit RCLK   = T2CON^5;				 sbit TCLK   = T2CON^4;				 sbit EXEN2  = T2CON^3;				 sbit TR2    = T2CON^2;				 sbit C_T2   = T2CON^1;				 sbit CP_RL2 = T2CON^0;				 				 				#line 1 "24c04.c" /0				 				  				#line 1 "C:\KEIL\C51\INC\INTRINS.H" /0																												 				 				 				 				 				 extern void          _nop_     (void);				 extern bit           _testbit_ (bit);				 extern unsigned char _cror_    (unsigned char, unsigned char);				 extern unsigned int  _iror_    (unsigned int,  unsigned char);				 extern unsigned long _lror_    (unsigned long, unsigned char);				 extern unsigned char _crol_    (unsigned char, unsigned char);				 extern unsigned int  _irol_    (unsigned int,  unsigned char);				 extern unsigned long _lrol_    (unsigned long, unsigned char);				 extern unsigned char _chkfloat_(float);				 extern void          _push_    (unsigned char _sfr);				 extern void          _pop_     (unsigned char _sfr);				 				 				 				#line 2 "24c04.c" /0				 				 				 				 				 				 sbit SCL = P1^0;				 sbit SDA = P1^1;				 sbit SPK = P3^0;				 				  unsigned char code HI_LIST[] =				 {				 0,226,229,232,233,236,238,240,241,242,245,246,247,248				 };				  unsigned char code LO_LIST[] =				 {				 0,4,13,10,20,3,8,6,2,23,5,26,1,4,3				 };				  unsigned char code Song_24C04[] =				 {				 1,2,3,1,1,2,3,1,3,4,5,3,4,5				 };				  unsigned char sidx;				 				 void DelayMS(unsigned int x)				 {				  unsigned char t;				 while(x--)				 {				 for(t=120;t>0;t--);				 }				 }				 				 void Start()				 {				 SDA=1;SCL=1;{_nop_();_nop_();_nop_();_nop_();};SDA=0;{_nop_();_nop_();_nop_();_nop_();};SCL=0;				 }				 				 void Stop()				 {				 SDA=0;SCL=0;{_nop_();_nop_();_nop_();_nop_();};SCL=1;{_nop_();_nop_();_nop_();_nop_();};SDA=1;				 }				 				 void RACK()				 {				 SDA=1;{_nop_();_nop_();_nop_();_nop_();};SCL=1;{_nop_();_nop_();_nop_();_nop_();};SCL=0;				 }				 				 void NO_ACK()				 {				 SDA=1;SCL=1;{_nop_();_nop_();_nop_();_nop_();};SCL=0;SDA=0;				 }				 				 void Write_A_Byte(unsigned char b)				 {				  unsigned char i;				 for(i=0;i				 {				 b				 }				 RACK();				 }				 				 void Write_IIC(unsigned char addr,unsigned char dat)				 {				 Start();				 Write_A_Byte(0xa0);				 Write_A_Byte(addr);				 Write_A_Byte(dat);				 Stop();				 DelayMS(10);				 }				 				  unsigned char Read_A_Byte()				 {				  unsigned char i,b;				 for(i=0;i				 {				 SCL=1;b				 }				 return b;				 }				 				  unsigned char Read_Current()				 {				  unsigned char d;				 Start();				 Write_A_Byte(0xa1);				 d=Read_A_Byte();				 NO_ACK();				 Stop();				 return d;				 }				 				  unsigned char Random_Read(unsigned char addr)				 {				 Start();				 Write_A_Byte(0xa0);				 Write_A_Byte(addr);				 Stop();				 return Read_Current();						 }				 				 void T0_INT() interrupt 1				 {				 SPK=!SPK;				 TH0=HI_LIST[sidx];				 TL0=LO_LIST[sidx];				 }				 				 void main()				 {				  unsigned char i;				 IE=0x82;				 TMOD=0x00;				 for(i=0;i				 {				 Write_IIC(i,Song_24C04[i]);					 }				 while(1)				 {				 for(i=0;i				 {				 sidx=Random_Read(i);				 TR0=1;				 DelayMS(300);				 }				 }				 }							

相关资源