《单片机应用系统设计》课程设计报告格式1Word文档下载推荐.docx

上传人:b****2 文档编号:15155959 上传时间:2022-10-28 格式:DOCX 页数:23 大小:341.85KB
下载 相关 举报
《单片机应用系统设计》课程设计报告格式1Word文档下载推荐.docx_第1页
第1页 / 共23页
《单片机应用系统设计》课程设计报告格式1Word文档下载推荐.docx_第2页
第2页 / 共23页
《单片机应用系统设计》课程设计报告格式1Word文档下载推荐.docx_第3页
第3页 / 共23页
《单片机应用系统设计》课程设计报告格式1Word文档下载推荐.docx_第4页
第4页 / 共23页
《单片机应用系统设计》课程设计报告格式1Word文档下载推荐.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

《单片机应用系统设计》课程设计报告格式1Word文档下载推荐.docx

《《单片机应用系统设计》课程设计报告格式1Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《《单片机应用系统设计》课程设计报告格式1Word文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。

《单片机应用系统设计》课程设计报告格式1Word文档下载推荐.docx

(3)通过4个键实现温度上限和下限设置。

发挥任务:

实现一个时钟,显示时,分秒,并可以设置时间。

2.、设计要求

(1)熟悉STC89C52单片机及其开发环境;

熟悉汇编语言或C51程序设计;

(2)掌握STC89C52单片机最小系统、按键电路、字符液晶显示电路的设计;

掌握DS18B20编程方法,学会看数据手册;

掌握1602字符液晶编程方法;

掌握单片机时钟中断的编程方法;

熟悉项目设计流程;

(3)熟悉硬件软件调试的方法;

(4)设计报告中详细写出硬件电路设计方案、画出软件流程图并总结调试中遇到的问题及解决方法。

三、设计报告撰写规范

单片微机应用系统设计总结报告正文,主要含以下内容(硬件、软件各部分内容也可组合起来进行撰写说明):

1.系统总体设计方案(画出系统原理框图、方案的论证与比较等内容);

2.硬件系统分析与设计(各模块或单元电路的设计、工作原理阐述、参数计算、元器件选择、完整的系统电路图、系统所需的元器件清单。

等内容);

3.软件系统分析与设计(各功能模块的程序设计流程图与说明、软件系统设计、软件抗干扰措施、完整的程序等内容);

4.系统仿真调试与参数测量(使用仪器仪表、故障排除、电路硬件和软件调试的方法和技巧、指标测试的参数和波形、测量误差分析);

5.总结(本课题核心内容及使用价值、电路设计、软件设计的特点和选择方案的优缺点、改进方向和意见等);

6.按统一格式列出主要参考文献。

一、系统总体方案

 

二、单片机概述

STC89C52特性

STC89C52RC单片机:

8K字节程序存储空间;

512字节数据存储空间;

内带2K字节EEPROM存储空间;

可直接使用串口下载;

AT89S52单片机:

256字节数据存储空间;

没有内带EEPROM存储空间;

参数

1.增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051.[2]

2.工作电压:

5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)

3.工作频率范围:

0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz

4.用户应用程序空间为8K字节

5.片上集成512字节RAM

6.通用I/O口(32个),复位后为:

P0/P1/P2/P3是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。

7.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片

8.具有EEPROM功能

9.共3个16位定时器/计数器。

即定时器T0、T1、T2

10.外部中断4路,下降沿中断或低电平触发电路,PowerDown模式可由外部中断低电平触发中断方式唤醒

11.通用异步串行口(UART),还可用定时器软件实现多个UART

12.工作温度范围:

-40~+85℃(工业级)/0~75℃(商业级)

13.PDIP封装

三、温度检测电路

、DS18B20温度采集时序、电路图和温度采集、转换编程。

DS18B20特性:

①、独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。

②、测温范围-55℃~+125℃,固有测温误差(注意,不是分辨率,这里之前是错误的)0.5℃。

③、支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。

④、工作电源:

3~5V/DC(可以数据线寄生电源)

⑤、在使用中不需要任何外围元件

⑥、测量结果以9~12位数字量方式串行传送

⑦、不锈钢保护管直径Φ6

⑧、适用于DN15~25,DN40~DN250各种介质工业管道和狭小空间设备测温

⑨、标准安装螺纹M10X1,M12X1.5,G1/2”任选

⑩、PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。

//*****************************************************

voiddisplay_set(void)//显示温度上下限界面

{

lcd1602_string(1,0,str1);

lcd1602_char(2,1,'

T'

);

lcd1602_char(2,2,'

H'

lcd1602_char(2,3,'

:

'

if((SET_mode==1)&

&

(keep%2==1))

{

lcd1602_char(2,4,'

'

lcd1602_char(2,5,'

}

else

lcd1602_char(2,4,disdata[15]);

lcd1602_char(2,5,disdata[14]);

lcd1602_char(2,7,'

C'

lcd1602_char(2,6,0xdf);

lcd1602_char(2,9,'

lcd1602_char(2,10,'

L'

lcd1602_char(2,11,'

if((SET_mode==2)&

lcd1602_char(2,12,'

lcd1602_char(2,13,'

lcd1602_char(2,12,disdata[17]);

lcd1602_char(2,13,disdata[16]);

lcd1602_char(2,15,'

lcd1602_char(2,14,0xdf);

}

/*****************读取即时温度********************************/

voidreadtemp(void)

{

tmpchange();

tmp();

/*****************显示即时温度********************************/

voidshowtemp(void)

{

write_stringtable(0,0,"

temperature:

"

write_date(temp/100+0x30);

write_date(temp%100/10+0x30);

write_date('

.'

write_date(temp%10+0x30);

DS18B20D程序:

#include"

AT89X51"

#include"

DS18B20.H"

#defineucharunsignedchar

#defineuintunsignedint

sbitDS=P2^4;

//defineinterface

uinttemp;

//variableoftemperature

ucharflag1;

//signoftheresultpositiveornegative

//****************************************************************

staticvoiddelay(uintcount)//delay

uinti;

while(count)

i=200;

while(i>

0)

i--;

count--;

///////功能:

串口初始化,波特率9600,方式1///////

voidInit_Com(void)

TMOD=0x20;

PCON=0x00;

SCON=0x50;

TH1=0xFd;

TL1=0xFd;

TR1=1;

//读一次温度,防止运行程序时读出85摄氏度

delay(400);

voiddsreset(void)//sendresetandinitializationcommand18B20复位,初始化函数

DS=0;

i=103;

0)i--;

DS=1;

i=4;

bittmpreadbit(void)//readabit读1位数据函数

bitdat;

i++;

//i++fordelay

dat=DS;

i=8;

while(i>

return(dat);

uchartmpread(void)//readabytedate读1字节函数

uchari,j,dat;

dat=0;

for(i=1;

i<

=8;

i++)

j=tmpreadbit();

dat=(j<

<

7)|(dat>

>

1);

//读出的数据最低位在最前面,这样刚好一个字节在DAT里

return(dat);

voidtmpwritebyte(uchardat)//writeabytetods18b20向1820写一个字节数据函数

ucharj;

bittestb;

for(j=1;

j<

j++)

testb=dat&

0x01;

dat=dat>

1;

if(testb)//write1

i++;

//write0

voidtmpchange(void)//DS18B20beginchange开始获取数据并转换

dsreset();

delay

(1);

tmpwritebyte(0xcc);

//addressalldriversonbus写跳过读ROM指令

tmpwritebyte(0x44);

//initiatesasinglete

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 成考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1