自行车测速仪的设计毕业论文


    XX学邮电信息工程学院
    毕业设计(文)

    行车测速仪设计
    Design of the Bicycle Speedometer
    学生姓名 *********
    学 号 **********
    专业班级 *********
    指导教师 **********
    2013年X月

    作者声明
    声明呈交文导师指导进行研究工作取研究成果文中特加标注方外没剽窃抄袭造假等违反学术道德学术规范行没侵犯组织科研成果专利工作志研究做贡献均已文中作明确说明表示谢意毕业设计(文)引起法律结果完全承担
    毕业设计(文)成果XX学邮电信息工程学院
    特声明

    作者专业:
    作者学号:
    作者签名:
    年 月 日

    着居民生活水断提高行车仅仅普通运输代步工具成娱乐休闲锻炼首选行车测速仪够满足基需求清楚知道前速度里程时间温度等物理量文阐述种基霍尔元件行车测速仪设计
    文STC89C54RD+单片机核心霍尔传感器测转数实现行车里程速度时间温度测量统计行车里程速度LCD实时显示文章详细介绍行车测速仪硬件电路软件设计硬件部分利霍尔元件行车转圈脉数传入单片机系统然单片机系统信号处理送LCD显示软件部分C语言进行编程采模块化设计思想该系统硬件电路简单子程序具通性已达设计目标
    关键词:速度温度霍尔元件单片机








    目 录
    第1章 绪 1
    11 国外行车测速仪发展现状趋势 1
    12 文研究容 2
    第2章 行车测速仪总体设计方案 4
    21 单片机选型 4
    211 单片机介绍 4
    212 单片机性较 4
    213 终方案 5
    22 测速传感器选型 5
    221 测速传感器介绍 5
    222 测速传感器较 6
    223 终结 6
    23 温度传感器选型 7
    231 温度传感器介绍 7
    232 温度传感器性较 8
    233 终方案 9
    24 显示器选型 9
    241 显示器介绍 10
    242 显示器性 10
    243 终方案 11
    25 时钟芯片选型 12
    第3章 硬件设计 13
    31 单片机外围电路 13
    311 单片机介绍 13
    312 单片机外围电路图 15
    32 速度模块设计 15
    321 霍尔元件介绍 16
    322 霍尔传感器硬件电路图 17
    33 温度模块设计 18
    331 温度传感器介绍 18
    332 DS18B20硬件电路图 21
    34 时钟模块设计 22
    341时钟芯片介绍 22
    342 DS1302硬件电路图 25
    35 显示模块设计 25
    351 LCD芯片介绍 26
    352 LCD硬件电路图 27
    第4章 软件设计 28
    41 程序设计 28
    42 计算速度里程程序设计 29
    43 温度显示程序设计 30
    44 时钟芯片程序设计 30
    45 LCD1602软件设计 32
    451 LCD1602时序介绍 32
    452 LCD1602具体软件设计 33
    第5章 测试 35
    51 ProteusKeil软件简介 35
    511 Proteus软件 35
    512 Keil软件 35
    52 应Keil软件进行程序调试 36
    53 Proteus软件仿真 36
    54 硬件软件联合调试 37
    541 联调步骤 37
    542 硬件静态调试 38
    第6章 结展 40
    致谢 41
    参考文献 42
    附录1 PROTREUS仿真图 43
    附录2 源程序 44











    第1章 绪
    行车发明现已两百年历史两百年间类断尝试研发程中玩具式木马车转换日式新颖休闲运动行车行车发展目早交通代步工具转换成休闲娱乐运动途着居民生活水断提高行车仅仅普通运输代步工具成娱乐休闲锻炼首选希行车功更强带更方便行车里程速度表作行车辅助工具正着求迅速发展功逐渐单里程显示发展速度时间显示甚具测量骑车心跳显示骑车热量消耗等功设计采STC89C54RD+系列单片机设计种体积操作简单便携式行车速度里程表动显示前行车行走距离运行速度
    11 国外行车测速仪发展现状趋势
    着微型计算机性提高价格降单片机测量电机转速技术已成熟种技术目前工业生产方面测速装置生活中少少欲提高测量精度必须先测出准确转速原先控硅调速电路中采测速发电机方式已满足求必须采数字测速方法转速测量方法根脉计数实现转速测量方法M法(测频法)T法(测周期法)MPT法(频率周期法)
    需采霍尔传感器应领域汽车电机手机电脑已采该器件市场未年增长较稳定新应市场足述市场相霍尔传感器全球总市场份额较稳定年增长率基保持510间种应电机部件节气门位置检测种阀体位置检测者电磁感应位置会霍尔传感器中国市场中国外厂商降低成陆续零部件中国进行设计生产进步提升中国市场霍尔传感器量着电子消费市场应越越广控制功耗成厂商面挑战面生产测试技术方面挑战
    国外现已生产销售类似行车测速仪里程表简单产品功较单单单测速里程功然复杂产品测速里程功外集成GPS全球定位单次行车里程均速度时钟行车时间车轮转数未发展趋势加入MP3短信收发新闻播报通讯功等行车测速仪更加性化现代化生活化相信未测速仪会受更青睐成类社会生活中必需品
    12 文研究容
    课题利霍尔元件单片机等部件设计LCD液晶显示器实时显示里程速度行车速度里程表文介绍行车速度里程表设计思想电路原理方案证元件选择等容整体分硬件部分设计软件部分设计
    文首先扼该课题务进行方案证包括硬件方案软件方案设计继具体介绍行车速度里程表硬件设计包括传感器选择单片机选择显示电路设计然阐述该行车速度里程表软件设计包括数处理子程序设计显示子程序设计针仿真程遇问题进行具体说明分析次设计进行系统总结
    具体硬件电路包括STC89C54RD+单片机外围电路LCD显示电路等软件设计包括:芯片初始化程序定时中断采样子程序显示子程序等软件采汇编语言编写软件设计思想顶模块化设计子模块逐设计控制系统方案设计框图图11示
    速度传感器


    单片机

    显示器



    时钟芯片

    温度传感器


    图11系统框图


















    第2章 行车测速仪总体设计方案
    行车测速仪基单片机测速系统该系统包括转速测量模块温度测试模块显示模块电源模块
    21 单片机选型
    单片机行车测速仪核心部分决定项设计指标关键素单片机着优势缺点通分析证选取相该设计讲相较优方案
    211 单片机介绍
    AT89C52美国ATMEL公司生产低电压高性CMOS 8位单片机片置通8位中央处理器(CPU)Flash存储单元功强AT89C52单片机适合许较复杂控制场合应
    STC89C54RD+深圳宏晶科技生产低功耗高性价单片机采8051核部分单片机兼容功普通单片机强存储器(包括数存储器程序存储器)容量普通51 单片机更程序存储器采flash存储器方便擦写程序时带8位AD转换器采ISP线编程配备专门程序载软件直接通串口程序载单片机flash程序存储区掉电会丢失途非常广泛
    212 单片机性较
    AT89C52片含8K Bytes反复擦写读程序存储器(EPROM)256 字节机存取数存储器(RAM)器件采ATMEL公司高密度非易失性存储技术生产标准MCS51指令系统8052产品引脚兼容片置通8位中央处理器(CPU)Flash存储单元功强AT89C52单片机适合许较复杂控制场合应
    STC89C54RD+具16K系统编程Flash 存储器1280B机存取数存储器片程序存储器含16KBFlash程序存储器片数存储器含1280字节RAM具3编程定时器具32根编程IO口线串行口具全双工编程串行通信口中断系统具8中断源4级优先权中断结构具数指针DPTR低功耗工作模式空闲模式掉电模式具编程3级程序锁定位STC89C54RD+工作电源电压典型值5VSTC89C54RD+工作频率0~80MHz
    213 终方案
    兼容性讲两种单片机兼容51单片机存储容量讲STC89C54RD+具更存储容量存储更数换句话说行车行驶更远距离价格功耗说STC89C54RD+具低功耗正满足现低碳理念STC89C54RD+国产AT89C52美国进口STC89C54RD+更加便宜选STC89C54RD+降低系统成文选STC89C54RD+单片机作系统控制核心
    22 测速传感器选型
    测速传感器行车重硬件部分测物运行速度进行测量转化成输出信号传感器测速传感器包括测量线速度传感器测量转速度传感器测量转速方式常见:霍尔传感器(例提种)光电传感器(分反射式透射式)旋转编码器等等
    221 测速传感器介绍
    LG916传感器投光部受光部放器组成体构造传感器发出光(红外线)旋转轴产生反射光检测反射光非接触式转速传感器
    霍尔传感器44E系列Allegro MicroSystems公司生产宽温开关型霍尔效应传感器工作温度范围达40℃~150℃电压调整电路反相电源保护电路霍尔元件温度补偿电路微信号放器施密特触发器OC门输出极构成通拉电阻输出接入CMOS逻辑电路测量动化计算机信息技术等领域广泛应
    222 测速传感器较
    LG916传感器传感器发出光(红外线)旋转轴产生反射光检测反射光非接触式转速传感器旋转轴通常贴反射标签LG916尖端部玻璃纤维束玻璃纤维束发出红外线光时接受反射回光传感器装型放器波形整形矩形波输出信号处理输出计数器脉计数装置进行转速测量测量距离20mm (12mm见方专反射标签)
    霍尔效应原理块永久磁钢固定电机转轴转盘边转盘侧轴旋转磁钢着步旋转转盘方安装霍尔器件转盘轴旋转时受磁钢产生磁场影响霍尔器件输出脉信号频率转速成正脉信号周期电机转速式11关系:
    VN×L (11)
    式中:V行车车速N车轮单位时间脉数L车轮周长根式计算出行车前速度
    223 终结
    综述LG916传感器玻璃纤维束发出红外线光玻璃纤维束较脆容易坏便长期测量距离20mm (12mm见方专反射标签)测量距离太短加反射标签面积较易脱落利固定长期霍尔器件作种转速测量系统传感器结磁场敏感结构简单体积频率响应宽输出电压变化结构牢固重量轻寿命长安装方便等优点文采霍尔传感器检测脉信号
    23 温度传感器选型
    温度传感器行车测速仪体格拓展功重硬件温度传感器利物质种物理性质温度变化规律温度转换电量传感器品种繁工业应中温度传感器分类方式方法种
    231 温度传感器介绍
    DS18B20美国DALLAS半导体公司继DS1820新推出种改进型智温度传感器传统热敏电阻相够直接读出测温度根实际求通简单编程实现9~12位数字值读数方式DS18B20数字温度传感器接线方便封装成应种场合道式螺纹式磁铁吸附式锈钢封装式型号种样LTM8877LTM8874等等根应场合改变外观封装DS18B20电缆沟测温高炉水循环测温锅炉测温机房测温农业棚测温洁净室测温弹药库测温等种非极限温度场合耐磨耐碰体积方便封装形式样适种狭空间设备数字测温控制领域
    AD590AD公司利PN结正电流温度关系制成电流输出型两端温度传感器适150°C目前采传统电气温度传感器温度检测应低成单芯片集成电路需支持电路特点成许温度测量应种吸引力备选方案应AD590时需线性化电路精密电压放器电阻测量电路冷结补偿温度测量外分立器件温度补偿校正绝温度成例偏置流速测量液位检测风速测定等AD590裸片形式提供适合受保护环境混合电路快速温度测量
    232 温度传感器性较
    DS18B20分9375 ms750 ms完成9位12位数字量DS18B20读出信息写入DS18B20信息仅需根口线(单线接口)读写温度变换功率源数总线总线身挂接DS18B20供电需额外电源DS18B20系统结构更趋简单性更高测温精度转换时间传输距离分辨率等方面较DS1820改进户带更方便更令满意效果
    特点:
    (1)独特单线接口仅需端口引脚进行通信
    (2)DS18B20联惟总线实现点组网功
    (3)通数线供电电压范围30~55V
    (4)测温范围-55℃~+125℃固测温误差(注意分辨率里前错误)05℃
    (5)零机功耗
    (6)报警搜索命令识标志超程序限定温度(温度报警条件)器件
    (7)负电压特性电源极性接反时温度计会发热烧毁正常工作
    AD5904V30 V电源电压范围该器件充高阻抗恒流调节器调节系数1µAK片薄膜电阻激光调整校准器件该器件2982K (25°C)时输出2982 µA电流适150°C目前采传统电气温度传感器温度检测应低成单芯片集成电路需支持电路特点成许温度测量应种吸引力备选方案应AD590时需线性化电路精密电压放器电阻测量电路冷结补偿温度测量外分立器件温度补偿校正绝温度成例偏置流速测量液位检测风速测定等AD590裸片形式提供适合受保护环境混合电路快速温度测量AD590具特征:
    (1)流器件电流(μA) 等器件处环境热力学温度(开尔文) 度数式12:
    IrT1 (12)
    式中Ir—流器件(AD590) 电流单位μAT—热力学温度单位K
    (2)AD590测温范围 55℃~+150℃
    (3)AD590电源电压范围4~30 V承受44 V正电压20 V反电压器件反接会损坏
    (4)输出电阻710 mΩ
    (5)精度高AD590 55℃~+150℃范围非线性误差仅±03℃
    233 终方案
    电路构造讲AD590需模拟转数字电路电路繁DS18B20需元件电路简单测量精度测温点数说AD590测量精确度较差测温点数量少DS18B20采单总线构造时连接温点信号线长度讲AD590线阻求适合长距离传输DS18B20信号线距离远适合长距离传输成角度说DS18B20AD590便宜DS18B20减少成然DS18B20温度范围-55℃~+125℃间测量行车行驶时环境温度已足够总体说DS18B20优点弥补AD590缺点文采DS18B20温度传感器设计测温芯片
    24 显示器选型
    显示器行车测速仪重组成部分没显示器系统测出参数法显示供者知显示器性行显示位数够法达测量精度显示器选取关重
    241 显示器介绍
    深圳市晶美光电科技限公司家集研发设计生产销售体专业研制生产数码LED数码led数码实际七发光组成8字形构成加数点8段分字母abcdefgdp表示数码特定段加电压特定段会发亮形成眼睛字样楼体墙面广告招牌高档DISCO酒吧夜总会会门头广告牌等特适合应广告牌背景立交桥河湖护栏建筑物轮廓等型动感光带中产生彩虹般绚丽效果 护栏装饰建筑物轮廓起突出美彩亮化建筑物效果
    1602液晶1602字符型液晶种专门显示字母数字符号等点阵型液晶模块干5X7者5X11等点阵字符位组成点阵字符位显示字符位间点距间隔行间间隔起字符间距行间距作正显示图形(定义CGRAM显示效果)1602LCD指显示容16X2显示两行行16字符液晶模块(显示字符数字)市面字符液晶数基HD44780液晶芯片控制原理完全相基HD44780写控制程序方便应市面部分字符型液晶
    242 显示器性
    LED数码般亮超亮等分05寸1寸等尺寸尺寸数码显示笔画常发光二极组成尺寸数码二发光二极组成般情况单发光二极压降18V左右电流超30mA发光二极阳极连接起连接电源正极称阳数码发光二极阴极连接起连接电源负极称阴数码常LED数码显示数字字符0123456789ABCDEF性:防水防尘防紫外线耐压耐破裂耐高低温耐燃超强抗击老化防护等级:IP65级工作电压范围:24V~220V工作功率:8~12W工作环境:40度~+75度正常寿命:>80000时

    图21 LED外形图 图 22 LCD1602外形图
    1602采标准16脚接口中:第1脚:VSS电源第2脚:VCC接5V电源正极第3脚:V0液晶显示器度调整端接正电源时度弱接电源时度高(度高时会 产生鬼影时通10K电位器调整度)第4脚:RS寄存器选择高电1时选择数寄存器低电0时选择指令寄存器第5脚:RW读写信号线高电(1)时进行读操作低电(0)时进行写操作第6脚:E(EN)端(enable)端高电(1)时读取信息负跳变时执行指令第7~14脚:D0~D78位双数端第15~16脚:空脚背灯电源15脚背光正极16脚背光负极33V5V工作电压度调含复位电路提供种控制命令:清屏字符闪烁光标闪烁显示移位等种功80字节显示数存储器DDRAM建1925X7点阵字型字符发生器CGROM8户定义5X7字符发生器CGRAM微功耗体积显示容丰富超薄轻巧常袖珍式仪表低功耗应系统中
    243 终方案
    完全数码做显示该方案求少2排6位数码占空间适合便携式设备耗费资源1602般显示字母数字符号显示16×2字符具显示效果字符显示字符左右右左显示等等显示效果简单价格低廉考虑设计中需汉字显示显示字符足够系统采1602液晶显示
    25 时钟芯片选型
    时钟芯片行车测速仪重器件整系统否正常运行取决时钟芯片时钟设置系统单片机程序运作首先设置时钟面介绍系统时钟芯片选取
    时钟芯片种类非常置晶振充电电池类型外置晶振类型现流行DS1302 DS1307PCF8485SB2068等等DS1302时钟芯片电路接口简单价格低廉方便广泛采系统中采DS1302时钟芯片该实时时钟电路DALLAS公司种具涓细电流充电力电路特点采串行数传输掉电保护电源提供编程充电功关闭充电功采普通32768kHz晶振
    DS1302时钟芯片美国DALLAS公司推出种高性低功耗带RAM实时时钟电路年月日周日时分秒进行计时具闰年补偿功工作电压25V~55VDS1302部31×8时性存放数RAM寄存器DS1302DS1202升级产品DS1202兼容增加电源背电源双电源引脚时提供背电源进行涓细电流充电力










    第3章 硬件设计
    系统分成四模块分速度模块温度模块时钟模块显示模块温度速度模块通外部传感器相应参数进行测量物理信号转换电信号输入单片机单片机输入电信号进行处理通显示器输出显示
    31 单片机外围电路
    单片机部分设计核心部分单片机部分设计坏直接影响整设机工作情况单片机选择电路设计非常重节单片机介绍单片机外围电路设计两部分进行介绍
    311 单片机介绍
    STC89C54RD+具16K系统编程Flash 存储器1280B机存取数存储器
    (1)片程序存储器含16KBFlash程序存储器
    (2) 片数存储器含1280字节RAM
    (3) 具3编程定时器
    (4) 具32根编程IO口线
    (5) 串行口具全双工编程串行通信口
    (6) 中断系统具8中断源4级优先权中断结构
    (7) 具数指针DPTR
    (8) 低功耗工作模式空闲模式掉电模式
    (9) 具编程3级程序锁定位
    (10) STC89C54RD+工作电源电压典型值5V
    (11) STC89C54RD+工作频率0~80MHz
    STC89C54RD+单片机40 脚双列直插封装8 位通微处理器图31示引脚功分四部分面进行简单介绍
    (1) 电源引脚VCCVSS
    (2) 外接晶体引脚XTAL1XTAL2
    (3) 控制电源复引脚RSTALEPSENEAVPP
    (4) 输入输出(IO)引脚P0P1P2P3(32根)
    P0口双8位三态IO口外接存储器时址总线低8位数总线复吸收电流方式驱动8LS型TTL负载P0口作输入输出口时需外界接入拉电阻P1口准双8位IO口种接口输出没高阻状态输入锁存真正双IO口P1口驱动(吸收输出电流)4LS型TTL负载P10引脚第二功T2定时计数器外部输入P11引脚第二功T2捕捉重装触发T2外部控制端Flash编程程序验证时接收低8位址 P2口准双8位IO口访问外部存储器时作扩展电路高8位址总线送出高8位址Flash编程程序验证期间接收高8位址P2驱动(吸收输出电流)4LS型TTL负载P3口准双8位IO口MCS51中8引脚第二功复双功口P3驱动4LS型TTL负载

    图31 STC89C54RD+引脚图
    312 单片机外围电路图
    单片机外围电路图图32示设计采STC单片机系列单片机具掉电动复位功单片机中未设计复位电路仿真中单片机晶振属性中调仿真电路中没晶振电路实际硬件电路中晶振必须接入系统采12MHz晶振图中两键调节时钟芯片时间仿真图中没霍尔元件功模拟P32接入数字激励源代实际电路中霍尔传感器

    图32 单片机外围电路图
    32 速度模块设计
    速度模块设计缺少部分速度模块设计坏直接影响设计测试结果测速芯片电路选择尤重节两方面进行讲解分:霍尔元件介绍霍尔元件硬件电路电路
    321 霍尔元件介绍
    根霍尔效应半导体材料制成元件霍尔元件该芯片具尺寸稳定性灵敏度高等特点A3144E系列单极高温霍尔效应集成传感器稳压电源霍尔电压发生器差分放器施密特触发器输出放器组成磁敏传感电路输入磁感应强度输出数字电压讯号种单磁极工作磁敏电路适矩形者柱形磁体工作应汽车工业军事工程中霍尔传感器外形图磁场作关系图33示

    a 霍尔元件磁钢 b 脚图
    图33 霍尔传感器外形图
    磁场磁钢提供霍尔传感器磁钢需配霍尔传感器测量原理转速测量方法:
    1 霍尔传感器测量原理
    测量电机转速第步电机转速表示单片机识脉信号进行脉计数霍尔器件作种转速测量系统传感器结构牢固体积重量轻寿命长安装方便等优点选霍尔传感器检测脉信号基测量原理图34示电机转动时带动传感器运动产生应频率脉信号信号处理输出计数器脉计数装置进行转速测量

    图34霍尔传感器测量原理
    2 转速测量方法
    转速测量方法根脉计数实现转速测量方法M法(测频法)T法(测周期法)MPT法(频率周期法)系统采第种方法(测频法)转速单位时间转数衡量变换程中数规律重复运动根霍尔效应原理块永久磁钢固定行车轮毂着行车轮子转动磁钢着轮子步转动行车车体安装霍尔传感器车轮转动时受磁钢影响霍尔传感器会输出脉信号频率转速成正脉信号周期电机转速试(11)关系:
    VN×L (11)
    式中:V行车车速N车轮单位时间脉数L车轮周长根式计算出行车前速度
    霍尔器件半导体材料制成种薄片垂直面方施加外磁场B面方两端加外电场电子磁场中运动结果器件两侧面间产生霍尔电势外磁场电流成例霍尔开关传感器体积触点动态特性寿命长等特点测量转动物体旋转速度领域广泛应
    322 霍尔传感器硬件电路图
    霍尔传感器硬件电路图图35示测量外界磁信号车轮转圈霍尔传感器感应固定车轮磁钢发出信号中out引脚霍尔传感器脉输出引脚必须接入拉电阻

    图35 霍尔传感器电路图
    33 温度模块设计
    温度模块设计拓展部分样重部分节温度传感器介绍DS18B20硬件电路图两部分进行阐述
    331 温度传感器介绍
    DS18B20引脚图36示

    图36 DS18B20
    DS18B20引脚定义:
    (1) DQ数字信号输入输出端
    (2) GND电源
    (3) VCC外接供电电源输入端(寄生电源接线方式时接)
    DS18B20数部件:
    (1) 光刻ROM中64位序列号出厂前光刻作DS18B20址序列码
    (2) DS18B20中温度传感器完成温度测量表31示00625℃LSB形式表达中S符号位
    表31 DS18B20温度值格式表
    LS Byte
    bit7
    bit6
    bit5
    bit4
    bit3
    bit2
    bit1
    bit0
    26
    25
    24
    23
    22
    21
    20
    21
    MS Byte
    bit15
    bit14
    bit13
    bit12
    bit11
    bit10
    bit9
    bit8
    S
    S
    S
    S
    S
    S
    S
    S
    12位转化12位数存储DS18B20两8特RAM中二进制中前面5位符号位果测温度05位0测数值00625实际温度果温度05位1测数值需取反加100625实际温度 例+125℃数字输出07D0H250625℃数字输出FF6FH表32DS18B20温度表
    表32 DS18B20温度表
    TEMPERATURE
    DIGITAL OUTPUT (Binary)
    DIGITAL OUTPUT (Hex)
    +855℃
    0000 0000 1010 1010
    00AAh
    +250℃
    0000 0000 0011 0010
    0032h
    +05℃
    0000 0000 0000 0001
    0001h
    0℃
    0000 0000 0000 0000
    0000h
    05℃
    1111 1111 1111 1111
    FFFFh
    250℃
    1111 1111 1100 1110
    FFCEh
    550℃
    1111 1111 1001 0010
    FF92h
    DS18B20温度传感器部存储器包括高速暂存RAM非易失性电擦EEPROM者存放高温度低温度触发器THTL结构寄存器高速暂存存储器配置寄存器外8字节组成分配图37示中温度信息(第12字节)THTL值(第34字节)第6~8字节未表现全逻辑1第9字节读出前面8字节CRC码保证通信正确
    温度灵敏元件
    低温触发器TL
    高温触发器TH
    配置寄存器
    存储器控制器
    8位CRC生成器
    高速缓存储存器
    64位ROM单线接口
    电源检测

    图37 DS18B20部储存器结构图
    根DS18B20通讯协议机(单片机)控制DS18B20完成温度转换必须三步骤:次读写前DS18B20进行复位操作复位成功发送条ROM指令发送RAM指令样DS18B20进行预定操作复位求CPU数线拉500微秒然释放DS18B20收信号等16~60微秒左右发出60~240微秒存低脉CPU收信号表示复位成功面具体讲述复位读写时序ROM指令表明机寻址者DS18B20中某某者读取某DS18B2064位址RAM指令机DS18B20部RAM操作指令集表33表34示
    表33 RAM指令表
    指令
    约定代码
    100功
    温度转换
    44H
    启动DS18B20进行温度转换12位转换时长750ms(9位9375ms)结果存入部9字节ROM中
    读暂存器
    0BEH
    读部RAM 9字节容
    写暂存器
    4EH
    发出部RAM34字节写限温度数命令紧该命令传送两字节数
    复制暂存器
    48H
    RAM第34字节容复制EEPROM中
    重读EEPROM
    0B8H
    EEPROM中容复制RAM中第34字节
    读供电方式
    0B4H
    读DS18B20供电模式寄生供电时DS18B20发送0外接电源供电DS18B20发送1


    表34 ROM指令表
    指令
    代码
    操作说明
    温度转换
    44H
    开始启动DS18B20温度转换
    读ROM
    33H
    读ROM容
    匹配ROM
    55H
    指定器件操作

    CCH
    跳器件识
    读暂存器
    BEH
    读暂存器容
    写暂存器
    4EH
    数写入暂存器THTL字节
    复制暂存器
    48H
    暂存器THTL字节写ROM
    重写调RAM
    B8H
    RAM中THTL字节写暂存器THTL字节
    332 DS18B20硬件电路图
    DS18B20电路图图38示测量外界环境温度模块通串行通信数送单片机处理显示中DQ串行数输出口必须加入拉电阻VCCGND分接入电源接电路连接简单数输出口编程较复杂

    图38 DS18B20电路图
    34 时钟模块设计
    时钟模块式设计运作非常重部分设计部分工作先序部分配合需时钟模块统调配时钟模块设计中着取代位结时钟芯片DS1302介绍DS1302硬件电路两方面进行介绍
    341时钟芯片介绍
    DS1302引脚排列中VCC1电源VCC2备电源电源关闭情况保持时钟连续运行DS1302VCC1VCC2两者中较者供电X1X2振荡源外接32768kHz晶振RST复位片选线通RST输入驱动置高电启动数传送RST输入两种功:首先RST接通控制逻辑允许址命令序列送入移位寄存器次RST提供终止单字节字节数传送手段RST高电时数传送初始化允许DS1302进行操作果RST置低电会终止次数传送IO引脚变高阻态电运行时VCC>20V前RST必须保持低电SCLK低电时RST置高电IO串行数输入输出端面详细说明SCLK时钟输入端DS1302引脚功图图39示

    图39 DS1302引脚图
    DS1302控制字表35示
    表35 DS1302控制字
    7
    6
    5
    4
    3
    2
    1
    0
    1
    RAM
    A4
    A3
    A2
    A1
    A0
    RD


    (1) 控制字高效位位7:必须逻辑1果0数写入DS1302中
    (2) 位6:果0表示存取日历时钟数1表示存取RAM数
    (3) 位5位1(A4~A0):指示操作单元址
    (4) 位0(低效位):0表示进行写操作1表示进行读操作
    控制字总低位开始输出控制字指令输入SCLK时钟升时数写入DS1302数输入低位(0位)开始样紧8位控制字指令SCLK脉降读出DS1302数读出数低位高位
    DS1302关日历时间寄存器表36示
    表36 DS1302日历时间寄存器
    R
    W
    BIT7
    BIT6
    BIT5
    BIT4
    BIT3
    BIT2
    BIT1
    BIT0
    RANGE
    81h
    80h
    CH
    10Seconds
    Seconds
    0059
    83h
    82h

    10Minutes
    Minutes
    0059
    85h
    84h
    1224
    0
    10
    Hour
    Hour
    112023
    AM PM
    87h
    86h
    0
    0
    10Date
    Date
    131
    89h
    88h
    0
    0
    0
    10Mon
    Mon
    112
    8Bh
    8Ah
    0
    0
    0
    0
    0
    Day
    17
    8Dh
    8Ch
    10Year
    Year
    0099
    8Fh
    8Eh
    WP
    0
    0
    0
    0
    0
    0
    0

    91h
    90h
    TCS
    TCS
    TCS
    TCS
    DS
    DS
    RS
    RS

    表36DS1302部7时间日期关寄存器图写保护寄存器做初始设置时间数写入寄存器然断读取寄存器获取实时时间寄存器说明:
    (1) 秒寄存器(81h80h)位7定义时钟暂停标志(CH)初始电时该位置1时钟振荡器停止DS1302处低功耗状态秒寄存器该位置改写0时时钟开始运行
    (2) 时寄存器(85h84h)位7定义DS1302运行12时模式24时模式高时选择12时模式12时模式时位51时表示PM24时模式时位5第二时十位
    (3) 控制寄存器(8Fh8Eh)位7写保护位(WP)7位均置0时钟RAM写操作前WP位必须0WP位1时写保护位防止寄存器写操作说电路电初始态WP1时改写面时间寄存器首先WP改写0进行寄存器写操作
    谓突发模式指次传送字节时钟信号RAM数突发模式寄存器表37示
    表37 DS1302工作模式寄存器
    工作模式寄存器

    读寄存器
    写寄存器
    时钟突发模式寄存器
    CLOCK BURST
    BFh
    BEh
    RAM突发模式寄存器
    RAM BURST
    FFh
    FEh
    DS1302 微处理器进行数交换时首先微处理器电路发送命令字节命令字节高位Write Protect(D7)必须逻辑1果D70禁止写DS1302写保护D60指定时钟数D61指定RAM数D5~D1指定输入输出特定寄存器低位LSB(D0)逻辑0指定写操作(输入)D01指定读操作(输出)
    DS1302时钟日历RAM进行数传送时DS1302必须首先发送命令字节进行单字节传送8位命令字节传送结束2SCLK周期升输入数字节8SCLK周期降输出数字节
    DS1302RAM相关寄存器分两类:类单RAM单元31单元组态8位字节命令控制字C0H~FDH中奇数读操作偶数写操作类突发方式RAM寄存器方式次性读写RAM31字节
    特说明备电源B1电池者超级电容器(01F)然DS1302电源掉电耗电果长时间保证时钟正常选型充电电池老式电脑板36V充电电池果断电时间较短时漏电较普通电解电容器代100 μF保证1时正常走时DS1302第次加电必须进行初始化操作初始化正常方法调整时间DS1302 存时钟精度高易受环境影响出现时钟混乱等缺点
    342 DS1302硬件电路图
    DS1302电路图图310示系统时钟模块实时显示时间实际DS1302引脚图仿真图中引脚排列仿真功基样仿真图排列方式更便电路连接图中X1(引脚2)X2(引脚3)接入晶振晶振振荡频率32768Hz
    图310VCC1(引脚1)VCC2(引脚8)电源引脚实际电路中VCC1接入5V电源VCC2接入电压3V纽扣电池

    图310 DS1302电路图
    35 显示模块设计
    显示模块设计重部分节两方面显示模块进行介绍首先介绍LCD1602芯片特性优点稍介绍LCD1602 外部电路图
    351 LCD芯片介绍
    1602液晶显示器点收信号直保持种色彩亮度恒定发光阴极射线显示器(CRT)样需断刷新新亮点液晶显示器画质高会闪烁显示器数字式单片机系统接口更加简单操作更加方便通显示屏电极控制液晶分子状态达显示目重量相显示面积传统显示器轻功耗消耗部电极驱动IC耗电量显示器少LCD接口表38示
    (1)显示容量16×2字符
    (2)芯片工作电压45—55V
    (3)工作电流20mA(50V)
    (4)模块佳工作电压50V
    (5)字符尺寸295×435(W×H)mm
    表38 LCD引脚引脚说明
    编号
    符号
    引脚说明
    编号
    符号
    引脚说明
    1
    VSS
    电源
    9
    D2

    2
    VDD
    电源正极
    10
    D3

    3
    VL
    液晶显示偏压
    11
    D4

    4
    RS
    数命令选择
    12
    D5

    5
    RW
    读写选择
    13
    D6

    6
    E
    信号
    14
    D7

    7
    D0

    15
    BLA
    背光源正极
    8
    D1

    16
    BLK
    背光源负极
    352 LCD硬件连接图

    图311 LCD电路连接图
    图311中引脚3(VEE)液晶显示偏压调节显示屏亮度仿真电路中需接入电位器实际硬件电路连接图中必须接入电位器调节显示亮度否LCD法正常显示
    仿真图中LCD1602元件14引脚实际LCD160216引脚仿真图中LCD元件缺少BLA(第15引脚)BLK(第16引脚)实际电路中两引脚必须分接电源正极电源负极否LCD显示屏亮度足正常显示数












    第4章 软件设计
    软件设计课题控制核心部分说软件硬件相辅相成光软件没硬件系统法运作光硬件没软件系统法运作课题软件设计包括三部分分计算速度里程程序设计温度显示程序设计时钟芯片程序设计面便逐介绍系统部分软件设计
    41 程序设计
    软件设计根实际工艺求进行编写求DS18B20温度传感器霍尔传感器DS1302参数值送单片机中温度值时间速度等参数送LCD显示器中进行显示
    程序工作程图41示
    初始化
    开中断
    温度时钟工作
    计算速度里程
    显示时间温度速度里程
    开始

    图41 程序流程图
    42 计算速度里程程序设计
    单片机获取霍尔传感器感应脉数时立马算出行车速度里程数学计算出系统中默认车轮直径22m者根行车直径更改程序里数理知识水限没成功设计外界输入设定者行车车轮直径数设计根单片机秒钟接收脉数计算行车速度秒速度相加出行车里程Proteus仿真结果计算结果完全相
    程序设计流程图图42示
    读秒寄存器位
    判断否秒
    读计数器
    开计数器


    子程序开始
    子程序结束
    开始计数
    关计数器
    计算速度里程


    图42计算速度里程流程图
    43 温度显示程序设计
    温度传感器采DS18B20进行温度测试通LCD1602进行显示DS18B20数输出线条必须采位读取读取温度值分存入高八位低八位寄存器中输出显示时必须十六进制数值转换成十进制输出LCD显示屏中
    程序流程图图43示
    准备

    初始化


    复位

    写命令

    读温度

    显示


    计算



    图43温度显示流程图
    44 时钟芯片程序设计
    时钟芯片采DS1302该时钟芯片置年月日星期时分秒寄存器时间数分存储寄存器中外置晶振作芯片时钟周期外部晶振频率32768KHz工作频率时间应读取时间时时间寄存器中读取数然进行显示调时功通脉检测键次该数口电零数加键者松手颤抖现象需进行抖松手检测统称抖般进行抖松手检测两种方法:硬件抖二软件抖硬件抖电路复杂繁琐设计中采软件抖法该法通软件延时方法软件抖法颤抖时间延时掩盖似颤抖现象设计时欠考虑调时键设计2分时分钟键直加直0未设计减键调试中发现较麻烦未实现性化设计求
    时间显示调试控制程序流程图图44示
    准备


    初始化

    复位信号置0

    时钟脉信号置0

    数读取

    复位信号置1

    时钟脉信号置1

    显示

    数分离转换

    结束

    准备



    数读取

    初始化

    松手检测

    数加

    数分离转换

    结束

    显示


    图44 时间显示调试控制程序流程图
    45 LCD1602软件设计
    LCD1602软件设计系统软件设计重部分进行软件编程LCD1602正常完成显示设计参数功LCD1602软件设计包括两部分分:LCD1602时序介绍LCD1602具体软件设计面分介绍两方面
    451 LCD1602时序介绍
    图45LCD1602读操作时序图

    图45 LCD1602读操作时序图
    图46LCD1602写操作时序图

    图46 LCD1602写操作时序图
    表41LCD1602时序参数
    表41 LCD1602时序参数
    时序参数
    符号
    极限值
    单位
    测试条件

    典型值

    E信号周期
    t
    400


    ns
    引脚E
    E脉宽度
    t
    150


    ns
    E升降时间
    tt


    25
    ns
    址建立时间
    t
    30


    ns
    引脚ERSRW
    址保持时间
    t
    10


    ns
    数建立时间(读操作)
    t


    100
    ns
    引脚DB0~DB7
    数保持时间(读操作)
    t
    20


    ns
    数建立时间(写操作)
    t
    40


    ns
    数保持时间(写操作)
    t
    10


    ns
    452 LCD1602具体软件设计
    LCD1602软件设计系统软件设计重部分图47LCD1602液晶显示器软件设计流程图根图清楚LCD1602液晶显示器工作流程便轻松LCD1602进行编程实现实时显示速度里程温度骑车时间
    继续扫描发出警报
    开始
    LCD1602初始化
    卡接?
    扫描键
    延时消抖
    确定键值
    密码正确?
    释放键?
    键值转化ASII码存入寄存器
    键值入栈保护
    结束
    显示
    LCD1602写命令
    扫描卡效性
    N
    N
    N
    N
    Y
    Y
    Y
    Y
    Y

    图47 LCD1602液晶显示器软件设计流程图

    第5章 测试
    测试设计重部分检验改设计否够达预期性指标确定方案行性介绍仿真软件仿真测试方法
    51 ProteusKeil软件简介
    511 Proteus软件
    Proteus软件种低投资电子设计动化软件提供仿真数字模拟交流直流等数千种元器件达30元件库Proteus软件提供种现实存虚拟仪器仪表外Proteus提供图形显示功线路变化信号图形方式实时显示出虚拟仪器仪表具理想参数指标例极高输入阻抗极低输出阻抗减少仪器测量结果影响Proteus软件提供丰富测试信号电路测试测试信号包括模拟信号数字信号提供Schematic DrawingSPICE仿真PCB设计功时仿真单片机周边设备仿真51系列AVRPIC等常MCU提供周边设备仿真例LED示波器等Proteus提供量元件库RAMROM键盘马达LEDLCDADDA部分SPI器件部分IIC器件编译方面支持KeilMPLAB等编译器台计算机套电子仿真软件加虚拟实验教程相设备先进实验室虚代实软代硬建立完善虚拟实验室计算机学电工基础模拟电路数字电路单片机应系统等课程进行电路设计仿真调试等
    512 Keil软件
    KeilC51美国Keil Software公司出品51系列兼容单片机C语言软件开发系统汇编相C语言功结构性读性维护性明显优势易学易汇编语言C开发体会更加深刻
    KeilC51软件提供丰富库函数功强集成开发调试工具全Windows 界面外重点编译生成汇编代码体会KeilC51 生成目标代码效率非常高数语句生成汇编代码紧凑容易理解开发型软件时更体现高级语言优势UvisionIshell分C51 for WindowsFor Dos集成开发环境(IDE)完成编辑编译连接调试仿真等整开发流程开发员IDE 身编辑器编辑C汇编源文件然分C51A51编译器编译生成目标文件(OBJ)目标文件LIB51创建生成库文件库文件起L51连接定位生成绝目标文件(ABSABS文件OH51转换成标准Hex文件供调试器DScope51TScope51进行源代码级调试仿真器直接目标板进行调试直接写入程序存贮器EPROM中
    52 应Keil软件进行程序调试
    软件调试必须开发系统支持进行先分调试通模块程序然调试中断服务程序调试程序部分连接进行调试调试范围逐步增加必中间信号先做设定通常交叉单步运行断点运行连续运行等种方式次执行完毕检查CPU执行现场RAM关容IO接口状态等发现问题解决问题直全部通
    首先新建工程项目文件次工程选择目标器件次工程项目设置软硬件调试环境创建源程序文件输入程序代码保存创建源程序项目文件源程序文件添加项目中
    53 Proteus软件仿真
    原理图原理图编辑窗口中蓝色方框绘制完成通文件中新建设计选项调整原理图设计页面绘制原理图时首先应根需选取元器件Proteus库中提供量元器件原理图符号利Proteus搜索功方便查找需元器件
    首先根需选择器件单击元器件列表窗口边钮P弹出图31示元器件选择窗口该窗口左方关键字栏键入STC89C54RD+窗口中间结果栏显示出元器件库中STC89C54RD+单片机芯片选择中STC89C54RD+窗口右方显示出STC89C54RD+图形符号时显示该器件虚拟仿真模型单击确定钮STC89C54RD+ 出现器件列表窗口方法选择需元器件
    器件选择完毕开始绘制原理图先鼠标器件选择窗口选中需器件预览窗口出现该器件图标鼠标指编辑窗口单击左键选中器件放置原理图中
    放置电源线端时终端钮栏中选取两元器件间进行连线方式
    简单先鼠标指第器件连接点单击左键鼠标移器件连接点单击左键两点连接起相隔较远直接连线方便器件标号方式进行连接
    连接部分硬件电路参见附录
    54 硬件软件联合调试
    硬软件联调测试核心步奏节介绍硬软件联调方法步奏
    541 联调步骤
    第步安装KeilProteus
    第二步Proteus安装目录VDM51dll文件复制Keil安装目录C51 BIN 目录中
    第三步修改Keil安装目录Toolsini文件 C51字段加入
    TDRV5BINVDM51DLL(Proteus VSM Monitor51 Driver)开Proteus画出相应电路Proteus Tools 菜单中选中Use remote debug monitor
    第四步Keil中编写MCU程序进入KeilProteus菜单Option for target工程名Debug选项中右栏部拉菜选中Proteus VSM Monitor51 Driver进入setting果台机IP名127001台机填台IP址端口号定8000注意:台机器运行Keil台中运行Proteus进行远程仿真
    第五步Keil中进行Debug时Proteus中查直观结果硬件调试电路图买元件首先检查买回元件坏元件检测方法分进行检测定仔细认真电路图位置元件安置首先放置核心元件然放元件特注意序颠倒保证电路元器件完元器件放置误合理情况开始电路连接布线设计面包板搭件布线跨线工整硬件设计布线焊接安装完成开始进入硬件调试阶段
    542 硬件静态调试
    (1) 排逻辑障
    显示器部分调试调试利进行首先STC89C54RD+LCD显示分离样静态方法先测试LCD显示规定电加位显示引脚显示否理致致般LCD显示器接触良致必须找出障检测STC89C54RD+电路工作否正常STC89C54RD+进行编程调试时分两步骤:第进行初始化第二STC89C54RD+LCD结合起助开发机通编制程序进行调试调试通编制应程序逻辑障说类障设计焊接程中失误造成包括错线开路短路排方法首先焊接电路板认真原理图两者否致应特注意电源系统检查防止电源短路极性错误重点检查系统总线否存相互间短路信号线路短路必时利数字万表短路测试功缩短排错时间
    (2) 排元器件失效
    造成类错误原两:元器件买时已坏安装错误造成器件烧坏采取检查元器件设计求型号规格安装否致保证安装误换方法排错误
    (3) 排电源障
    通电前定检查电源电压幅值极性否容易造成集成块损坏加电检查插件引脚电位般先检查VCCGND间电位5V~48V 间属正常高压联机仿真器调试时会损坏仿真器等时会应系统中集成块发热损坏

















    第6章 结展
    系统设计制作工作已全部完成基达预期目求系统调试仿真结果满意动态显示显示容实时更新数准确度等方面做较时间仓促条件限设计结果存诸:显示容单数波动抗干扰力差等问题准备工作实践程积累知识验学更新知识新技术进步完善设计
    文选题现已半年时间设计历程:广泛查阅资料文献综述总体思路确定方案具体化证方案确定设计制板硬件电路完成软件调试系统调试包括文定搞整程联系非常紧密程前程结果程奠定基础














    致谢
    首先感谢导师杨老师杨老师渊博学识认真治学态度衷钦佩段时间杨老师教诲悉心指导圆满完成毕业设计仅学知识懂许做道理相信生活裨益文导师直接关怀指导完成文选题展开文形成导师予充分关心倾注量心血导师致崇高敬意衷心感谢感谢XX学邮电信息学院感谢学校培养三年学校完善理制度良学风学知识学会做
    衷感谢帮助支持关心老师学朋友表示深深谢意美祝福
















    参考文献
    [1] 佘新 数字电子技术[第二版][M] 华中科技学出版社 20098
    [2] 童诗白 华成英 模拟电子技术基础[第四版][M] 高等教育出版社 20011
    [3] 韦建英 徐安静 模拟电子技术基础[M] 华中科技学出版社 20108
    [4] 宋受俊 基单片机电机运动控制系统设计[J] 机电产品开发创新 2006 25(23) 5658
    [5] 樊尚春 传感器技术应[M] 北京航空航天学出版社 20048
    [6] 李华 单片机通接口技术[M] 北京 北京航空航天学出版社 1999
    [7] 潘永雄 新编单片机原理应[M] 西安 西安电子科技学出版社 2003
    [8] 楼然苗 51系列单片机设计实例[M] 北京航空航天学出版社 200303
    [9] 陈享成 耿长青 基单片机LCD显示终端设计[J] 电力动化设备 2007 14 (9):1416
    [10] 胡汉 单片机原理接口技术[M] 北京 清华学出版社 1999
    [11] 陈伯时 电力拖动动控制系统[M] 北京 机械工业出版社 2003 103107
    [12] 陈兴文 刘燕 单片机应系统硬件调试技巧[J] 中国测控网 20093 (23) 2325
    [13] 立民 单片机高级教程应设计[M] 北京航空航天学出版社 20071
    [14] 邵显涛 DS18B20集成温度传感器原理应[J] 电子测试 20082 (12) 4042
    [15] 徐爱钧 单片机原理实教程基Proteus虚拟仿真[M] 北京 电子工业出版社 2009
    [16] 李学礼 基Proteus8051单片机实例教程[M] 北京 电子工业出版社 2008







    附录1 Protreus仿真图


    附录2 源程序
    #include
    #include
    typedef unsigned char uchar
    typedef unsigned int uint
    typedef bit BOOL
    sbit lcdrsP2^6
    sbit lcdenP2^7
    sbit lcdrwP2^1
    sbit ds_rstP2^5
    sbit ds_ioP2^4
    sbit ds_clkP2^3
    sbit ACC0ACC^0
    sbit ACC7ACC^7
    sbit dqP2^2
    sbit scan P3^2 低电输入
    sbit key0P1^2
    sbit key1P1^3
    uchar cominfnum0
    int temper0
    uchar code table[]0123456789
    uchar ncounter 转数
    long int scounter
    uchar T0counter T0 50ms计数
    uchar SECsign 秒信号
    uchar speed 速度
    uchar cflag 计数允许
    uchar s0 米单位路程
    uchar sk0 千米单位路程
    uchar t_sec0x00sec1sec2
    uchar t_min0x59min1min2
    uchar t_hr0x20hr1hr2
    ***************************************
    lcd1602初始化程序
    ***************************************
    void delay(uint z) lcd延时程序
    {
    uchar xy
    for(xzx>0x)
    for(y110y>0y)
    }
    BOOL lcd_bz()
    { 测试LCD忙碌状态
    BOOL result
    lcdrs 0
    lcdrw 1
    lcden 1
    _nop_()
    _nop_()
    _nop_()
    _nop_()
    result (BOOL)(P0&0x80)
    lcden 0
    return result
    }
    void write_com(uchar com) 写命令
    {
    lcd_bz()
    lcdrs0
    lcdrw0
    lcden0
    P0com
    delay(12)
    lcden1
    delay(12)
    lcden0
    }
    void write_dat1(uchar dat1) 写数
    {
    lcd_bz()
    lcdrs1
    lcdrw0
    lcden0
    P0dat1
    delay(60)
    lcden1
    delay(60)
    lcden0
    }
    void init_lcd() lcd初始化
    {
    lcden0
    write_com(0x38)
    write_com(0x0c) 光标控制
    write_com(0x06)
    write_com(0x01) 清屏
    }
    ds18b20控制程序
    **
    void delay18b20(uint time) ds18b20延时程序
    {
    uint ij
    for(i0i for(j0j<1j++)
    }
    uchar reset() 复位子程序
    {
    uchar presence
    dq0
    delay18b20(29)
    dq1
    delay18b20(3)
    presencedq
    delay18b20(25)
    return(presence)
    }
    uchar read_bit() 读位
    {
    uchar i
    dq0
    dq1
    for(i0i<3i++)
    return(dq)
    }
    void write_bit(uchar dat) 写位
    {
    dq0
    if(dat1)
    dq1
    delay18b20(5)
    dq1
    }
    uchar read_byte() 读字节
    {
    uchar dat0
    uchar i
    for(i0i<8i++)
    {
    if(read_bit())
    dat|0x01< delay18b20(5)
    }
    return(dat)
    }
    void write_byte(uchar dat) 写字节
    {
    uchar ij
    for(i0i<8i++)
    {
    j((dat>>i)&0x01)
    write_bit(j)
    delay18b20(5)
    }
    }

    int read_temp() 读温度
    {
    uchar templtemph
    int temp
    reset()
    write_byte(0xcc)
    write_byte(0x44)
    delay18b20(1000)
    reset()
    write_byte(0xcc)
    write_byte(0xbe)
    templread_byte()
    temphread_byte()
    temptempl+temph*256
    return(temp)
    }
    ************************************* ds1302程式模块
    ***************************************
    void input_1byte(uchar td)
    {
    uchar i
    ACCtd
    for(i8i>0i)
    {
    ds_ioACC0
    ds_clk1
    ds_clk0
    ACCACC>>1
    }
    }
    uchar output_1byte()
    {
    uchar i
    for(i8i>0i)
    {
    ACCACC>>1
    ACC7ds_io
    ds_clk1
    ds_clk0
    }
    return(ACC)
    }
    void write_ds1302(uchar ds_adduchar ds_dat)
    {
    ds_rst0
    ds_clk0
    ds_rst1
    input_1byte(ds_add)
    input_1byte(ds_dat)
    ds_clk1
    ds_rst0
    }
    uchar read_ds1302(uchar ds_add)
    {
    uchar ds_inf
    ds_rst0
    ds_clk0
    ds_rst1
    input_1byte(ds_add)
    ds_infoutput_1byte()
    ds_clk1
    ds_rst0
    return(ds_inf)
    }

    ***************************************ds1302初始化程序
    **************************************
    void init_1302()
    {
    write_ds1302(0x8e0x00)关闭写保护
    write_ds1302(0x900xAA)定义充电

    write_ds1302(0x8e0x80)开写保护
    }
    ***************************************
    测速程式
    **************************************
    void initialize( void ) 初始化程序
    {
    ncounter 0
    T0counter 0
    SECsign 1
    speed 0
    cflag 1
    }
    void init_timer0( void ) 定时器0初始化
    {
    TMOD 0x01
    TH0 (6553650000)256
    TL0 (6553650000)256
    EA 1
    IT01
    EX01
    ET0 1
    TR0 1
    }
    void dis_speed( void )
    {
    uchar bai speed100
    uchar shi speed10010
    uchar ge speed10
    uchar dian (speed&0x0f)*625100
    write_com( 0x80+0x00 )
    write_dat1( 0x30+bai )
    write_dat1( 0x30+shi )
    write_dat1( 0x30+ge )
    write_dat1('')
    write_dat1(0x30+dian)

    }



    void dis_mileage( void ) 里程计算

    {
    unsigned char qiankmbaikmshikmgekmdiankm
    qiankm(110*scounter)100000000
    baikm((110*scounter)100000000)10000000
    shikm(((110*scounter)100000000)10000000)1000000
    gekm((((110*scounter)100000000)10000000)1000000)100000
    diankm(((((110*scounter)100000000)10000000)1000000)100000)10000
    write_com( 0x80+0x40 ) write_dat1( 0x30+qiankm)
    write_dat1( 0x30+baikm)
    write_dat1( 0x30+shikm)
    write_dat1( 0x30+gekm)
    write_dat1('')
    write_dat1(0x30+diankm)
    }
    unsigned char TOBCD(unsigned char asc) 十进制转换成BCD码
    {
    unsigned char shiweigeweiBCD
    geweiasc10
    shiweiasc10
    BCDshiwei*16+gewei
    return BCD
    }
    lcd_display()
    {
    ***********************************
    时间显示控制程序
    ************************************
    t_secread_ds1302(0x81)
    sec1t_sec&0x0f
    sec2t_sec>>4
    t_minread_ds1302(0x83)
    min1t_min&0x0f
    min2t_min>>4
    t_minmin2*10+min1
    t_hrread_ds1302(0x85)
    hr1t_hr&0x0f
    hr2t_hr>>4
    t_hrhr2*10+hr1
    write_com(0x80+0x4e)
    write_dat1(table[sec2])
    write_com(0x80+0x4f)
    write_dat1(table[sec1])
    write_com(0x80+0x4d)
    write_dat1('')
    write_com(0x80+0x4c)
    write_dat1(table[min1])
    write_com(0x80+0x4b)
    write_dat1(table[min2])
    write_com(0x80+0x4a)
    write_dat1('')
    write_com(0x80+0x49)
    write_dat1(table[hr1])
    write_com(0x80+0x48)
    write_dat1(table[hr2])
    *测速静态显示*
    write_com( 0x80+0x46 )
    write_dat1( 'k' )
    write_com( 0x80+0x47 )
    write_dat1( 'm' )
    write_com( 0x80+0x05 )
    write_dat1( 'm' )
    write_com( 0x80+0x06 )
    write_dat1( '' )
    write_com( 0x80+0x07 )
    write_dat1( 's' )
    ***************************************
    温度显示控制程序
    ***************************************
    write_com(0x80+0x09)
    write_dat1('T')
    delay(200)
    write_com(0x80+0x0a)
    write_dat1('')
    delay(200)
    temperread_temp()
    if(temper<0)
    {
    temper0temper
    write_com(0x80+0x0b)
    write_dat1('')
    delay(200)
    write_com(0x80+0x0f)
    write_dat1(((temper+0x01)&0x000f)*625100+0x30)
    }
    else
    {
    write_com(0x80+0x0b)
    write_dat1('+')
    delay(200)
    write_com(0x80+0x0f)
    write_dat1((temper&0x000f)*625100+0x30)
    }
    write_com(0x80+0x0c)
    write_dat1((temper>>4)10010+0x30)
    write_com(0x80+0x0d)
    write_dat1((temper>>4)10+0x30)
    write_com(0x80+0x0e)
    write_dat1('')
    ***************************************
    测速控制程序
    *************************************
    if( SECsign ) \
    {
    dis_mileage( )
    speed 11* ncounter 周长22M两霍尔传感器圈两信号

    ncounter 0
    dis_speed( )
    SECsign 0
    TR0 1
    显示完启动计数减误差
    EA1
    }
    }
    ***************************************
    函数
    ************************************
    void main()
    {
    initialize( )
    init_lcd( )
    init_timer0( )
    init_lcd()
    delay(5)
    init_1302()
    delay(5)
    P10xff
    P30xff
    while(1)
    {
    if(key00)
    {
    delay(50)
    if(key00)
    {
    t_hr++
    delay(20)
    if(t_hr>24)
    {
    t_hr0
    }
    t_hrTOBCD(t_hr)
    while(key0)
    write_ds1302(0x8e0x00)关闭写保护
    write_ds1302(0x84t_hr)时
    write_ds1302(0x8e0x80)开写保护
    }
    }
    if(key10)
    {
    delay(50)
    if(key10)
    {
    t_min++
    delay(20)
    if(t_min>60)
    {
    t_min0
    t_hr++
    }
    t_minTOBCD(t_min)
    while(key1)
    write_ds1302(0x8e0x00)关闭写保护
    write_ds1302(0x82t_min)分
    write_ds1302(0x8e0x80)开写保护
    }
    }
    lcd_display()
    }
    }
    void INT_timer0( void ) interrupt 1 定时计数器0中断函数
    {
    TH0 (6553650000)256
    TL0 (6553650000)256
    T0counter++
    if( T0counter >20 ) 1秒发生次中断
    {
    TR0 0 计时1s停止
    T0counter 0
    SECsign 1
    EA0
    }
    }
    void INT_int0(void) interrupt 0
    {
    ncounter++
    scounter++
    }

    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 8 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    《我设计的自行车》教学设计

    《我设计的自行车》教学设计《我设计的自行车》第一课时教学设计一、教学目标:1、知能目标:通过对自行车结构、功能的初步认识,指导学生设计自行车,用画笔描绘或运用各种综合材料创作自行车。2、方法目...

    3年前   
    1013    0

    毕业论文设计总结

    毕业论文设计总结  这次毕业设计让我更加熟悉了从理论到实践的跨越。从当初的查阅图书,到现在的网站成功运行,这中间有很多值得回味的地方。记得去年暑假在学校呆的时候,偶尔对php这门语言产生了浓厚...

    11年前   
    767    0

    毕业论文设计(精选多篇)

    毕业论文设计(精选多篇)第一篇:毕业论文设计关于初中蒙语文教学中的师生关系研究研究者:华国庆一、问题的提出(一)、研究初中蒙语文教学中的师生关系符合社会发展的要求和顺应时代的潮流,符合建设和谐...

    8年前   
    662    0

    毕业论文(设计)评审表-本科

        中央广播电视大学 毕业设计(论文)评审表       题目 浅论幼儿园常规安全管理策略                                      ...

    8年前   
    11520    0

    毕业论文管理系统的设计与实现

    摘要毕业论文工作是高等学校本科培养阶段的一个重要环节。目前论文管理工作存在着许多问题,例如人工管理极为不便;学生对论文所要撰写的内容并不十分了解,与指导老师的沟通非常不便;老师的指导监督也很难...

    2年前   
    429    0

    动漫设计专业毕业论文

      动漫设计专业毕业论文 动漫作为一个文化产业,以其独特的优势,新颖的特点,广大的受众,政府的扶持,迅速在各个市级城市体现价值,各个地方也都把动漫产业作为经济新的增长点,与此同时,各个高校...

    5年前   
    1524    0

    未来的自行车

    我带他走到车库前,推出一辆乳白色的自行车,看着非常普通。虽然他是第一次骑,但是我也不用担心,因为我发明的这辆车里有自动平衡装备,无论你怎样骑,它都不会让你摔下来。啊!明明蹬的可快了,于是我又从车...

    6年前   
    1234    0

    自行车婚

    自行车婚黄河婚礼上一页 第3页/共3页下一页  《自行车环保婚礼》——新郎骑着自行车去迎娶自己可爱的新娘,引来了各大媒体的关注。 本文档由香当网(https://www.xiangdang.net)用户上传

    11年前   
    638    0

    浙 美版五年级美术下《13 自行车写生》教学设计

    自行车写生 课时:1课时教学目标:1.了解自行车的基本结构,学会设计自行车的基本造型。2.对自行车进行多变联想,设计造型独特的多功能自行车。3.探究自行车的设计历程,启发学生的设计创新能力。教...

    3个月前   
    81    0

    开题报告-电动自行车电动机驱动系统的设计与仿真

    开题报告电气工程及自动化电动自行车电动机驱动系统的设计与仿真一、综述本课题国内外研究动态,说明选题的依据和意义1881年8月在巴黎举行的国际电气展览会上,法国人特鲁夫展出了世界上第一辆电动交通...

    4年前   
    824    0

    戴花的自行车

    戴花的自行车       马 卫   阳碧只想要一辆自行车,也不是她要,而是要她的未婚夫必须买一辆自行车,还得是永久牌的,最差也得是飞鸽牌的。   阳碧才十八岁,十八岁的少女就想嫁...

    12年前   
    11385    0

    毕业论文:基于plc的电子密码锁毕业论文设计

    本毕业设计介绍了可编程序控制器(PLC)和PLC控制系统的基本知识,包括PLC的定义、特点、分类、技术指标、基本结构、工作原理、硬件知识及PLC控制系统等相关知识。采用松下公司系列的PLC,设计...

    5年前   
    1827    0

    网络工程设计毕业论文

    目录 项目背景 1 一、网络分析 2 1.项目分析: 2 2.按拓扑结构分类 3 3.局域网的发展趋势 4 二、办公网络的规划设计 4 1.办公网络的功能 4 2.办公网络网设...

    5年前   
    1297    0

    2018年毕业论文设计格式要求规范

    毕业论文设计格式要求规范  临近毕业了,大家的论文写好了吗,下文是毕业论文设计格式要求,希望大家有所收获!  一、论文(设计)组成  本科毕业论文(设计)(以下简称为毕业论文)由封面、成绩评定...

    6年前   
    722    0

    2018年毕业论文(设计)的基本规范要求

    毕业论文(设计)的基本规范要求  1、毕业论文(设计)要求选用a4纸打印。  2、毕业论文(设计)文本结构:  (1)封皮  (2)成绩评议表  (3)毕业论文(设计)任务书  (4)指导教师...

    5年前   
    514    0

    智能温控风扇设计毕业论文

     届毕业设计(论文)系部电子工程系班级通信技术姓名学号题目智能温控风扇指导教师论文提交日期2015目录摘要 1第一章 绪论 21.1课题研究及应用前景 21.2本设计任务主要要求 2...

    6个月前   
    447    0

    美食商城开发与设计毕业论文

    某技术职业学院毕业论文设计课题名称:《美食商城开发与设计》所 在 院 部: 机电信息学院 专 业 班 级: 计算机 ...

    3年前   
    467    0

    2018年设计毕业论文18开题报告

    设计毕业论文18开题报告  1.本课题的目的及研究意义  研究目的:  张爱玲与电影有过长期亲密的接触,在小说写作中创造性地化用了电影化技巧,使她的文字组合带有丰富的视像性和表现力。文本以恐怖...

    6年前   
    488    0

    2017年毕业论文(设计)工作条例

    毕业论文(设计)工作条例  毕业论文(设计)是本科专业教学计划的重要组成部分,是网络教育培养目标要求的重要教学环节。为了切实做好毕业论文(设计)工作,规范毕业论文(设计)教学过程的管理,努力提...

    7年前   
    493    0

    本科毕业论文(设计)指导教师评分表

      表Ⅱ-3 ***学院本科毕业论文(设计)指导教师评分表 论文题目 管理层收购的融资风险与规避研究 学生姓名   学  号   指标 评分要素 最高分 评分 基本 ...

    7年前   
    3311    0

    文档贡献者

    文***品

    贡献于2021-05-19

    下载需要 8 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档