PIC单片机多功能万学年历电子钟Word下载.docx
- 文档编号:19580414
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:14
- 大小:20.82KB
PIC单片机多功能万学年历电子钟Word下载.docx
《PIC单片机多功能万学年历电子钟Word下载.docx》由会员分享,可在线阅读,更多相关《PIC单片机多功能万学年历电子钟Word下载.docx(14页珍藏版)》请在冰豆网上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PIC 单片机 多功能 年历 电子钟