标题: 单片机测脉宽程序 哪里有问题?求教 [打印本页]

作者: 742622722    时间: 2015-5-18 20:40
标题: 单片机测脉宽程序 哪里有问题?求教
#include<reg51.h>
#include<intrins.h>
#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int




sbit rs=P2^7;
sbit rw=P2^6;
sbit en=P2^5;
sbit c1=P3^2;



uchar num[]="0123456789";
        
uchar dist=0;
//延时程序

void delay(uint x)
    {
    uint q ;
    while(x--)   for(q=0;q<200;q++);
   }




   //         写命令函数

void lcd_com(uchar com)
{
         rs=0;
         P0=com;
         rw=0;
         delay(5);
         en=1;        
         en=0;
}
   //写数据函数
void lcd_data(uchar date)
{
           rs=1;
           rw=0;
           P0=date;
                delay(5);
                en=1;
                en=0;
        
}
//初始化函数
void init()
{
lcd_com(0x38);
lcd_com(0x0c);
lcd_com(0x06);
lcd_com(0x01);



}

void lcd_display(uchar temp)
{


        lcd_com(0x80+0x41);
        lcd_data('D');
        lcd_data('i');
        lcd_data('s');
        lcd_data('t');
        lcd_data('a');
        lcd_data('n');
        lcd_data('c');
        lcd_data('e');
        lcd_data(':');
        lcd_data(num[temp/100]);
        lcd_data(num[temp/10%10]);
        lcd_data(num[temp%10]);
        lcd_data('c');
        lcd_data('m');        
}


void main()
{         
TMOD=0x09;
EA=1;
while(1){
TH0=0;TL0=0;
while(c1);
TR0=1        ;

  while(!c1);
  while(c1);
  TR0=0;

           init();
          dist=256*TH0+TL0;
        
        lcd_display(dist);}         

}



作者: blueicelu    时间: 2015-5-18 22:20

作者: 电子爱好者life    时间: 2015-5-19 00:16
出现什么问题?
作者: 742622722    时间: 2015-5-19 09:42
显示不出来!
作者: 742622722    时间: 2015-5-19 09:43
电子爱好者life 发表于 2015-5-19 00:16
出现什么问题?


显示不出来!LCD1602没反应!LCD接口都正常!其他的程序都可以显示!
作者: 电子爱好者life    时间: 2015-5-19 12:07
742622722 发表于 2015-5-19 09:43
显示不出来!LCD1602没反应!LCD接口都正常!其他的程序都可以显示!

没问题啊!我都仿真出来了
作者: 742622722    时间: 2015-5-19 17:05
电子爱好者life 发表于 2015-5-19 12:07
没问题啊!我都仿真出来了

仿真出来了??我用的是实物!不是仿真!仿真和实物有点差别的!
作者: 绿源学习者    时间: 2015-5-21 22:42
大哥你这个侧脉宽的程序写好没有呢
作者: 绿源学习者    时间: 2015-5-28 10:38
我也做出来了,你把液晶初始化放在前面,还有你的while(c1),在这里已经死循环了,你要改成if的形式
作者: sibera    时间: 2017-8-7 11:25
绿源学习者 发表于 2015-5-28 10:38
我也做出来了,你把液晶初始化放在前面,还有你的while(c1),在这里已经死循环了,你要改成if的形式

求教一下,我没做出来啊,大佬能教我一下吗




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1