编写电子时钟程序时遇到的问题
由于源代码太长,以下为截取的代码,第一行为c001,有问题的是c58,希望能给出具体的解决办法
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit lcdrs=P3^5; //定义1602液晶RS端
sbit lcden=P3^4;//定义1602液晶LCDEN端
sbit s1=P3^0; //定义按键--功能键
sbit s2=P3^1; //定义按键--增加键
sbit s3=P3^2; //定义按键--减小键
sbit s4=P3^3; //定义按键--闹钟键
sbit beep=P2^2; //定义蜂鸣器端
sbit led=P2^3; //定义LED灯端
uchar count,s1num,s4num;
char year,month,day,week,miao,shi,fen,pshi;
uchar code table[]=" 20 - - ";//定义初始上电时液晶默认显示状态
void delay(uint z) //延时函数
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void zhuanhuan()
{
if(shi==0)
pshi=12;
if(shi<=12&&shi>=1)
pshi=shi;
if(shi>12)
pshi=shi-12;
}
void di()//蜂鸣器发声函数
{
beep=0;
delay(300);
beep=1;
delay(300);
}
void write_com(uchar com)//液晶写命令函数
{
lcdrs=0;
lcden=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_date(uchar date)//液晶写数据函数
{
lcdrs=1;
lcden=0;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void _shi() //写"AM"、"PM"函数
{
if(shi>=12)
{
write_com(0x80+0x40+1);//写出"PM"
write_date('P');
write_date('M');
}
else
{
write_com(0x80+0x40+1);//写出"AM"
write_date('A');
write_date('M');
}
}
函数void _shi换个名字试试,可能错在这里,改成void SHI或者其他
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit lcdrs=P3^5; //定义1602液晶RS端
sbit lcden=P3^4;//定义1602液晶LCDEN端
sbit s1=P3^0; //定义按键--功能键
sbit s2=P3^1; //定义按键--增加键
sbit s3=P3^2; //定义按键--减小键
sbit s4=P3^3; //定义按键--闹钟键
sbit beep=P2^2; //定义蜂鸣器端
sbit led=P2^3; //定义LED灯端
uchar count,s1num,s4num;
char year,month,day,week,miao,shi,fen,pshi;
uchar code table[]=" 20 - - ";//定义初始上电时液晶默认显示状态
void delay(uint z) //延时函数
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void zhuanhuan()
{
if(shi==0)
pshi=12;
if(shi<=12&&shi>=1)
pshi=shi;
if(shi>12)
pshi=shi-12;
}
void di()//蜂鸣器发声函数
{
beep=0;
delay(300);
beep=1;
delay(300);
}
void write_com(uchar com)//液晶写命令函数
{
lcdrs=0;
lcden=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_date(uchar date)//液晶写数据函数
{
lcdrs=1;
lcden=0;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void whiteAMPM() //写"AM"、"PM"函数
{
if(shi>=12)
{
write_com(0x80+0x40+1);//写出"PM"
write_date('P');
write_date('M');
}
else
{
write_com(0x80+0x40+1);//写出"AM"
write_date('A');
write_date('M');
}
}
方法名按照规则 动词开头 比如write_shi