单片机课程设计

发布 2022-10-04 22:24:28 阅读 6124

《机器人入门》

2009年亚太大学生机器人大赛——胜利鼓乐。

课程名称:单片机课程设计。

系部: 自控系

专业班级:计算机控制20931

学生姓名: 陆小祥。

一、总体方案:

1.工作原理:

本设计采用stc89c52rc单片机作为本系统的控制模块。单片机可把由ds18b20、ds1302、at24c02中的数据利用软件来进行处理,从而把数据传输到显示模块,实现温度、日历和闹铃的显示。以lcd液晶显示器为显示模块,把单片机传来的数据显示出来,并且显示多样化。

在显示电路中,主要靠按键来实现各种显示要求的选择与切换。

2.总体设计:

设计总体框架图如图1

二、系统硬件设计(单元电路设计及分析):

1. stc89c52rc单片机最小系统:

最小系统包括晶体振荡电路、复位开关和电源部分。图2为stc89c52rc单片机的最小系统。

图2 最小系统电路图。

2.温度测量模块:

温度测量传感器采用dallas公司ds18b20的单总线数字化温度传感器,测温范围为-55℃~125℃,可编程为9位~12位a/d转换精度,测温分辨率达到0.0625℃,采用寄生电源工作方式,cpu只需一根口线便能与ds18b20通信,占用cpu口线少,可节省大量引线和逻辑电路。接口电路如图3所示。

图3 ds18b20测量电路。

3.时钟模块:

时钟模块采用ds1302芯片,ds1302是dallas公司推出的涓流充电时钟芯片内含有一个实时时钟/日历和31字节静态ram通过简单的串行接口与单片机进行通信实时时钟/日历电路提供秒分时日日期月年的信息每月的天数和闰年的天数可自动调整时钟操作可通过am/:

rst复位、i/o数据线、sclk串行时钟。时钟/ram的读/写数据以一个字节或多达31个字节的字符组方式通信。ds1302工作时功耗很低,保持数据和时钟信息时功率小于1mw,其接线电路如图4所示:

图4 时钟电路。

4. 存储器模块:

存储器采用atmel公司的at24c02芯片。该芯片带有2kb的串行coms eeprom,内部含有256个8位字节,可通过i2c总线对其接口进行读写操作,而且带有写保护功能。其接线图如图5所示。

图5 at24c02存储器电路。

5. lcd液晶显示模块:

lcd液晶显示模块采用lcd1602型号,具有很低的功耗,正常工作时电流仅2.0ma/5.0v。

通过编程实现自动关闭屏幕能够更有效的降低功耗。lcd1602分两行显示,每行可显示多达16个字符。lcd1602液晶模块内部的字符发生存储器(cgrom)已经存储了160个不同的点阵字符图形,通过内部指令可实现对其显示多样的控制,并且还能利用空余的空间自定义字符。

其接线如图6所示:

图6 lcd显示电路。

6.系统电源:

双电源设计是本设计的重点。220v交流转5v直流稳压电源会更加安全、实用。当没有交流电时,系统采用干电池供电;当接通交流电时,则电路自动切换到交流电供电,并且对干电池进行慢性充电。

电路图如图7:

图7 电源电路。

7.整体电路:

系统整体电路如图8 所示:

图8 系统总体电路图。

三、系统软件设计流程:

1.主程序流程如图9所示:

图9 系统主程序流程。

2.时间设定程序流程如图10所示:

图10 显示时间子程序流程。

3. 温度测量流程图如图11所示:

图11 温度测量程序流程图。

4.闹铃设定流程图如图12所示:

图12 闹铃设定程序流程图。

5. 生日设定流程图如图13所示:

图13 生日设定程序流程图。

四、程序:/实时时钟写入一字节(内部函数)

void ds1302inputbyte(uchar d)

uchar i;

acc = d;

for(i=8; i>0; i--)

/实时时钟读取一字节(内部函数)

uchar ds1302outputbyte(void)

uchar i;

for(i=8; i>0; i--)

return(acc);

/写入ds1302数据。

/参数说明:ucaddr --ds1302地址, ucdata--要写的数据 *

void write1302(uchar ucaddr, uchar ucda)

rst = 0;

clk = 0;

rst = 1;

