找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1507|回復(fù): 0
收起左側(cè)

單片機(jī)+LCD1602怎么顯示變量阻值?

[復(fù)制鏈接]
ID:608872 發(fā)表于 2021-3-12 10:07 | 顯示全部樓層 |閱讀模式
本帖最后由 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
  1. unsigned char Custom0[8]={0x0E,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B};//自定義脈沖1字符
  2. uchar maichong1[ ] = "12";//脈沖1
  3. void write_nibble_lcd(unsigned char Val) //使用的是4位數(shù)據(jù)傳輸
  4. {
  5.                 LCDRW = 0;
  6.         LCDEN = 1;   //寫入時(shí)序
  7.         D0 = D1 = D2 = D3 = 0;
  8.         if(Val & 0x01)
  9.         D0 = 1;
  10.         if(Val & 0x02)
  11.         D1 = 1;
  12.         if(Val & 0x04)
  13.         D2 = 1;
  14.         if(Val & 0x08)
  15.         D3 = 1;
  16.         LCDEN = 0;   //使能清零
  17. }

  18. void write_lcd(unsigned char Val) //發(fā)送一個(gè)字符
  19. {
  20.         write_nibble_lcd(Val >> 4);
  21.         write_nibble_lcd(Val);
  22.         DelayXms(6);        
  23. }
  24. /*******************************寫命令************************************/
  25. void write_com(uchar com)
  26. {
  27.                 LCDRS = 0;
  28.                 LCDRW = 0;
  29.                 write_lcd(com);
  30.    
  31. }
  32. /*******************************寫數(shù)據(jù)***********************************/
  33. void write_data(uchar date)
  34. {
  35.                 LCDRS = 1;  //寫入數(shù)據(jù)   0 選擇發(fā)送命令    1 選擇發(fā)送數(shù)據(jù)
  36.                 LCDRW = 0;
  37.                 write_lcd(date);
  38. }
  39. /*******************************顯示位置設(shè)定****************************/
  40. void lcd1_pos(uchar pos)          //設(shè)定顯示位置在第一行
  41. {                          //第一行第幾列直接寫pos為幾,第二行pos從0x40開始
  42.    write_com(pos | 0x80) ;    //數(shù)據(jù)指針=80+地址變量
  43. }

  44. void lcd2_pos(uchar pos)          //設(shè)定顯示位置在第二行
  45. {                                   //第一行第幾列直接寫pos為幾,第二行pos從0x40開始
  46.    write_com(pos | 0xc0) ;   //數(shù)據(jù)指針=80+地址變量
  47. }

  48. /******************************自定義字符寫入CGRAM**********************/
  49. void Custom()   
  50. {  
  51.      unsigned char i ;
  52.      write_com(0x40) ;        //寫入第0個(gè)自定義脈沖1字符
  53.      for(i=0;i<8;i++)
  54.          {write_data(Custom0[i]);}
  55. }
  56. /******************************自定義字符顯示**********************/
  57. void LCD1602_Custom()
  58. {
  59. /*******************第一行*******************/
  60. Custom();     //執(zhí)行寫入自定義字符程序
  61. lcd1_pos(0);  //在LCD第一行第0個(gè)位置
  62. write_data(0);//顯示自定義《脈沖1》字符
  63. }
  64. /******************************參數(shù) ************************************/
  65. void HJ_CS()
  66. {
  67.    uchar m;
  68.          lcd1_pos(1) ;                 //設(shè)置顯示位置為第一行的第1個(gè)字符
  69.      m=0;
  70.      while(maichong1[m]!=0)
  71.       {                          
  72.         write_data(maichong1[m]) ; //顯示脈沖1時(shí)間
  73.                 m++;
  74.           }        
復(fù)制代碼



回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表