单片机课程设计

发布 2022-10-04 23:38:28 阅读 2263

单片机原理及应用》课程设计实验报告。

学年学期:2014-2015第1学期。

专业班级:12级自动化b

指导教师:徐敏、关健生。

设计时间:第17周。

学时周数:每班/周。

一、设计目的(基于ds18b20的数字温度计设计)

课程设计是单片机课程教学的最后一个环节,是对学生进行全面的系统的训练,让学生把学过的比较零碎的知识系统化,真正的能够把学过的知识落到实处,能够开发简单的系统,也进一步激发了学生再深一步学习的热情,进一步掌握和利用c语言进行单片机程序设计的能力,熟练掌握键盘、显示、单总线,温度传感器ds18b20等知识点。

二、设计任务及要求。

本课程设计的题目设计内容自选,学生可以根据平时的观察,了解单片机实验的应用系统,弄清其结构和功能,结合单片机课程及其相关的知识,充分发挥自身的想象力和创造力,自行选定设计项目,但总体应达到以下要求:

1、用89c51cpu,12m时钟,常规的上电和手动复位电路

2、包括3×4矩阵键盘。

3、lcd显示显示器及接口。

4、一路蜂鸣器输出。

5.至少有1路输入信号,可以是模拟量或数字量。

三、设计项目简介。

本设计以检测温度并显示温度提供上下限报警为目的,按照系统设计功能的要求,确定系统由5个模块组成:单片机主控器,测温电路,按键电路,显示电路,报警电路。

1.单片机模块:主要实现数据的处理,输出执行,报警设置功能以及矩阵键盘的使用。

通过从ds18b20读取的温度超过上下限的初始值时候,调用报警程序进行报警。通过按键来改变上下限的初始值;

2. 温度传感模块:主要功能是通过ds18b20对温度的采集及将测量的温度值读到单片机内,并在lcd1602上显示出来。

3. 显示模块:可以显示实时的温度值以及设置的上下限。

4、电路原理图。

(1)**电路图。

(2)实际电路图。

五、系统功能描述。

1.运用ds18b20将测量温度值读到单片机内,将其在lcd1602上显示出来。

2.利用3*4矩阵键盘设定温度值的上下限,并在lcd上显示出来。

3.将读进来的温度和设置的上下限值进行比较,若测量温度值超出上下限,就调用报警程序进行报警;若测量温度值在设定范围之内,则不报警。

4.当温度变化时,读取温度值并在lcd上显示。

六、程序框图。

1)系统框图。

2)主程序流程图。

2)lcd初始化程序框图。

4)温度传感器ds18b20初始化程序框图。

7、程序清单。

#include <>

#include <>

#define uchar unsigned char

#define uint unsigned int

uchar buf1;

uchar buf2;

uchar buf3;

uchar tt;

uchar n=0键顺序吗。

uchar dis_buf显示缓存。

uchar temp;

uchar key;

uchar enter;

void delay0(uchar xx*0.14ms

sbit lcd_rw = p2^5;

sbit lcd_rs = p2^6;

sbit lcd_en = p2^7;

sbit dq=p3^7;

sbit rq=p1^5;

uchar data disdata[5];

uint tvalue;//温度值。

uchar tflag;//温度正负标志。

uchar cdis1[16] =

uchar cdis2[16] =

uchar cdis3[16];

#define delaynop();

* 延时子程序 */

void delay(uchar x)

uchar j;

while((x--)0)

*检查lcd忙状态*/

bit lcd_busy()

*写指令数据到lcd*/

void lcd_wcmd(uchar cmd)

while(lcd_busy())

lcd_rs = 0;

lcd_rw = 0;

lcd_en = 0;

_nop_()

_nop_()

p0 = cmd;

delaynop();

lcd_en = 1;

delaynop();

lcd_en = 0;

*写显示数据到lcd*/

void lcd_wdat(uchar dat)

while(lcd_busy())

lcd_rs = 1;

lcd_rw = 0;

lcd_en = 0;

p0 = dat;

delaynop();

lcd_en = 1;

delaynop();

lcd_en = 0;

* lcd初始化设定*/

void lcd_init()

delay(15);

lcd_wcmd(0x3816*2显示,5*7点阵,8位数据。

delay(5);

lcd_wcmd(0x38);

delay(5);

lcd_wcmd(0x38);

delay(5);

lcd_wcmd(0x0c显示开,关光标。

delay(5);

lcd_wcmd(0x06移动光标。

delay(5);

lcd_wcmd(0x01清除lcd的显示内容。

delay(5);

* 设定显示位置*/

void lcd_pos(uchar pos)

lcd_wcmd(pos | 0x80); 数据指针=80+地址变量。

* 键扫描子程序 */

void keyscan(void)

*判断键是否按下*/

void keydown(void)

{ p1=0xf0;

if(p1!=0xf0) /判断按键是否按下如果按钮按下会拉低p1其中的一个端口。

delay(10);

if(p1!=0xf0)

keyscan();

p1=0xf0;

while(p1!=0xf0);

if(dis_buf=='a')

enter=1;

if(enter==0)

if(n==4)

n=0;if(dis_buf!='b')

单片机课程设计

可变程序控制器是集微机技术 自动化技术 通讯技术于一体的通用工业控制装置。它可靠性强 性能 比高 使用方便,已在工业控制的各个领域里得到了极为广泛的应用,成为实现工业自动化的一种强有力的工具 1 plc的定义有许多种。国际电工委员会 iec 对plc的定义是 可编程控制器是一种数字运算操作的电子系统...

单片机课程设计

目录。内容提要2 关键词2引言3 一 硬件电路设计3 一 电路板原理3 二 电路元器件3 二 软件设计3 一 秒钟设计方案3 二 时钟设计方案4 结语7单片机时钟设计。内容摘要 一 在实验板上用动态扫描显示00 59秒钟,具体要求如下 一 6m晶振 二 l9 l10显示00 59十进制数并循环,间隔...

单片机课程设计

1 选题背景。1.1 家庭智能防盗报警系统设计的背景及目的。随着经济的发展,人们对防盗 防劫 防火保安设备的需求量大大增加。针对偷盗 抢劫 火灾 煤气泄漏等事故进行检测和报警的系统,其需求也越来越高。家居智能是以家为平台,兼备建筑 自动化,智能化于一体的高效 舒适 安全 便利的家居环境。自动化的家居...