1、 1 单片机课程设计 报告 题目题目 : 电子时钟 姓名姓名 : 学号学号 : 班级班级 : 专业专业 : 学院学院 : 指导教师指导教师 : 2008 年年 12 月月 25 日日 2 一一 、实验要求实验要求 1. P1.3 接地,设置 p1.3 行上从左到右 4 个键依次为:切换键,校正键,加 1 键,确定键。 2. 切换键的功能:每按一次切换键显示“月份日期” 、 “时分” 、 “分秒” 。如 由“12.05”到“14.35”到“34.23“或相反,表示由 12 月 5 日切换到“14 点 35 分”再切换到“34 分 23 秒”或相反。 3. 校正键的功能: 第 1 次按下,校月,月
2、份闪烁,通过加 1 键校正月份。 第 2 次按下,校日,日期闪烁,通过加 1 键校正日期。 第 3 次按下,校时,小时闪烁,通过加 1 键校正小时数。 第 4 次按下,校分,分钟闪烁,通过加 1 键校正分钟数。 第 5 次按下,校秒,秒钟闪烁,通过加 1 键校正秒钟数。 4. 加 1 键的功能:闪烁的内容不进位加 1。校月时,月份显示为 112,校 日时,日期显示为 131,校时时,小时显示为 023,校分时,分钟显示为 059, 校秒时,秒显示为 059。 5. 确定键的功能:校正的内容生效,返回正常显示,在切换状态按下确定 键 ,返回正常显示。 6. 开机后从某一特定的时间开始显示,用第
3、2 个数码管的小数点以 1 秒的 周期闪烁,切换到日期显示时该小数点不闪烁,其他 3 个数码管的小数点不亮。 7. 按切换键时,始终任然走时。 8. 按校正键时,时钟继续走时,按确定键后按新设定的时间继续走时。 二、二、实验内容实验内容 1. 编写程序,完成上面要求,利用定时器中断和静态显示,实现电子钟走 时和校时。 2. 时间或日期显示用四个数码管分别显示时、分(分、秒)或月、天。显 示格式如下: 1 2 1 2 月 日 或 1 2 0 0 时 分 或 3 0 0 0 分 秒 3 三、三、资源分资源分配配 1、44H、43H、42H、41H、40H 五个地址单元分别存储秒、分、时、日、月。
4、2、30H、31H 作为缓显区。 3、2FH.0 作为校准状态指针。 4、50H 存放等键释放除键值。 5、51H 存 40H 按加键时作需加 1 的地址指针。 6、20H 校准对象指针,21H 中断次数指针,22H 切换指针。 7、P1.4 切换键,P1.5 校正键,P1.6 加键,P1.7 确定。 四、四、编程原理与思路编程原理与思路 电路原理图电路原理图 4 1、电子时钟正常走时 电子时钟的走时通过中断记时,中断时间到 1S 时,秒加 1,到 60S,秒重 新记时分加 1,分到 60,分清 0 时加 1,时到 24,时清 0 天加 1,天到 31,天清 0 月加 1,月到 13,月置 1
5、。有按键则进行按键处理,需显示的数送缓显区调用 显示子程序,中断返回,等待下次中断。 2、按键的判断 键的判断放到中断里面处理,人正常按一次键所需时间在 100ms 左右,中 断时间为 1/16S,在中断里面判键肯定不会漏键,判键的前提要等键释放,无键 或没放键不执行判键程序。正常的等键释放如:JNB P1.4 $。在中断里面这中方 法行不通, 如果你按键时间超过 1/16S, 当下次中断来临时, 程序还在等键处 (中 断里面) , 无法执行中断。 此处等键释放用以下几条指令实现 MOV A,P1; CJNE A,50H,NEXT0;NEXT0: MOV 50H,A (50H 存上次的键码,取
6、 P1 口,与 上次的键码比较,相等则表示没按键或没放键,不相等则有新的按键,并把这次 键码存下已便与下次的键码比较) 。 校正状态做总线,在此基础上分别判断各按键,2FH.0 做校正状态标志,第 一次按下校正键,建立校正标志,20H 做校正对象指针,20H 置 0。校正状态时, 每按一次校正键,20H 加 1,当 20H 等于 5 时清 0。校正时数码管闪烁,把前两 个数码管看成高位,后两数码管看成低位。当校月或时时,高位闪烁,校日、分 或秒时,低位闪烁,用 20H.0、20H.1 判断是哪个位闪烁,如: (20H.0)等与 1, 表示校正对象是日或分即低位闪烁,20H.2 单独用来判断秒的闪烁。 3、加键的处理 加键只在校正状态下起作用,非校正状态下按此键无效。每按一次加键,对 应的值加 1。50H 存月的地址,50H 加 20H 的内容