📄 显示时间设置.c
字号:
#include <AT89X55.H>
#include <absacc.h>
#define LCD_Wr_Cmd_Add XBYTE[0xF000]
#define LCD_Rd_Cmd_Add XBYTE[0xF002]
#define LCD_Wr_Data_Add XBYTE[0xF001]
#define LCD_Rd_Data_Add XBYTE[0xF003]
code unsigned char m[]={0x0B0,0x0B0};
code unsigned char Time_Lable[]={0x0CA,0x0B1,0x0BC,0x0E4,0x0C9,0x0E8,0x0D6,0x0C3}; /*时间设置*/
code unsigned char Hour_Lable[]={0x0CA,0x0B1}; /*时标签*/
code unsigned char Munite_Lable[]={0xB7,0xD6}; /*分标签*/
code unsigned char Second_Lable[]={0xC3,0xEB}; /*秒标签*/
/*延迟1ms*/
/* void delay_Nms(unsigned char n)
{
unsigned char i,j;
for(j=0;j<n;j++)
{
for(i=0;i<250;i++);
for(i=0;i<250;i++);
for(i=0;i<100;i++);
}
}*/
/*LCD read busy flag*/
void LCD_Rd_Busy()
{
unsigned char temp;
do
{
temp=LCD_Rd_Cmd_Add;
temp=temp&0x80;
}while(temp==0x80);
}
/*LCD write command*/
void LCD_Wr_Cmd(unsigned char One_Byte)
{
LCD_Wr_Cmd_Add=One_Byte;
LCD_Rd_Busy();
}
/*LCD write data*/
void LCD_Wr_Data(unsigned char One_Byte)
{
LCD_Wr_Data_Add=One_Byte;
LCD_Rd_Busy();
}
/*LCD read data*/
// unsigned char LCD_Rd_Data()
// {
// unsigned char temp;
// temp=LCD_Rd_Data_Add;
// return(temp);
// }
/*LCD initiate*/
void LCD_init()
{
LCD_Wr_Cmd(0x30); /*0x30 8bits , base function*/
LCD_Wr_Cmd(0x06); /* 0x06 cussor right move ,ACC+1*/
LCD_Wr_Cmd(0x0C); /*0x0F Display on,无游标,无反白 */
LCD_Wr_Cmd(0x01); /*0x01 clear display*/
LCD_Wr_Cmd(0x80); /*0x80 DDRAM in 1line 1st word*/
}
/*设置显示位置, row:1,2,3,4; position 1,2...8 */
void LCD_Set_DispPositon(unsigned char row,unsigned char position)
{
switch(row)
{
case 1:
LCD_Wr_Cmd(0x7F+position);
break;
case 2:
LCD_Wr_Cmd(0x8F+position);
break;
case 3:
LCD_Wr_Cmd(0x87+position);
break;
case 4:
LCD_Wr_Cmd(0x97+position);
break;
default:
LCD_Wr_Cmd(0x7F+position);
break;
}
}
/* 时间设置窗口 */
void LCD_Time_Form()
{
unsigned char i,hour,munite,second;
//LCD_Time_Form_St:
EA=0;
LCD_Wr_Cmd(0x01); /*清屏*/
LCD_Set_DispPositon(1,3);
for(i=0;i<8;i++)
{
LCD_Wr_Data(Time_Lable[i]); /*时间标题*/
}
//Read_Time(&hour,&munite,&second);
LCD_Set_DispPositon(3,2); /*时*/
LCD_Wr_Data(0x30+((hour>>4)&0x0F));
LCD_Wr_Data(0x30+(hour&0x0F));
LCD_Set_DispPositon(3,3);
LCD_Wr_Data(Hour_Lable[0]);
LCD_Wr_Data(Hour_Lable[1]); /*时标签*/
LCD_Set_DispPositon(3,4); /*分*/
LCD_Wr_Data(0x30+((munite>>4)&0x0F));
LCD_Wr_Data(0x30+(munite&0x0F));
LCD_Set_DispPositon(3,5);
LCD_Wr_Data(Munite_Lable[0]);
LCD_Wr_Data(Munite_Lable[1]); /*分标签*/
LCD_Set_DispPositon(3,6); /*秒*/
LCD_Wr_Data(0x30+((second>>4)&0x0F));
LCD_Wr_Data(0x30+(second&0x0F));
LCD_Set_DispPositon(3,7);
LCD_Wr_Data(Second_Lable[0]);
LCD_Wr_Data(Second_Lable[1]); /*秒标签*/
// j=0; /*0-还未改前半字符,1-改了前半字符,2-改了后半字符*/
// i=1; /*按方向键的次数(循环)*/
// LCD_Wr_Cmd(0x0F);
}
main()
{
LCD_init();
LCD_Time_Form();
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -