PIC单片机多功能万学年历电子钟Word下载.docx

上传人:b****6 文档编号:19580414 上传时间:2023-01-08 格式:DOCX 页数:14 大小:20.82KB
下载 相关 举报
PIC单片机多功能万学年历电子钟Word下载.docx_第1页
第1页 / 共14页
PIC单片机多功能万学年历电子钟Word下载.docx_第2页
第2页 / 共14页
PIC单片机多功能万学年历电子钟Word下载.docx_第3页
第3页 / 共14页
PIC单片机多功能万学年历电子钟Word下载.docx_第4页
第4页 / 共14页
PIC单片机多功能万学年历电子钟Word下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

PIC单片机多功能万学年历电子钟Word下载.docx

《PIC单片机多功能万学年历电子钟Word下载.docx》由会员分享,可在线阅读,更多相关《PIC单片机多功能万学年历电子钟Word下载.docx(14页珍藏版)》请在冰豆网上搜索。

PIC单片机多功能万学年历电子钟Word下载.docx

PORTB,0 

SEC_LED 

PORTB,4 

LED位选

===============按键脚位定义=================================

SETUP_KEY 

PORTA,3 

时钟设置键

INCREASE_KEY 

PORTA,4 

时间加键

DECREASE_KEY 

PORTA,5 

时间减键

==============DS1302引脚定义==============================

T_CLK 

PORTA,0 

1302时钟->

7

T_IO 

PORTA,1 

1302数据输入/输出->

6

T_RST 

PORTA,2 

1302使能位->

5

SET_IO 

TRISA,1 

设定1302I_O

==========================================================================

FLAG_10S 

FLAG,7 

FLAG_SETUP 

FLAG,6 

FLAG_500MS 

FLAG,5 

FLAG_250MS 

FLAG,4 

FLAG_MINUTE 

FLAG,3 

FLAG_HOUR 

FLAG,2 

FLAG_TIME 

FLAG,1 

FLAG_DATE 

FLAG,0 

FLAG_YEAR 

FLAG1,7 

FLAG_DAY 

FLAG1,6 

FLAG_DATA 

FLAG1,5 

*********************寄存器定义***************************

ID_TEMP 

EQU 

72H

W_TEMP 

73H

STATUS_TEMP 

74H

PCLATH_TEMP 

75H

ERRORLEVEL-302

CBLOCK 

020H

SEC 

秒寄存器

MINUTE 

分寄存器

HOUR 

小时寄存器

DATE 

日寄存器

MONTH 

月寄存器

DAY 

星期寄存器

YEAR 

年寄存器

WRITE_ENABLED 

写使能寄存器

DS1302_RX 

保存接受的1个数据

DS1302_TX 

准备写入到DS1302的一个数据

BYTE_COUNT 

字节数寄存器

BIT_COUNT 

BIT数寄存器

TEMP1 

转换进制用

TIMER0 

\

TIMER1 

定时用

TIMER2 

/

-------------------------------------

FLAG

FLAG1

FSR_TEMP

COUNT

COUNT1 

显示数据位数

COUNT2 

显示数据表中位置

COUNT3 

显示位置

COUNT4

CNT

CNT0

CNT1

CNT2

SHOW_MIN

SHOW_HOU

DATA_INC

DATEP

C1 

C2 

C3 

ENDC

*******************宏定义*********************************

BANK1MACRO 

体1

BSR 

STATUS,RP0

BCR 

STATUS,RP1 

ENDM

BANK0MACRO 

体0

STATUS,RP1

ENDM

-------------------------------------------------------------------

子程序名:

功 

能:

中断服务主程序入口

功能说明:

----------------------------------------------------------------- 

INTERMIT_SERVE:

---------现场保护-----------------------

STWR 

W_TEMP 

SWAPR 

STATUS,W 

CLRR 

STATUS 

STATUS_TEMP 

LDR 

PCLATH,W 

PCLATH_TEMP 

PCLATH 

-------中断服务------------------------- 

INCR 

TIMER0,F 

LDWI 

.100 

XORWR 

TIMER0,W 

判断是否到250MS

BTSS 

STATUS,Z 

LJUMP 

AAA 

ON,

B'

00010000'

\每到250MS取反一次标志位1

FLAG,F 

TIMER0

TIMER1,F 

.2 

TIMER1,W 

判断是否到500MS

00100000'

\每到500MS取反一次标志位1

YES,

TIMER2,F 

.20 

TIMER2,W 

判断是否到5S

$+3 

YES, 

DP_SEC

LCALL 

PLAY_SEC

MOVFW 

DIO_B

ANDWI 

0F0H

DIO_C

COUNT,F

01H 

COUNT,W

BTSC 

STATUS,Z

PLAY_HOUR_H 

02H 

PLAY_HOUR_L 

03H 

PLAY_MINUTE_H 

04H 

$+3

PLAY_MINUTE_L 

0D9H 

TMR0 

/写入TMR0初始值

INTCON,T0IF 

清TMR0中断标志

-------恢复现场------------------- 

PCLATH_TEMP,W 

STATUS_TEMP,F 

W_TEMP,F 

W_TEMP,W 

RTFI 

中断返回

............................................................. 

清寄存器

................................................................ 

CLR_RAM:

20H

FSR

INDF

FSR,F

FSR,7

$-3

RTIW 

00H

--------------------------------------------------------------------------

查表子程序

用于显示0-9时钟数据字型码,共阳LED无小数点

--------------------------------------------------------------------------- 

TABLE:

ADDWR 

PCL,F

11001111'

00000101'

1

11011100'

2

10011101'

3

00010111'

4

10011011'

11011011'

00001101'

11011111'

8

10011111'

9

...........Program 

Initialization........................................ 

单片机复位进入点 

能:

............................................................................ 

PORT_INIT:

INTCON 

清除中断

BANK1 

\

00000000'

\RC口设为输出

11100000'

/RB口设为输入

11111000'

06H 

ADCON1 

A口配置为普通数字I/O

10000101'

\设TMR0分频1:

64

OPTION_REG 

/RB口同时输入、出时不能上拉

BANK0 

----------------------------------

清控制位

\关闭显示

0DAH 

\写入TMR0初始值

/2.5MS中断一次

10100000'

\开TMR0中断使能位

CLR_RAM 

->

清寄存器

DS1302_INIT 

初始化DS1302

READ_DS1302 

CALL 

DATE_INIT 

WRITE_DS1302 

/写数据

QINDON_INIT

DATE

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

程序名:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

MAIN_PROGRAM:

FLAG_SETUP

NOP

DELAY250MS 

检测是否到5S

FLAG 

3S到,退出校正时间状态

FLAG1 

DATEP,W

TEST_KEY

030H

SUBWR 

SEC,W

TEST_KEY 

检测按键

005H

SEC,F

写入设置的数据

DATEP 

MAIN_PROGRAM 

循环

TEST_KEY:

NOP 

DIO_A,W 

00111000'

XORWI 

检测是否有按键按下?

YES,重新启动5S到标记

------------------------------------------------------

显示日期时禁止调整

检测是否按时间设置键?

SETUP 

YES,跳设置键处理程序 

检测是否按增键?

INCREASE 

检测是否按减键?

DECREASE 

时间设置键处理--------------------

SETUP:

DELAY_10MS 

检测设置键是否松开?

$-2 

SHOW_HOU 

FSR 

第一个调整单元

24H

DATA_INC 

调整最大值

FLAG_HOUR

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1