1、 单片机课程设计单片机课程设计 多功能电子时钟多功能电子时钟 学院名称学院名称: 专业班级专业班级: 学生姓名学生姓名: 学生学号学生学号: 一、设计目的一、设计目的 (1)能在 LED 显示器上实现正常的时分秒计时 (2)能通过键盘输入当前时间,并从该时间开始计时 (3)有校时、校分功能 (4)有闹时功能,闹时时间可以设定,通过指示灯表示 二、设计内容二、设计内容 该课程设计是利用 MCS-51 单片机内部的定时计数器、中断系统、以及行列键盘和 LED 显示器等部件,设计一个单片机电子时钟。设计的电子时钟通过数码管显示,并能通 过按键实现设置时间和暂停、启动控制等。 三、三、MCS-51 单
2、片机系统简介单片机系统简介 单片机应用系统由硬件系统和软件系统两部分组成。 硬件系统是指单片机以及扩展的存 储器、IO 接口、外围扩展的功能芯片以及接口电路。软件系统包括监控程序和各种应用程 序。在单片机应用系统中,单片机是整个系统的核心,对整个系统的信息输入、处理、信息 输出进行控制。 与单片机配套的有相应的复位电路、 时钟电路以及扩展的存储器和 IO 接口, 使单片机应用系统能够运行。 在一个单片机应用系统中,往往都会输入信息和显示信息,这就涉及键盘和显示器。在 单片机应用系统中, 一般都根据系统的要求配置相应的键盘和显示器。 配置键盘和显示器一 般都没有统一的规定,有的系统功能复杂,需输
3、入的信息和显示的信息量大,配置的键盘和 显示器功能相对强大,而有些系统输入/输出的信息少,这时可能用几个按键和几个 LED 指 示灯就可以进行处理了。 在单片机应用系统在中配置的键盘可以是独立键盘, 也可能是矩阵 键盘。显示器可以是 LED 指示灯,也可以是 LED 数码管,也可以是 LCD 显示器,还可以 使用 CRT 显示器。单片机应用系统中键盘一般用的比较多的是矩阵键盘,显示器用的比较 多的是 LED 数码管还 LCD 显示器。 四、设计方案四、设计方案 通过键盘输入,设置当前时间,并显示在 LCD 显示器上,键盘和 LED 显示通过键盘专 用芯片 HD7279A 进行控制, 7279A
4、也是 I2C 总线接口的芯片, 系统中采用并行口线模拟 I2C 实现 C8051F020 和 HD7279A 的通信。 采用 LCD 液晶显示器显示。而 LCD 液晶显示则耗能少,能够显示年、月、日、星期等 汉字,在显示方面更加灵活,而且改变显示时只要改变软件设计就可以,不用改变硬件电路 的设计,易于电路的功能扩展。电路的软件设计也很简单。另外,这种设计硬件更加简洁。 采用 LCD 液晶显示方案的缺点是在显示位数比较少时,价格略显昂贵。 时间显示格式为小时十位、小时个位-分十位、分个位-秒十位、秒个位。在处理过程 中加上了按键判断程序,能对按键处理,A 是进入时间设置,按 B 进入日历设置,按
5、 C 进 入闹钟设置,设置完毕按 D 退出。 五、程序五、程序 整个工程中一共有四个文件 main.c LCD12864.c key7279.c Clock.c。 首先是 main.c,程序如下: #include “c8051f020.h“ #include unsigned char flag=0; /设置标记 extern unsigned char h,m,s;/声明时,分,秒,原定义在 Clock.c 文件中 unsigned char ch=0,cm=0,cs=0;/定义闹钟的 时,分,秒 unsigned int year=2013,mouth=12,day=31;/定义年,月,
6、日 int Count1s=1000; /定义倒数时间为 1S unsigned char newday=0;/新的一天 void Delay1us(unsigned char us) while (us) _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); -us; void SYSCLK_Init (void) int i; / delay counter OSCXCN = 0x67; / start external oscillator with / 18.432MHz crystal for (i=0; i 8; / set Timer0 to overflow in 1ms TL0 = -SYSCLK/1000; TR0 = 1; / START Timer0 IE|= 0x2; void rili(unsigned ch