• 大小: 43KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-22
  • 语言: 其他
  • 标签: 52单片机  设计  

资源简介

包括完整proteus仿真。。。。。。。。

资源截图

代码片段和文件信息

#include “reg51.h“
#include “intrins.h“


sbit LCM_RS=P3^0;
sbit LCM_RW=P3^1;
sbit LCM_EN=P3^7;

#define BUSY   0x80              //常量定义
#define DATAPORT  P1
#define uchar  unsigned char
#define uint    unsigned int
#define L 50

uchar str0[16]str1[16]count;
uint speed;
unsigned long time;

void ddelay(uint);
void lcd_wait(void);
void display();
void initLCM();
void WriteCommandLCM(uchar WCLCMuchar BusyC);
void STR();
void account();


/*********延时K*1ms12.000mhz**********/

void int0_isr(void) interrupt 0         /*遥控使用外部中断0接P3.2口*/
{
    unsigned int temp;
time=count;
    TR0=0;
temp=TH0;
temp=((temp << 8) | TL0);
    TH0=0x3c;
    TL0=0xaf;
count=0;
    TR0=1;
time=time*50000+temp;
}

void time0_isr(void) interrupt 1        /*遥控使用定时计数器1 */
{
   TH0 =0x3c;
   TL0 =0xaf;
   count++;
}

void main(void)
{
    TMOD=0x01;                       /*TMOD T0选用方式1(16位定时) */
    IP|=0x01;                           /*INT0 中断优先*/
    TCON|=0x11;                         /*TCON  EX0下降沿触发启动T0*/
    IE|=0x83;  
    TH0=0x3c;
    TL0=0xaf;
  
initLCM();
    WriteCommandLCM(0x011);     //清显示屏
for(;;)
{
account();
display();
}
}

void account()
{
unsigned long a; 
if (time!=0)
{
a=L*360000000/time;
}
speed=a;
}



void STR()
{
str0[0]=‘S‘;
str0[1]=‘p‘;
str0[2]=‘e‘;
    str0[3]=‘e‘;
str0[4]=‘d‘;
str0[5]=‘ ‘;
str0[6]=(speed%100000)/10000+0x30;
str0[7]=(speed%10000)/1000+0x30;
str0[8]=(speed%1000)/100+0x30;
str0[9]=‘.‘;
str0[10]=(speed%100)/10+0x30;
str0[11]=speed%10+0x30;
str0[12]=‘k‘;
str0[13]=‘m‘;
str0[14]=‘/‘;
str0[15]=‘h‘;
}

void ddelay(uint k)
{
    uint ij;
    for(i=0;i    {
        for(j=0;j<60;j++)
         {;}
    }
}
/**********写指令到LCD子函数************/

void WriteCommandLCM(uchar WCLCMuchar BusyC)
{
    if(BusyC)lcd_wait();
DATAPORT=WCLCM;
    LCM_RS=0;                   /* 选中指令寄存器*/
    LCM_RW=0;                // 写模式
    LCM_EN=1;
_nop_();
_nop_();
_nop_();
    LCM_EN=0;

}

/**********写数据到LCD子函数************/

void WriteDataLCM(uchar WDLCM)
{
    lcd_wait( );            //检测忙信号
DATAPORT=WDLCM;
    LCM_RS=1;               /* 选中数据寄存器  */
    LCM_RW=0;            // 写模式
    LCM_EN=1;
    _nop_();
_nop_();
_nop_();
    LCM_EN=0;
}

/***********lcd内部等待函数*************/

void lcd_wait(void)
{
    DATAPORT=0xff;      //读LCD前若单片机输出低电平而读出LCD为高电平则冲突Proteus仿真会有显示逻辑黄色
LCM_EN=1;
    LCM_RS=0;
    LCM_RW=1;
    _nop_();
    _nop_();
_nop_();
    while(DATAPORT&BUSY)
{  LCM_EN=0;
   _nop_();
   _nop_();
   LCM_EN=1;
   _nop_();
   _nop_();
}
    LCM_EN=0;

}

/**********LCD初始化子函数***********/
void initLCM( )
{
DATAPORT=0;
ddelay(15);
WriteCommandLCM(0x380);    //三次显示模式设置,不检测忙信号
    ddelay(5);
    WriteCommandLCM(0x380);
    ddelay(5);
    WriteCommandLCM(0x380);
    ddelay(5);

    WriteCommandLCM(0x381);    //8bit数据

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      90307  2009-03-19 14:48  项目30 基于AT89S52单片机LCD数字测速仪的设计\Last Loaded 测速仪.DBK

     文件       3630  2007-04-25 10:41  项目30 基于AT89S52单片机LCD数字测速仪的设计\Speed.hex

     文件       2146  2009-03-25 00:22  项目30 基于AT89S52单片机LCD数字测速仪的设计\数字测速仪

     文件       3578  2009-03-25 00:22  项目30 基于AT89S52单片机LCD数字测速仪的设计\数字测速仪.hex

     文件         78  2009-03-25 00:22  项目30 基于AT89S52单片机LCD数字测速仪的设计\数字测速仪.lnp

     文件       6004  2009-03-25 00:22  项目30 基于AT89S52单片机LCD数字测速仪的设计\数字测速仪.M51

     文件       1067  2009-03-25 00:22  项目30 基于AT89S52单片机LCD数字测速仪的设计\数字测速仪.Opt

     文件        421  2009-03-25 00:22  项目30 基于AT89S52单片机LCD数字测速仪的设计\数字测速仪.plg

     文件       2062  2009-03-25 00:22  项目30 基于AT89S52单片机LCD数字测速仪的设计\数字测速仪.Uv2

     文件          0  2009-03-25 00:21  项目30 基于AT89S52单片机LCD数字测速仪的设计\数字测速仪_Uv2.Bak

     文件      90394  2009-03-19 14:56  项目30 基于AT89S52单片机LCD数字测速仪的设计\测速仪.DSN

     文件        742  2010-05-15 10:22  项目30 基于AT89S52单片机LCD数字测速仪的设计\测速仪.PWI

     文件       4109  2009-03-19 14:46  项目30 基于AT89S52单片机LCD数字测速仪的设计\项目30 基于单片机LCD数字测速仪的设计.c

     文件        781  2009-03-25 00:22  项目30 基于AT89S52单片机LCD数字测速仪的设计\项目30 基于单片机LCD数字测速仪的设计.LST

     文件       3907  2009-03-25 00:22  项目30 基于AT89S52单片机LCD数字测速仪的设计\项目30 基于单片机LCD数字测速仪的设计.OBJ

     目录          0  2011-06-23 19:27  项目30 基于AT89S52单片机LCD数字测速仪的设计

----------- ---------  ---------- -----  ----

               209226                    16


评论

共有 条评论