找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

求助:用89C52制作一个电子闹钟

[复制链接]
admin 发表于 2012-9-2 09:01:50 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
用89C52实现一个电子闹钟, p0口接4个开关 P1口为LCD1602输入端 P2为晶振电路 和复位电路 P3口 P2.3接一继电器 在继电器上接红灯 绿的各一盏 ,P2.5 P2.6 P2.7 分别为LCD1602的 数据指令选择端 读写端 和使能端 LCD1602第1口为接地 第二口接电源 第三口接一滑动变阻器
实现功能 在LCD上第一行显示 A9: 30900000 第二行显示 时-分-秒 初始时间为 01-02-00
闹钟在3:12:00时开启 到达时间 绿灯转红灯亮(延时10S)再转到绿灯亮
四个开关的作用 KEY-1 功能 KEY-2 时分秒 KEY-3加1 KEY-4减1
下面的程序已经可以实现LCD第一行的显示 ,请求大家帮助修改


RS BIT P2.5
RW BIT P2.6
E BIT P2.7
LCD EQU 30H
SECOND EQU 40H
MINUTE EQU 41H
HOUR EQU 42H
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP INTT0
ORG 0030H

MAIN:
MOV A,#00111000B
LCALL SENDCOM
MOV A,#00001110B
LCALL SENDCOM
MOV A,#00000010B
LCALL SENDCOM
MOV A,#00000001B
LCALL SENDCOM

MOV R0,#12
MOV DPTR,#KEY
MOV A,#00H
MOV R1,A
XC: MOVC A,@A+DPTR
LCALL SENDDATA
INC R1
MOV A,R1
DJNZ R0,XC
MOV LCD,#00H
MOV (LCD+1),#00H
MOV (LCD+3),#00H
MOV (LCD+4),#00H
MOV (LCD+6),#00H
MOV (LCD+7),#00H
LCALL L2
MOV SECOND,#00H
MOV MINUTE,#00H
MOV HOUR,#01H
MOV R2,#20
MOV TH0,#3CH
MOV TL0,#0B0H
MOV TMOD,#01H
SETB EA
SETB ET0
SETB TR0
SJMP $

INTT0: MOV TH0,#3CH
MOV TL0,#0B0H
DJNZ R2,L3
MOV R2,#20
INC SECOND
MOV A,SECOND
CJNE A,#60,T0L
MIN: MOV SECOND,#0H
INC MINUTE
MOV A,MINUTE
CJNE A,#60,T0L
HOU: MOV MINUTE,#0H
INC HOUR
MOV A,HOUR
CJNE A,#24,T0L
MOV HOUR,#0H
T0L: MOV A,HOUR
MOV B,#10
DIV AB
MOV LCD,A
MOV (LCD+1),B
MOV A,MINUTE
MOV B,#10
DIV AB
MOV (LCD+3),A
MOV (LCD+4),B
MOV A,SECOND
MOV B,#10
DIV AB
MOV (LCD+6),A
MOV (LCD+7),B
LCALL L2
L3: RETI

L2: MOV A,#11000000B
LCALL SENDCOM
MOV A,LCD
ADD A,#30H
LCALL SENDDATA
MOV A,(LCD+1)
ADD A,#30H
LCALL SENDDATA
MOV A,#2DH
LCALL SENDDATA
MOV A,(LCD+3)
ADD A,#30H
LCALL SENDDATA
MOV A,(LCD+4)
ADD A,#30H
LCALL SENDDATA
MOV A,#2DH
LCALL SENDDATA
MOV A,(LCD+6)
ADD A,#30H
LCALL SENDDATA
MOV A,(LCD+7)
ADD A,#30H
LCALL SENDDATA
RET

SENDCOM: LCALL CHECKBUSY
CLR E
CLR RS
CLR RW
MOV P0,A
SETB E
LCALL SDELAY
CLR E
LCALL SDELAY
RET

CHECKBUSY: LCALL SDELAY
CLR E
CLR RS
SETB RW
SETB E
JB P0.7,CHECKBUSY
RET

SENDDATA: LCALL CHECKBUSY
CLR E
SETB RS
CLR RW
MOV P0,A
SETB E
LCALL SDELAY
CLR E
LCALL SDELAY

RET

SDELAY: MOV R5,#5
L1: DJNZ R5,L1
RET
KEY: DB 41H,31H,42H,31H,33H,30H,39H,30H,32H,33H,39H,33H
END




2_160711_33fdf7b2c72bc48.jpg
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-24 12:46 , Processed in 0.065187 second(s), 13 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表