📄 main.c
字号:
//-----------------------------------------------------------------
// 名称: 1-Wire可寻址开关DS2405应用测试
//-----------------------------------------------------------------
// 说明: 本例使用了1-Wire式可寻址开关器件DS2405,连接单片机的三个
// 按键可通过单片机分别控制三个继电器的开关,各继电器的开关
// 状态将显示在串行LCD显示屏上.
//
//-----------------------------------------------------------------
#include <htc.h>
#include <stdio.h>
#include "DS2405.h"
//三只DS2405的ROMCODE
const INT8U DS2405_ROMCODE[][8] =
{ {0x05,0xC5,0xC3,0x08,0x00,0x00,0x00,0xCD},
{0x05,0xB3,0xBF,0x08,0x00,0x00,0x00,0xAB},
{0x05,0xB4,0xBF,0x08,0x00,0x00,0x00,0x2E}
};
//按键定义
#define K1_DOWN() (RB0 == 0)
#define K2_DOWN() (RB2 == 0)
#define K3_DOWN() (RB4 == 0)
//-----------------------------------------------------------------
// 延时函数
//-----------------------------------------------------------------
void delay100Xms(INT8U x)
{
while (x--) __delay_ms(100);
}
//-----------------------------------------------------------------
// 写LCD命令
//-----------------------------------------------------------------
void Write_LCD_COMMAND(INT8U comm)
{
}
//-----------------------------------------------------------------
// 设置显示位置
//-----------------------------------------------------------------
void set_lcd_pos(INT8U r, INT8U c)
{
//LCD 1~4行DDRAM起始地址表
INT8U DDRAM_addr[] = {0,0x80,0xC0,0x94,0xD4};
//设置显示起始位置(x,y)
}
//-----------------------------------------------------------------
// 发送ROM匹配命令切换开关,并根据读取的开关状态控制LCD显示
//-----------------------------------------------------------------
void MatchRom_and_read_Staus(INT8U idx)
{
//发送ROM MATCH命令切换开关
//设置LCD显示位置
//根据读取的开关状态控制LCD显示ON/OFF
}
//-----------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------
void main()
{
INT8U i,j,Count,ROMCODE[8],LCD_Buffer[21];
//USART初始化
//调用PICC-18串口初始化库函数
OpenUSART( USART_TX_INT_OFF &
USART_RX_INT_OFF &
USART_ASYNCH_MODE &
USART_EIGHT_BIT &
USART_BRGH_HIGH,
_XTAL_FREQ/16/9600 - 1
);
//初始化按键输入端口,内部上拉
TRISB = 0xFF; RBPU = 0;
delay100Xms(4);
set_lcd_pos(1,0); putsUSART((char*)"DS2405 NETWORK TEST");
set_lcd_pos(2,0); putsUSART((char*)"NODE 1#: OFF");
set_lcd_pos(3,0); putsUSART((char*)"NODE 2#: OFF");
set_lcd_pos(4,0); putsUSART((char*)"NODE 3#: OFF");
while(1)
{
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -