s++; } s += 16; }
set(lcd_cs); }
//****************************************************************************************************
// 写一个任意数字
//****************************************************************************************************
void LCD_WriteNumber(u8 page,u8 column, unsigned long number, u8 num_bit, u8 dot_bit, u8 front_no_zero, u8 size) {
//想要这样实现:给一个整数(单片机一般用不起浮点数)
//确定位长(为了格式要求,最大 11 位,包括小数点) num_bit
//确定起始位置(必须的) page/column //确定转换成小数的位数(便于把整数当成小数来显示) dot_bit
//确定前面空位是否把零弄成空格(适用于不同模式,而且便于拼接) front_no_zero
u8 num_str[12]={\}, i = 0, num_bit_bak = num_bit;
if(num_bit > 11) {
num_bit = 11; }
//先处理小数部分 if(dot_bit > 0) {
for(i = 0; i < dot_bit; i++) {
num_str[--num_bit] = number + '0';//每位以字符表示 number /= 10; }
num_str[--num_bit] = '.';
}
//整数部分
while(num_bit > 0) {
num_str[--num_bit] = number + '0';//每位以字符表示
number /= 10; }
//填充空格
if(front_no_zero == 1) {
num_bit_bak -= (dot_bit + 2); for(i = 0; i < num_bit_bak; i++) {
if(num_str[i] == '0') {
num_str[i] = ' '; } else {
break; }
} }
LCD_WriteString(page,column,num_str,12,size); }
//**************************************************************************************************** // 画一幅图
//****************************************************************************************************
void LCD_Draw_Pic(u8 * p) {
u8 i = 0, j = 0;
clr(lcd_cs);
for(i = 1; i < 9; i++) {
set_ads_lcd(i, 1);
for(j = 1; j < 129; j++) {
transfer_data_lcd(*p++); } }
set(lcd_cs); }
/*LCD模块初始化*/ void Init_LCD() {
PlcdDIR |= lcd_rs | lcd_reset | lcd_cs | lcd_sid | lcd_sclk;
clr(lcd_cs);
clr(lcd_reset); /*低电平复位*/ delay_us(20);
set(lcd_reset); /*复位完毕*/ delay_us(20);
transfer_command_lcd(0xe2); /*软复位*/