📄 25431.c
字号:
#include "SPCE061A.h"
#include "lcd.h"
#include "IO_SET.H"
#define uchar unsigned char
#define uint unsigned int
//IOB12 : clk 38pin
//IOB13 : dat_in read 37pin
//IOB14 : dat_out write 36pin
//IOB15 : cs 35pin
#define comm 0
#define dat 1
void lcd_init(void)
{
wr_lcd(comm,0x0030); //基本指令集
wr_lcd(comm,0x0001); //清除显示屏幕,把DDRAM位址计数器调整为"00H"
wr_lcd(comm,0x0003); //把DDRAM位址计数器调整为"00H",游标回原点,该功能不影响显示DDRAM
wr_lcd(comm,0x0006); //光标右移
wr_lcd(comm,0x000c); //显示屏打开
}
void delay2543(int us)
{ while(us--)
*P_Watchdog_Clear=1;
}
void dis_end(uint in) //十进制显示数据in
{
uint i,m,n,j,a[8],g;
m=in;
for(i=0;m;i++)
m=m/10;
for(n=0;n<i;n++)
{a[n]=in%10;
*P_Watchdog_Clear=1;
in=in/10; }
if(i==3)
{
wr_lcd(dat,'0');
wr_lcd(dat,'.');
for(j=i;j>0;j--)
{ g=0x30+a[j-1];
wr_lcd(dat,g);
}
}
else
{
for(j=i;j>0;j--)
{ g=0x30+a[j-1];
wr_lcd(dat,g);
if(j==i)
wr_lcd(dat,'.');
}
}
}
void io_initial(void)
{
*P_IOB_Dir=0xB007;
*P_IOB_Attrib=0xf007;
*P_IOB_Data=0x8000;
}
void send_a_bit(int n)
{
if(n)
*P_IOB_Data |= 0x2000; //IOB13 : dat_out write set 1
else
*P_IOB_Data &= 0xdfff; //IOB13 : dat_out write clr 0
}
void send_pulse_2543(void)
{
set_IOB(12); //*P_IOB_Data |= 0x4000; //clk
clr_IOB(12); //*P_IOB_Data &= 0xbfff;
}
int get_a_bit(void)
{
if(*P_IOB_Data&0x4000)
return 1;
else
return 0;
}
int send_get_2543(int next_addr) //int next_addr
{
int i=12;
unsigned int value=0;
*P_IOB_Data=0x7fff&*P_IOB_Data; //CS置为低电平
while(i--)
{
send_a_bit(0x0080&next_addr);
next_addr=next_addr<<1;
set_IOB(12); //*P_IOB_Data |= 0x4000; //clk set 1
delay(1);
if(*P_IOB_Data&0x4000)
value=value | 0x0001;
else
value=value & 0xfffe;
value=value<<1;
clr_IOB(12); //*P_IOB_Data &= 0xbfff; //clk clr 0
delay(1);
// send_pulse_2543();
}
*P_IOB_Data |= 0x8000; //CS置为高电平
return(value>>1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -