- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)