/*单片机,用定时中断实现每隔0.2秒让接在p1口的8个小灯从左往右循环点亮。*/
#include
#include
#define
uchar
unsigned
char
uchar
a,b;
uchar
b=1;
uchar
a=0xfe;
void
main()
{
ea=1;it1=1;et0=1;
th0=-5000/256;
tl0=-5000%256;
tmod=0x01;
tr0=1;
while(1)
{;}
}
void
timer0(void)
interrupt
1
using
1
{
th0=-5000/256;
tl0=-5000%256;
b=b+1;
if(b==40)
{
b=0;
p1=a;
a=_crol_(a,1);
p1=a;
}
}
|P1口接8个发光二极管共阳
#include AT89X51.H
unsigned char i;
unsigned char temp;
unsigned char a,b;
void delay(void)
{
unsigned char m,n,s;
for(m=20;m0;m--)
for(n=20;n0;n--)
for(s=248;s0;s--);
}
void main(void)
{
while(1)
{
temp=0xfe;
P1=temp;
delay();
for(i=1;i8;i++)
{
a=tempi;
b=temp(8-i);
P1=a|b;
delay();
}
for(i=1;i8;i++)
{
a=tempi;
b=temp(8-i);
P1=a|b;
delay();
}
}
}
扩展资料:
Proteus 自从有了单片机也就有了开发系统,随着单片机的发展开发系统也在不断发展。 keil是一种先进的单片机集成开发系统。它代表着汇编语言单片机开发系统的最新发展,首创多项便利技术,将开发的编程/仿真/调试/写入/加密等所有过程一气呵成,中间不须任何编译或汇编。
参考资料来源:百度百科-51单片机
/***************************************** *用P1口接LED *****************************************/ #include //51系列单片机定义文件 #define uchar unsigned char //定义无符号字符 #define uint unsigned int //定义无符号整数 void delay(uint); //声明延时函数 void main(void) { uint i; uchar temp; while(1) { temp=0x01; for(i=0;i8;i++) //8个流水灯逐个闪动 { P1^=temp; delay(500); //调用延时函数 temp=1; } temp=0x80; for(i=0;i/8个流水灯反向逐个闪动 { P1^=temp; delay(500); //调用延时函数 temp=1; } temp=0xFE; for(i=0;i8;i++) //8个流水灯依次全部点亮 { P1=temp; delay(500); //调用延时函数 temp=1; } temp=0x7F; for(i=0;i/8个流水灯依次反向全部点亮 { P1=temp; delay(500); //调用延时函数 temp=1; } } } void delay(uint t) //定义延时函数 { register uint bt; //register为寄存器变量 即将无符号整形变量bt放在CPU的寄存器中而不是放在内存中 因为该 变量使用频率高 这样可以提高执行效率 for(;t;t--) for(bt=0;bt255;bt++); }
51单片机是单片机接触最早的,下边这个程序希望能帮到你。(只有主函数,就不进行硬件什么定义以及头文件包含什么的了)
void delay(int times){//延时函数,times控制延时时间
int i, j;
for(i = 0; i times; i++)
for(j = 0; j 210; j++)
;
}
int main(void){
unsigned char data, i;
while(1){
data = P1;//把开关值读回来
for(i = 0; i 8; i++){
P0 = ~(0x01 i); //某位为高电平某位对应的灯亮
delay(data);//把读取的开关值用来控制延时
}
}
}
跑马灯51单片机的介绍到此就结束了,感谢您耐心阅读,谢谢。
本文标签:跑马灯51单片机