找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3206|回复: 1
收起左侧

紧急求助。。。大家来看看

[复制链接]
ID:33246 发表于 2011-11-15 12:29 | 显示全部楼层 |阅读模式

大家看下这个程序,简单的1602程序,不知道为什么小时位进不了位,只有分钟,秒可以进位,大家帮帮忙。。我真的身心疲惫了

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit wela=P2^7;
sbit dula=P2^6;
sbit lcden=P3^4;
sbit lcdrs=P3^5;
sbit lcdwr=P3^6;
uchar table[]=" 2011-11-14 MON ";
uchar table1[]="   23:59:00 ";
uchar count,miao,fen;
uint shi;
void delay(uint z)
{
  uint x,y;
  for(x=z;x>0;x--)
   for(y=110;y>0;y--);
   }
void write_com(com)//写指令函数
{
 lcdrs=0;
 lcden=0;
 P0=com;
 delay(5);
 lcden=1;
 delay(5);
 lcden=0;
 }
void write_dat(dat)//写数据函数
{
 lcdrs=1;
 lcden=0;
 P0=dat;
 delay(5);
 lcden=1;
 delay(5);
 lcden=0;
 }
void init()
{uchar num;
 wela=0;
 dula=0;
 lcden=0;
 lcdwr=0;
 write_com(0x38);
 delay(1);
 write_com(0x0c);
 write_com(0x06);
 //write_com(0x01);
 write_com(0x80);
 for(num=0;num<16;num++)
 {
  write_dat(table[num]);
  delay(20);
  }
write_com(0x80+0x40);
for(num=0;num<12;num++)
 {
  write_dat(table1[num]);
  delay(20);
  }
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
miao=54;
//shi=23;
}
void write_sfm(uchar add, uchar date)
{
 uchar shi,ge;
 shi=date/10;
 ge=date%10;
 write_com(0x80+0x40+add);
 write_dat(0x30+shi);
 write_dat(0x30+ge);
}
void main()
{
 init();
 while(1)
 {
 if(count==20)
 { count=0;
   miao++;
   if(miao==60)
    {
   miao=0;
   fen++;
    if(fen==60)
     {
   fen=0;
   shi++;
    if(shi==24)
     {
      shi=0;
   }
write_sfm(3,shi);
     }
write_sfm(6,fen);
       }
 write_sfm(9,miao);
    }

 }
 }
void timer0() interrupt 1
{ TH0=(65536-50000)/256;
  TL0=(65536-50000)%256;
  count++;}

回复

使用道具 举报

ID:24977 发表于 2011-11-19 09:28 | 显示全部楼层

lz有没有进行proteus仿真?是程序的问题还是硬件电路的问题?

 

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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