文件名: ds12c887时钟读、写控制程序clock for 51mcu
功能: 时钟读、写控制。
接线: 用导线对应连接时钟模块的cs_887、int887到cpu模块的h、p32。
定义 ds12887 的地址。
second equ 8000h ; 秒寄存器。
second_alarm equ 8001h ; 秒闹钟寄存器。
minute equ 8002h ; 分寄存器。
minute_alarm equ 8003h ; 分闹钟寄存器。
hour equ 8004h ; 时寄存器。
hour_alarm equ 8005h ; 时闹钟寄存器。
week equ 8006h ; 星期寄存器。
date equ 8007h ; 日寄存器。
month equ 8008h ; 月寄存器。
year equ 8009h ; 年寄存器。
reg_a equ 800ah ; 寄存器a
reg_b equ 800bh ; 寄存器b
reg_c equ 800ch ; 寄存器c
reg_d equ 800dh ; 寄存器d
century equ 8032h ; 世纪寄存器。
week_buffer equ 50h ;星期缓冲区。
second_buffer equ 51h ;秒缓冲区。
minute_buffer equ 52h ;分缓冲区。
hour_buffer equ 53h ;时缓冲区。
date_buffer equ 54h ;日缓冲区。
month_buffer equ 55h ;月缓冲区。
year_buffer equ 56h ;年缓冲区。
century_buffer equ 57h ;世纪缓冲区。
z8279 equ 8701h ;8279 状态/命令口地址。
d8279 equ 8700h ;8279 数据口地址。
ledmod equ 00h ;左边输入八位字符显示。
外部译码键扫描方式,双键互锁。
ledfeq equ 2fh ;扫描速率。
ledcls equ 0c1h ;清除显示ram
ledwr0 equ 80h ;设定的将要写入的显示ram地址。
主程序。org 0000h
ljmp start
org 0100h
start:
mov 51h,#00h ;秒。
mov 52h,#00h ;分。
mov 53h,#00h ;时。
mov 54h,#00h ;日。
mov 55h,#00h ;月。
mov sp,#60h
lcall init8279 ;初始化。
lcall writetime ;调用时钟写。
mloop:
lcall readtime ;调用时钟读。
lcall display
lcall delay
ajmp mloop
init82798279初始化子程序。
push dph保存现场。
push dpl
push acc
mov dptr ,#z8279
mov a,#ledmod ;置工作方式。
movx @dptr,a
mov a,#ledfeq ;置键盘扫描速率。
movx @dptr,a
mov a,#ledcls ;清除led 显示。
movx @dptr,a
pop acc恢复现场。
pop dpl
pop dph
ret显示字符子程序。
输入: r4,位置r5,值。
disled: push dph保存现场。
push dpl
push acc
mov a,#ledwr0 ;置显示起始地址。
add a,r4加位置偏移量。
mov dptr,#z8279
movx @dptr,a设定显示位置。
mov dptr,#ledseg ;置显示常数表起始位置。
mov a,r5
movc a,@a+dptr ;查表。
mov dptr,#d8279
movx @dptr,a显示数据。
pop acc恢复现场。
pop dpl
pop dph
retdisplay:
mov a,second_buffer
anl a,#0fh
mov r5,a
mov r4,#
lcall disled显示秒低位。
mov a,second_buffer
swap a
anl a,#0fh
mov r5,a
mov r4,#
lcall disled显示秒高位。
mov r5,#
mov r4,#
lcall disled显示"-"
mov a,minute_buffer
anl a,#0fh
mov r5,a
mov r4,#
lcall disled显示分钟低位。
mov a,minute_buffer
swap a
anl a,#0fh
mov r5,a
mov r4,#
lcall disled显示分钟高位
mov r5,#
mov r4,#
lcall disled显示。
mov a,hour_buffer
anl a,#0fh
mov r5,a
mov r4,#
lcall disled显示小时低位。
mov a,hour_buffer
swap a
anl a,#0fh
mov r5,a
mov r4,#
lcall disled显示小时高位
retledseg: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h ;'0,1,2,3,4,5,6,7'
db 7fh,6fh,77h,7ch,39h,5eh,79h,71h ;'8,9,a,b,c,d,e,f'
db 40h,00h
单片机课程设计
可变程序控制器是集微机技术 自动化技术 通讯技术于一体的通用工业控制装置。它可靠性强 性能 比高 使用方便,已在工业控制的各个领域里得到了极为广泛的应用,成为实现工业自动化的一种强有力的工具 1 plc的定义有许多种。国际电工委员会 iec 对plc的定义是 可编程控制器是一种数字运算操作的电子系统...
单片机课程设计
目录。内容提要2 关键词2引言3 一 硬件电路设计3 一 电路板原理3 二 电路元器件3 二 软件设计3 一 秒钟设计方案3 二 时钟设计方案4 结语7单片机时钟设计。内容摘要 一 在实验板上用动态扫描显示00 59秒钟,具体要求如下 一 6m晶振 二 l9 l10显示00 59十进制数并循环,间隔...
单片机课程设计
1 选题背景。1.1 家庭智能防盗报警系统设计的背景及目的。随着经济的发展,人们对防盗 防劫 防火保安设备的需求量大大增加。针对偷盗 抢劫 火灾 煤气泄漏等事故进行检测和报警的系统,其需求也越来越高。家居智能是以家为平台,兼备建筑 自动化,智能化于一体的高效 舒适 安全 便利的家居环境。自动化的家居...