"%016d"中,%表示输出格式串的标志字符,d表示要输出的是int类型的数据,共占16个字符宽度,如果被输出的数不足16位,则前面用0填充。比如
int a = 12,b = 100,c = 65535printf("%016d",a)//结果是0000000000000012
printf("%016d",b)//结果是0000000000000100
printf("%016d",c)//结果是0000000000065535
C语言中以零开头的整数表示八进制所以:
八进制的12表示十进制的10
八进制的10表示十进制的8
八进制的14表示十进制的12
所以:
int a = 012
此时a = 10;
int a = 013
此时a = 11;
#include <reg52.h>#define Lcd_Data P0//定义数据端口
sbit RS = P2 ^ 0 //定义连接端口
sbit RW = P2 ^ 1
sbit E = P2 ^ 2
sbit Busy = P0 ^ 7
unsigned char code welcome[] = {"Elitist Teamwork"}
unsigned char code email[] = {"[email protected]"}
void Delay(unsigned int t)//延时子程序,延时 1MS*t S
{
unsigned char a
while(--t != 0)
{
for(a = 0a <125a++)
}
}
void Read_Busy(void)//读忙信号判断
{
do{
Lcd_Data = 0xff
RS = 0
RW = 1
E = 0
Delay(2)
E = 1
}while(Busy)
}
void Write_Comm(unsigned char lcdcomm) //写指令函数
{
Lcd_Data = lcdcomm
RS = 0
RW = 0
E = 0
Read_Busy()
E = 1
}
void Write_Data(unsigned char lcddata)//写数据函数
{
Lcd_Data = lcddata
RS = 1
RW = 0
E = 0
Read_Busy()
E = 1
}
void Init_LCD(void)//初始化LCD
{
Write_Comm(0x01)//清显示
Delay(200) //稍微延时,等待LCM进入工作状态
Write_Comm(0x02)//光标归位,此处不设置可能出现错误
Write_Comm(0x38)//8位2行5*8
Write_Comm(0x06)//文字不动,光标右移
Write_Comm(0x0e)//显示开/关,光标开闪烁关;0x0f开
}
void main(void)//主函数
{
unsigned char i
Init_LCD()//初始化 LCM
Write_Comm(0x80+16)//写入"welcome首地址(第一行)
for(i=0i<16i++)
{
Write_Data( welcome[i] )//显示welcometo字样
}
Write_Comm(0xc0+16)//写入第2行
for(i=0i<14i++)
{
Write_Data( email[i] )//显示
}
for(i=0i<16i++)
{
Write_Comm(0X18)
Delay(400)
}
while(1)//等待
}