单片机定时器控制 4 个 LED 滚动闪烁实验 一、实验目的 1.掌握keilC51软件与PROTEUS软件联合仿真调试的方法; 2.掌握单片机的去抖原理及处理办法 3.掌握使用定时器的方法 二、实验仪器与设备 1.微机1台 2. keilC51集成开发环境 3.Proteus仿真软件 三、实验内容 实验程序: #include #define uchar unsigned char #define uint unsigned int //定义头文件 sbit B1=P0^0; sbit G1=P0^1; sbit R1=P0^2; sbit Y1=P0^3; uint i,j,k; void main() //主程序 { i=j=k=0; P0=0xff; TMOD=0x02; //定时器 0 工作方式 2 TH0=256-200; //200us 定时 TL0=256-200; IE=0x82; TR0=1; //启动定时器 while(1); } void LED_Flash_and_Scroll() interrupt 1 //T0 中断函数 { if(++k<35) return; //定时中断若干次后执行闪烁 k=0; switch(i) { case 0: B1=~B1;break; case 1: G1=~G1;break; case 2: R1=~R1;break; case 3: Y1=~Y1;break; default:i=0; } if(++j<300) return; //每次闪烁持续一段时间 j=0; P0=0xff; //关闭显示 i++; //切换到下一个 LED } 实验电路链接: