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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2156|回復: 0
收起左側

用proteus仿真基于51單片機的倒車雷達 LCD沒顯示是什么情況呀 求幫助

[復制鏈接]
ID:573176 發表于 2019-6-28 14:44 | 顯示全部樓層 |閱讀模式
微信圖片_20190628144304.png

單片機源程序如下:
  1. #include<stc15f2k60s2.h>
  2. #include<intrins.h>
  3. #include"lcd.h"
  4. sbit Trig = P3^2;
  5. sbit Echo = P3^3;
  6. sbit beep=P1^4;
  7. unsigned char PuZh[]="distance is ";
  8. unsigned char code ASCII[15] =    {'0','1','2','3','4','5','6','7','8','9','.','-','M'};
  9. static unsigned char DisNum = 0;
  10.        unsigned int  time=0;
  11.     unsigned long S=0;
  12.     bit      flag =0;
  13.     unsigned char disbuff[4]    ={ 0,0,0,0,};
  14. void Conut(void)
  15. {
  16.   time=TH0*256+TL0;
  17.   TH0=0;
  18.   TL0=0;

  19.   S=(time*1.7)/100;     
  20.   if((S>=700)||flag==1)
  21.   {  
  22.    flag=0;
  23.   
  24.    DisplayOneChar(11, 0, ASCII[11]);
  25.    DisplayOneChar(12, 0, ASCII[10]);
  26.    DisplayOneChar(13, 0, ASCII[11]);
  27.    DisplayOneChar(14, 0, ASCII[11]);
  28.    DisplayOneChar(15, 0, ASCII[12]);
  29.   }
  30.   else
  31.   {
  32.    disbuff[0]=S%1000/100;
  33.    disbuff[1]=S%1000%100/10;
  34.    disbuff[2]=S%1000%10 %10;
  35.    DisplayOneChar(11, 0, ASCII[disbuff[0]]);
  36.    DisplayOneChar(12, 0, ASCII[10]);
  37.    DisplayOneChar(13, 0, ASCII[disbuff[1]]);
  38.    DisplayOneChar(14, 0, ASCII[disbuff[2]]);   
  39.    DisplayOneChar(15, 0, ASCII[12]);
  40.   }
  41. }
  42. void zd0() interrupt 1   
  43.   {
  44.     flag=1;                                                                                                                                                                                          
  45.   }
  46. void  StartModule()            
  47.   {
  48.    Trig=1;                        
  49.    _nop_();
  50.    _nop_();
  51.    _nop_();
  52.    _nop_();
  53.    _nop_();
  54.    _nop_();
  55.    _nop_();
  56.    _nop_();
  57.    _nop_();
  58.    _nop_();
  59.    _nop_();
  60.    _nop_();
  61.    _nop_();
  62.    _nop_();
  63.    _nop_();
  64.    _nop_();
  65.    _nop_();
  66.    _nop_();
  67.    _nop_();
  68.    _nop_();
  69.    _nop_();
  70.    Trig=0;
  71.   }

  72. void delayms(unsigned int ms)
  73. {
  74. unsigned char i=100,j;
  75. for(;ms;ms--)
  76. {
  77.   while(--i)
  78.   {
  79.    j=10;
  80.    while(--j);
  81.   }
  82. }
  83. }
  84. void main(void)
  85. {
  86.   TMOD=0x01;     
  87.   TH0=0;
  88.   TL0=0;         
  89.   ET0=1;            
  90.   EA=1;      
  91. InitLcd1602();
  92. LcdShowStr(0,0,PuZh);
  93. while(1)
  94. {
  95.   
  96.    StartModule();
  97.       while(!Echo);  
  98.       TR0=1;      
  99.       while(Echo);   
  100.       TR0=0;   
  101.          Conut();   
  102.    delayms(80);
  103.   if(S<20)
  104.   {
  105.      beep=0;
  106.   }
  107. }
  108.    
  109. }



  110. #include"lcd.h"

  111. void Read_Busy()           
  112. {
  113.     unsigned char sta;      
  114.     LCD1602_DB = 0xff;
  115.     LCD1602_RS = 0;
  116.     LCD1602_RW = 1;
  117.     do
  118.     {
  119.         LCD1602_EN = 1;
  120.         sta = LCD1602_DB;
  121.         LCD1602_EN = 0;   
  122.     }while(sta & 0x80);
  123. }
  124. void Lcd1602_Write_Cmd(unsigned char cmd)     
  125. {
  126.     Read_Busy();
  127.     LCD1602_RS = 0;
  128.     LCD1602_RW = 0;
  129.     LCD1602_DB = cmd;
  130.     LCD1602_EN = 1;
  131.     LCD1602_EN = 0;   
  132. }
  133. void Lcd1602_Write_Data(unsigned char dat)   
  134. {
  135.       Read_Busy();
  136.       LCD1602_RS = 1;
  137.       LCD1602_RW = 0;
  138.       LCD1602_DB = dat;
  139.       LCD1602_EN = 1;
  140.       LCD1602_EN = 0;
  141. }
  142. void LcdSetCursor(unsigned char x,unsigned char y)  
  143. {
  144.     unsigned char addr;
  145.     if(y == 0)
  146.         addr = 0x00 + x;
  147.     else
  148.         addr = 0x40+ x;
  149.    
  150.     Lcd1602_Write_Cmd(addr|0x80);
  151. }
  152. //°′???¨??????ê?ò???×?
  153. void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)
  154. {
  155. Y &= 0x1;
  156. X &= 0xF;
  157. if (Y) X |= 0x40;
  158. X |= 0x80;
  159. Lcd1602_Write_Cmd(X);
  160. Lcd1602_Write_Data(DData);
  161. }

  162. void LcdShowStr(unsigned char x,unsigned char y,unsigned char *str)     
  163. {
  164.     LcdSetCursor(x,y);      
  165.     while(*str != '\0')
  166.     {
  167.         Lcd1602_Write_Data(*str++);
  168.     }
  169. }
  170. void InitLcd1602()              
  171. {
  172.     Lcd1602_Write_Cmd(0x38);   
  173.     Lcd1602_Write_Cmd(0x0c);
  174.     Lcd1602_Write_Cmd(0x06);
  175.     Lcd1602_Write_Cmd(0x01);   
  176. }



復制代碼




回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品一二三区在线观看 | 国产精品久久久久久一区二区三区 | 久久久精品亚洲 | 日韩欧美在 | 成年人视频在线免费观看 | av网站在线看 | 91精品国产色综合久久不卡蜜臀 | 国产精品久久久久久久久久久久 | 亚洲欧美日韩久久久 | 国产精品成人一区二区三区吃奶 | 国产精品www| 97国产在线观看 | 国产情侣在线看 | 不卡在线视频 | 日本午夜免费福利视频 | 91精品国产手机 | 成av在线| 国产精品久久99 | 久久久久久亚洲国产精品 | 黄色毛片视频 | 久久成人国产精品 | 国产精品一区二区av | 欧美久久一区二区三区 | 一级黄色录像毛片 | 一区二区三区中文 | 亚洲精品视频在线 | 中文字幕黄色大片 | 久久久夜色精品亚洲 | 日韩免费毛片视频 | 成人动漫视频网站 | www.久久| 三级av在线| 希岛爱理在线 | 色综合99| 日日夜夜天天 | 日韩有码一区 | 欧美精品国产一区二区 | 99热碰| 日韩欧美二区 | 精品国产欧美一区二区 | 国产精选一区 |