|
本帖最后由 yinnan128 于 2021-3-12 16:21 編輯
自己搞定了,變量需要轉(zhuǎn)成ASCII碼
網(wǎng)上找的代碼,自己改了部分,現(xiàn)在想顯示變量的數(shù)值,一直沒成功。我打算LCD1602第一位地址顯示變量s的數(shù)值,第二位地址顯示c的數(shù)值,改代碼如下
uchar s=5;//需要加ASCII碼s=5+0x30
uchar c=6;
char maichong1[ ] = "sc";//脈沖1
顯示出來的卻是sc,而不是56
- unsigned char Custom0[8]={0x0E,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B};//自定義脈沖1字符
- uchar maichong1[ ] = "12";//脈沖1
- void write_nibble_lcd(unsigned char Val) //使用的是4位數(shù)據(jù)傳輸
- {
- LCDRW = 0;
- LCDEN = 1; //寫入時(shí)序
- D0 = D1 = D2 = D3 = 0;
- if(Val & 0x01)
- D0 = 1;
- if(Val & 0x02)
- D1 = 1;
- if(Val & 0x04)
- D2 = 1;
- if(Val & 0x08)
- D3 = 1;
- LCDEN = 0; //使能清零
- }
- void write_lcd(unsigned char Val) //發(fā)送一個(gè)字符
- {
- write_nibble_lcd(Val >> 4);
- write_nibble_lcd(Val);
- DelayXms(6);
- }
- /*******************************寫命令************************************/
- void write_com(uchar com)
- {
- LCDRS = 0;
- LCDRW = 0;
- write_lcd(com);
-
- }
- /*******************************寫數(shù)據(jù)***********************************/
- void write_data(uchar date)
- {
- LCDRS = 1; //寫入數(shù)據(jù) 0 選擇發(fā)送命令 1 選擇發(fā)送數(shù)據(jù)
- LCDRW = 0;
- write_lcd(date);
- }
- /*******************************顯示位置設(shè)定****************************/
- void lcd1_pos(uchar pos) //設(shè)定顯示位置在第一行
- { //第一行第幾列直接寫pos為幾,第二行pos從0x40開始
- write_com(pos | 0x80) ; //數(shù)據(jù)指針=80+地址變量
- }
- void lcd2_pos(uchar pos) //設(shè)定顯示位置在第二行
- { //第一行第幾列直接寫pos為幾,第二行pos從0x40開始
- write_com(pos | 0xc0) ; //數(shù)據(jù)指針=80+地址變量
- }
- /******************************自定義字符寫入CGRAM**********************/
- void Custom()
- {
- unsigned char i ;
- write_com(0x40) ; //寫入第0個(gè)自定義脈沖1字符
- for(i=0;i<8;i++)
- {write_data(Custom0[i]);}
- }
- /******************************自定義字符顯示**********************/
- void LCD1602_Custom()
- {
- /*******************第一行*******************/
- Custom(); //執(zhí)行寫入自定義字符程序
- lcd1_pos(0); //在LCD第一行第0個(gè)位置
- write_data(0);//顯示自定義《脈沖1》字符
- }
- /******************************參數(shù) ************************************/
- void HJ_CS()
- {
- uchar m;
- lcd1_pos(1) ; //設(shè)置顯示位置為第一行的第1個(gè)字符
- m=0;
- while(maichong1[m]!=0)
- {
- write_data(maichong1[m]) ; //顯示脈沖1時(shí)間
- m++;
- }
復(fù)制代碼
|
|