📄 serial.c
字号:
//serial out
#include <ioCC1110.h>
#include "emot.h"
#include "hal.h"
#define uchar unsigned char
#define uint unsigned int
#define SDA P1_6 //数据
#define SHIFT_CP P1_5 //时钟
#define ST_CP P1_7 //锁存
#define NOP delay595()
//uchar SelectBit[]={0x04,0x08,0x10,0x20};//用于选择位 p0 pin 2 3 4 5
uchar SelectBit[]={0x40,0x20,0x10,0x08};//用于选择位 p0 pin 3 4 5 6
uchar ledcode[]={0x3f,0x18,0x76,0x7c,0x59,0x6d,0x6f,0x38,0x7f,0x7d,0x80};
uchar ledbit = 0;
uchar ii;
void delay595(void)
{
uchar jj=100;
while(jj--);
}
void Delay(unsigned int time)
{
unsigned int abc=time;
while(abc--)
{
delay595();
}
}
void InitSerialIO(void)
{
P1DIR |= 0X20; //P15 OUT AS SHIFT_CP
P1DIR |= 0X40; //P06 OUT AS SDA
P1DIR |= 0X80; //P17 OUT AS ST_CP
//IO_DIR_PORT_PIN(1,5,IO_OUT);
//IO_DIR_PORT_PIN(0,6,IO_OUT);
//IO_DIR_PORT_PIN(1,7,IO_OUT);
P1 &= ~0XE0;
P0DIR |= 0x78; //输出,作为位选
P0 &= ~0x78; //关闭,高电平有效
SDA = 0;
SHIFT_CP = 0;
ST_CP = 0;
}
void SerialSendData(uchar dat)
{
uchar ii;
uchar sdata=dat;
ST_CP = 0;
//P1_4 = 1; //TC77 cs
for(ii=0;ii<8;ii++)
{
if(sdata&0x80)SDA=1;
else SDA = 0;
sdata<<=1;
SHIFT_CP =0;
NOP;
NOP;
SHIFT_CP = 1;
NOP;
NOP;
}
ST_CP = 1;
NOP;
NOP;
ST_CP = 0;
NOP;
NOP;
ST_CP = 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -