文档详情

单片机程序教学实例.doc

发布:2018-01-30约4.77千字共16页下载文档
文本预览下载声明
第五章 实例一:INTO控制LED C: 汇编: #includereg52.h #define uchar unsigned char #define uint unsigned int sbit LED=P0^0; void main() { LED=1; EA=1; EX0=1; TCON=0x01; while(1); } void External_Interrupt_0() interrupt 0 { LED=~LED; } 实例2:TIMER0控制LED C: #includereg52.h #define uchar unsigned char #define uint unsigned int sbit LED=P0^0; uchar T_Count=0; void main() { TMOD=0x00; TH0=(8192-5000)/32; TL0=(8192-5000)%32; IE=0x82; TR0=1; while(1); } void LED_Flash()interrupt 1 { TH0=(8192-5000)/32; TL0=(8192-5000)%32; if(++T_Count==100) { LED=!LED; T_Count=0; } } 实例3:串行数据转并行 #includereg52.h #includeintrins.h #define uint unsigned int #define uchar unsigned char void Delay(uint x) { uchar i; while(x--) for(i=0;i120;i++); } void main() { uchar c=0x80; SCON=0x00; TI=1; while(1) { c=_crol_(c,1); SBUF=c; while(TI==0); TI=0; Delay(400); } } 实例4:并行数据转串行 #includereg52.h #includeintrins.h #define uint unsigned int #define uchar unsigned char sbit SPL=P2^5; void Delay(uint x) { uchar i; while(x--) for(i=0;i120;i++); } void main() { SCON=0x10; while(1) { SPL=0; SPL=1; while(RI==0); RI=0; P0=SBUF; Delay(20); } } 实例5:甲机通过串口控制乙机 甲: #includereg52.h #define uint unsigned int #define uchar unsigned char sbit LED1=P0^0; sbit LED2=P0^3; sbit K1=P1^0; void Delay(uint x) { uchar i; while(x--) {for(i=0;i120;i++);} } void Send(uchar c) { SBUF=c; while(TI==0); TI=0; } void main() { uchar Operation_NO=0; SCON=0x40; TMOD=0x20;PCON=0x00; TH1=0xf4; TL1=0xf4; TI=0; TR1=1; while(1) { if(K1==0) { while(K1==0); Operation_NO=(Operation_NO+1)%4; } switch(Operation_NO) { case 0:LED1=LED2=1;break; case 1:Send(A);LED1=~LED1;LED2=1;break; case 2:Send(B);LED2=~LED2;LED1=1;break; case 3:Send(C);LED1=~LED1;LED2=LED1;break; } Delay(100); } } 乙: #includereg52.h #defin
显示全部
相似文档