2022年单片机电子时钟.docx
《2022年单片机电子时钟.docx》由会员分享,可在线阅读,更多相关《2022年单片机电子时钟.docx(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品学习资源单片机原理与应用课程设计课题名称:数字时钟的设计与实现班级: 08 电子信息工程学号:指导老师:信息工程系题目:数字时钟的设计与实现欢迎下载精品学习资源一功能要求:1用单片机和 6 位 LED 数码管显示时、分、秒,实现从 00 时 00分 00 秒-23 时 59 分 59 秒循环运行;2用按键实现时、分、秒的调整;3. 整点提示: 0、1、2 23 和短蜂鸣;4. 省电功能:关闭显示;5. 定时设定提示:时间到时发出五次蜂鸣声6. 秒表功能:显示 XX 分 XX 秒 XX按“复位” 键:显示 00 分 00 秒 00;按“启动” 键:从 00 分 00 秒 00 开头计时按“停
2、止” 键:显示实际计时 XX 分 XX 秒 XX ;二硬件设计要求:1. 用伟福 6000 试验装置上 8255 的 A 囗作显示 段码锁存器 , B 囗作位码锁存器,利用发的试验器材6 位 LED 数码管显示时、分、秒;2. 利用伟福 6000 试验装置上 8255 的 B 囗的 6 根位码输出线和8255C 囗中的 PC0 作按键的输入囗线 ,实现最多 6 个按键的识别, 作为实现上述功能要求的硬件保证;3. 伟福 6000 试验装置上供应应当课题的硬件是: AT89C51 单片机包括 P1 囗、P3 囗、8 位可编程並行 I/O 囗 8255包括 A 囗、B 囗、C 囗、地址译码电路、蜂
3、码器及直流电源;4. 本次设计供应应各组的器材有:欢迎下载精品学习资源1印刷电路板一块27406 集成电路 3 片3LED 数码管 6 个41K 排阻 2 个, 4.7K 电阻一个;540 芯 IC 插座 2 个、14 芯 IC 插座 3 个6按键 6 个7焊锡、导线假设干;三软件设计仅供参考 :1. 主程序流桯图欢迎下载精品学习资源2. 显示子程序的设计:1釆用十进制 BCD2显示缓冲区的安排3要显示的数据送显示缓冲区4把显示的数据置换出段码5送段码和位码,进行显示欢迎下载精品学习资源6延时3. 定时中断服务子程序的设计欢迎下载精品学习资源1利用定时器 T0 定时 10 毫秒,累计到 1 秒
4、时秒计数加 1,累计到 60 秒时分计数加 1,累计到 60 分时时计数加 1,累计到 24 小时从头开头;2留意爱护现场和复原现场3留意设置毫秒、秒、分、时的存放单元欢迎下载精品学习资源四、软件仿真欢迎下载精品学习资源仿真部分由 Protues 实现; Protues 可以嵌入单片机的二进制代码,便于程序调试;本次仿真的电路图如下所示:其中,按键为输入电路,为行列式设计,行线接入8255 芯片的 PC0 口,列线分别对应接入 8255 芯片的 PB0PB3 口,与数码管的位选线共享端口;数码管为输出电路;本次试验一共要使用6 个数码管,以动态显示方式轮番输出字符, 6 个数码管的段码线相互并
5、联后接入8255 芯片的 PA 端口, a、b、c、d、e、f、g 端口分别连接 PA0PA6 端口,在 8255 芯片引脚和段码线之间分别一一串联7406 芯片、并联一个排阻以供应鼓励,使数码管发亮;位选线就以数码管的接地线组成,从时十位、时个位、分十位、分个位、秒十位、秒个位分别接入 8255 芯片的 PB0PB5 端口,其中 PB0PB3 这四个端口分别并联上四个按键; 同理, 每个引脚和 8255 芯片之间都一一串联上 7406 芯片和并联上排阻;位选线负责选取某一时间片要显示哪一个数码管,显示间隔由源程序打算;五、焊接本次试验由于没有供应8051 芯片、 8255 芯片;上述芯片均由
6、伟福试验箱供应,焊接的时候需要在万用板上面预留PA、PB 接线口;另外, 万用板上面同时需要预留电源的正负极、PC0 口接线,共计17 个接线口;由于万用板的大小的限制及芯片引脚定义的影响,实际上的电路图不会和仿真软件的电路图完全一样,不过大体上仍是一样的;仍有,本次焊接实际上需要比较多的电线,特殊是数码管部分,由于相邻引脚特别贴近,在焊接的时候要特别留心,谨防相邻两点短路;在焊接完成后,由于背板上面线路众多,需要用胶纸固定整理,防止导线脱落;焊接完成后,万用板上面已经有相应的接线,于是进行硬件实现部分;欢迎下载精品学习资源六、硬件实现本次硬件实现部分由伟福 Lab6000 试验箱供应 805
7、1 芯片和 8255 芯片,分别连接万用板相应的接线;由伟福的 Wave6000 软件向试验箱上面的 8051 芯片烧入时钟的程序;另外, 电源的正负极也是由 Lab6000 供应;电路板中有6 个按键,不过实际上使用的有4 个,就是离PA、PB 连接端口较远的4个起作用, 离 PA、PB 连接端口较近的两个没有定义;从远离端口的按键开头依次编号K1 、K2 、K3 、K4 ,每个按键都有如下功能:1当先按 K1的时候,系统就进入调剂时间状态,数码管上就显示时钟;K2 、K3 、K4 的功能依次为挑选调整的单元时、分、秒,单元数值加 1,退出调整状态, 单元数值减 1;2当先按 K2 的时候,
8、系统不作出任何反应,等待用户按K1 、K3 、K4 ;3当先按 K3 的时候,系统就进入省电模式,数码管熄灭,然后按K1 、K2 、K3 、K4任意一键即可点亮数码管并复原到上次的显示状态;4当先按 K4 的时候,系统就进入秒表状态,数码管上面就显示秒表;K1 、K2 、K3 、K4的功能依次为切换至时钟、显示暂停变化内部连续计时或者数码管连续变化、复位清零、暂停计时;七、程序全部程序如下所示ORG0000H AJMPMAINORG000BH;T0的中断入口AJMPIT0PMAIN : MOVSP,#70H;设置堆栈MOV36H,#00H;秒MOV37H,#00H;分MOV38H,#00H;时
9、MOV43H,#99H;给闹钟一个初值MOVA,#89H;工作方式MOVDPTR,#0FF7FH ;MOVXDPTR,A;工作方式MOVTMOD,#01H;设 T0 为方式 1初始状态MOV39H,#100;装入中断次数SETBET0;答应 T0 申请中断SETBEA;总中断答应MOVTH0,#0D8H;给 T0 装入计数初值MOVTL0,#0F0H;START: SETBTR0;启动 T0MOV3AH,#36H;给数据处理一个初值欢迎下载精品学习资源LCALLDATAT;数据处理LCALLDISPLAY;显示MOVA,38H;判定闹钟的时CJNEA,43H,KEYI;不相等就跳MOVA,37
10、H;判定闹钟的分CJNEA,42H,KEYI;MOVA,36H;判定闹钟的秒CJNEA,41H,KEYI;CLRP1.0;启动蜂鸣KEYI:LCALLKS1;判定有没键按下判定键按下?JZLK1;有按下,是抖动?LJMPSTART;回主程序LK1:LCALLDIRLCALLDIR;停一下防抖动LCALLKS1JZLK2; LJMPSTART;再检查有没键按下 有按下就扫描并处理回主程序LK2:ACALLLK;扫描键扫描MOV40H,#00H;按键次数LK3:LCALLKS1;是否松手松手检测JZLK3;MOVA,3DH;扫描得来的键位JBAcc.0,CHTIMEI ;从左到右数键1调时主 菜单
11、JBAcc.1,CLOCKI ;闹钟JBAcc.2,SAVEI;省电JBAcc.3,WATCHI ;秒表LJMPSTART;CHTIMEI:LJMPCHTIME;调时 入口地址CLOCKI :LJMPCLOCK;闹钟 入口地址SAVEI :LJMPSAVEWATCHI :LJMPWATCH;省电 入口地址秒表 入口地址CHTIME: CLRTR0;暂停时钟时钟调时 -功能MOV3AH,#36H;给数据处理一个初值LCALLDATAT;数据处理LCALLDISPLAY;显示LCALLKS1;判定有没键按下判定键按下?JZLK4;有按下,是抖动?LJMPCHTIME;返回调时LK4:LCALLDI
12、R;停一下调时防抖动LCALLDIR;LCALLKS1;再检查有没键按下欢迎下载精品学习资源JZLK6;有按下就扫描并处理LJMPCHTIME;返回调时LK6:LCALLLK;扫描键LK5:LCALLKS1;JZLK5;是否松手MOVA,3DH;扫描得来的键位JBAcc.0,XUANW;从左到右数键1选位调时菜单 JBAcc.1,ADDBCD ;加 1JBAcc.2,OUT;退出JBAcc.3,SUBCD;减 1LJMPCHTIME;返回调时XUANW: MOVA,#36H;选位的初值调时选位INC40H;累加偏移量ADDA,40H;CJNEA,#39H,CHTIME ;判定是否选位过度OUT
13、:LJMPSTART;回主程序调时退出ADDBCD: MOVA,#36H;操行位初值调时加 1ADDA,40H;MOVR0,A;求出操作位INCR0;+1LJMPCHTIME;返回调时SUBCD: MOVA,#36H;操行位初值调时减 1ADDA,40H;求出操作位MOVR0,A;DECR0;-1LJMPCHTIME;返回调时CLOCK: MOV41H,#00H;闹钟初值闹钟 -功能MOV42H,#00H; MOV43H,#00H;CLOCK1: MOV3AH,#41HLCALLDATAT; LCALLDISPLAY; LCALLKS1; JZLK14; LJMPCLOCK1;给数据处理一个初
14、值数据处理显示判定有没键按下 有按下,是抖动?返回闹钟判定键按下?LK14:LCALLDIR; LCALLDIR;LCALLKS1;停一下再检查有没键按下闹钟防抖动JZLK16;有按下就扫描并处理欢迎下载精品学习资源LJMPCLOCK1;返回闹钟LK16:LCALLLK;扫描键LK15:LCALLKS1;是否松手JZLK15;MOVA,3DH;扫描得来的键位JBAcc.0,XUANW1 ;从左到右数键 1选位闹钟菜单 JBAcc.1,ADDBCD1 ;加 1JBAcc.2,OUT1;退出JBAcc.3,SUBCD1 ;减 1LJMPCLOCK1;返回闹钟A,#41H;选位的初值闹钟选位;累加偏
15、移量XUANW1: MOVINC40HADDA,40H;判定是否选位过度CJNEA,#44H,CLOCK1 ;返回闹钟OUT1:LJMPSTART;回主程序闹钟退出ADDBCD1:MOVA,#41H;操行位初值闹钟加 1ADDA,40H;求出操作位MOVR0,A;INCR0;+1LJMPCLOCK1;返回闹钟SUBCD1: MOVA,#41H;操行位初值调时减 1ADDA,40H;求出操作位MOVR0,A;DECR0;-1LJMPCLOCK1;返回闹钟SAVE:MOVA,#0FFH;段码置 1省电功能MOVDPTR,#0FF7CH ;MOVXDPTR,A;黑屏省电LCALLKS1;判定有没键按
16、下判定键按下?JZLK24;有按下,是抖动?LJMPSAVE;返回省电LK24:LCALLDIR;停一下省电防抖动LCALLDIR;LCALLKS1;再检查有没键按下JZLK25;有按下就扫描并处理LJMPSAVE;返回省电LK25:LCALLKS1;是否松手松手检测JZLK25;LJMPSTART;回主程序省电退出欢迎下载精品学习资源WATCH: MOV44H,#00H;秒表初值秒表 -功能MOV45H,#00H; MOV46H,#00H;GOO:MOVA,45H;继点和暂停的储存MOV49H,A;MOVA,46H;MOV4AH,A;MOVA,44H;MOV48H,A;CJNEA,#100,
17、STOP;是否到 1 秒,未到就返回MOV44H,#00H;脉动清 0INC45H;增加秒MOVA,45H;CJNEA,#60,STOP;是否到 60 秒,未到就返回MOV45H,#00H;秒单元清 0INC46H;增加分STOP:MOV3AH,#44H;给数据处理一个初值LCALLDATAT;数据处理LCALLDISPLAY;显示LCALLKS1;判定有没键按下判定键按下?JZLK34;有按下,是抖动?LJMPGOO;返回秒表LK34:LCALLDIR;停一下防抖动LCALLDIR;LCALLKS1;再检查有没键按下JZLK36;有按下就扫描并处理LJMPGOO;返回秒表LK36:LCALL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 单片机 电子 时钟
限制150内