📄 hv.c
字号:
#include <STC12C5410AD.h>
sbit CS = P3^3;
unsigned char v_output, da_data;
void Spi(unsigned char da_data)
{
unsigned char da_dataH, da_dataL;
bit step = 0;
da_dataH = da_data >>8;
da_dataL = da_data & 0x0FF;
step = !step; //step = 1
CS = 0;
SPSTAT = 0;
SPDAT = da_dataH;
while(step)
{
if(SPSTAT != 0)
{
step = !step; //step = 0
}
}
SPSTAT = 0;
SPDAT = da_dataL;
if(SPSTAT != 0)
{
CS = 1;
}
}
void Adc_AD()
{
ADC_CONTR = 0x8A;
}
void Adc_REF()
{
ADC_CONTR = 0x8B;
}
void send_char_com()
{
unsigned char i;
i = 1;
SBUF = inbuf1[i];
TI = 0;
while(i <= 3)
{
if(TI)
{
i++;
SBUF = inbuf1[i];
TI = 0;
}
}
}
void serial() interrupt 4 using 3
{
unsigned char i;
if(RI)
{
rebuf = SBUF;
if(rebuf == 0x21)
{
com_bit[1] = rebuf;
i = 1;
}
i++;
com_bit[i] = rebuf;
RI = 0;
}
// if(RI)
/// {
// count3 = SBUF;
// RI = 0;
// }
// else
/// {
// count3 = 0x51;
// }
// if(RI)
// {
// unsigned char ch;
// RI = 0;
// ch = SBUF;
// if(ch > 127)
// {
// count3 = 0;
// inbuf1[count3] = ch;
// checksum = ch - 128;
// }
// else
// {
// count3++;
// inbuf1[count3] = ch;
// checksum ^= ch;
// if((count3 = (INBUF_LEN - 1)) && (!checksum))
// {
// read_flag = 1;
// }
// }
// }
}
void msg()
{
unsigned char checksum;
if(com_bit[2] = 0x52)
{
checksum = com_bit[1] ^ com_bit[2] ^ com_bit[3] ^ com_bit[4];
}
if(com_bit[2] == 0x57)
{
checksum = com_bit[1] ^ com_bit[2] ^ com_bit[3] ^ com_bit[4] ^ com_bit[5];
}
}
void Init()
{
SPCTL = 0x0D1;
SPSTAT = 0;
P1M0 = 0x0C;//
P1M1 = 0x0C;//
EA = 1;
//串口中断
SCON = 0x40;//工作方式1
TMOD = 0x21;//T1为两个8位的计数器,初值自动载入,T0为16位计数器,
PCON = 0;
ES = 1;//串行中断允许,
TH1 = 0x0FD;//预设初值,
ET1 = 1;//允许定时,计数器中断,
TR1 = 1;//启动T1
}
void main(void)
{
while(1)
{
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -