久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1270|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

12864液晶屏顯示超聲波程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:535628 發(fā)表于 2019-7-30 08:55 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  1. #include   <reg52.h>
  2. #include   <intrins.h>

  3. /************????**************/

  4.     sbit     RX    =  P3 ^ 1; //ECH0
  5.     sbit     TX    =  P3 ^ 0;//TRIG
  6.     sbit     CS    =  P2 ^ 0;        
  7.     sbit     SID   =  P2 ^ 1;        //RW   
  8.     sbit     SCLK  =  P2 ^ 3;        //E   

  9. /*************????**************/

  10. void Lcd_init(void);
  11. void Write_char(bit start, unsigned char ddata);
  12. void Send_byte(unsigned char bbyte);
  13. void Delaynms(unsigned int di);
  14. void Clr_Scr(void);
  15. void LCD_set_xy( unsigned char x, unsigned char y );
  16. void LCD_Write_string(unsigned char X,unsigned char Y,unsigned char *s);
  17. void LCD_Write_number(unsigned char s);
  18. void Lcd_Mark2(void);
  19. void Conut(void);
  20. void delayms(unsigned int ms);
  21. void  StartModule();


  22. unsigned char code num[]={"0123456789 :.-"};

  23. unsigned char code Q[] ={"ǰ:"};
  24. unsigned char code CM[] =  {"m"};
  25. unsigned int  time=0;
  26.          long S=0;
  27.          bit  flag =0;
  28. unsigned char disbuff[4]={ 0,0,0,0,};

  29. /**************************************************************/
  30. void Lcd_init(void)         
  31. {
  32.         Delaynms(10);
  33.           CS=1;
  34.           Write_char(0,0x30);  
  35.           Write_char(0,0x0c);  
  36.           Write_char(0,0x01);   
  37. }

  38. /***************************************************************/
  39. void Write_char(bit start, unsigned char ddata)
  40. {
  41.         unsigned char start_data,Hdata,Ldata;
  42.           if(start==0)
  43.                 start_data=0xf8;        
  44.     else   
  45.             start_data=0xfa;  

  46.           Hdata=ddata&0xf0;                 
  47.           Ldata=(ddata<<4)&0xf0;  
  48.           Send_byte(start_data);         
  49.           Delaynms(5);
  50.           Send_byte(Hdata);              
  51.           Delaynms(1);  
  52.           Send_byte(Ldata);                  
  53.           Delaynms(1);  
  54. }

  55. /***************************************************************/
  56. void Send_byte(unsigned char bbyte)
  57. {
  58.         unsigned char i;
  59.         for(i=0;i<8;i++)
  60.            {
  61.                    SID=bbyte&0x80;
  62.                 SCLK=1;
  63.                    SCLK=0;
  64.                    bbyte<<=1;
  65.            }  
  66. }

  67. /***************************************************************/
  68. void Delaynms(unsigned int di)
  69. {
  70.         unsigned int da,db;
  71.         for(da=0;da<di;da++)
  72.                    for(db=0;db<10;db++);
  73. }

  74. /***************************************************************/


  75. void Clr_Scr(void)
  76. {
  77.         Write_char(0,0x01);
  78. }

  79. /****************************************************************/
  80. void LCD_set_xy( unsigned char x, unsigned char y )
  81. {        
  82.     unsigned char address;
  83.         switch(x)
  84.         {
  85.                 case 0: address = 0x80 + y; break;   
  86.             case 1: address = 0x80 + y; break;
  87.                 case 2: address = 0x90 + y; break;
  88.                     case 3: address = 0x88 + y; break;
  89.                 case 4: address = 0x98 + y; break;
  90.                 default:address = 0x80 + y; break;
  91.         }
  92.     Write_char(0, address);
  93. }

  94. /*****************************************************************/
  95. void LCD_Write_string(unsigned char X,unsigned char Y,unsigned char *s)
  96. {        
  97.         LCD_set_xy( X, Y );

  98.     while (*s)
  99.     {
  100.                 Write_char( 1, *s );
  101.             s ++;
  102.                 Delaynms(1);
  103.         }
  104. }

  105. /******************************************************************/
  106. void LCD_Write_number(unsigned char s)
  107. {        
  108.         Write_char(1,num[s]);
  109.         Delaynms(1);
  110. }
  111. /******************************************************************/
  112. void Lcd_Mark2(void)
  113. {
  114.         Clr_Scr();//??
  115.         LCD_Write_string(1,2,Q);

  116.         LCD_Write_string(1,6,CM);        
  117. }
  118. /*************************************************************************************/
  119. /*************************************************************************************/
  120.     void Conut(void)
  121.         {
  122.            time=TH0*256+TL0;
  123.            TH0=0;
  124.            TL0=0;
  125.            S=time*1.87/100;              
  126.            if(flag==1)                     
  127.           {         
  128.            flag=0;
  129.            LCD_set_xy( 1, 4 );
  130.            LCD_Write_number(13);
  131.            LCD_Write_number(12);
  132.            LCD_set_xy( 1, 5 );
  133.            LCD_Write_number(13);
  134.            LCD_Write_number(13);

  135.            }
  136.          else
  137.           {
  138.            disbuff[1]=S%1000/100;
  139.            disbuff[2]=S%1000%100/10;
  140.            disbuff[3]=S%1000%10 %10;
  141.            LCD_set_xy( 1, 4 );
  142.            LCD_Write_number(disbuff[1]);
  143.            LCD_Write_number(12);
  144.            LCD_set_xy( 1, 5 );
  145.            LCD_Write_number(disbuff[2]);
  146.            LCD_Write_number(disbuff[3]);
  147.           }
  148.         }
  149. /********************************************************/
  150. void delayms(unsigned int ms)
  151. {
  152.         unsigned char i=100,j;
  153.         for(;ms;ms--)
  154.         {
  155.                 while(--i)
  156.                 {
  157.                         j=10;
  158.                         while(--j);
  159.                 }
  160.         }
  161. }
  162. /********************************************************/
  163.      void zd0() interrupt 1                  
  164.   {
  165.     flag=1;                                                      
  166.   }
  167. /********************************************************/
  168.    void  StartModule()                          
  169.   {
  170.           TX=1;                                       
  171.           _nop_();
  172.           _nop_();
  173.           _nop_();
  174.           _nop_();
  175.           _nop_();
  176.           _nop_();
  177.           _nop_();
  178.           _nop_();
  179.           _nop_();
  180.           _nop_();
  181.           _nop_();
  182.           _nop_();
  183.           _nop_();
  184.           _nop_();
  185.           _nop_();
  186.           _nop_();
  187.           _nop_();
  188.           _nop_();
  189.           _nop_();
  190.           _nop_();
  191.           _nop_();
  192.           TX=0;
  193.   }
  194. /********************************************************/
  195. void main(void)
  196. {  
  197.     TMOD=0x01;                  
  198.         TH0=0;
  199.         TL0=0;
  200.         TR0=1;

  201.         Lcd_init();      
  202.         Clr_Scr();              



  203.     Lcd_Mark2();


  204.         while(1)
  205.         {
  206.          StartModule();         

  207.          while(!RX);               
  208.          TR0=1;                        
  209.          while(RX);                       
  210.          TR0=0;                                
  211.          Conut();
  212.          delayms(80);                //80MS

  213.         }

  214. }              
復(fù)制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 羞羞网站免费观看 | 91免费在线| 一级欧美 | 不卡的av电影 | 男女免费观看在线爽爽爽视频 | 久久精品国产久精国产 | 欧美精三区欧美精三区 | 欧美成人精品激情在线观看 | 第一区在线观看免费国语入口 | 国产精品久久久久久久久久妞妞 | 精品综合久久久 | 久久久久久亚洲 | 97超级碰碰 | 国产一级黄色网 | 亚洲综合大片69999 | 91麻豆精品国产91久久久更新资源速度超快 | 国产精品国产三级国产aⅴ中文 | 午夜激情免费 | 久久久妇女国产精品影视 | 亚洲精品电影在线观看 | 欧美亚洲视频 | 夜夜草| 天天综合国产 | 操射视频| 亚洲色图图片 | 午夜免费视频 | av一级在线观看 | 91精品国产91久久久久久不卞 | 日本欧美大片 | 国产毛片视频 | 国产91在线播放 | 天堂资源| 99热首页 | 国产精品视频97 | 九九久久免费视频 | 亚洲欧美视频一区 | 成人a视频 | 一区久久 | 欧美日韩成人网 | 成人午夜影院 | 一级片在线观看 |