📄 1602driver.c
字号:
fun_write_data(*p_number);
}
if ((zhengshu>=1) && (zhengshu<9)) //只有个位
{
ge = (zhengshu%10);
p_number = &num_dis_code[0]+ge;
fun_write_data(*p_number);
}
if (dot == 0) //小数点为输入0,显示3个0 也可更改去掉
{
fun_display_char(".");
p_number = &num_dis_code[0];
fun_write_data(*p_number);
fun_write_data(*p_number);
fun_write_data(*p_number);
}
if (dot != 0) //小数点不等于0时候 ,显示小数部分的3位数,
{
fun_display_char(".");
dot1 = dot/100;
dot01 = (dot%100)/10;
dot001 = (dot%100)-dot01*10;
p_number = &num_dis_code[0]+dot1;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+dot01;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+dot001;
fun_write_data(*p_number);
}
}
//////////////////////////////////////// 写自定义字模到cgram
void fun_write_cgram(void)
{
unsigned char i;
fun_write_instruction(CGRAM_ADD_INI);
for (i=0; i<64; i++)
{
fun_write_data(self_definition_char[i]);
}
}
void initialize_lcd(void) //液晶初始化
{
fun_write_instruction(FUNCTION_SET); //2行,8位数据线
fun_write_instruction(CURSOR_RETURN); //光标回到左上角
fun_write_instruction(MODE_SET); //完成一个字符传送后ac+1,显示不发生位移
fun_write_instruction(CURSOR_DISPLAY_SHIFT); //光标向右移,显示不动,AC自动加1
fun_write_instruction(DISPLAY_ON); //开显示
fun_write_instruction(CLEAR_SCREEN); //清屏幕
fun_write_cgram();
}
/*************************************************************************
*函数介绍:显示数值+字符的子函数 调用函数 (“要显示的字符”,整数,小数,“单位”)
*输入参数:整数部分的最大值,显示为10000000,小数部分显示3位,整行+起来的字符和单位不要超过15个,
*输出参数:小数部分,输入0,显示 。000, 输入123 显示 。123,以此类推
*返回值 :
*/////////////////////////////////////////////////////////////////////
void fun_display_num_dot_unit(unsigned char *p_name, unsigned long int zhengshu,
unsigned int dot,unsigned char *p_unit)
{
unsigned char ge,shi,bai,qian,wang,wang10,wang100,wang1000,dot1,dot01,dot001;
while (*p_name)
{
fun_write_data(*p_name);
p_name++;
}
if ((zhengshu>=10000000) && (zhengshu<99999999))
{
wang1000 = zhengshu/10000000;
wang100 = (zhengshu%10000000)/1000000;
wang10 = (zhengshu%1000000)/100000;
wang = (zhengshu%100000)/10000;
qian = (zhengshu%10000)/1000;
bai = (zhengshu%1000)/100;
shi = (zhengshu%100)/10;
ge = (zhengshu%10);
p_number = &num_dis_code[0]+wang1000;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+wang100;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+wang10;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+wang;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+qian;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+bai;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+shi;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+ge;
fun_write_data(*p_number);
}
if ((zhengshu>=1000000) && (zhengshu<9999999))
{
wang100 = zhengshu/1000000;
wang10 = (zhengshu%1000000)/100000;
wang = (zhengshu%100000)/10000;
qian = (zhengshu%10000)/1000;
bai = (zhengshu%1000)/100;
shi = (zhengshu%100)/10;
ge = (zhengshu%10);
p_number = &num_dis_code[0]+wang100;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+wang10;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+wang;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+qian;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+bai;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+shi;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+ge;
fun_write_data(*p_number);
}
if ((zhengshu>=100000) && (zhengshu<999999))
{
wang10 = zhengshu/100000;
wang = (zhengshu%100000)/10000;
qian = (zhengshu%10000)/1000;
bai = (zhengshu%1000)/100;
shi = (zhengshu%100)/10;
ge = (zhengshu%10);
p_number = &num_dis_code[0]+wang10;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+wang;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+qian;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+bai;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+shi;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+ge;
fun_write_data(*p_number);
}
if ((zhengshu>=10000) && (zhengshu<99999))
{
wang = zhengshu%100000/10000;
qian = (zhengshu%10000)/1000;
bai = (zhengshu%1000)/100;
shi = (zhengshu%100)/10;
ge = (zhengshu%10);
p_number = &num_dis_code[0]+wang;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+qian;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+bai;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+shi;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+ge;
fun_write_data(*p_number);
}
if ((zhengshu>=1000) && (zhengshu<9999))
{
qian = zhengshu/1000;
bai = (zhengshu%1000)/100;
shi = (zhengshu%100)/10;
ge = (zhengshu%10);
p_number = &num_dis_code[0]+qian;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+bai;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+shi;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+ge;
fun_write_data(*p_number);
}
if ((zhengshu>=100) && (zhengshu<999))
{
bai = zhengshu/100;
shi = (zhengshu%100)/10;
ge = (zhengshu%10);
p_number = &num_dis_code[0]+bai;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+shi;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+ge;
fun_write_data(*p_number);
}
if ((zhengshu>=10) && (zhengshu<99))
{
shi = zhengshu/10;
ge = (zhengshu%10);
p_number = &num_dis_code[0]+shi;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+ge;
fun_write_data(*p_number);
}
if ((zhengshu>=1) && (zhengshu<9))
{
ge = (zhengshu%10);
p_number = &num_dis_code[0]+ge;
fun_write_data(*p_number);
}
if (dot == 0)
{
fun_display_char(".");
p_number = &num_dis_code[0];
fun_write_data(*p_number);
fun_write_data(*p_number);
fun_write_data(*p_number);
}
if (dot != 0)
{
fun_display_char(".");
dot1 = dot/100;
dot01 = (dot%100)/10;
dot001 = (dot%100)-dot01*10;
p_number = &num_dis_code[0]+dot1;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+dot01;
fun_write_data(*p_number);
p_number = &num_dis_code[0]+dot001;
fun_write_data(*p_number);
}
while (*p_unit)
{
fun_write_data(*p_unit);
p_unit++;
}
}
void fun_delay()
{
unsigned char i,j;
for (i=0; i<250; i++)
{
for (j=0; j<250; j++)
{
}
}
}
main()
{
unsigned char i;
initialize_lcd();
//p_number = &num_dis_code[9]; //取首数组首地址,给p_number
//fun_display_char("wa="); //显示字符wa
/*fun_display_position(1,0);
fun_write_data(0x01);
fun_write_data(0x01);
fun_display_char(" ");
fun_display_num4(2008);
fun_write_data(0x02);
fun_display_char(" ");
fun_display_num4(9);
fun_write_data(0x01);
fun_display_char(" ");
fun_display_num4(01);
fun_write_data(0x04);
fun_display_position(2,0);
fun_display_num_dot_unit("qqq",15,10," 33");*/
/*fun_display_position(1,4);
fun_display_num4(ten_hour);
fun_display_num4(hour);
fun_display_char(":");
fun_display_num4(ten_miniute);
fun_display_num4(miniute);
fun_display_char(":");
fun_display_num4(ten_second);
fun_display_num4(second);*/
while(1)
{
//fun_write_instruction(CLEAR_SCREEN);
/* for (i=0; i<10; i++)
{
fun_display_position(1,0);
fun_display_num4(i);
fun_delay();
}*/
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -