找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 737|回复: 2
打印 上一主题 下一主题
收起左侧

单片机代码无错误,板子无法运行

[复制链接]
跳转到指定楼层
楼主
板子用的是STC89C52单片机

#include<reg52.h>  
sbit ksec=P3^0;
sbit kmin=P3^1;
sbit khour=P3^2;  
unsigned char secshi=0,secge=0,minshi=0,minge=0,hourshi=0,hourge=0;  
unsigned int num=0,sec=0,min=0,hour=0;
unsigned char code  table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(unsigned int);
void keyscan();
void display();
main()
{
        TMOD=0x01;  
        TH0=(65536-50000)/256;                   // 定时50ms  //晶振:11.0592MHZ
        TL0=(65536-50000)%256;
        EA=1;
        ET0=1;
        TR0=1;
        while(1)  
        {
                display();
                keyscan();
        }
}
//延时函数
void delay(unsigned int z)
{
        unsigned int x,y;
        for(x=z;x>0;x--)   
                for(y=114;y>0;y--);
}
//定时器中断程序        
void time0()interrupt 1
{
        num++;
        TH0=(65536-50000)/256;  
        TL0=(65536-50000)%256;
}
//LED显示程序
void display()
{                                                
        if(num==20)                  //累加达到50*20=1000ms=1s        
        {
                num=0;      
                sec++;                  
                if(sec==60)            //累加60s,进位1min
                {
                        sec=0;   
                        min++;     
                        if(min==60)          //累加60min,进位1h
                        {
                                min=0;
                                hour++;     
                                if(hour==24)          //累加24h,全部回归0
                                {
                                        hour=0;
                                        min=0;     
                                        sec=0;      
                                }      
                        }   
                }   
        }
        secge=sec%10;
        secshi=sec/10;
        minge=min%10;  
        minshi=min/10;
        hourge=hour%10;  
        hourshi=hour/10;
        P2=0xfe;                    //11111110,0端口低电平
        P0=table[secge];
        delay(5);
        P2=0xfd;                      //11111101,1端口低电平
        P0=table[secshi];
        delay(5);
        P2=0xfb;  
        P0=0x40;
        delay(5);
        P2=0xf7;  
        P0=table[minge];
        delay(5);
        P2=0xef;  
        P0=table[minshi];
        delay(5);  
        P2=0xdf;
        P0=0x40;
        delay(5);
        P2=0xbf;  
        P0=table[hourge];
        delay(5);
        P2=0x7f;
        P0=table[hourshi];
        delay(5);
}
//按键控制子程序
void keyscan()
{
        if(ksec==0)
        {
                delay(10);                          //消抖
                if(ksec==0)     
                {
                        sec++;
                        if(sec>=60)   
                                sec=0;      
                }   
                while(ksec==0)  
                        display();
        }  
        if(kmin==0)  
        {
                delay(10);  
                if(kmin==0)   
                {
                        min++;
                        if(min>=60)  
                                min=0;      
                }  
                while(kmin==0)
                        display();   
        }   
        if(khour==0)  
        {
                delay(10);
                if(khour==0)
                {
                        hour++;  
                        if(hour>=24)  
                                hour=0;
                }  
                while(khour==0)
                        display();
        }
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:979299 发表于 2022-6-19 14:46 | 只看该作者
单片机运行的几大条件都满足了吗,现在是什么现象,IO都指定对了吗?
回复

使用道具 举报

板凳
ID:161164 发表于 2022-6-19 22:53 | 只看该作者
代码仿真正常

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表