#include"reg52.h"
#include"intrins.h"
#define uchar unsigned char
#define uint unsigned int
sbit key1=P1^1;
uint num;
/*1ms廷时*/
void delay_ms(uint z)
{
uint i,j;
for(i=0;i for(j=0;j<110;j++); } /*定时器初始化*/ void init_timer0() { TMOD=0x01; TH0=(65535-10000)/256; TL0=(65535-10000)%256; EA=0; ET0=1; TR0=1; } void main() { init_timer0(); P2=0;//一开始让P2口的灯全灭 while(1) { if(key1==0) { delay_ms(10); //延时消抖 if(key1==0) //再次判断按键是否真的被按下 { while(key1==0); //等待释放按键 P2=1; //按键按下时,让P2口的0位亮 EA=1; //开启总中断 } } } } void timer0() interrupt 1 { TH0=(65535-10000)/256; TL0=(65535-10000)%256; //中断计时10ms,之所以用中断是因为定时比较准确 想改延时就把里面的2000改掉,这个数除以1000得的数就是多少毫秒 num++; if(num==100) //这是判断够1S钟(100*10ms=1s) 用于下面的移位,1S移一位 { num=0; P2=_crol_(P2,1); //让P2口的灯左移 } }
这个太TMD简单了,先写一个延时函数,设置好IO口,点亮->延时->灭掉->延时。
这样简单的问题最好自己学会,不然以后复杂的,你就完了。
楼主应该是找入门的