ds1302inputbyte(ucaddr地址,命令

ds1302inputbyte(ucda写1byte数据

clk = 1;

rst = 0;

/读取ds1302某地址的数据。

uchar read1302(uchar ucaddr)

uchar ucdata;

rst = 0;

clk = 0;

rst = 1;

ds1302inputbyte(ucaddr|0x01地址,命令

ucdata = ds1302outputbyte读1byte数据

clk = 1;

rst = 0;

return(ucdata);

/获取时钟芯片的时钟数据到自定义的结构型数组。

void ds1302_gettime(systemtime *time)

uchar readvalue;

readvalue = read1302(ds1302_second);

time->second = readvalue&0x70)>>4)*10 + readvalue&0x0f); 由高低各四位组成,转bcd码为十进制码。

readvalue = read1302(ds1302_minute);

time->minute = readvalue&0x70)>>4)*10 + readvalue&0x0f);

readvalue = read1302(ds1302_hour);

time->hour = readvalue&0x70)>>4)*10 + readvalue&0x0f);

readvalue = read1302(ds1302_day);

time->day = readvalue&0x70)>>4)*10 + readvalue&0x0f);

readvalue = read1302(ds1302_week);

time->week = readvalue&0x70)>>4)*10 + readvalue&0x0f);

readvalue = read1302(ds1302_month);

time->month = readvalue&0x70)>>4)*10 + readvalue&0x0f);

readvalue = read1302(ds1302_year);

time->year = readvalue&0x70)>>4)*10 + readvalue&0x0f);

五、多功能数字时钟使用说明:

1) a(调整切换键):进行时间、闹铃以及生日的设置,调整内容切换。

2) b(调整加/生日设定):在时间显示界面中按a键后,进入时间调整。按b键对应闪烁内容加1;在时间显示界面中长按该键进入生日信息设定,按a键选择调整内容,按b键加1,c键减1,d键退出设定。

当设定生日到时,当日7点整第一次响铃提醒,以后每隔一小时整点提醒,直至当日晚上22点整最后一次提醒。(注意:生日到时闹铃和整点报时不起作用)。

3) c(调整减/日期提醒):在时间显示界面中按a键后,进入时间调整。按c键对应闪烁内容加1;在时间显示界面中长按该键进入日期提醒查看。

4) d(退出键/闹铃设定):在各种设定模式(包括时间、生日、闹铃设定)下,按该键退出设定;若在时间显示界面中短按该键,则进入闹铃、生日信息查看;长按则进行闹铃设定。(注意:

闹铃为整点时,整点报时不起作用,并且闹铃在任何时刻下只要到点都响铃)。

5) e(屏幕背光键):按下该键不放则屏幕背光。调整左上方的蓝色变阻器可调整lcd显示灰度;调整右上方的蓝色变阻器可调整lcd背光亮度。

6) f(复位键):按下该键系统复位,系统从头开始执行程序。如遇故障可按下该键进行系统复位。复位不会造成时间、生日和闹铃等信息的丢失。

注:系统在不进行任何操作时,10秒后会自动关闭屏幕,以达到省电环保的效果。此时按任意键可退出并返回显示。

六、测量及其结果分析:

1.基本部分测试与分析:

1)测试仪器:秒表、温度表、万用表。

2)基本要求部分的测试与分析:

系统上电后,首先显示欢迎词,接着进入显示时间和温度。按各功能键执行相应的功能。

显示时间时通过与秒表对比,测试的系统时钟走时准确,误差很小。

设定闹铃时间,当闹铃时间到时响铃。响铃长度为1分钟,期间按除e键(屏幕背光键)外的任意一键退出响铃。

显示温度与温度计对比,测试系统温度的精度。将温度传感器ds18b20和温度计放入不同的测试环境中进行测试,所得测试结果如表1所示。

表1 数字温度计与标准温度计测量值比较表:

由测试知,数字钟的输出与温度计值基本上相等,误差不大于0.5度。

上电后记录下时间,去掉220v和干电池电源,隔5分钟过再次通电,测得系统时钟仍旧走时准确。经测试,本系统的时钟掉电保护时间长达9分钟。

2.发挥部分测试与分析:

1) 系统可显示温度00.0~99.9摄氏度。

单片机课程设计

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

单片机课程设计

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

单片机课程设计

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