找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 809|回复: 4
收起左侧

ILI9325怎么去显示数字,用的是C程序

[复制链接]
ID:995515 发表于 2023-4-27 16:05 | 显示全部楼层 |阅读模式
如题
回复

使用道具 举报

ID:262 发表于 2023-4-27 17:25 | 显示全部楼层
这种情况最好是说你做了什么,会什么,不然给人感觉就像伸手党,有谁愿意牺牲时间呢? 而且论坛已经明令禁止伸手党,大家都是来51hei学习的,电子工程师爱好者也都反感伸手党,所以还是重新编辑一下帖子吧,至少说明一下你做了什么,到了什么进度,遇到哪一行具体的代码或者电路不明白,让大家帮你分析,可以先看下大家的帖子都是怎么发的,问题是怎么解决的:http://www.51hei.com/bbs/mcu-h24-1.html
参考:http://www.51hei.com/bbs/dpj-78604-1.html
回复

使用道具 举报

ID:123289 发表于 2023-4-28 10:53 | 显示全部楼层
ILI9325显示数字,与用不用C语言无关。
取总决于你将数码管的哪些段位点量。
回复

使用道具 举报

ID:995515 发表于 2023-5-1 15:42 | 显示全部楼层
#include<reg52.h> #include"LCD_driver.h"    unsigned char  kp,ti,td;    unsigned char  rx=102;                 //2V                             int  y,y1,u;     int  e0,e1,ei;    unsigned int  ts;    int ri[8]={0,0,0,0,0,0,0,0};    uchar sitx;  uchar nump=0,numi=0,numd=0; uchar numsit,numc[9],cnt=0;              uchar keyv;   void dis8(uchar x, uchar sitx )         {      LCD_KeilDrawLine(20+sitx, 200, 27+sitx, 200);    LCD_KeilDrawLine(20+sitx, 210, 27+sitx, 210);    LCD_KeilDrawLine(20+sitx, 220, 27+sitx, 220);    LCD_KeilDrawLine(20+sitx, 200, 20+sitx, 210);     LCD_KeilDrawLine(20+sitx, 210, 20+sitx, 220);            LCD_KeilDrawLine(27+sitx, 200, 27+sitx, 210);    LCD_KeilDrawLine(27+sitx, 210, 27+sitx, 220);              if (x==2||x==3||x==5||x==6||x==8||x==0)    LCD_DrawLine(20+sitx, 200, 27+sitx, 200);    if (x==2||x==3||x==4||x==5||x==6||x==8)    LCD_DrawLine(20+sitx, 210, 27+sitx, 210);    if (x==2||x==3||x==5||x==6||x==7||x==8||x==0)     LCD_DrawLine(20+sitx, 220, 27+sitx, 220);    if (x==2||x==6||x==8||x==0)             LCD_DrawLine(20+sitx, 200, 20+sitx, 210);    if (x==4||x==5||x==6||x==8||x==9||x==0)      LCD_DrawLine(20+sitx, 210, 20+sitx, 220);     if (x==1||x==3||x==4||x==5||x==6||x==7||x==8||x==9||x==0)            LCD_DrawLine(27+sitx, 200, 27+sitx, 210);    if (x==1||x==2||x==3||x==7||x==8||x==9||x==0)    LCD_DrawLine(27+sitx, 210, 27+sitx, 220);         }  uchar keyscan()                     { uchar hsm, ljc, keyvalue;   P1=0xf0;                                                //  | 1111 - 0000             ljc=P1&0xf0;   if(ljc!=0xf0)      {      delayms(10);          ljc=P1&0xf0;          if(ljc!=0xf0)             {  hsm=0xfe;                    while((hsm&0x10)!=0)                    { P1=hsm;                      ljc=P1&0xf0;                          if(ljc!=0xf0)                           {                            keyvalue=(~hsm)+((~(ljc|0x0f)));                            return(keyvalue);                           }                          else hsm=(hsm<<1)|0x01;                                         }                               }          }    return(0x00);  }             void main() {     LCD_Init();        Pant(colors[4]>>8 , colors[4]);    LCD_CS =0;   LCD_DrawLine(10, 10, 310, 10);    LCD_DrawLine(10, 10, 10, 230);    LCD_DrawLine(10, 230, 310, 230);    LCD_DrawLine(310, 10, 310, 230);            u=0;          ei=0;         y=0;         y1=0;         ts=10;             //    kp=7;ti=12;td=6;            while(cnt!=10)                  {           delayms(100);                                                   if(keyscan()!=0x00 )                              {                                    keyv=keyscan();                                                                                         switch(keyv)                                     { case 0x11: if (cnt==2)    {cnt=0; }                                                    if (cnt==5)    {cnt=3; }                                                                          if (cnt==8)    {cnt=6; }                                                                                         else  {numc[cnt]=1;cnt++; }                                                                   break;                                                                                case 0x21: if (cnt==2)    {cnt=0; }                                                                   if (cnt==5)    {cnt=3; }                                                                          if (cnt==8)    {cnt=6; }                                                                        else  {numc[cnt]=2; cnt++;}                                                                  break;                                                                                case 0x41:  if (cnt==2)    {cnt=0 ;}                                                                   if (cnt==5)    {cnt=3; }                                                                          if (cnt==8)    {cnt=6; }                                                                        else  {numc[cnt]=3;cnt++; }                                                                  break;                                                                                                                                 case 0x81: if (cnt==2)    {cnt=0; }                                                                   if (cnt==5)    {cnt=3; }                                                                          if (cnt==8)    {cnt=6; }                                                                   else  {numc[cnt]=4; cnt++; }                                                                 break;                                                                                                       case 0x12: if (cnt==2)    {cnt=0; }                                                                  if (cnt==5)    {cnt=3; }                                                                          if (cnt==8)    {cnt=6; }                                                                        else  {numc[cnt]=5;cnt++; }                                                                  break;                                                                  case 0x22:  if (cnt==2)    {cnt=0; }                                                                   if (cnt==5)    {cnt=3; }                                                                          if (cnt==8)    {cnt=6; }                                                                       else  {numc[cnt]=6; cnt++;}                                                                  break;                                          case 0x42:  if (cnt==2)    {cnt=0; }                                                                   if (cnt==5)    {cnt=3; }                                                                          if (cnt==8)    {cnt=6; }                                                                      else  {numc[cnt]=7; cnt++; }                                                                 break;                                          case 0x82:  if (cnt==2)    {cnt=0; }                                                                   if (cnt==5)    {cnt=3; }                                                                          if (cnt==8)    {cnt=6; }                                                                     else  {numc[cnt]=8; cnt++;}                                                                  break;                                                                          case 0x14:  if (cnt==2)    {cnt=0; }                                                                   if (cnt==5)    {cnt=3; }                                                                          if (cnt==8)    {cnt=6; }                                                                      else  {numc[cnt]=9;cnt++; }                                                                  break;                                                                                case 0x24:   if (cnt==2)    {cnt=0; }                                                                    if (cnt==5)    {cnt=3; }                                                                          if (cnt==8)    {cnt=6; }                                                                      else  {numc[cnt]=0; cnt++;}                                                                  break;                                                   case 0x84: cnt=9;                                                break;                                                                                                case 0x18: cnt=0;                                                                  break;                                                                                                                                                                                                      case 0x28: cnt=3;                                                                  break;                                           case 0x48: cnt=6;                                                break;                                                   case 0x88: cnt=10;                                          }                                                                                                                                         nump=numc[0]*10+numc[1];                numi=numc[3]*10+numc[4];         numd=numc[6]*10+numc[7];                                                       dis8(numc[0],0) ;                                          dis8(numc[1],10);                                          dis8(numc[3],30);                                          dis8(numc[4],40);                                          dis8(numc[6],60);                                          dis8(numc[7],70);                              kp=nump; ti=numi;  td=numd;                                                              }                   }           while (cnt==10)                            {                    e0=rx-y;                   ei=ei+e0;                                     u=0.18*kp*(e0+ei/ti+td*(e0-e1)/4);         //          if (u>230)  u=230;                   e1=e0;                                              ri[0]=ri[1];                                 ri[1]=ri[2];                    ri[2]=ri[3];                    ri[3]=ri[4];                     ri[4]=ri[5];                     ri[5]=ri[6];                    ri[6]=ri[7];                    ri[7]=u;                      y=0.9*y1+0.1*ri[0];                                    LCD_DrawLine(ts-4,y1+10 ,  ts,y+10);                    y1=y;                LCD_DrawPoint(112,ts);            //  LCD_DrawPoint(y+10,ts);                                    //LCD_DrawPoint(u,ts);                                   if(ts<=306) ts=ts+4;                 delayms(50);                 }  }
回复

使用道具 举报

ID:517951 发表于 2023-5-2 09:57 | 显示全部楼层
ILI9325是点阵型的LCD控制ic, 显示数字, 先做一个0-9的字库, 什么大小, 字型自己挑选. 然后把字库读取出来, 通过写屏函数(确定要现实的x,y位置)在LCD上显示出来.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表