嵌入式系统课程设计作息时间控制器.docx

上传人:b****2 文档编号:509484 上传时间:2022-10-10 格式:DOCX 页数:30 大小:370.69KB
下载 相关 举报
嵌入式系统课程设计作息时间控制器.docx_第1页
第1页 / 共30页
嵌入式系统课程设计作息时间控制器.docx_第2页
第2页 / 共30页
嵌入式系统课程设计作息时间控制器.docx_第3页
第3页 / 共30页
嵌入式系统课程设计作息时间控制器.docx_第4页
第4页 / 共30页
嵌入式系统课程设计作息时间控制器.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

嵌入式系统课程设计作息时间控制器.docx

《嵌入式系统课程设计作息时间控制器.docx》由会员分享,可在线阅读,更多相关《嵌入式系统课程设计作息时间控制器.docx(30页珍藏版)》请在冰豆网上搜索。

嵌入式系统课程设计作息时间控制器.docx

嵌入式系统课程设计作息时间控制器

 

软件学院

课程设计报告书

 

课程名称嵌入式系统课程设计

设计题目作息时间控制器

专业班级

学号

姓名

指导教师

 

年月

1设计时间

2015.06.15—2015.06.19

2设计目的

《嵌入式系统课程设计》是软件工程专业(嵌入式软件方向)学生的专业实践课程,是学习《嵌入式系统》课程后必要的实践教学环节。

课程设计是检验学生是否掌握相关专业课程知识的重要手段,以学生为主体,充分调动学生的积极性和创造性,重视学生实际动手能力的培养。

通过本课程设计使学生加深理解、巩固课堂教学和平时实验内容,使学生初步具备基于C和ARM汇编应用开发的系统分析、系统设计、系统实现与测试的实际能力,强化学生的知识实践意识、提高动手能力,发挥学生的想象力和创新能力,从而培养工程应用型人才。

3设计任务

(1)以我校作息时间为蓝本,控制步进机模拟上下课打铃;

(2)作息时间可以程序调整,每到时间点蜂鸣器发声。

4设计内容

本系统采用STC90C516RD+单片机为核心,制作一个作息时间控制器,设计内容为通过软件编程的方法实现数码管显示时间,蜂鸣器到达提前定好的时间进行响动报时同时用8位7段LED数码管、键盘控制时间和蜂鸣器完成该系统,LED数码管可以显示小时、分钟和秒,键盘设有8个按键可以改变小时、分钟和秒,有走时准确、显示直观、运行稳定等优点。

4.1总体方案设计

本系统完成后,接通电源时,时间会自动在数码管校准并显示,可通过8个按键对相应的数码管显示的时间进行更改,8个按键分别为两行四列矩阵键盘,键盘第一列可改变小时、第二列改变分钟、第三列改变秒钟,蜂鸣器可进行报时,具体为当蜂鸣器到达系统指定时间时,蜂鸣器响动报警,当按下指定按键时蜂鸣器也可响动报警。

4.1.1需求规定

数码管可显示可调整的24小时时钟。

当时钟正常运行时,可调整时钟。

在时钟运行时,以8位数码管的高2位显示小时,4、5位显示分钟,低两位显示秒钟,3、6显示横线用以隔断数字。

可设定作息时间。

由于此作息时间控制系统主要应用与学校,考虑到冬、夏季作息时间的变更,可通过按键来调整作息时间。

在设定作息时间时并不影响时钟的正常运行,八位数码显示已设定好的作息时间,再通过小时、分钟和秒钟调整按键设定作息时间。

具有到时提示功能。

当设定的作息时间与实时时钟的时间相同时,蜂鸣器会发出几秒的提示音。

LED数码管:

通过对LED的使用来实现显示时间的显示。

按键:

通过对按键的使用来完成对实时时间的调整和对作息时间的调整。

蜂鸣器:

通过数码管显示的时间来控制蜂鸣器的响动。

具体硬件关系图如下图4-1所示。

图4-1硬件结构图

4.1.2核心部件选型

本系统采用STC90C516RD+单片机,该单片机是宏晶科技生产的单时钟/机器周期1T的单片机,是高速/低功耗/超强抗干扰的新一代8051系列单片机,指令代码完全兼容传统8051,但速度快8-12倍。

12时钟/机器周期和6时钟/机器周期可任意选择,内部集成MAX810专用复位电路,时钟频率在12MHz以下时,复位脚可直接接地。

蜂鸣器:

要求设定的时间到,蜂鸣器会响。

按键:

随时对当前时间进行调整。

要实现这一功能,可以接入键盘输入电路。

LED数码管:

本系统采用LCD12864数码管,led数码管(LEDSegmentDisplays)由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。

数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。

这些段分别由字母a,b,c,d,e,f,g,dp来表示。

4.1.3系统开发环境

单片机按键输入电路、单片机时钟电路、复位电路、LED显示器段码驱动电路、LED显示器位码驱动电路、8位LED显示电路、蜂鸣器电路。

作息时间控制器其硬件电路方框图如图4-2所示。

图4-2作息时间控制器其硬件电路方框图

4.2硬件设计

基于单片机的作息时间控制器,硬件电路有8个部分组成,即单片机按键输入电路、单片机时钟电路、复位电路、LED显示器段码驱动电路、LED显示器位码驱动电路、8位LED显示电路、蜂鸣器电路。

4.2.1硬件开发环境简介

STC90C516AD单片机是指令代码完全兼容传统的8051单片机,12时钟/周期和6时钟/周期可以任意选择。

