手机版

四川大学网络教育学院计算机专业作业

时间:2025-04-28   来源:未知    
字号:

四川大学网络教育学院

计算机综合实践

校外学习中心:奥鹏学习中心 学 生 专 层 年 学 实 践 时 姓 名: 业: 次:专升本 级: 号: 间:

实 验 目 的

掌握单片机控制 1602 液晶显示系统的开发设计

采用应用广泛的 AT89C52 作为时钟控制芯片, 利用单片机内实 验

部的定时/计数器 T0 实现软时钟的目的。首先将 T0 设定工作于 定时方式,对机器周期计数形成基准时间(50ms) ,然后用另一 个定时/计数器 T1 对基准时间计数形成秒,妙计 60 次形成分, 分计 60 形成小时,小时计到 12。最后通过数码管把它们的内容 在相应的位置显示出来,达到时、分、秒计时的功能。 此外还要实现对时间的调整功能, 89C52 的 P1.0、 P1.1、 P1.2 外接三个独立按键,当按下 P1.0 按键时,系统进入调时间的状 态或启动时间显示的功能;当按下 P1.1 按键时,对显示的数码 管进行加一的功能;当按下 P1.2 按键时,对显示的数码管进行 减一的功能,达到调整时间的目的。

内 容

算 法 与 流 程 图

程 序 清 单

ORG 0000H LJMP START ORG 000BH LJMP INIT0 START: MOV R0,#70H ;主程序开始 MOV R7,#0CH INIT: MOV @R0,#00H INC R0 DJN Z R7,INIT MOV 72H,#10 ;对连字符进行装值 MOV 75H,#10 MOV TMOD,#01H ;选择定时器/计数器 T0 的方式 1 MOV TL0,#0B0H ;对低位赋初值 MOV TH0,#03CH ;高位赋初值 SETB EA SETB ET0 SETB TR0 START1: LCALL SCAN LCALL KEYSCAN SJMP START1 DL1MS: MOV R6,#14H ;延时 1 子程序 DL1: MOV R7,#19H DL2: DJNZ R7,DL2 DJNZ R6,DL1 RET DL20MS: ACALL SCAN ;延时 20ms 子程序 ACALL SCAN ACALL SCAN RET ;数码管显示程序开始 SCAN: MOV A,78H MOV B,#0AH DIV AB ;时间秒的十位送给 A,时间秒的个位送 B MOV 71H,A ;时间秒要显示的十位 MOV 70H,B ;时间秒要显示的个位 MOV A,79H MOV B,#0AH DIV AB ;时间分的十位送给 A,时间分的个位送 B MOV 74H,A ;时间分要显示的十位送地址

MOV 73H,B ;时间分要显示的个位送地址 MOV A,7AH MOV B,#0AH DIV AB ;时间时的十位送给 A,时间时的个位送 B MOV 77H,A ;时间时显示的十位送地址 MOV 76H,B ;时间时要显示的个位送地址 MOV R1,#70H MOV R5,#0FEH MOV R3,#08H SCAN1: MOV A,R5 ;数码管的显示程序 MOV P2,A MOV A,@R1 MOV DPTR,#TAB MOVC A,@A+DPTR ;对字段表取值显示 MOV P0,A MOV A,R5 LCALL DL1MS INC R1 MOV A,R5 RL A MOV R5,A DJNZ R3,SCAN1 MOV P2,#0FFH MOV P0,#0FFH RET ;"0~9"和"-"的字段表 TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH ;定时/计数器 T0 中断程序 INIT0: PUSH ACC PUSH PSW CLR ET0 CLR TR0 MOV TL0,#0B0H MOV TH0,#03CH SETB TR0 INC 7BH MOV A,7BH CJNE A,#14H,OUTT0 ;50ms 是否到 20 次,没有到就继续执行 50ms 的延时 MOV 7BH,#00 INC 78H MOV A,78H CJNE A,#3CH,OUTT0 ;一秒的延时是否计到 60 次,没有就继续 执行 MOV 78H,#00 INC 79H MOV A,79H CJNE A,#3CH,OUTT0

MOV 79H,#00 INC 7AH MOV A,

7AH CJNE A,#18H,OUTT0 ;60 分钟的延时是否计到 24 次,没有就 继续执行程序 MOV 7AH,#00 OUTT0:SETB ET0 ;启动定时器 T0 POP PSW POP ACC RETI ;按键处理程序 KEYSCAN:CLR EA JNB P1.0,KEYSCAN0 ;P1.0 有按键按下则跳转到子程序 JNB P1.1,KEYSCAN1 ;P1.1 有按键按下则跳转到子程序 JNB P1.2,KEYSCAN2 ;P1.2 有按键按下则跳转到子程序 KEYOUT: SETB EA RET KEYSCAN0:LCALL DL20MS ;20ms 的延时消抖 JB P1.0,KEYOUT WAIT0: JNB P1.0,WAIT0 ;判断按键是否松手, 松手就往下执 行程序 INC 7CH MOV A,7CH CLR ET0 CLR TR0 CJNE A,#03H,KEYOUT ;按下第一次和第二次对时、分选定 MOV 7CH,#00 ;按下第三次时就启动计时 SETB ET0 SETB TR0 SJMP KEYOUT KEYSCAN1:LCALL DL20MS ;按键加一的程序 JB P1.1,KEYOUT WAIT1: JNB P1.1,WAIT1 MOV A,7CH CJNE A,#02H,KSCAN11 ;如果功能键按下则对时加一调整 INC 79H CJNE A,#3CH,KEYOUT ;如果加到 60 则清零 MOV 79H,#00 SJMP KEYOUT KSCAN11:INC 7AH ;如果功能键是按下第 二次则对分进行加一调整 MOV A,7AH CJNE A,#18H,KEYOUT MOV 7AH,#00 SJMP KEYOUT KEYSCAN2:LCALL DL20MS ;延时消抖程序

JB P1.2,KEYOUT WAIT2: JNB P1.2,WAIT2 ;判断是否放开按键 MOV A,7CH CJNE A,#02H,KSCAN21 ; 如果功能键是按下第一次对时进行 减一 DEC 79H MOV A,79H CJNE A,#0FFH,KEYOUT MOV 79H,#3BH SJMP KEYOUT KSCAN21:DEC 7AH ; 如果功能键是按下第二次则对分进行减 一 CJNE A,#0FFH,KEYOUT MOV 7AH,#17H SJMP KEYOUT END

运 行 结 果

经过一周的时间以及对整本教材的知识总结, 把课程设计分 成了硬件和软件两大模块。 总的来说,硬件部分很好入手,电路也教简单,主要涉及的调 试

是简单的按键、电容、电阻、晶振和数码管。在软件部分,细分 为了按键模块、显示模块、定时/计数模块,最后把几个模块整

分 合在主程序模块中,使得程序简单明了。 析 和 体 会

整个设计过程中遇到的最大问题是软件的编写, 由于采用的 是汇编语言, 其间使用到的各种寄存器、 存储器地址、 变量很多, 很难对程序的整体把握。通过电子钟的设计,对单片机的原理、 结构、外围电路进一步的了解。

查 数字电子技术,模拟电子技术,电路基础,电力电子技术,单片 阅 资 料 目 录

机基础,C 语言基础与设计

…… 此处隐藏:1184字,全部文档内容请下载后查看。喜欢就下载吧 ……
四川大学网络教育学院计算机专业作业.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)