这是我写的 程序 有疑问 自己弄了很久没有好

2020-01-23 14:40发布

#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar shudi[]={0xff,0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};
uchar lamu[]={0x18,0x24,0x42,0x81,0x81,0x42,0x24,0x18};
uchar liud[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
uint i,q;
sbit  k1=P3^2;
sbit  k2=P3^3;
sbit  L=P1^0;
void delay(int a)
{
        int b;
                for(a;a>0;a--)
                        for(b=225;b>0;b--);
}
void lamu1()  //拉幕
{        int j;
        for(j=0;j<8;j++)
        {
                P1=lamu[j];
                delay(40);
        }
}

void shudi1()  //水滴
{
        int i;
        for(i=0;i<=8;i++)
        {        P1=shudi[i];
                delay(40);
        }
       
}
void liudq()
{
        int k;
        for(k=0;k<8;k++)
        {
                P1=liud[k];
                delay(30);
        }
}

void chushihua()
{
        TMOD=0x11;
        EA=1;
        EX0=1;EX1=1;
        IT0=1;IT1=1;
        ET0=1;ET1=1;
        TR0=1;TR1=1;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
}
void main()
{
        chushihua();
        while(1)
        {               
                i=0;
                for(;i<200;)
                {
                shudi1();
                }
                for(;i<400;)
                {
                 lamu1();
                }
                for(;i<600;)
                {
                liudq();       
                }
               
               
        }       
}
void zd() interrupt 1
{
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        i++;
}
void zd1() interrupt 3
{
        TH1=(65536-50000)/256;
        TL1=(65536-50000)%256;
        q++;
}   



我想添加一个功能   使用外部中断    (按键按下时K1执行 1hz     按键按下K2执行10hz)      1hz和10hz    使用定时产生   求指导    我自己没弄起
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。