我的LCD1602在想顯示65535時會顯示65135,
65435時會顯示65035
不知道為啥,下面是程序
/**
* @brief 顯示無符號數字
* @param x 顯示的行數 范圍為1~2;
* @param y 顯示的列數 范圍為1~40;但初始只顯示前16列。
* @param num 顯示的數字 范圍 0~65535
* @param length 顯示的數字長度 0~40 但初始只顯示前16
* @retval 無
*/
void lcd1602_show_num(unsigned char x,y, unsigned int num, unsigned char length)
{
unsigned char i=length;
show_location(x,y);
while(i)
{
lcd1602_w_data((num/(int)(pow(10,i-1)))%10+0x30);
i--;
}
}
/**
* @brief 寫數據函數
* @param dat 要寫的數據
* @retval 無
*/
void lcd1602_w_data(unsigned char dat)
{
// while(!check_busy());
RS=1;
RW=0;
P0=dat;
EN=1;
_nop_ ();
EN=0;
Delay(1);
}
|