找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 532|回复: 2
收起左侧

求大神帮我看下我这个超神波程序哪里错了

[复制链接]
ID:982171 发表于 2021-12-2 17:39 | 显示全部楼层 |阅读模式
求大神帮我看一下,我写的东西在屏上显示不了距离,在lcd和oled上面都不行主程序如下:
  1. #include <stc15.h>
  2. #include "lcd12864cx.h"
  3. #include "oled.h"
  4. #include "ultrasonic.h"

  5. #define u8 unsigned char
  6.         
  7. sbit buzzer = P0^2;

  8. u8 distance = 0;                                //距离
  9. u8 distance_alarm = 20;        //警报距离
  10. u8 count =0;                                                //所用时间        

  11. bit flag =0;                                        //溢出标志位
  12. bit flag200ms = 0;                //200ms标志位
  13. bit flag100ms = 0;                //100ms标志位

  14. //蜂鸣器初始化
  15. void buzzer_init(){
  16.         P0M0=1;                        //开漏输出
  17.         P0M1=1;
  18.         buzzer=0;
  19. }

  20. //外部中断0配置
  21. void int0_init(){
  22.         IE0  = 0;  
  23.         IT0 = 1;         //中断类型,下降沿
  24.         EX0 = 1;         //外部中断0允许位
  25.         EA = 1;                //开启总中断
  26. }

  27. //外部中断1配置
  28. void int1_init(){
  29.         IE1  = 0;  
  30.         IT1 = 1;         //中断类型,下降沿
  31.         EX1 = 1;         //外部中断1允许位
  32.         EA = 1;                //开启总中断
  33. }
  34. //定时中断0
  35. void t0_init(){
  36.         AUXR|=0x80;                //工作于1T模式
  37.         TMOD&=0xF0;                //模式0
  38.         TH0 = 0x1C;                                                                 //1ms
  39.   TL0 = 0x18;
  40.         EA = 1;
  41.   ET0 = 1;
  42.   TR0 = 1;
  43. }
  44. //定时中断1
  45. void t1_init() {
  46.     AUXR &= 0xBF;
  47.     TMOD &= 0x0F;
  48.     TMOD |= 0x10;
  49.     TL1 = 0;  
  50.     TH1 = 0;   
  51.     TF1 = 0;   
  52. }
  53. //显示距离
  54. void display_distance(){
  55.         u8 buf[3];
  56.         buf[2] = distance / 1 % 10;                        //个位
  57.         buf[1] = distance / 10 % 10;                //十位
  58.         buf[0] = distance / 100 % 10;                //百位
  59.         
  60.         OLED_ShowChar(96,4,buf[0],8);
  61.         OLED_ShowChar(104,4,buf[1],8);
  62.         OLED_ShowChar(112,4,buf[2],8);
  63.         delay_ms(10);
  64.         co_disp_one(2,4,buf[0]);
  65.         co_disp_one(2,5,buf[1]);
  66.         co_disp_one(2,6,buf[2]);
  67. }
  68. //显示报警距离
  69. void display(){
  70.         u8 buf[3];
  71.         buf[2] = distance_alarm / 1 % 10;                        //个位
  72.         buf[1] = distance_alarm / 10 % 10;                //十位
  73.         buf[0] = distance_alarm / 100 % 10;                //百位
  74.         
  75.         co_disp_one(3,4,buf[0]);
  76.         co_disp_one(3,5,buf[1]);
  77.         co_disp_one(3,6,buf[2]);
  78.         delay_ms(10);
  79. }
  80. //检测距离
  81. void check(){
  82.         if(distance > distance_alarm){
  83.                 buzzer = 1;
  84.         }else{
  85.                 buzzer = 0;
  86.         }
  87. }

  88. void main(){
  89.         int0_init();
  90.         int1_init();
  91.         t0_init();
  92.         t1_init();
  93.         
  94.         GPIO_Init_Ult();//超声波初始化
  95.         GPIO_Init_Lcd();        
  96.         lcd_init();                        //lcd初始化
  97.         clrram();                                //清空显示
  98.         lcd_display();        //初始界面
  99.         delay_ms(500);
  100.         GPIO_Init_Oled();        
  101.         OLED_Init();                //oled初始化
  102.         OLED_Clear();                //oled清屏
  103.         delay_ms(500);
  104.         OLED_Clear();
  105.         oled_display();                //初始界面
  106.         delay_ms(500);
  107.         buzzer_init();                //蜂鸣器初始化
  108.         
  109.         while(1){
  110.                 if(flag100ms){                                //100ms
  111.                         flag100ms = 0;
  112.                         display();
  113.                         check();
  114.                 }else if(flag200ms){        //200ms
  115.                         flag200ms = 0;
  116.                         RX = 1;
  117.                         StartModule();        //发送脉冲
  118.                         TR1=1;                                //开启计数
  119.                         while(RX && !TF1);                //RX为1计数并等待
  120.                         TR1=0;                                //关闭计数
  121.                         if(flag == 1){        //溢出
  122.                                 flag = 0;
  123.                                 distance = 0;  //距离太远
  124.                         }else{
  125.                                 count = TH1;
  126.                                 count <<= 8;
  127.                                 count |= TL1;
  128.                                 distance = (u8)((unsigned long)count * 17 / 1000);    //距离
  129.                         }
  130.                         TH1 = 0;    //复位定时器
  131.                         TL1 = 0;
  132.                         display_distance();
  133.                 }
  134.         }
  135. }


  136. //外部中断0
  137. void exint0() interrupt 0{
  138.         distance_alarm+=5;
  139. }
  140. //外部中断1
  141. void exint1() interrupt 2{
  142.         distance_alarm-=5;
  143. }
  144. //定时中断0
  145. void time0() interrupt 1{
  146.         static u8 i=0;
  147.         TH0 = 0x1C;                                                                 //1ms
  148.   TL0 = 0x18;
  149.         i++;
  150.         if(i==199){                //0.2s
  151.                 i=0;
  152.                 flag200ms=1;
  153.         }else if(i==99){        //0.1s
  154.                 flag100ms=1;
  155.         }
  156. }

  157. void time1() interrupt 3{
  158.         flag = 1;
  159. }lcd的程序
  160. #include "lcd12864cx.h"
  161. #include "oledfont.h"



  162. uchar code str1[]={"当前距离"};
  163. uchar code str2[]={"当前报警"};
  164. uchar code str3[]={" CM "};

  165. void GPIO_Init_Lcd()
  166. {
  167.         P0M0=0;
  168.         P0M1=0;
  169.         P1M0=0;
  170.         P1M1=0;
  171.         P2M0=0;
  172.         P2M1=0;
  173.         P3M0=0;
  174.         P3M1=0;
  175.         P4M0=0;
  176.         P4M1=0;
  177.         P5M0=0;
  178.         P5M1=0;
  179. }
  180. void delay_yjp(unsigned int t)
  181. {
  182.         unsigned int i,j;
  183.         for(i=0; i<t;  i++)
  184.     for(j=0; j<100; j++);
  185. }
  186. /********************************************************************
  187. * 名称 : sendbyte()
  188. * 功能 : 按照液晶的串口通信协议,发送数据
  189. * 输入 : dat
  190. * 输出 : 无
  191. ***********************************************************************/
  192. void sendbyte(unsigned char dat)
  193. {
  194.         unsigned int i;
  195.         for(i=0; i<8; i++)
  196.         {
  197.                 if((dat << i) & 0x80)
  198.                 {
  199.                         SID = 1;
  200.                 }
  201.                 else
  202.                 {
  203.                         SID = 0;
  204.                 }
  205.                   SCLK = 0;
  206.                   SCLK = 1;
  207.         }
  208. }
  209. /********************************************************************
  210. * 名称 : lcd_cmd()
  211. * 功能 : 写串口指令
  212. * 输入 : cmdcode
  213. * 输出 : 无
  214. ***********************************************************************/
  215. void lcd_cmd(unsigned char cmd)
  216. {

  217.         sendbyte(0xf8);
  218.         sendbyte(cmd & 0xf0);
  219.         sendbyte((cmd << 4) & 0xf0);
  220.         delay_yjp(2);
  221. }

  222. /********************************************************************
  223. * 名称 : lcd_dat()
  224. * 功能 : 写串口数据
  225. * 输入 : dat
  226. * 输出 : 无
  227. ***********************************************************************/
  228. void lcd_dat(unsigned char dat)
  229. {

  230.         sendbyte(0xfa);
  231.         sendbyte(dat&0xf0);
  232.         sendbyte((dat<<4)&0xf0);
  233.         delay_yjp(2);
  234. }
  235. //显示一个字符
  236. void co_disp_one(uchar x,uchar y,uchar dat)
  237. {         
  238.   if(x==0)x=0x80;
  239.   if(x==1)x=0x90;
  240.         if(x==2)x=0x88;
  241.         if(x==3)x=0x98;
  242.   lcd_cmd(0x30);
  243.   lcd_cmd(x+y);
  244.   lcd_dat(dat); /*显示数组chn中第a个字符*/
  245. }

  246. /*---------------显示字符----------------*/
  247. void co_disp(uchar x,uchar y,uchar a,uchar b ,uchar code *chn)
  248. {         
  249.   if(x==0)x=0x80;
  250.   if(x==1)x=0x90;
  251.         if(x==2)x=0x88;
  252.         if(x==3)x=0x98;
  253.   lcd_cmd(0x30);
  254.   lcd_cmd(x+y);
  255.   lcd_dat(chn[a]); /*显示数组chn中第a个字符*/
  256.         lcd_dat(chn[b]); /*显示数组chn中第b个字符*/         
  257. }
  258. /*---------------显示汉字----------------*/
  259. void cn_disp(uchar x,uchar y,uchar lie ,uchar code *chn)
  260. {        
  261.         if(x==0)x=0x80;
  262.   if(x==1)x=0x90;
  263.         if(x==2)x=0x88;
  264.         if(x==3)x=0x98;
  265.   lcd_cmd(0x30);
  266.   lcd_cmd(x+y);
  267.   lcd_dat(chn[2*lie]);        /*根据时序:数据传输分两次,第一次传输高4位,第二次传输低4位,因一个字占用两个地址故乘以2。*/
  268.   lcd_dat(chn[2*lie+1]);
  269. }        
  270. /*--------------清DDRAM------------------*/
  271. void clrram (void)
  272. {
  273.    lcd_cmd(0x30);
  274.    lcd_cmd(0x01);     //清除显示指令。
  275.    delay_yjp(180);
  276. }
  277. /*------------------初始化----------------*/
  278. void lcd_init (void)
  279. {        
  280.         CS=1;              /*串行传输片选信号选通*/
  281.         PSB=0;             /*串行通信模式*/
  282.   lcd_cmd(0x30);     /*30---基本指令动作*/   
  283.   lcd_cmd(0x01);     /*清屏,地址指针指向00H*/
  284.   delay_yjp(100);
  285.   lcd_cmd(0x06);     /*光标的移动方向*/
  286.   lcd_cmd(0x0c);     /*开显示,关游标*/
  287. }

  288. void lcd_display(){
  289.         uchar i;
  290.         for(i=2;i<6;i++){
  291.                 cn_disp(0,i,i,str1);
  292.         }
  293.         for(i=1;i<8;i++){
  294.                 cn_disp(1,i,i,str2);
  295.         }
  296.         for(i=0;i<4;i++){                        //当前距离
  297.                 cn_disp(2,i,i,str3);
  298.         }
  299.         for(i=6;i<8;i++){                        // CM
  300.                 co_disp(2,i,(i-6),(i-4),str5);
  301.         }
  302.         for(i=0;i<4;i++){                        //当前警报
  303.                 cn_disp(3,i,i,str4);
  304.         }
  305.         for(i=6;i<8;i++){                        // CM
  306.                 co_disp(3,i,(i-6),(i-4),str5);
  307.         }
  308. }
  309. oled的程序
  310. void oled_display()   /*显示主界面“”*/
  311. {
  312.         OLED_ShowCHinese(48,0,0);
  313.         OLED_ShowCHinese(64,0,1);
  314.         OLED_ShowCHinese(80,0,2);
  315.         OLED_ShowCHinese(96,0,3);
  316.         
  317.         OLED_ShowCHinese(24,2,4);
  318.         OLED_ShowCHinese(40,2,5);
  319.         OLED_ShowCHinese(56,2,6);
  320.         OLED_ShowCHinese(72,2,7);
  321.         OLED_ShowCHinese(88,2,8);
  322.         OLED_ShowCHinese(104,2,9);
  323.         OLED_ShowCHinese(120,2,10);
  324.         
  325.         OLED_ShowCHinese(24,4,11);//当
  326.         OLED_ShowCHinese(40,4,12);//前
  327.         OLED_ShowCHinese(56,4,13);//距
  328.         OLED_ShowCHinese(72,4,14);//离
  329.         OLED_ShowChar(88,4,':',8);//:
  330.         OLED_ShowChar(96,4,'0',8);//0
  331.         OLED_ShowChar(104,4,'0',8);//0
  332.         OLED_ShowChar(112,4,'0',8);//0
  333.         OLED_ShowChar(120,4,'C',8);//C
  334.         OLED_ShowChar(128,4,'M',8);//M
  335.         
  336. }
  337. void GPIO_Init_Oled()
  338. {
  339.         P0M0=0;
  340.         P0M1=0;
  341.         P1M0=0;
  342.         P1M1=0;
  343.         P2M0=0;
  344.         P2M1=0;
  345.         P3M0=0;
  346.         P3M1=0;
  347.         P4M0=0;
  348.         P4M1=0;
  349.         P5M0=0;
  350.         P5M1=0;
  351.         P6M0=0;
  352.         P6M1=0;
  353. }

  354. void IIC_Start()//IIC协议规定当时钟线为高,数据线由高变为低时,为启动信号。
  355. {
  356.         OLED_SCLK_Set() ;
  357.         OLED_SDIN_Set();
  358.         OLED_SDIN_Clr();
  359. }

  360. void IIC_Stop()//IIC协议规定当时钟线为高,数据线由低变为高时,为终止信号。
  361. {
  362.   OLED_SCLK_Set();
  363.         OLED_SDIN_Clr();
  364.         OLED_SDIN_Set();
  365. }

  366. void IIC_Wait_Ack()//应答信号是在第九个时钟脉冲期间,要等待从机将数据线变为低电平。
  367. {
  368.         OLED_SCLK_Set();
  369.         OLED_SCLK_Clr();
  370. }

  371. void Write_IIC_Byte(uchar IIC_Byte)
  372. {
  373.         uchar i;
  374.         uchar m,da;
  375.         da=IIC_Byte;
  376.         OLED_SCLK_Clr();//IIC协议规定,只有时钟线为低电平期间,数据线上的电平才允许变化。
  377.         for(i=0;i<8;i++)               
  378.         {
  379.                 m=da;
  380.                 m=m&0x80;//提取最高位
  381.                 if(m==0x80)
  382.                 {OLED_SDIN_Set();}
  383.                 else OLED_SDIN_Clr();
  384.                 da=da<<1;//数据由高至低一位一位传输。
  385.                 OLED_SCLK_Set();//高电平期间数据保存稳定。
  386.                 OLED_SCLK_Clr();//低电平期间保证下一次移入的次高位数据有效。即释放总线。
  387.                 }
  388. }

  389. void Write_IIC_Command(uchar IIC_Command)
  390. {
  391.    IIC_Start();
  392.    Write_IIC_Byte(0x78);   //Slave address,SA0=0
  393.          IIC_Wait_Ack();//第9个时钟脉冲作为应答信号的输出脉冲,此处并未等待应答信号,默认应答成功,此条语句只是为了匹配IIC的传输协议。
  394.    Write_IIC_Byte(0x00);        //write command
  395.          IIC_Wait_Ack();        
  396.    Write_IIC_Byte(IIC_Command);
  397.          IIC_Wait_Ack();        
  398.    IIC_Stop();
  399. }

  400. void Write_IIC_Data(uchar IIC_Data)
  401. {
  402.    IIC_Start();
  403.    Write_IIC_Byte(0x78);
  404.          IIC_Wait_Ack();        
  405.    Write_IIC_Byte(0x40);                        //write data
  406.          IIC_Wait_Ack();        
  407.    Write_IIC_Byte(IIC_Data);
  408.          IIC_Wait_Ack();        
  409.    IIC_Stop();
  410. }

  411. void OLED_WR_Byte(uchar dat,uchar cmd)
  412. {
  413.         if(cmd)
  414.         {
  415.    Write_IIC_Data(dat);
  416.         }
  417.         else
  418.         {
  419.    Write_IIC_Command(dat);
  420.         }
  421. }

  422. /*x取值范围为;0-255;y取值范围为:0-7。*/
  423.         void OLED_Set_Pos(uchar x, uchar y)
  424. {
  425.         OLED_WR_Byte(0xb0+y,OLED_CMD);//设置页地址
  426.         OLED_WR_Byte(((x&0xf0)>>4)|0x10,OLED_CMD);//设置列地址高四位
  427.         OLED_WR_Byte((x&0x0f),OLED_CMD); //设置列地址低四位
  428. }

  429. /*清屏函数,清完屏,整个屏幕是黑色的!和没点亮一样!!!*/         
  430. void OLED_Clear(void)  
  431. {        
  432.         uchar i,n;
  433.         for(i=0;i<8;i++)
  434.         {
  435.                 OLED_WR_Byte (0xb0+i,OLED_CMD);    //设置页地址(0~7)
  436.                 OLED_WR_Byte (0x00,OLED_CMD);      //设置显示位置—列低地址
  437.                 OLED_WR_Byte (0x10,OLED_CMD);      //设置显示位置—列高地址
  438.                 for(n=0;n<128;n++)
  439.                 OLED_WR_Byte(0,OLED_DATA);  //关闭一个屏幕共8页,每一页有128个点阵。
  440.         } //更新显示
  441. }

  442. /*在指定位置显示一个字符,包括部分字符
  443. x:0~127
  444. y:0~7                 
  445. size:选择字体 16/12 */
  446. void OLED_ShowChar(uchar x,uchar y,uchar chr,uchar Char_Size)
  447. {              
  448.          uchar c=0,i=0;        
  449.                 c=chr-' ';/*得到偏移后的值,因为oledfont.h中常用字符取模数组F8X16[]是一‘ ’开始且连续,此处求取的是chr在数组中的位置。*/        
  450.                 if(x>Max_Column-1)
  451.       {x=0;y=y+2;}
  452.                 if(Char_Size ==16)
  453.                         {
  454.                         OLED_Set_Pos(x,y);        
  455.                         for(i=0;i<8;i++)
  456.                         OLED_WR_Byte(F8X16[c*16+i],OLED_DATA);
  457.                         OLED_Set_Pos(x,y+1);
  458.                         for(i=0;i<8;i++)
  459.                         OLED_WR_Byte(F8X16[c*16+i+8],OLED_DATA);
  460.                         }
  461. }

  462. //m^n函数
  463. u32 oled_pow(uchar m,uchar n)
  464. {
  465.         u32 result=1;         
  466.         while(n--)result*=m;   
  467.         return result;
  468. }

  469. /*显示2个数字
  470. x,y :起点坐标         
  471. len :数字的位数
  472. size:字体大小
  473. mode:模式        0,填充模式;1,叠加模式
  474. num:数值(0~4294967295)*/                           
  475. void OLED_ShowNum(uchar x,uchar y,u32 num,uchar len,uchar size2)
  476. {                 
  477.         uchar t,temp;
  478.         uchar enshow=0;                                                   
  479.         for(t=0;t<len;t++)
  480.         {
  481.                 temp=(num/oled_pow(10,len-t-1))%10;
  482.                 if(enshow==0&&t<(len-1))
  483.                 {
  484.                         if(temp==0)
  485.                         {
  486.                                 OLED_ShowChar(x+(size2/2)*t,y,' ',size2);
  487.                                 continue;
  488.                         }else enshow=1;
  489.                           
  490.                 }
  491.                  OLED_ShowChar(x+(size2/2)*t,y,temp+'0',size2);
  492.         }
  493. }

  494. /*显示一个字符号串*/
  495. void OLED_ShowString(uchar x,uchar y,uchar *chr,uchar Char_Size)
  496. {
  497.         unsigned char j=0;
  498.         while (chr[j]!='\0')
  499.         {                OLED_ShowChar(x,y,chr[j],Char_Size);
  500.                         x+=8;
  501.                 if(x>120){x=0;y+=2;}
  502.                         j++;
  503.         }
  504. }

  505. /*显示汉字 x:列地址(0-255);y:页地址(0-7)。*/
  506. void OLED_ShowCHinese(uchar x,uchar y,uchar no)
  507. {                                 
  508.         uchar t,adder=0;
  509.         OLED_Set_Pos(x,y);        
  510.     for(t=0;t<16;t++)
  511.                 {
  512.                                 OLED_WR_Byte(Hzk[2*no][t],OLED_DATA);
  513.                                 adder+=1;
  514.      }        
  515.                 OLED_Set_Pos(x,y+1);        
  516.     for(t=0;t<16;t++)
  517.                         {
  518.                                 OLED_WR_Byte(Hzk[2*no+1][t],OLED_DATA);
  519.                                 adder+=1;
  520.       }
  521. }

  522. /*功能描述:显示BMP图片128×64起始点坐标(x,y),x的范围0~127,y为页的范围0~7。*/
  523. void OLED_DrawBMP(uchar x0, uchar y0,uchar x1, uchar y1,uchar *BMP)
  524. {         
  525. uint j=0;
  526. uchar x,y;  
  527.   if(y1%8==0) y=y1/8;      
  528.   else y=y1/8+1;
  529.         for(y=y0;y<y1;y++)
  530.         {
  531.                 OLED_Set_Pos(x0,y);
  532.     for(x=x0;x<x1;x++)
  533.             {      
  534.                     OLED_WR_Byte(BMP[j++],OLED_DATA);
  535.             }
  536.         }
  537. }

  538. /*初始化OLED控制器SSD1306,由OLED供应商或数据手册提供,无需深究。*/                                    
  539. void OLED_Init(void)
  540. {         
  541.   OLED_WR_Byte(0xAE,OLED_CMD);//--display off
  542.         OLED_WR_Byte(0x00,OLED_CMD);//---set low column address
  543.         OLED_WR_Byte(0x10,OLED_CMD);//---set high column address
  544.         OLED_WR_Byte(0x40,OLED_CMD);//--set start line address  
  545.         OLED_WR_Byte(0xB0,OLED_CMD);//--set page address
  546.         OLED_WR_Byte(0x81,OLED_CMD); // contract control
  547.         OLED_WR_Byte(0xFF,OLED_CMD);//--128   
  548.         OLED_WR_Byte(0xA1,OLED_CMD);//set segment remap
  549.         OLED_WR_Byte(0xA6,OLED_CMD);//--normal / reverse
  550.         OLED_WR_Byte(0xA8,OLED_CMD);//--set multiplex ratio(1 to 64)
  551.         OLED_WR_Byte(0x3F,OLED_CMD);//--1/32 duty
  552.         OLED_WR_Byte(0xC8,OLED_CMD);//Com scan direction
  553.         OLED_WR_Byte(0xD3,OLED_CMD);//-set display offset
  554.         OLED_WR_Byte(0x00,OLED_CMD);//
  555.         OLED_WR_Byte(0xD5,OLED_CMD);//set osc division
  556.         OLED_WR_Byte(0x80,OLED_CMD);//
  557.         OLED_WR_Byte(0xD8,OLED_CMD);//set area color mode off
  558.         OLED_WR_Byte(0x05,OLED_CMD);//
  559.         OLED_WR_Byte(0xD9,OLED_CMD);//Set Pre-Charge Period
  560.         OLED_WR_Byte(0xF1,OLED_CMD);//
  561.         OLED_WR_Byte(0xDA,OLED_CMD);//set com pin configuartion
  562.         OLED_WR_Byte(0x12,OLED_CMD);//
  563.         OLED_WR_Byte(0xDB,OLED_CMD);//set Vcomh
  564.         OLED_WR_Byte(0x30,OLED_CMD);//
  565.         OLED_WR_Byte(0x8D,OLED_CMD);//set charge pump enable
  566.         OLED_WR_Byte(0x14,OLED_CMD);//
  567.         OLED_WR_Byte(0xAF,OLED_CMD);//--turn on oled panel
  568.         OLED_Clear();
  569. }const uchar code F8X16[]=         
  570. {
  571.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// 0
  572.   0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,//! 1
  573.   0x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//" 2
  574.   0x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00,//# 3
  575.   0x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00,//$ 4
  576.   0xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00,//% 5
  577.   0x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10,//& 6
  578.   0x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//' 7
  579.   0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00,//( 8
  580.   0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00,//) 9
  581.   0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00,//* 10
  582.   0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00,//+ 11
  583.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00,//, 12
  584.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,//- 13
  585.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,//. 14
  586.   0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,/// 15
  587.   0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,//0 16
  588.   0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//1 17
  589.   0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,//2 18
  590.   0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,//3 19
  591.   0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,//4 20
  592.   0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,//5 21
  593.   0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,//6 22
  594.   0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,//7 23
  595.   0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,//8 24
  596.   0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,//9 25
  597.   0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,//: 26
  598.   0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x00,0x00,0x00,0x00,//; 27
  599.   0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00,//< 28
  600.   0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,//= 29
  601.   0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00,//> 30
  602.   0x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00,//? 31
  603.   0xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x24,0x23,0x14,0x0B,0x00,//@ 32
  604.   0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,//A 33
  605.   0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00,//B 34
  606.   0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,//C 35
  607.   0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00,//D 36
  608.   0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,//E 37
  609.   0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,//F 38
  610.   0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,//G 39
  611.   0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20,//H 40
  612.   0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//I 41
  613.   0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00,//J 42
  614.   0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00,//K 43
  615.   0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00,//L 44
  616.   0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,//M 45
  617.   0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,//N 46
  618.   0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,//O 47
  619.   0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00,//P 48
  620.   0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00,//Q 49
  621.   0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,//R 50
  622.   0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,//S 51
  623.   0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//T 52
  624.   0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//U 53
  625.   0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00,//V 54
  626.   0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00,//W 55
  627.   0x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20,//X 56
  628.   0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//Y 57
  629.   0x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00,//Z 58
  630.   0x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00,//[ 59
  631.   0x00,0x0C,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x38,0xC0,0x00,//\ 60
  632.   0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00,//] 61
  633.   0x00,0x00,0x04,0x02,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//^ 62
  634.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,//_ 63
  635.   0x00,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//` 64
  636.   0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20,//a 65
  637.   0x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00,//b 66
  638.   0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,//c 67
  639.   0x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20,//d 68
  640.   0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,//e 69
  641.   0x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//f 70
  642.   0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00,//g 71
  643.   0x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//h 72
  644.   0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//i 73
  645.   0x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,//j 74
  646.   0x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00,//k 75
  647.   0x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//l 76
  648.   0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,//m 77
  649.   0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//n 78
  650.   0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//o 79
  651.   0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0xFF,0xA1,0x20,0x20,0x11,0x0E,0x00,//p 80
  652.   0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x0E,0x11,0x20,0x20,0xA0,0xFF,0x80,//q 81
  653.   0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00,//r 82
  654.   0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00,//s 83
  655.   0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00,//t 84
  656.   0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20,//u 85
  657.   0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00,//v 86
  658.   0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00,//w 87
  659.   0x00,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x31,0x2E,0x0E,0x31,0x20,0x00,//x 88
  660.   0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x81,0x8E,0x70,0x18,0x06,0x01,0x00,//y 89
  661.   0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00,//z 90
  662.   0x00,0x00,0x00,0x00,0x80,0x7C,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x40,//{ 91
  663.   0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,//| 92
  664.   0x00,0x02,0x02,0x7C,0x80,0x00,0x00,0x00,0x00,0x40,0x40,0x3F,0x00,0x00,0x00,0x00,//} 93
  665.   0x00,0x06,0x01,0x01,0x02,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//~ 94
  666. };

  667. uchar code Hzk[][32]={
  668. {0x10,0x10,0xD0,0xFF,0x90,0x10,0xC8,0x54,0x52,0xD1,0x12,0x94,0x08,0xD0,0x10,0x00},
  669. {0x04,0x03,0x00,0xFF,0x00,0x01,0xFF,0x12,0x92,0xFF,0x00,0x5F,0x80,0x7F,0x00,0x00},

  670. {0x10,0x10,0xD0,0xFF,0x90,0x10,0x00,0x10,0x10,0xD0,0xFF,0xD0,0x10,0x10,0x10,0x00},
  671. {0x04,0x03,0x00,0xFF,0x00,0x11,0x08,0x04,0x03,0x00,0xFF,0x00,0x03,0x04,0x08,0x00},

  672. {0x40,0x30,0x11,0x96,0x90,0x90,0x91,0x96,0x90,0x90,0x98,0x14,0x13,0x50,0x30,0x00},
  673. {0x04,0x04,0x04,0x04,0x04,0x44,0x84,0x7E,0x06,0x05,0x04,0x04,0x04,0x04,0x04,0x00},

  674. {0x00,0xFE,0x22,0x5A,0x86,0x10,0x0C,0x24,0x24,0x25,0x26,0x24,0x24,0x14,0x0C,0x00},
  675. {0x00,0xFF,0x04,0x08,0x07,0x80,0x41,0x31,0x0F,0x01,0x01,0x3F,0x41,0x41,0x71,0x00},

  676. {0x40,0x40,0x42,0xCC,0x00,0x40,0xA0,0x9E,0x82,0x82,0x82,0x9E,0xA0,0x20,0x20,0x00},
  677. {0x00,0x00,0x00,0x3F,0x90,0x88,0x40,0x43,0x2C,0x10,0x28,0x46,0x41,0x80,0x80,0x00},

  678. {0x40,0x40,0x42,0xCC,0x00,0x40,0x40,0x40,0x40,0xFF,0x40,0x40,0x40,0x40,0x40,0x00},
  679. {0x00,0x00,0x00,0x7F,0x20,0x10,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00},

  680. {0x20,0x20,0x24,0x24,0x24,0x24,0xBF,0x64,0x24,0x34,0x28,0x24,0x22,0x20,0x20,0x00},
  681. {0x10,0x08,0x04,0x02,0xFF,0x49,0x49,0x49,0x49,0x49,0x49,0xFF,0x00,0x00,0x00,0x00},

  682. {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
  683. {0x00,0x00,0x36,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},

  684. {0x04,0x74,0x54,0x55,0x56,0x54,0x74,0x04,0x00,0xFE,0x02,0x22,0xDA,0x06,0x00,0x00},
  685. {0x10,0x11,0x51,0x91,0x7D,0x0B,0x09,0x08,0x00,0xFF,0x08,0x10,0x08,0x07,0x00,0x00},

  686. {0x08,0x88,0x88,0xFF,0x88,0xA8,0x10,0xE8,0x27,0x24,0xE4,0x34,0x2C,0xE0,0x00,0x00},
  687. {0x08,0x08,0x08,0xFF,0x08,0x08,0x00,0x3F,0x42,0x42,0x43,0x42,0x42,0x43,0x70,0x00},

  688. {0x44,0x84,0x14,0x64,0x0F,0x24,0xA4,0x24,0x24,0xE4,0x2F,0x24,0xA4,0x24,0x04,0x00},
  689. {0x08,0x09,0x78,0x04,0x03,0x04,0x04,0x05,0x04,0xFF,0x04,0x05,0x04,0x04,0x04,0x00},

  690. {0x00,0x40,0x42,0x44,0x58,0x40,0x40,0x7F,0x40,0x40,0x50,0x48,0xC6,0x00,0x00,0x00},
  691. {0x00,0x40,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0xFF,0x00,0x00,0x00},

  692. {0x08,0x08,0xE8,0x29,0x2E,0x28,0xE8,0x08,0x08,0xC8,0x0C,0x0B,0xE8,0x08,0x08,0x00},
  693. {0x00,0x00,0xFF,0x09,0x49,0x89,0x7F,0x00,0x00,0x0F,0x40,0x80,0x7F,0x00,0x00,0x00},

  694. {0x00,0x3E,0x22,0xE2,0x22,0x3E,0x00,0xFE,0x22,0x22,0x22,0x22,0x22,0xE2,0x02,0x00},
  695. {0x20,0x3F,0x20,0x1F,0x11,0x11,0x00,0x7F,0x44,0x44,0x44,0x44,0x44,0x47,0x40,0x00},

  696. {0x04,0x04,0x04,0xF4,0x84,0xD4,0xA5,0xA6,0xA4,0xD4,0x84,0xF4,0x04,0x04,0x04,0x00},
  697. {0x00,0xFE,0x02,0x02,0x12,0x3A,0x16,0x13,0x12,0x1A,0x32,0x42,0x82,0x7E,0x00,0x00},
  698. };



  699. 超声波的程序
  700. include "stc15.h"
  701. #include "ultrasonic.h"


  702. void GPIO_Init_Ult(){
  703.         P1M0=0;
  704.         P1M1=0;
  705. }

  706. void delay_ms(u16 z)
  707. {
  708.         u8 i;
  709.         while(z--)
  710.                 for(i=0;i<120;i++);
  711. }

  712. //启动模块
  713. void StartModule()                          
  714. {
  715.           TX=1;                                    
  716.                 delay_ms(20);
  717.           TX=0;
  718. }
复制代码

回复

使用道具 举报

ID:908826 发表于 2021-12-3 07:55 | 显示全部楼层
有一说一兄弟,你最好还是贴出来发个贴,你这样别人帮你看的时候还得花黑币下载
回复

使用道具 举报

ID:982171 发表于 2021-12-3 10:19 | 显示全部楼层
13205495918 发表于 2021-12-3 07:55
有一说一兄弟,你最好还是贴出来发个贴,你这样别人帮你看的时候还得花黑币下载

好的,好的
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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