📄 gnmk.c
字号:
#define uchar unsigned char
#define uint unsigned int
#include"SPCE061A.h"
char *F2S(double d, char* str)
{
char str1[20];
int j=0,k,i;
i = (int)d;
while(i>0)
{
str1[j++] = i%10+'0';
i /= 10;
}
for(k=0;k<j;k++)
str[k] = str1[j-1-k];
str[j++] = '.';
d -= (int)d;
for(i=0;i<7;i++)
{
d *= 10;
str[j++] = (int)d+'0';
d -= (int)d;
}
//while(str[--j]=='0');
//str[++j] = '\0';
return str;
}
void Delay(int l)
{
int i,j;
for(i=0;i<l;i++)
{
for(j=0;j<400;j++);
}
*P_Watchdog_Clear=1;
}
void write_com(uchar com)
{
*P_IOB_Data &= 0x0000;
*P_IOB_Data &=~0x0200;
*P_IOB_Data |=com;
*P_IOB_Data |=0x0400;
Delay(1);
*P_IOB_Data &= ~0x0400;
*P_IOB_Data &= 0x0000;
}
void write_data(uchar dat)
{
*P_IOB_Data |=0x0100;
*P_IOB_Data &=~0x0200;
*P_IOB_Data |=dat;
*P_IOB_Data |=0x0400;
Delay(1);
*P_IOB_Data &=~0x0400;
*P_IOB_Data &=0x0000;
}
uint turnmath(uchar m)
{
uchar x,c;
uint n[10],i,add=0,t;
c=m;
c=c>>6;
x=c;
for(i=0;i<10;i++)
{
n[i]=x%2;
x=x/2;
}
t=1;
for(i=0;i<10;i++)
{
add=add+n[i]*t;
t=t*2;
}
return add;
}
uchar ad()
{
uchar ADValue=0;
*P_ADC_MUX_Ctrl=0x0001;
*P_ADC_Ctrl|=0x0001;
Delay(2);
while(!(*P_ADC_MUX_Ctrl&0x8000));
ADValue=*P_ADC_MUX_Data;
return ADValue;
}
void main()
{
uchar r1,f[20];
uint r=0,n,i;
float v,c;
r1=0x07ff;
*P_IOA_Dir=0x0000;
*P_IOA_Attrib=0x0001;
*P_IOB_Dir=r1;
*P_IOB_Attrib=r1;
write_com(0x0038);
Delay(1);
write_com(0x0001);
Delay(1);
write_com(0x000c);
Delay(1);
write_com(0x0006);
Delay(1);
write_com(0x0080+0x0000);
while(1)
{
r=ad();
c=turnmath(r);
v=c/1023*3.3;
F2S(v,f);
for(n=0;n<8;n++)
{
write_data(f[n]);
Delay(1);
}
Delay(5000);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -