/*1次延迟时间为1ms,用T0计时器进行延迟
LED小灯的闪烁变化为500ms
有三种LED样式:
1、从右到左,从左到右
2、从边缘接近中间
3、从右依次点亮,从左依次闪烁
*/
# includereg 52.h # include stdio.h # defineucharunsignedchar # defineuintunsignedint/*位绑定**/sbit ADDR0=P1^0 sbit ADDR1=P1^1; sbit ADDR2=P1^2; sbit ADDR3=P1^3; sbit ENLED=P1^4; /**以计时器溢出为延迟函数的**/void timerDelay () {uint count=0; while(1) if ) TF0==1) ) {/*代码*/tf0=0; //软件零溢出标志TH0=0xFC; TL0=0x67; 出局; if (计数==500 (/*代码* /计数=0; 布雷克; }}}}/**主函数**/void main () {uchar index=0; //索引uchar initData=0x00; 启用u3addr0=0addr1=1; ADDR2=1; ADDR3=1; ENLED=0; //计时器相关配置TMOD=TMOD |0x01; TH0=0xFC; TL0=0x67; TR0=1; wile(1)//模式1for )索引; 索引7; 索引() P0=~)0x 01索引); timerDelay (; (for )索引; 索引0; 索引----} { P0=~~ (0x 01索引); timerDelay (; (//模式2for )索引=0; 索引7; 索引() P0=(0xff ()0xff索引) (0xff ) )0xff索引); timerDelay (; //样式3 for (索引=0; 索引8; 索引() P0=~~ ) initdata=0x 01索引); timerDelay (; (for ); 索引0; 索引--- } { P0=~~ (initdata-=0x 01索引); timerDelay (; }}}}