《学习情境五 电子时钟设计与制作》由会员分享,可在线阅读,更多相关《学习情境五 电子时钟设计与制作(21页珍藏版)》请在金锄头文库上搜索。
1、学习情境五 电子时钟设计与制作知 识识 目 标标1.掌握单片机DS1302寄存器、指令、读写操作时序; 2.掌握C语言中的结构体、共用体、枚举、typedef用法等内容; 3.理解定时器中断的多任务分时调 度原理; 4.理解源文件和头文件之间的关系,以及外部函数、变量声明作用; 5.掌握多文件、模块化编程方法。 能 力 目 标标1.能熟练应 用多任务调 度、多文件编程的方法; 2.能熟练使用单片机实训 板、程序下载、软硬仿真等; 3.能熟练使用DS1302,进行日历、时间设 置; 4.能分析独多任务调 度、多文件的程序; 6.能绘制综合项目的程序流程图。 1.能熟练应 用多任务调 度、多文件编
2、程的方法;【训练项目5-1】独立键盘系统设计与制作一、项目描述在Proteus仿真软件和单片机实训板上,采用DS1302时钟芯片、DS18B20温度传感器、LCD1602、单片机等元器件构成一个带温度测量的简易万年历,要求能在液晶屏上显示年月日、星期、时间和温度,并能通过键盘实现时间调整、闹钟设置。二、项目实训仪器、设备及实训材料工具、设备 和耗 材数量工具、设备 和耗材数量工具、设备 和耗材数量电脑1台51单片机下载线和USB线1根杜邦导线8PKeil uVision41套晶振12M1只AT89S51/STC60S21片Proteus7.5软件1套单片机实训 板1块稳压电 源1台DS1302
3、时钟 芯片1个DS18B20温度传感器1个LCD16021片四、思考分析(1)设置上、下限温度报警功能。(2)以红外遥控器作为键盘,实现时间调整和闹钟设置。5.1 DS1302芯片工作原理及应用 X1和X2为32.768kHz晶振接入端。 GND为地。 RST为复位端,高电平时允许I/O端进 行数据传输,低电平则禁止数据传送且使 I/O端高阻状态。 I/O为串行数据输入、输出端,所有输 入和输出数据的传送顺序均以最低位LSB 开始,最高位MSB结束。 SCLK为同步时钟脉冲端,其上升沿将 I/O端数据按位写入DS1302,下降沿使 DS1302按位输出数据至I/O端。 VCC2、VCC1为主电
4、源和备份电源, 当主源VCC2大于备用电源VCC1+0.2V时 ,由VCC2对芯片供电。5.1.2 DS1302寄存器和读写操作(a)DS1302读操作时序(b)DS1302写操作时序5.2 结构所谓结构变量就是把多个相同或不同类型的变量结合在一起 形成一个组合变量,简称结构。5.2.1 结构的定义和引用struct 结构名 结构成员说明 ;结构成员说明的格式为 类型标识符 成员名;5.2.2结构数组结构数组的定义:若数组中的每个元素都是具有相同结构类型的结构变量,则称该数组为结构数组。结构数组与变量数组的不同之处,就在于结构数组成的每一个元素,都是具有同一个结构类型的结构变量。它们都具有同一
5、个结构类型,都含有相同的成员项。5.2.3 指向结构类型数据的指针一个指向结构类型数据的指针,就是该数据在内存中的首地址。也可以设一个指针变量,把它指向一个结构数组,此时该指针变量的值就是结构数组的起始地址。1. 指向结构变量的指针变量struct 结构类型名 *指针变量名;或struct 结构成员说明*指针变量名;2. 指向结构数组的指针变量struct 结构数组名 *结构数组指针变量名;或struct 结构成员说明 *结构数组指针变量名;5.3 共用体共用体是C语言的构造数据类型数据结构之一。它与数组、结构等一样,也是一种比较复杂的构造数据类型。定义共用体类型的一般格式为 union 共用
6、体类型标识符 类型说明符 变量名; ; 说明共用体变量的一般格式为 union 共用体类型标识符 共用体变量名表;5.4 枚举在C语言中,用做标志的变量通常只能被赋予下述两个值的一个:True(1)或Flase(0)。但由于疏忽,有时会将作为标志使用的变量,赋予了除True(1)或Flase(0)以外的值。另外,这些变量通常被定义成int数据类型,从而使它们在程序中的作用模糊不清。如果先定义标志类型的数据变量,然后指定这种被说明的数据变量只能赋值为True或Flase,不能赋予其他值,就可以避免上述情况的发生。枚举(enum)数据类型正是因为这种需要而产生的。1.枚举的定义和说明enum 枚举
7、名枚举值列表变量列表;枚举的定义和说明也可以分成两句完成,即enum 枚举名 枚举值列表;enum 枚举名 变量列表;例如:enum daySun,Mon,Tue,Wed,Thu,Fri,Satd1,d2;或enum daySun,Mon,Tue,Wed,Thu,Fri,Sat;enum day d1,d2;2.枚举变量的取值枚举列表中,每项符号代表一个整数值。在默认情况下,第一项取值为0,第二项取值为1,第三项取值为2,依次类推。此外,也可以通过初始化,指定某些项的符号值。某项符号值初始化后,该项后续各项符号值随之依次递增,例如:enum directup,down,left=10,righ
8、t;则C编译器将up赋值为0,将down赋值为1。由于left被初始化为10,则right的值为11。5.5 typedef的用法typedef 类型声明,是为现有类型创建一个新的名字,或称为类型别名,例如:typedef long Blockno,*Blockptr;typedef struct double r,theta; Complex;声明之后,下述形式Blockno b;extern Blockptr bp;Complex z,*zp;【训练项目5-2】带远程监控的万 年历设计与制作一、项目描述在Proteus仿真软件和单片机实训板上,采用DS1302时钟芯片、DS18B20温度传
9、感器、LCD1602、MAX232、单片机等元器件构成一个带远程监控的万年历,要求不仅能在液晶屏上显示年月日、星期、时间和温度,并能通过键盘实现时间调整、闹钟设置;而且能通过上位机软件调整时间、设置闹钟、采集温度。二、项目实训仪器、设备及实训材料工具、设备 和耗 材数量工具、设备 和耗材数量工具、设备 和耗材数量电脑1台51单片机下载线和USB线1根杜邦导线8PKeil uVision41套晶振12M1只AT89S51/STC60S21片Proteus7.5软件1套单片机实训 板1块稳压电 源1台DS1302时钟 芯片1个DS18B20温度传感器1个LCD16021片四、思考分析(1)绘制本项目的程序流程图。(2)采用AT24C02保存设置的闹钟时间。