//Project: QJ-088A.prj
// Device: FT61F14X
// Memory: Flash 4KX14b, EEPROM 128X8b, SRAM 512X8b
// Author:
//Company:
//Version:
// Date:
//===========================================================
//===========================================================
#include "SYSCFG.h";
#include "main.h"
//===========================================================
//Variable definition
//===========================================================
//===========================================================
//Funtion name:interrupt ISR
//parameters:无
//returned value:无
//===========================================================
void interrupt ISR(void)
{
if(T1UIE && T1UIF) //1ms
{
T1UIF = 1; //写1清零标志位
show_deal();
show_cnt++;
if(show_cnt >= 12)show_cnt = 0;
CHECK_BUTTON();
set_flash_cnt++;
if(SET_POINT != 0)
{
set_over_time++;
}
if(flag.working)
{
runing_ms++;
if(runing_ms == 1000)
{
runing_ms = 0;
runing_s++;
if(runing_s == 3600)
{
runing_s = 0;
runing_h++;
if(flag.mode == 1 && SET_POINT == 0)
{
form_register(tri_runing_time - runing_h , 1);
}
}
else
{
if(flag.mode == 0 && SET_POINT == 0)
{
form_register(tri_runing_time - runing_s , 0);
}
}
}
}
else
{
runing_ms = 0;
runing_h = 0;
runing_s = 0;
}
}
}
/*-------------------------------------------------
* 函数名:POWER_INITIAL
* 功能: 上电系统初始化
* 输入: 无
* 输出: 无
--------------------------------------------------*/
void POWER_INITIAL(void)
{
OSCCON = 0B01110001; //16MHZ 1:1
//BIT7~BIT4:主时钟(系统时钟)分频比选择。0111(1:1),0110(1:2),0101(1:4),0100(1:8),0011(1:16),0010,(1:32),0001(1:64),1xxx(1:128),0000(32kHz LIRC)
//BIT3:振荡器起振超时状态位。1:器件运行在FOSC<2:0>指定的外部时钟之下;0:器件运行在内部振荡器之下
//BIT2:高速内部时钟状态。 1:HIRC is ready;0:HIRC is not ready
//Bit1:低速内部时钟状态。1:LIRC is ready;0:LIRC is not ready
//Bit0:系统时钟选择位。1:系统时钟选择为内部振荡器;0:时钟源由FOSC<2:0>决定
INTCON = 0B01000000;
PORTA = 0B00000000;
TRISA = 0B00111010; //PA输入输出 0-输出 1-输入
PORTB = 0B00000000;
TRISB = 0B00000000; //PB输入输出 0-输出 1-输入
PORTC = 0B00000000;
TRISC = 0B11111100; //PC输入输出 0-输出 1-输入
WPUA = 0B00111010; //PA端口上拉控制 1-开上拉 0-关上拉
WPUB = 0B00000000; //PB端口上拉控制 1-开上拉 0-关上拉
WPUC = 0B00000000; //PC端口上拉控制 1-开上拉 0-关上拉
WPDA = 0B00000000; //PA端口上拉控制 1-开下拉 0-关下拉
WPDB = 0B00000000; //PB端口上拉控制 1-开下拉 0-关下拉
WPDC = 0B00000000; //PC端口上拉控制 1-开下拉 0-关下拉
PSRC0 = 0B11111111; //PORTA,PORTB源电流设置最大
//BIT7~BIT6:PORTB[7:4]源电流能力控制,BIT5~BIT4:PORTB[3:0]源电流能力控制
//BIT3~BIT2:PORTA[7:4]源电流能力控制,BIT1~BIT0:PORTA[3:0]源电流能力控制
PSRC1 = 0B11111111; //PORTC,PORTD源电流设置最大
//BIT7~BIT6:PORTD[7:4]源电流能力控制,BIT5~BIT4:PORTD[3:0]源电流能力控制
//BIT3~BIT2:PORTC[7:4]源电流能力控制,BIT1~BIT0:PORTC[3:0]源电流能力控制
PSINK0 = 0B11111111; //PORTA灌电流设置最大 0:最小,1:最大
PSINK1 = 0B11111111; //PORTB灌电流设置最大 0:最小,1:最大
PSINK2 = 0B11111111; //PORTC灌电流设置最大 0:最小,1:最大
ANSELA = 0B00000000;
}
/*-------------------------------------------------
* 函数名:Time1Initial
* 功能: 上电系统初始化
* 输入: 无
* 输出: 无
--------------------------------------------------*/
void Time1Initial(void)
{
PCKEN |=0B00000010; //使能timer1时钟模块
CKOCON=0B00100000;
TCKSRC=0B00000000; //TIM1时钟为HIRC的2倍频
TIM1CR1 =0B10000101; //预载允许,边沿对齐向上计数器,计数器使能
TIM1IER =0B00000001;
TIM1ARRH =0x3e; //自动重载,周期
TIM1ARRL =0x80;
GIE=1;
}
/*----------------------------------------------------
* 函数名称:EEPROMread
* 功能: 读EEPROM数据
* 输入参数:EEAddr 需读取数据的地址
* 返回参数;ReEEPROMread 对应地址读出的数据
----------------------------------------------------*/
unsigned char EEPROMread(unsigned char EEAddr)
{
unsigned char ReEEPROMread;
EEADRL = EEAddr;
CFGS =0;
EEPGD=0;
RD = 1;
NOP();
NOP();
NOP();
NOP();
ReEEPROMread = EEDATL;
return ReEEPROMread;
}
/*----------------------------------------------------
* 函数名称:EEPROMwrite
* 功能: 写数据到EEPROM
* 输入参数:EEAddr 需要写入数据的地址
* Data 需要写入的数据
* 返回参数:无
----------------------------------------------------*/
void EEPROMwrite(unsigned char EEAddr,unsigned char Data)
{
while(GIE) //等待GIE为0
{GIE = 0;} //写数据必须关闭中断
EEADRL = EEAddr; //EEPROM的地址
EEDATL = Data; //EEPROM的写数据
CFGS =0; //访问EEPROM存储器
EEPGD=0; //
WREN=1; //写使能
EEIF = 0;
EECON2=0x55;
EECON2=0xAA;
WR = 1; //置位WR启动编程
NOP();
NOP();
NOP();
NOP();
while(WR); //等待EE写入完成
WREN=0;
GIE = 1;
}
void form_register(unsigned int num,unsigned char mode)
{
unsigned int temp1,temp2;
if(mode == 0)
{
temp1 = num / 100;
show_form[2] = temp1;
temp2 = (num - temp1 * 100) / 10;
show_form[1] = temp2;
temp1 = num - temp1 * 100 - temp2 * 10;
show_form[0] = temp1;
}
if(mode == 1)
{
temp1 = num / 10;
show_form[2] = temp1;
temp1 = num - temp1 * 10;
show_form[1] = temp1;
show_form[0] = 10;
}
}
void show_num(unsigned char num)
{
switch(num)
{
case 0:
SEGA = 1;SEGB = 1;SEGC = 1;SEGE = 1;SEGF = 1;SEGG = 0;SEGH = 1;
break;
case 1:
SEGA = 0;SEGB = 0;SEGC = 0;SEGE = 0;SEGF = 1;SEGG = 0;SEGH = 1;
break;
case 2:
SEGA = 1;SEGB = 1;SEGC = 1;SEGE = 0;SEGF = 0;SEGG = 1;SEGH = 1;
break;
case 3:
SEGA = 1;SEGB = 0;SEGC = 1;SEGE = 0;SEGF = 1;SEGG = 1;SEGH = 1;
break;
case 4:
SEGA = 0;SEGB = 0;SEGC = 0;SEGE = 1;SEGF = 1;SEGG = 1;SEGH = 1;
break;
case 5:
SEGA = 1;SEGB = 0;SEGC = 1;SEGE = 1;SEGF = 1;SEGG = 1;SEGH = 0;
break;
case 6:
SEGA = 1;SEGB = 1;SEGC = 1;SEGE = 1;SEGF = 1;SEGG = 1;SEGH = 0;
break;
case 7:
SEGA = 1;SEGB = 0;SEGC = 0;SEGE = 0;SEGF = 1;SEGG = 0;SEGH = 1;
break;
case 8:
SEGA = 1;SEGB = 1;SEGC = 1;SEGE = 1;SEGF = 1;SEGG = 1;SEGH = 1;
break;
case 9:
SEGA = 1;SEGB = 0;SEGC = 1;SEGE = 1;SEGF = 1;SEGG = 1;SEGH = 1;
break;
case 10:
SEGA = 0;SEGB = 1;SEGC = 0;SEGE = 1;SEGF = 1;SEGG = 1;SEGH = 1;
break;
case 11:
SEGA = 0;SEGB = 0;SEGC = 0;SEGE = 0;SEGF = 0;SEGG = 0;SEGH = 0;
break;
}
}
void show_deal()
{
COM1 = 1;COM2 = 1;COM3 = 1;
NOP();NOP();NOP();
if(SET_POINT != 0)
{
if(set_flash_cnt < flash_time)
{
NOP();
}
else if(set_flash_cnt < flash_time + flash_time)
{
if(SET_POINT == 1)
{
set_flash_temp = show_form[2];
show_form[2] = 11;
}
if(SET_POINT == 2)
{
辉芒微FT61F145 数码管水流开关demo
需积分: 1 99 浏览量
2024-04-06
21:34:18
上传
评论
收藏 309KB RAR 举报
saltedfish404
- 粉丝: 842
- 资源: 391
最新资源
- 疯狂吃月饼游戏小程序前端源码
- 开源光谱分析仪博客的代码
- 基于深度学习的工业缺陷检测(续篇)
- 大创项目编程示例开发案列优质学习资料资源工具与案列应用场景开发文档教程资料.txt
- 树莓派智能车编程实例开发案列优质学习资料资源工具与案列应用场景开发文档教程资料.txt
- 电子设计竞赛(Electronic Design Contest) 开发案列优质学习资料资源工具与案列应用场景开发文档教程资料
- Cpu-Z 是一款计算机的CPU检测软件
- 美国大学生数学建模竞赛 开发案列优质学习资料资源工具与案列应用场景开发文档教程资料.txt
- 最新版点微同城源码34.7+全套插件+小程序前后端附图片
- 计算机二级 开发案列优质学习资料资源工具与案列应用场景开发文档教程资料.txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