[求助] 关于c51的编程求教大神

木耳   2016-10-24 21:49 楼主
#include
unsigned cher code sz1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
void delay (unsigned int a)
{unsigned chari;
while(--a!=0)
{
for(i=0;i<125;i++);
}
}
void main()
{
unsigned cher i,m;
EA=1;
EX0=1;
IT0=1;
while(1)
{
for(m=0;m<8;m++)
{
P1=sz1[m];
delay(1000);
}
}
}
void lsd()interrupt 0              ?表示看不懂这步,lsd定义什么?
{
unsignd char j;                     
for(j=0;j<8;j++)
{
P1=0x00;
delay(1000);
P1=0xff;
delay(1000);
}
}
这个程序是如何把外部中断请求信号设为边沿触发?

回复评论 (3)

?表示看不懂这步,lsd定义什么?
这个是外部中断0函数,名字可以自己起的

这个程序是如何把外部中断请求信号设为边沿触发?
51外部中断默认就是边缘中断,且是下降沿我记得,所以不用设就好用,设下也行
http://shop34182318.taobao.com/ https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
点赞  2016-10-25 08:08
中断配置寄存器相关位可以配置边缘触发和电平触发,查一下就好
点赞  2016-10-25 10:37
void lsd() interrupt 0   这就是个中断程序子程序啊,也就是中断服务程序。lsd是中断程序名,你可以自己定,不需要声明。里面的内容,就是P1全给低电平,延时后全给高电平,再延时。如果接发光管低电平点亮,就是亮了一会,就又灭了,for(j=0;j<8;j++),限定了for语句里面的程序执行8次,如果是接发光二级管,就是亮灭这样重复8次。
点赞  2016-11-22 01:58
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复