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

2019-08-30 19:27

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

}

Couter++; //计算速度 Couter1++; //计算路程

DS18B20模块程序: #include\#include\#include\#include\ unsigned 组显示数字

unsigned char tltemp;

sbit DQ=P2^2; //DS18B20数据管脚

bit Init_DS18B20(void) //函数功能:将DS18B20传感器初始化,读取应答信号 出口参数:flag

{ }

unsigned char ReadOneChar(void)

38

char code

digit[10]={'0','1','2','3','4','5','6','7','8','9'}; //定义字符数

//临时暂存变量

unsigned char time;

bit flag; DQ = 1;

for(time=0;time<2;time++) ; DQ = 0;

for(time=0;time<200;time++) ; DQ = 1;

for(time=0;time<10;time++) ; flag=DQ; for(time=0;time<200;time++) ; return (flag);

//函数功能:从DS18B20读取一个

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

字节数据 出口参数:dat

{

unsigned char i=0; unsigned char dat; for (i=0;i<8;i++) {

DQ =1; _nop_();

DQ = 0; _nop_(); DQ = 1;

for(time=0;time<2;time++) ; dat>>=1; if(DQ==1) dat|=0x80; else dat|=0x00;

for(time=0;time<8;time++) ; } return(dat);

}

void WriteOneChar(unsigned char dat) 一个字节数据 入口参数:dat

{ unsigned char i=0; for (i=0; i<8; i++) { DQ =1; _nop_(); DQ=0; DQ=dat&0x01; for(time=0;time<10;time++)

DQ=1;

39

函数功能:向

DS18B20写入 //

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

}

for(time=0;time<1;time++); dat>>=1;

}

for(time=0;time<4;time++) ;

// 函数功能:做好读温度的准备

void ReadyReadTemp(void) {

Init_DS18B20(); }

void display_temp1(unsigned char x) 分 入口参数:x

{ }

void Display_DS18B20(void) //函数功能:温度显示 {

unsigned int TL; unsigned int TH; unsigned int TN;

40

WriteOneChar(0xCC); WriteOneChar(0x44); Init_DS18B20(); WriteOneChar(0xCC); WriteOneChar(0xBE);

delay(200);

//函数功能:显示温度的整数部

unsigned char shi,ge; shi=x/10;

ge=x; Write_Address(2,1); Write_Data(digit[ge]); delay(1);

Write_Data(digit[shi]);

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

}

delay(1);

ReadyReadTemp(); TH=ReadOneChar(); TN=TH*16+TL/16;

display_temp1(TN); delay(1);

{

TL=ReadOneChar();

}

DS1302时钟模块程序: #include\#include\#include\#include\

sbit SCLK=P2^3; //位定义1302芯片的接口,时钟输出端口 sbit DATA=P2^4; //位定义1302芯片的接口,数据输出端定 sbit RST=P2^5; //位定义1302芯片的接口,复位端口

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

void Write1302(unsigned char dat) //函数功能:向1302写一个字节数据 低位在前,高位在后 Eg;0000 0001 写入后变成 1000 0000

{

unsigned char i; SCLK=0; _nop_(); _nop_();

for(i=0;i<8;i++) {

DATA=dat&0x01;

41

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

}

_nop_(); _nop_(); SCLK=1; _nop_(); _nop_(); SCLK=0; dat>>=1;

}

void WriteSet1302(unsigned char Cmd,unsigned char dat) //函数功能:根据命令字,向1302写一个字节数据 入口参数:Cmd,储存命令字;dat,储存待写的数据

{

RST=0; SCLK=0; }

unsigned char Read1302(void) //函数功能:从1302读一个字节数据 {

unsigned char i,dat; _nop_(); _nop_(); for(i=0;i<8;i++)

{

dat>>=1;

42

RST=1; _nop_();

_nop_(); Write1302(Cmd); Write1302(dat); SCLK=1; RST=0;


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

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

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

马上注册会员

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