单片机课设,有几个地方卡住 了,麻烦大神指点一下!

[复制链接]
847 0

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
实现按下k1,执行操作,按一下k2,暂停程序,在按一下k1恢复程序;长按k2,中止程序。
谢谢亲们,感激不尽

#include "reg52.h"   
#include "intrins.h"
typedef unsigned int u16;  
typedef unsigned char u8;
u16 scale;
u16 count = 0;
sbit k1=P3^2;  
sbit k2=P3^3;  
sbit led1=P2^0;  
sbit led2=P2^1;
sbit led3=P2^2;
sbit led4=P2^3;
sbit led5=P2^4;
sbit pwm = P1^0;

/*timer0() interrupt 1   
{ static  u16   tt ;   
tt++;   
if(tt==10)   
{ tt=0;  
led5=0;  
}
if(scale==tt)  
led5=1;  

}
*/

//¶¶¶ˉÑóê±
void delay1(u16 i)
{
while(i--);
}
//¼ÆêyÑóê±
void delay2(u16 i)
{
        u8 a;
        for(a=0;a<i;a++)
        {
                TMOD = 0x00;
                TH0 = (65536-50000)/256;
                TL0 = (65536-50000)%256;
                TR0=1;
                while(!TF0);
                TF0=0;
        }
               
}


//×¢&#203;&#174;
void light1()
{
        if(count == 0)led1=0;
        if(count == 0)delay2(20);
        if(count == 0)led1 = ~led1;
}
//&#207;′μó£¨μ&#231;&#187;ú&#212;&#203;×a£&#169;
void light2()
{
        if(count == 0)led5 = ~led5;
        if(count == 0)led3 = ~led3;
        if(count == 0)delay2(20);
        if(count == 0)led3 = ~led3;
        if(count == 0)delay2(20);
        if(count == 0)led4 = ~led4;
        if(count == 0)delay2(20);
        if(count == 0)led4 = ~led4;
        if(count == 0)delay2(20);
        if(count == 0)led3 = ~led3;
        if(count == 0)delay2(20);
        if(count == 0)led3 = ~led3;
        if(count == 0)delay2(20);
        if(count == 0)led4 = ~led4;
        if(count == 0)delay2(20);
        if(count == 0)led4 = ~led4;
        if(count == 0)led5 = ~led5;
        if(count == 0)delay2(20);
       
}
//&#197;&#197;&#203;&#174;£¨μ&#231;&#187;úí£&#214;1£&#169;
void light3()
{
        if(count == 0)led2 = ~led2;
        if(count == 0)delay2(20);
        if(count == 0)led2 = ~led2;

}
//&#198;ˉ&#207;′
void light4()
{
        if(count == 0)led5 = ~led5;
        if(count == 0)led1 = ~led1;
        if(count == 0)led3 = ~led3;
        if(count == 0)delay2(20);
        if(count == 0)led3 = ~led3;
        if(count == 0)delay2(20);
        if(count == 0)led4 = ~led4;
        if(count == 0)delay2(20);
        if(count == 0)led4 = ~led4;
        if(count == 0)delay2(20);
        if(count == 0)led1 = ~led1;

}
/*
//&#203;|&#184;é
void light5()
{   
      
u16 n;     
TMOD=0x02;  
TH0=0x06;   
TL0=0x06;   
TR0=1;   
ET0=1;   
EA=1;     
while(1)
{for(n=0;n<5000;n++);  
scale++;   
}
       
}
*/
//éá&#203;&#184;
void light6()
{
        while(1)
        {
                if(count == 0)led1 = ~led1;
                if(count == 0)led2 = ~led2;
                if(count == 0)delay2(20);
                if(count == 0)led1 = ~led1;
                if(count == 0)led2 = ~led2;
                if(count == 0)delay2(20);
        }
       
}
//&#182;àᢰ′&#188;ü
void key1()
{
        if(k1==0)   
        {
                delay1(1000);   
                if(k1==0)  
                {
               
                        light1();
                        light2();
                        light3();
                        light4();
                        /*light5();*/
                        light6();
               
                }
                while(!k1);  
        }  
}
void key2()
{
        if(k2==0)   
        {
                TH0=(65536-60000)/256;
                TL0=(65536-60000)%256;  
                if(k2==0)  
                {   
                                count = 1;
                                while(1)
                                {
                                        key1();
                                }
                       
                               
                }
         
        }  
}
//°′&#188;ü&#214;D&#182;&#207;
stop()interrupt 1
{
        key2();
}


void main()
{
        led1 = 1;
        led2 = 1;
        led3 = 1;
        led4 = 1;
        led5 = 1;

        TMOD=0x01;
        TH0=(65536-60000)/256;
        TL0=(65536-60000)%256;
        TR0=1;
        EA=1;
        ET0=1;
        while(1)
        {
                key1();       
        }
}

举报

回复
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

打开支付宝扫一扫,最高立得1212元红包
搜索

图文热点

更多

社区学堂

更多

客服中心

QQ:187196467 服务时间:周一至周日 8:30-20:30

关注我们

快速回复 返回列表 客服中心 搜索 官方QQ群
关于我们
关于我们
友情链接
联系我们
帮助中心
网友中心
购买须知
支付方式
服务支持
资源下载
售后服务
定制流程
关注我们
官方微博
官方空间
官方微信
快速回复 返回顶部 返回列表