标题:
51单片机测速系统仿真_LCD1602显示
[打印本页]
作者:
51黑电子迷
时间:
2017-2-19 01:01
标题:
51单片机测速系统仿真_LCD1602显示
51单片机测速系统仿真原理图如下:
0.png
(26.01 KB, 下载次数: 88)
下载附件
2017-2-19 01:00 上传
源程序:
#include "include.h" //包含头文件
sbit BEEP = P2^4;
sbit LED = P2^5;
sbit OE = P3^3;
sbit EOC = P3^2;
sbit ST = P3^1;
sbit CLK = P3^0;
u16 globalADCValue = 0;//存放ADC的值
void TimeInitialize(void);
void main(void)
{
u16 MSpeed = 0;//显示速度的大小
u8 MDisplayBuff[5];//用来显示的BUFF
lcd1602_initialize();
TimeInitialize();//初始化定时器
lcd1602_writestring("SPEED system",0,0);
lcd1602_writestring("speed:1000rpm",1,0);
while(1)
{
ST = 0;
ST = 1;
ST = 0;
while(EOC == 0);
OE = 1;
globalADCValue = P1;
OE = 0;
MSpeed = (u16)(globalADCValue * 1000.0 / 255);//换算成速度
if(MSpeed > 800)//大于800rpm就蜂鸣器响
{
BEEP = 0;//蜂鸣器响
LED = 0;//蜂鸣器响
}
else
{
BEEP = 1;//蜂鸣器不响
LED = 1;//蜂鸣器不响
}
MDisplayBuff[0] = MSpeed / 1000 + 0x30;
MDisplayBuff[1] = MSpeed % 1000 / 100 + 0x30;
MDisplayBuff[2] = MSpeed % 100 /10 + 0x30;
MDisplayBuff[3] = MSpeed % 10 + 0x30;
MDisplayBuff[4] = 0;
lcd1602_writestring(MDisplayBuff,1,6);
//ADC读取
}
}
void TimeInitialize(void)//??????
{
TMOD = 0x02;
TH0 = 0x9c;
TL0 = 0x9c;
IE = 0x82;
TR0 = 1;
}
void Timer0_INT() interrupt 1
{
CLK =! CLK;
}
复制代码
0.png
(63.49 KB, 下载次数: 66)
下载附件
2017-2-19 01:01 上传
作者:
刘德华二号
时间:
2018-5-16 09:01
怎么没看到附件啊
作者:
skt5550
时间:
2018-12-6 18:27
程序也存在错误
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1