网站大量收购闲置独家精品文档,联系QQ:2885784924

51单片机实现数字时钟温度计.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
51单片机实现数字时钟温度计

中国石油大学(华东)本科课程设计报告 PAGE 10 硬件综合实习报告 题目:用单片机设计实现数字温度计、与PC机的通信及温度控制 摘要:本课题是研究基于单片机功能扩展的温控系统。系统用微机做上位机,设置各种控制参数和时间,用单片机做下位机,具体实施数据采集和控制。本文就各个模块的技术实现展开论述。 关键字:单片机;温控系统;RS232;PROTEL99 1 前 言 1.1 课程设计任务要求 1.数字温度计 用热电阻Pt100做温度传感器,采用惠斯登电桥测量电路,将随温度变化的热电阻变化量转换成模拟电压信号;用LM324设计放大电路;以12位串行模数转换器ADS7816将模拟电压信号转换成为数字信号;单片机将采集到的数字信号经过平滑处理、变换成温度量用数码管显示出来。 2.脉冲计数器 用单片机的内部计数器T0/T1对外部输入脉冲计数并用数码管显示出来。 3.定时时钟 用键盘设定当前时间并设定定时时间,数码管显示。到达设定的定时时间后峰鸣器输出振铃。数码管采用动态显示方式,以P2口输出段码,并用74LS373锁存器驱动数码管,用MC1413驱动位码。 4.交通灯控制程序 设计一个交通信号灯控制器,在十字路口每个入口处设置红、绿色信号 灯,红灯亮禁止通行,绿灯亮允许通行。用红、绿发光二极管作信号灯,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,用数码管显示45秒、25秒计时。在每次由绿灯亮到红灯亮的转换过程中,绿灯要闪烁亮3秒作为过渡,使行驶中的车辆有时间停到禁行线外。 1.2 课程设计软硬件环境 软件环境:Protel 99SE、 Keil C51、STC-ISP、WAVE6000 硬件环境:单片机开发板 1.3 课程设计的步骤 1.绘制实验原理图 2.生成PCB图 3.焊接电路板 4.编写实验程序 2.硬件电路设计 2.1 单片机基础电路和键盘设计 时钟电路: 复位电路: 键盘电路: 2.2上位机和下位机的连接 2.3 数码管显示系统 2.4 温度采集及模数转换系统 3.软件设计 3.1交通灯显示控制 if(flag==1) { num++; if(num == 20) //计时1s { num = 0; flg_tem=!flg_tem; count--; if(count=0count=4) { shine_flg = !shine_flg; //闪烁标志 } if(count==-1) { shine_flg = !shine_flg; count = 45; flag = !flag; //红绿灯切换标志 } } } 3.2数字温度计 if(flg_tem==0num==0) { recv_data = AD7816(); } A = recv_data0x000F; //低四位 D = (recv_data4)0x000F; //中间四位 C = (recv_data8)0x000F; //高四位 x=(C*16*16+D*16+A)/4; //转换成十进制并将数据范围//控制在0~1000 shi=x/100; //分别将各位分离出来显示 ge=(x%100)/10; xiao=x%10; disp_tem(); 3.3 定时时钟 void timer0_serv() interrupt 1 {… if(count_clk==-1) { count_clk=60; min++; //在定时中断里对分钟数+1 if(min==60) { min=0; hour++; if(hour==24) {hour=0;} } }…} 3.4键盘中断及脉冲计数 void counter() { EX0=1; //开中断 IT0=1; //init0选择边沿触发方式 back_menu=0; count_init=0; while(1) { disp_clk(0,count_init); if(back_menu==1) //返回主菜单 { count_init=0; back_menu=0; EX0=0; return; } } } 3.5 main函数设计 if(chose==0) { dela

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档