基于单片机的自行车测速系统设计与实现论文 - 图文(8)

2019-08-30 19:27

桂林电子科技大学毕业设计(论文)报告用纸 第33 页

参考文献:

[1] 月影狂风. 自行车[EB/OL].

http://baike.http://www.wodefanwen.com//view/6328.htm?fr=aladdin 2014-5-1 [2]汪道辉. 单片机系统设计与实践[M]. 北京: 电子工业出版社, 2006,5

[3]V. Yu. Teplov,A. V. Anisimov. Thermostatting System Using a Single-Chip Microcomputer a nd Thermoelectric Modules Based on the Peltier Effect[J] ,2002

[4] Meehan Joanne,Muir Lindsey.SCM in Merseyside SMEs:Benefits and barriers[J].. TQM [5]sumnerss1989. STC89C52RC用户使用手册[EB/OL].

http://wenku.http://www.wodefanwen.com//view/6edcbad0195f312b3169a5c3.html 2014-5-7 [6] phjryp. 测速仪[EB/OL].

http://www.doc88.com/p-291182781113.html 2014-5-7

[7]黄明强.DS1302在单片机系统中的应用[N].保定师范专科学校学报.2004 [8] 天山晴雪wyj.DS18B20工作原理[EB/OL].

http://wenku.http://www.wodefanwen.com//view/0dd2f163ddccda38376baff0.html 2014-5-7 [9]曹海平.基于单片机和DS18B20的分布式多点温度检测系统的设计[D].自动化技术与应用.27(11):90-93 2008

[10]李金群.基于51单片机的12864液晶图文显示研究[J].机电信息.2010.36

[11]陈朝大.李杏彩.单片机原理与应用—基于Keil C和虚拟仿真技术[M].北京.化工工业出版社.2013.23-35

33

桂林电子科技大学毕业设计(论文)报告用纸 第34 页

附 录

主设计程序:

//自行车测速驱动 C51版本 //Programmer:Steve Lee //coyp @Lee

//Caution: Do not privately modify the program, //pleaserespect the programmers sweat, thank you //2014.3.11

//***************************************************** #include\#include\#include\#include\#include\

sbit Display = P1^3; //显示路程控制端

sbit Clear = P1^5; //清除屏幕显示的路程信息 sbit Count = P3^2; //外部中断管脚,计脉冲数

unsigned int num=0,Speed=0;

unsigned char bai=0,shi=0,ge=0,i=0,j=0,k=0,l=0,m=0; unsigned int num;

//定时器计数

long Couter=0,Couter1=0,S=0; // Couter脉冲数用于计算速度,Couter1脉冲数用于计算路程

bit flag=0,flag1=0;

void main() //主函数 {

TMOD = 0x01; //设置定时器0工作模式1 TH0 = (65536-45872)/256; //定时器赋初值50ms TL0 = (65536-45872)%6; EA = 1; //开启总中断

34

//标志位

unsigned char code d[10]={\定义字符数组显示数字

桂林电子科技大学毕业设计(论文)报告用纸 第35 页

ET0 = 1; //打开定时器0中断 EX0 = 1; //打开外部中0 TR0 = 1; //转动启定时器 IT0 = 1; //边沿触发 Lcd_Int(); //液晶初始化 Init_DS1302(); while(1) {

Display_DS18B20(); //显示温度 Display_Data(); //显示时间

//DS1302初始化

if(Display == 0) //路程显示与否标志位控制

{

delay(1); if(Display == 0)

{

flag1 = 1;

while(!Display); }

} {

if(Clear == 0)

delay(1);

//清除路程显示信息

if(Clear == 0)

{

Write_Address(3,3); Write_Data(d[0]); Write_Data('.'); Write_Data(d[0]); Write_Data(d[0]); Write_Data(d[0]);

while(!Clear);

35

桂林电子科技大学毕业设计(论文)报告用纸 第36 页

}

} {

if(flag) //500ms显示一次速度

flag = 0; TR0 = 0; EX0 = 0; Couter = 0;

//关闭定时器0 //关闭外部中断

Speed = Couter/2; //一个脉冲等于25cm

//清零

bai=Speed/100; shi=Speed0/10; ge=Speed0; Write_Address(2,5); Write_Data(d[bai]); Write_Data(d[shi]); Write_Data(d[ge]); TR0=1;

//打开定时器0

//打开外部中断

EX0 = 1;

}

if((Speed == 0)&(flag1 == 1)) //路程显示 {

if((Couter1/4)>9999)

{

Write_Address(3,3); Write_Data('e'); Write_Data('r'); Write_Data('r');

Write_Data('o'); Write_Data('r'); Couter1 = 0; flag1=0;

} else

{

36

桂林电子科技大学毕业设计(论文)报告用纸 第37 页

}

}

i = Couter1/4/1000;

j = Couter1/400/100;

l = Couter1/4000; Write_Address(3,3); Write_Data(d[i]); Write_Data('.'); Write_Data(d[j]); Write_Data(d[k]); Write_Data(d[l]); Couter1 = 0; flag1=0; }

k = Couter1/4000/10;

}

void timer0(void) interrupt 1 //定时器0中断服务程序 { }

void int0(void) interrupt 0 //外部中断0服务程序 {

37

TH0=(65536-50000)/256; TL0=(65536-50000)%6; num++; if(num==10) {

EX0 = 0; num = 0; TR0 = 0; flag =1;

//清零计数

//关闭定时器0 //打开标志位

//定时500ms 显示一次速度

}


基于单片机的自行车测速系统设计与实现论文 - 图文(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:欧陆591C系列数字直流式调速器的扩容 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: