基于单片机的多功能数字钟设计内容摘要:
不进行十进制调整,则加到 9后再加则会显示 A到 F。 且在判断时分秒是否计满时,用到的比较数值是24H、 60H、 60H,而不是 2 60、 60。 在拆字子程序中,将显示缓冲区的首地址存入 R1,但在指向下一个个位单元时,须自增 1 两次,因为时与分、分与秒之间有个横杆。 音乐播放单独可正常运行,但整合到整个程序中,无法实现。 反复排查,发现原因在于, T1 未 进行中断初始化,且在音乐播放子程序中未开启中断未启动 T1。 对应解决后,可正常实现该功能。 经过十天的不屑努力,终于圆满完成包括选题、编程测试、写报告的实训任务。 其中所作数字钟的显示效果基本符合设计要求并包含个人创新成果。 八、实习心得 在这次实习过程中,发现自己对单片机接口技术的相关知识还不是很了解,存在很多问题还不能独立解决。 一方面是由于没有充分掌握课本上的相关专业知识,另一方面是没有了解课本以外的有关知识。 从而实践起来有点困难。 虽然在自己的努力和同学的帮助下,最终顺利达到预期目标,但在报告中的论述 可能存在一部分的错误或不足,还望老师指点。 同时这也提醒了我以后要更加中主专业知识的学习。 不仅要学好课本知识,还要自学课外相关的知识。 融会贯通,灵活应用。 学好基础知识。 一个人要屹立在人群之上,当然也离不开有力的基础。 只有现在好好学习知识,基础牢固了,自身的发展才能得到保障。 在工作中,也需要用理论基础来指导实际操作。 所以目前我们的任务就是好好学习,为将来打下结实的基础。 不断学习新知识、新技术。 所谓学海无涯,活到老学到老,学习也要与时俱进。 我们要不断学习新的知识、新的技术来武装自己,虚心向他人请教。 只有不断的充实头脑,面对工作才会有更多的选择空间,和更好的发展机会,使自己能够脱颖而出。 广泛阅读资料,并学会灵活运用,把别人的东西消化,成为自己的知识储备。 遇到问题先独立思考,实在解决不了在寻求资料或者同学老师的帮助。 感谢学校为我们安排了这个学习和实践的机会。 感谢老师的细心指导。 九、附录 源 程序代码 : ORG 0000H LJMP MAIN ORG 000BH LJMP ITP ORG 001BH LJMP TIME1 ORG 0030H /****************************************************************************************** 定时、中断、 8255 初始化 ******************************************************************************************/ MAIN: MOV SP,70H LCALL DELAY1S MOV P1,00100100B。 P1 口 LED灯亮 1秒 LCALL DELAY1S。 延时 1S MOV P1,0FFH。 熄 L07灯 MOV A,89H。 数码管显示与矩阵键盘接口 8255 初始化 MOV DPTR,0FE03H MOVX @DPTR,A MOV A,8BH。 LED显示、开关、按键接口 8255初始化 MOV DPTR,0FD03H MOVX @DPTR,A MOV DPTR,0FE01H MOV A,00H MOVX @DPTR,A。 关显示 MOV 38H,00H。 38H39H为定时中断秒计时所用 MOV 39H,00H MOV 3AH,50H。 秒初始值为 50 MOV 3BH,59H。 分初始值为 59 MOV 3CH,23H。 时初始值为 23 MOV 40H,0。 闹钟初始 秒 单元为 0 MOV 41H,02。 闹钟初始 分 单元为 2 MOV 42H,01。 闹钟初始 时 单元为 1 MOV TMOD,12H。 计数器 T0, T1 初始化 MOV TL0,48H MOV TH0,48H MOV TL1,00H MOV TH1,00H SETB EA SETB ET0。 开中断 SETB TR0。 启动 T0 定时工作 LM: MOV 32H,10H MOV 35H,10H /****************************************************************************************** 功能键扫描 ******************************************************************************************/ LOOP: MOV DPTR,0FD01H MOVX A, @DPTR JB ,CHK_7。 PB6键是否按下。 LCALL DELAY12MS。 消除抖动 CHK_00: MOVX A, @DPTR JNB ,CHK_00。 按下则执行功能 2(调整日期、音乐播放) LJMP FUN_2 CHK_7: JB ,F1。 PB7 键按下则执行功能 3(显示生日) LJMP FUN_3 F1: LJMP FUN_1。 两键都未按下则执行功能 1。 (调整时间、整点报时、闹铃报警) /****************************************************************************************** 功能模块程序 ******************************************************************************************/ /********************功能 1实现数字钟显示 ****************/ FUN_1: LCALL SKEY。 调用按键扫描调整时间子程序 CALL CZ。 调用拆字子程序 LCALL DISP。 调用显示子程序 LCALL CLOCKPS。 调用闹钟报警子程序 LCALL BAOSHI。 调用整点报时程序 SJMP LOOP。 反复循环主流程 /*****************功能 2显示日期并音乐播放 *****************/ FUN_2: LCALL XH2。 调用显示缓冲区 2(年月日初始值) FUN_22: LCALL DISP。 调用显示子程序 LCALL SKEY1。 调用日期按键扫描程序 LCALL BIR。 调用音乐播放判断程序 MOV DPTR,0FD02H。 8255PC口 MOVX A,@DPTR JB ,F2。 判断 PC0键是否按下。 LJMP LM。 按下则返回显示数字钟 F2: SJMP FUN_22。 未按则循环实现功能 2(调整日期音乐播放) /********************功能 3显示生日 ***********************/ FUN_3: LCALL XH3。 调用显示缓冲区 3(生日日期) LCALL DISP。 调用显示子程序 MOV DPTR,0FD01H MOVX A,@DPTR JB ,F3。 PB0是否按下。 LJMP LM F3: SJMP FUN_3。 未按下则执行功能 3(显示生日) /****************************************************************************************** 显示子程序 ******************************************************************************************/ DISP: MOV R0,30H。 显示缓冲单元首地址 MOV R3,01H。 字位码初值(从最右位起) MOV A,R3 DISP1: MOV DPTR,0FE01H。 8255B口(字位码输出口) MOVX @DPTR,A。 输出字位码 MOV A,@R0。 取显示数据码 MOV DPTR,TAB MOVC A,@A+DPTR。 查表得相应字段码 NEXTPC: MOV DPTR,0FE00H MOVX @DPTR,A。 输出字段码 LCALL D1MS。 保 持显示 1毫秒 INC R0。 指向下一显示缓冲单元 MOV A,R3。 取出字位码 JB ,DISP2。 判已显示到最左位否 RL A。 未完 ,字位码左移 1位 MOV R3,A。 回存新字位码 LJMP DISP1。 转下一位显 示 DISP2: RET TAB: DB 0C0H,0F9H,0A4H,0B0H,99H。 0~9 显示字段码表 DB 92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H DB 8EH,0BFH,00H。 AF,,全亮, D1MS: MOV R7,250。 延时 1毫秒子程序 D1MS1: NOP NOP NOP NOP DJNZ R7,D1MS1 RET /****************************************************************************************** 显示缓冲区 1(拆字) ******************************************************************************************/ CZ: MOV R0,3AH。 秒、分、时单元首地址 MOV R1,30H。 显示缓冲单元首地址 CZ1: MOV A,@R0。 取当前 BCD 码 ANL A,0FH。 保留低 4位(个位) MOV @R1,A。 送显缓当前个位单元 INC R1。 指向显缓十位单元 MOV A,@R0。基于单片机的多功能数字钟设计
相关推荐
设计,并且 在熔丝位里,可以控制复位时的额外时间,故 AVR外部的复位线路在上电时,可以设计得很简单:直接拉一只 10K 的电阻到 VCC 即可 (R1)。 为了可靠,再加上一只 的电容 (C5)以消除干扰、杂波。 D1(1N4148)的作用有两个:作用一是将复位输入的最高电压钳在 Vcc+ 左右,另一作用是系统断电时,将 R1(10K)电阻短路,让 C5快速放电,让下一次来电时
0MHz接法电路如图8:此电路的优点是增益、带宽都是适中,经过两级放大,不仅可以满足题目要求,而且高出许多,所以是一个比较合适我们的电路,故我们采用这种接法作为放大电路部分。 因此1脚与2脚之间电压差与增益的关系式为:Gain=40VG+20。 AD818 运放性能介绍AD818是一个低功耗,宽带,高速视频运算放大器其结构如图9所示: 图9常被用作视频放大中,它的电压转换速率高达:500V/μs
路 对 PWM 脉宽速度调整来控制电机转速的大小,实现对不同速度的电机的转速的测量。 常州大学 本科 生 毕业设计(论文) 第 3 页 共 42 页 2 系统分析与总体 设计 方案 数字测速仪的基本 工作 原理 数字测速仪的的 红外传感器 的 发射 管 发出一种无色透明的红外光线 , 当光线照射到所给定的 电机 转盘中时,随着照射转盘上颜色的不断变化,
正极 8 D1 Data I/O 16 BLK 背光源负极 表 32 LCD1602接口 信号表格 甲醛传感器 本甲醛检测仪采用英国达特( DART)公司生产的甲醛传感器如图 33。 该传感器是两电极电化学型的传感器,通过扩散原理实现,因此不需要外部采样硬件。 当有甲醛气 体存在的时候,将会有一个很小的直流产生;传基于单片机的室内甲醛测试系统设计 8 感器本身不需要电源供应
t water W having a high temperature of 93℃ 97℃ . for a long time. In order to prevent the direct contact of the tank 4 with the hot water W, although a heat insulating jacket member 26 may be
人 — 人 人 人 — 人 人 人 — 人 人 人 人 人 人 — 人 人 人 — 人 — 01 02 03 — 05 06 07 — 71 72 73 74 75 08 — 09 10 11 — 76 专业技术人员 办事人员和有关人员 商业、服务业人员 生产、运输 设备操作人员及有关人员 二、工资总额 从业人员工资总额 按人员类型分 在岗职工 基本工资 绩效工资 工资性津贴和补贴 其他工资