- 0
- 0
- 约1.26万字
- 约 15页
- 2023-07-01 发布于上海
- 举报
PIC 单片机-多功能万年历电子钟
;********************************************************************************* LIST P=PIC16F72
#INCLUDEP16F72.INC
;********************************************************************************
#DEFINE
DIO_A
PORTA
;RA 端口寄存器
#DEFINE
DIO_B
PORTB
;RB 端口寄存器
#DEFINE
DIO_C
PORTC
;RC 端口寄存器
#DEFINE
SIO_A
TRISA
;RA 端口输入、输出设定
#DEFINE
SIO_B
TRISB
;RB 端口输入、输出设定
#DEFINE
SIO_C
TRISC
;RC 端口输入、输出设定
;===============数码管共脚位定义=============================
#DEFINE
HOUH_LED
PORTB,3 ;数码管位选
#DEFINE
HOUL_LED
PORTB,2 ;数码管位选
#DEFINE
MINH_LED
PORTB,1
;数码管位选
#DEFINE
MINL_LED
PORTB,0
;数码管位选
#DEFINE
SEC_LED
PORTB,4
;LED 位选
;===============按键脚位定义================================= #DEFINE SETUP_KEY PORTA,3 ;时钟设置键
#DEFINE INCREASE_KEY PORTA,4 ;时间加键#DEFINE DECREASE_KEY PORTA,5 ;时间减键
;============== DS1302 引脚定义 ==============================
#DEFINE
T_CLK
PORTA,0 ;1302 时钟-7
#DEFINE
T_IO
PORTA,1 ;1302 数据输入/输出-6
#DEFINE
T_RST
PORTA,2 ;1302 使能位-5
#DEFINE
SET_IO
TRISA,1 ;设定 1302I_O
;========================================================================== #DEFINE FLAG_10S FLAG,7 ;
#DEFINE FLAG_SETUP FLAG,6 ; #DEFINE FLAG_500MS FLAG,5 ; #DEFINE FLAG_250MS FLAG,4 ; #DEFINE FLAG_MINUTE FLAG,3 ; #DEFINE FLAG_HOUR FLAG,2 ; #DEFINE FLAG_TIME FLAG,1 ; #DEFINE FLAG_DATE FLAG,0 ;
;==========================================================================
#DEFINE
FLAG_YEAR
FLAG1,7
;
#DEFINE
FLAG_DAY
FLAG1,6
;
#DEFINE
FLAG_DATA
FLAG1,5
;
;*********************寄存器定义*************************** ID_TEMP EQU 72H
W_TEMP EQU 73H STATUS_TEMP EQU 74H PCLATH_TEMP EQU 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_MI
原创力文档

文档评论(0)