AVR128的程序——DS1302時鐘芯片
#include
#define uchar unsigned char
#define uint unsigned int
#define ds1302_rst PE4 //定義1302的RST接在PE4
#define ds1302_io PE3 //定義1302的IO接在PE3
#define ds1302_sclk PE2 //定義1302的時鐘接在PE2
#define set_ds1302_rst_ddr() DDRE|=1< //復(fù)位端置為輸出
#define set_ds1302_rst() PORTE|=1< //復(fù)位端置1
#define clr_ds1302_rst() PORTE&=~(1< //復(fù)位端清0
#define set_ds1302_io_ddr() DDRE|=1< //數(shù)據(jù)端置為輸出
#define set_ds1302_io() PORTE|=1< //數(shù)據(jù)端置1
#define clr_ds1302_io() PORTE&=~(1< //數(shù)據(jù)端清0
#define clr_ds1302_io_ddr() DDRE&=~(1< //數(shù)據(jù)端置為輸入
#define in_ds1302_io() PINE&(1< //數(shù)據(jù)端輸入數(shù)據(jù)
#define set_ds1302_sclk_ddr() DDRE|=1< //時鐘端置為輸出
#define set_ds1302_sclk() PORTE|=1< //時鐘端置1
#define clr_ds1302_sclk() PORTE &=~(1< //時鐘端清0
#define ds1302_sec_add 0x80 //秒數(shù)據(jù)地址
#define ds1302_min_add 0x82 //分?jǐn)?shù)據(jù)地址
#define ds1302_hr_add 0x84 //時數(shù)據(jù)地址
#define ds1302_date_add 0x86 //日數(shù)據(jù)地址
#define ds1302_month_add 0x88 //月數(shù)據(jù)地址
#define ds1302_day_add 0x8a //星期數(shù)據(jù)地址
#define ds1302_year_add 0x8c //年數(shù)據(jù)地址
#define ds1302_control_add 0x8e //控制數(shù)據(jù)地址
#define ds1302_charger_add 0x90
#define ds1302_clkburst_add 0xbe
uchar TempData[8];
uchar timer[7]={12,2,8,20,31,50,3};
uchar WeiMa[8] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
uchar led_discode[11]={0xc0,0xf9,0xa4,0xb0,0x99,
void smg_io_init(void)
{
PORTA=0XFF;
DDRE=0xff;
DDRC=0XFF;
PORTC=0XFF;
DDRF|=0X0E;
PORTF|=0X0E;
PORTF&=0xF7;
DDRB |=0X10;
PORTB|=0X10;
}
void display(uchar FirstBit,uchar Num)
{
for(i=0;i
{
PORTC=led_discode[10];
Delayms(2);
}
}
void Delayms(uint MS)
{
}
void shi_BCD(void)
{
for(i=0;i<7;i++)
{
timer[i]=timer[i];
timer[i]=timer[i]+k*16;
}
}
void ds1302_init(void)
{
set_ds1302_rst_ddr();
set_ds1302_sclk_ddr();
clr_ds1302_rst();
}
void ds1302_write(uchar add,uchar data)
{
set_ds1302_io_ddr(); //配置IO為輸出
add = add & 0xFE;
}
uchar ds1302_read(uchar add)
{
}
void ds1302_write_time(void)
{
}
void ds1302_read_time(void)
{
}
void time_Process(void)
{
TempData[1] = led_discode[timer[3]];
TempData[2] = 0XBF;
TempData[3] = led_discode[timer[4]/16];
TempData[4] = led_discode[timer[4]];
TempData[5] = 0XBF;
TempData[6] = led_discode[timer[5]/16];
TempData[7] = led_discode[timer[5]];
}
void main(void)
{
smg_io_init();
shi_BCD();
ds1302_init();
}
}
關(guān)鍵詞:
AVR128DS1302時鐘芯
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進電機
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號放大器
評論