资源简介
包括完整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
相关资源
- 设备管理系统源码
- 华为-热设计培训教材
- FTP课程设计(服务端+客户端)
- axure 框架图模板设计.rp
- labview编程软件滤波器以及编写程序设
- 大斜度定向井钻井设计优化及应用实
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 基于蓝牙4.0的设备通信方案设计与实
- LED灯串电路图说明
- 基于xilinx FPGA的PCIe设计实战
- 基于PCIe的FPGA动态配置设计与实现
- Quartus II 15.0中仿真Altera三速以太网I
- TCL-S1916 ,1924交换机管理程序
- 压力球罐设计
- PowerBuilder*图书馆管理系统*需求分析
- 八三编码器设计 VHDL代码 简单,包附
- 高频电子线路课程设计报告收音机
- 直流稳压电源的课程设计、安装及调
- 数据库课设:图书管理系统报告
- EDA课程设计_密码锁
- 用汇编实现的学生成绩档案管理系统
- 单片机、ADC0808809设计简易数字电压表
- 基于MIPS指令集的32位CPU设计与Verilog语
- 利用DS1302和msp430进行闹钟和万年历的
- 单片机课程设计 篮球计分器
- 基于web的毕业设计开题报告
- 计算机图形学课设 画板
- 简易的电阻电容测量电路
- DAS1302蜂鸣 独立按键 闹钟设定 IIC存储
评论
共有 条评论