时钟程序基本走时功能加流水灯
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include
#include
#include
#define uchar unsigned char
#define uint unsigned int
uchar a;
uchar XPOS,YPOS;
sbit RS = P2^5; //Pin4
sbit RW = P2^6; //Pin5
sbit E = P2^7; //Pin6
sbit CLK=P3^6; //txd
sbit DA TA=P3^5; //RXD
sbit SH_LD=P3^7; //
sbit buz=P3^4;
#define Data P0 //数据端口
uchar
time,shi,fen,miao,shi11,shi12,fen11,fen12,miao11,miao12,miao1,fen1,shi1,y ue1,r1,nian11,nian12,nian13,nian14,yue,yue11,yue12,r,r11,r12;
uchar Time1[]={'0','1','2','3','4','5','6','7','8','9'};
uint nian,nian1;
/************************************************************* *****/
/* 函数声明*/
/************************************************************* *****//******************************************************* ********/
void DelayUs(unsigned char us)//delay us
{
unsigned char uscnt;
uscnt=us>>1;/* Crystal frequency in 12MHz*/
while(--uscnt);
}
/*************************************************************
*****/
void DelayMs(unsigned char ms)//delay Ms
{
while(--ms)
{
DelayUs(250);
DelayUs(250);
DelayUs(250);
DelayUs(250);
}
}
void WriteCommand(unsigned char c)
{
DelayMs(5);//short delay before operation
E=0;
RS=0;
RW=0;
_nop_();
E=1;
Data=c;
E=0;
}
/************************************************************* ***/
void WriteData(unsigned char c)
{
DelayMs(5); //short delay before operation
E=0;
RS=1;
RW=0;
_nop_();
E=1;
Data=c;
E=0;
RS=0;
}
/************************************************************* ********/
void ShowChar(unsigned char pos,unsigned char c)
{
unsigned char p;
//p=pos+0x80; //是第二行则命令代码高4位为0x8 p=pos;
WriteCommand (p);//write command
WriteData (c); //write data
}
void Writer_zfc(uchar cspos,uchar*s)
{
WriteCommand (cspos);
while(*s!='\0')
{
WriteData (*s);
s++;
}
}
void InitLcd()
{
DelayMs(15);
WriteCommand(0x38); //display mode WriteCommand(0x38); //display mode WriteCommand(0x0f); //display mode WriteCommand(0x06); //显示光标移动位置WriteCommand(0x0c); //显示开及光标设置WriteCommand(0x01); //显示清屏
}
void Wenzi_yiwei(int z)
{
int i;
for(i=0;i { DelayMs(1000); WriteCommand(0x18); } } void Liushui_d() {