芯片内置了64KB的FLASH,4352字节的RAM。

工作频率范围0~40MHz,共有输入输出引脚32个,有EEPROM功能,看门狗功能。

芯片内部集成MAX810专用复位电路,共有3个16位定时器/计数器,其中定时器0还可以当成2个8位定时器使用;外部中断4路,8路10位A/D转换。

该单片机引脚图如图4-3所示。

图4-3STC90C51单片机引脚图

4.2.2LED数码管模块设计

led数码管(LEDSegmentDisplays)由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的字样了。

一般情况下,单个发光二极管的管压降为1.8V左右,电流不超过30mA。

发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。

常用LED数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。

8位共阳极数码管引脚图如图4-4所示。

图4-48位共阳极数码管引脚图

4.2.3键盘模块设计

键盘:

两行四列矩阵键盘构成一个独立式键盘系统。

键盘带时钟的引脚图如图4-5所示。

图4-5键盘的引脚图

4.2.4蜂鸣器模块设计

蜂鸣器:

设计要求定时时间到,要有到时提示。

可以选择一只蜂鸣器(HA)作为三极管VT1的集电极负载,当VT1导通时,蜂鸣器发出呜叫声;VT1截止时,蜂鸣器不发声。

R5是限流电阻。

该蜂鸣器驱动电路如图4-6所示。

图4-6蜂鸣器引脚图

4.3软件设计

软件的设计即程序的编写。

程序主要包括一下几个部分:

主程序、LED时钟显示子程序、键盘判断与中断子程序。

在主程序中首先要对实时时钟和定时器进行初始化,利用函数为系统初始化一个初始时间。

再初始化开中断,然后进入一个主循环中,主循环中有两个判断部分,一个是不断的扫描独立按键,当有那个按键被按下后就会响应对应的操作,另一个部分是判断是在可以读取实时时钟的时间时,调用读取时间的函数读取芯片的时间,把读取的时间放到一个数组中,然后判断当前的时间是否和自己设定的作息时间是否一致,一致时便会执行响铃操作。

LED时钟显示子程序中,先初始化复位一个高电平,在执行写时间和读时间程序。

键盘判断中,先初始化变量,当按下按键时,延时,程序会判断是否按下按键,若只是抖动则回到等待区域,若判断为按下按键,则返回按下的数值。

中断子程序,先重置高八位和低八位的数值并给定初值,再循环设置标志位,到并设定循环数值。

4.3.1软件开发环境介绍

DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。

实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。

工作电压宽达2.5~5.5V。

采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。

DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。

本次设计中,使用DS1302提供的RAM区保存5个闹铃数据,达到掉电不丢失功能。

4.3.2主程序设计及流程图

(1)主程序:

voidmain(void)

{

unsignedcharnum;

Init_Timer0();

Ds1302_Init();

Ds1302_Write_Time();

while

(1)//主循环

{

num=KeyScan();//按键扫描

switch(num)

{

case7:

while(i--){DelayMs

(1);SPEAKER=!

SPEAKER;}i=500;break;

case8:

while(i--){DelayMs

(1);SPEAKER=!

SPEAKER;}i=500;break;

default:

break;

}

if(ReadTimeFlag==1)

{

ReadTimeFlag=0;

Ds1302_Read_Time();

TempData[0]=dofly_DuanMa[time_buf1[4]/10];

TempData[1]=dofly_DuanMa[time_buf1[4]%10];

TempData[3]=dofly_DuanMa[time_buf1[5]/10];

TempData[4]=dofly_DuanMa[time_buf1[5]%10];

TempData[6]=dofly_DuanMa[time_buf1[6]/10];

TempData[7]=dofly_DuanMa[time_buf1[6]%10];

TempData[2]=0x80;TempData[5]=0x80;

if((TempData[0]==0x3f)&&(TempData[1]==0x07)&&(TempData[3]==0x6d)&&(TempData[4]==0x6d)&&(TempData[6]==0x3f)&&(TempData[7]==0x3f))

{//07-55-00响铃

while(i--)

{DelayMs

(1);

SPEAKER=!

SPEAKER;

}

i=500;

}

if(((TempData[0]==0x3f)&&(TempData[1]==0x7f))&&(((TempData[3]==0x3f)&&(TempData[4]==0x3f))||((TempData[3]==0x66)&&(TempData[4]==0x6d))||((TempData[3]==0x6d)&&(TempData[4]==0x6d)))&&((TempData[6]==0x3f)&&(TempData[7]==0x3f)))

{//08-00-00响铃08-45-00响铃08-55-00响铃

while(i--)

{DelayMs

(1);

SPEAKER=!

SPEAKER;

}

i=500;

}

if(((TempData[0]==0x3f)&&(TempData[1]==0x6f))&&(((TempData[3]==0x4f)&&(TempData[4]==0x6d)&&(TempData[6]==0x3f)&&(TempData[7]==0x3f))||((TempData[3]==0x6d)&&(TempData[4]==0x6d)&&(TempData[6]==0x3f)&&(TempData[7]==0x3f))))

{//09-35-00响铃09-55-00响铃

while(i--)

{DelayMs

(1);

SPEAKER=!

SPEAKER;

}

i=500;

}

if(((TempData[0]==0x06)&&(TempData[1]==0x3f))&&(((TempData[3]==0x66)&&(Te

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

当前位置:首页 > 高中教育 > 高考

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

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