13页mtc89c52程序LED中断定时Word文档下载推荐.docx
《13页mtc89c52程序LED中断定时Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《13页mtc89c52程序LED中断定时Word文档下载推荐.docx(32页珍藏版)》请在冰豆网上搜索。
//程序停止在这里,在后面会讲到为什么这样写。
}
②//用总线操作点亮第一个发光管.
P1=0xfe;
//将单片机P1口的8个口由高到低分别赋值为11111110
(二),点亮最后一个发光二级管
①//用位操作点亮最后一个发光管.
sbitled8=P1^7;
led8=0;
//将单片机P1.7口清零
②//用总线操作点亮最后一个发光管.
P1=0x7f;
//将单片机P1口的8个口由高到低分别赋值为01111111
(三),二极1,3,5,7管点亮
①//用位操作点亮1,3,5,7发光管.
sbitled3=P1^2;
sbitled5=P1^4;
sbitled7=P1^6;
led3=0;
//将单片机P1.2口清零
led5=0;
//将单片机P1.4口清零
led7=0;
//将单片机P1.6口清零
②//用总线操作点亮1,3,5,7发光管.
P1=0xaa;
//将单片机P1口的8个口由高到低分别赋值为10101010
(四),点亮2,4,5,6二极管
①/用位操作点亮2,4,5,6发光管.
sbitled2=P1^1;
sbitled4=P1^3;
sbitled6=P1^5;
led2=0;
//将单片机P1.1口清零
led4=0;
//将单片机P1.3口清零
led6=0;
//将单片机P1.5口清零
②//用总线操作点亮2,4,5,6发光管.
P1=0xc5;
//将单片机P1口的8个口由高到低分别赋值为11000101
(五),第一个发光管闪烁
①//尝试让第一个发光管闪烁.(程序看不懂没关系,后面章节会有详细讲解)
unsignedinti;
//定义一个int型变量
while
(1)
{
i=50000;
//变量赋初值为50000
led1=0;
//点亮灯
while(i--);
//延时
led1=1;
//熄灭灯
}
(六),流水灯程序
//尝试写出流水灯程序(程序看不懂没关系,后面章节会有详细讲解)
unsignedintI;
//变量赋初值为50000
P1=0xfe;
//点亮第一个灯
//延时
P1=0xfd;
//点亮第二个灯
P1=0xfb;
//点亮第三个灯
P1=0xf7;
//点亮第四个灯
P1=0xef;
//点亮第五个灯
P1=0xdf;
//点亮第六个灯
P1=0xbf;
//点亮第七个灯
P1=0x7f;
//点亮第八个灯
//延时
(七),第一个发光管以间隔200ms闪烁
//第一个发光管以间隔200ms闪烁
#defineuintunsignedint//宏定义
#defineucharunsignedchar//宏定义
voiddelay(uintz)//延时函数,z的取值为这个函数的延时ms数,如delay(200);
大约延时200ms.
{//delay(500);
大约延时500ms.
uintx,y;
for(x=z;
x>
0;
x--)
for(y=110;
y>
y--);
while
(1)//大循环
//点亮小灯
delay(200);
//延时200毫秒
//熄灭小灯
}
(八),8个发光管由上至下间隔1s流动,其中每个管亮500ms,灭500ms,亮时蜂鸣器响,灭时关闭蜂鸣器,一直重复下去。
#include<
intrins.h>
//包含有左右循环移位子函数的库
sbitbeep=P2^3;
uchara;
a=0xfe;
P1=a;
beep=0;
//开启蜂鸣器
delay(500);
//延时500毫秒
P1=0xff;
//熄灭小灯
beep=1;
//关闭蜂鸣器
a=_crol_(a,1);
//将a变量循环左移一位
(九),8个发光管来回流动,每个管亮100ms,流动时让蜂鸣器发出"
滴滴"
声。
uchara,i;
a=0xfe;
//赋初值
for(i=0;
i<
8;
i++)//左移
{
P1=a;
beep=0;
delay(50);
//延时50毫秒
beep=1;
//再延时50毫秒
a=_crol_(a,1);
//将a变量循环左移一位
}
a=0x7f;
i++)//右移
a=_cror_(a,1);
//将a变量循环右移一位