标题:
自行车测速仿真 PROTEUS
[打印本页]
作者:
daoyou
时间:
2013-8-7 02:44
标题:
自行车测速仿真 PROTEUS
希望对大家有帮助!下记住要顶呀!
0.png
(17.81 KB, 下载次数: 224)
下载附件
2016-4-18 03:17 上传
1.png
(40.97 KB, 下载次数: 217)
下载附件
2016-4-18 03:17 上传
自行车测速仿真.rar
(48.8 KB, 下载次数: 512)
2013-8-7 02:44 上传
点击文件名下载附件
下载积分: 黑币 -5
源码:
#include "d:\c51\reg51.h"
#include "d:\c51\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 WCLCM,uchar BusyC);
void STR();
void account();
/*********延时K*1ms,12.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(0x01,1); //清显示屏
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 i,j;
for(i=0;i<k;i++)
{
for(j=0;j<60;j++)
{;}
}
}
/**********写指令到LCD子函数************/
void WriteCommandLCM(uchar WCLCM,uchar 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(0x38,0); //三次显示模式设置,不检测忙信号
ddelay(5);
WriteCommandLCM(0x38,0);
ddelay(5);
WriteCommandLCM(0x38,0);
ddelay(5);
WriteCommandLCM(0x38,1); //8bit数据传送,2行显示,5*7字型,检测忙信号
WriteCommandLCM(0x08,1); //关闭显示,检测忙信号
WriteCommandLCM(0x01,1); //清屏,检测忙信号
WriteCommandLCM(0x06,1); //显示光标右移设置,检测忙信号
WriteCommandLCM(0x0c,1); //显示屏打开,光标不显示,不闪烁,检测忙信号
}
/****显示指定坐标的一个字符子函数****/
void DisplayOneChar(uchar X,uchar Y,uchar DData)
{
Y&=1;
X&=15;
if(Y)X|=0x40; //若y为1(显示第二行),地址码+0X40
X|=0x80; //指令码为地址码+0X80
WriteCommandLCM(X,0);
WriteDataLCM(DData);
}
/*******显示指定坐标的一串字符子函数*****/
void DisplayListChar(uchar X,uchar Y,uchar *DData)
{
uchar ListLength=0;
Y&=0x01;
X&=0x0f;
while(X<16)
{
DisplayOneChar(X,Y,DData[ListLength]);
ListLength++;
X++;
}
}
void display()
{
STR();
DisplayListChar(0,0,str0);
DisplayListChar(0,1,str1);
}
复制代码
作者:
rsbook
时间:
2014-4-3 17:09
顶一下
作者:
yixiaow810c
时间:
2014-4-4 14:11
赞一下!
作者:
walt740
时间:
2014-4-7 16:22
不错不错
作者:
牧凉
时间:
2014-4-23 01:33
不错,学习学习
作者:
墨竹雅客
时间:
2014-5-21 14:26
看看有木有用
作者:
LDLLYFX
时间:
2014-5-21 19:07
没有M币啦 想下载啊
作者:
junqianggo
时间:
2014-5-21 21:51
支持····
作者:
cjhk
时间:
2014-6-3 13:33
很给李 谢谢楼主
作者:
woahaookc
时间:
2014-6-6 23:28
哈哈哈嘎哈
作者:
154860956
时间:
2014-8-6 02:41
作者:
周安松
时间:
2014-9-13 08:02
谢谢楼主分享
作者:
T29
时间:
2014-9-14 02:10
很好 学习 谢谢
作者:
许你晴天柱
时间:
2014-9-14 18:00
赞一个
作者:
郭良
时间:
2014-10-23 19:45
不错不错
作者:
hjlost
时间:
2014-10-24 13:59
掘墓高手,专挖古墓,一挖一个坑,坑坑见墓。。
作者:
MOKER
时间:
2014-11-12 21:41
希望有一天我也可以这样帮到大家,谢谢啦
作者:
zgs660429
时间:
2014-11-18 20:35
看看好用不
作者:
花晨少
时间:
2014-11-20 15:29
看看是不是有用
作者:
zqs42160142
时间:
2014-11-22 16:08
啥玩样
作者:
lijinglei234420
时间:
2014-11-23 21:09
给力啊楼主楼主加油
作者:
雪中梅花
时间:
2014-11-24 16:00
谢谢楼主奉献。
作者:
blacklcj
时间:
2014-12-23 14:38
下载来看看
作者:
blacklcj
时间:
2014-12-23 14:38
没有币了。。
作者:
中奥ol
时间:
2015-1-4 18:59
看一下罗
作者:
hthometown
时间:
2015-1-19 16:21
不错不错
作者:
hthometown
时间:
2015-1-19 16:21
顶一下
作者:
钓鱼臺
时间:
2015-3-15 22:21
支持一下再看
作者:
hlywhp
时间:
2015-4-28 16:57
顶一下
作者:
榆林上校
时间:
2015-5-4 16:26
顶一下!
作者:
小小孩子
时间:
2015-5-5 11:23
感谢楼主分享!!!
作者:
fsnhjjj
时间:
2015-5-17 22:08
谢谢楼主分享 先码了
作者:
GG-路人乙
时间:
2015-5-17 23:10
新手多多指教
作者:
txyueyu
时间:
2015-5-30 20:33
需要啊
作者:
cuiyulan
时间:
2015-6-8 13:26
非常感谢,
作者:
i6na
时间:
2015-6-10 00:32
谢谢了,正好学习下
作者:
liang11
时间:
2015-6-11 21:08
不错哦、,,,,
作者:
cccao
时间:
2015-6-16 21:36
顶一下
作者:
小马哥00
时间:
2015-6-17 22:02
我是新手,想看看,先谢过。
作者:
小马哥00
时间:
2015-6-19 12:44
看看,先谢过了。
作者:
hahaha123
时间:
2015-6-27 19:19
蛮有用的
作者:
汤博
时间:
2015-10-13 12:49
先谢谢了,下载望望
作者:
c51流浪者
时间:
2015-10-16 13:43
感谢朋友分享
作者:
ludaijin
时间:
2015-10-20 11:21
下了,感觉不是想要的
作者:
Jerry619
时间:
2016-1-7 21:06
赚分路过
作者:
夏目什么账
时间:
2016-3-5 16:20
多谢楼主,先码了再看看!
作者:
purple唯爱紫
时间:
2016-3-18 17:22
运行了,怎么测的?
作者:
爱打打分
时间:
2016-3-22 14:38
很好,楼主棒棒的
作者:
爱打打分
时间:
2016-3-22 14:38
感谢楼主分享哈哈哈
作者:
电子技术1
时间:
2016-3-30 13:13
多谢楼主奉献。
作者:
lp51hei
时间:
2016-4-3 15:10
赞!!!!!!!!!
作者:
tracy121
时间:
2016-4-4 22:18
请问这是用什么软件仿真的?
作者:
Melody756
时间:
2016-4-19 10:57
值得拥有,感谢楼主
作者:
新手是我
时间:
2016-4-24 20:30
顶咯 再加赞
作者:
zhaorong
时间:
2016-7-4 23:26
顶一个
作者:
CAODEYUN
时间:
2016-9-20 21:57
找了好久了
作者:
yjs
时间:
2016-9-27 08:15
发现好多东西都有用
作者:
mllwj
时间:
2017-3-6 14:04
学习了!感谢楼主!!
作者:
tangree
时间:
2017-6-8 21:06
谢谢分享
作者:
黑电子121
时间:
2017-6-15 16:11
楼主
下面那个蓝色的是啥呀
作者:
tieq1952
时间:
2017-12-2 18:58
赞一下!下载了。谢谢!
作者:
yudubu
时间:
2017-12-23 14:42
谢谢楼主分享
作者:
tieq1952
时间:
2018-1-3 15:24
新买一辆电动车,只能显示电量,没有速度、里程等显示,准备自己DIY一个。这个可以作个参考。
作者:
宫商角徵羽smile
时间:
2018-5-3 09:51
楼主,你能说明一下 下方蓝色的是怎么出来的吗?我是新手,有点不懂
作者:
jjjjouy
时间:
2018-7-20 12:24
赞赞赞
作者:
1979759100Ls
时间:
2019-4-17 20:54
下载以后液晶没变化则呢么办
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1