?? disp_b.c
字號:
#include <reg51.h>
#include <math.h>
#include <absacc.h>
#include <string.h>
#define uchar unsigned char
#define uint unsigned int
//extern void CCW_PR();
extern void CW2_PR();
extern void CW2_PR_F();
extern O_X,O_Y,code_1;
uchar dispint(uchar position1,uchar position2,int value)
/*用于顯示整數(包括負數),第一參數為顯示位置(最后一位).
用到dispch函數.
顯示整數前不顯示空格*/
{ uchar temp,is_neg=0;
if (value<0)
{
value=-value;
is_neg=1;
}
do
{ O_X=position1;
O_Y=position2;
temp=value%10;
code_1=temp+16;
CW2_PR();
position1=position1-1;
value=(value-temp)/10;
}
while (value);
if (is_neg)
{
O_X=position1;
O_Y=position2;
code_1='-'-0x20;
CW2_PR();
position1=position1-1;
}
return(position1);
}
uchar dispint_f(uchar position1,uchar position2,int value)
/*用于顯示整數(包括負數),第一參數為顯示位置(最后一位).
用到dispch函數.
顯示整數前不顯示空格*/
{ uchar temp,is_neg=0;
if (value<0)
{
value=-value;
is_neg=1;
}
do
{ O_X=position1;
O_Y=position2;
temp=value%10;
code_1=temp+16;
CW2_PR_F();
position1=position1-1;
value=(value-temp)/10;
}
while (value);
if (is_neg)
{
O_X=position1;
O_Y=position2;
code_1='-'-0x20;
CW2_PR_F();
position1=position1-1;
}
return(position1);
}
void dispf(uchar position1,uchar position2,float value,uchar preci)
/*用于顯示實數(包括負數),第一參數為顯示位置(最后一位),
第三參數為顯示精度。用到dispch dispint函數. 顯示實數前不顯示空格*/
{
int v1,v2;
uchar i,cint,is_neg=0;
float idata temp;
if (value<0)
{
value=-value;
is_neg=1;
}
v1=(int)value;
temp=value-v1;
for (i=0;i<preci;i++)
{
temp*=10;
/* O_X=position1;
O_Y=position2;
code_1='0'-0x20;
CW_PR();
position1=position1-6; */
}
v2=(int)(temp+0.5);
dispint(position1,position2,v2);
O_X=position1-preci*1;
O_Y=position2;
code_1='.'-0x20;
CW2_PR();
position1=position1-1-preci*1;
position1=dispint(position1,position2,v1);
if (is_neg){
O_X=position1;
O_Y=position2;
code_1='-'-0x20;
CW2_PR();
}
}
void dispf_f(uchar position1,uchar position2,float value,uchar preci)
/*用于顯示實數(包括負數),第一參數為顯示位置(最后一位),
第三參數為顯示精度。用到dispch dispint函數. 顯示實數前不顯示空格*/
{
int v1,v2;
uchar i,cint,is_neg=0;
float temp;
if (value<0)
{
value=-value;
is_neg=1;
}
v1=(int)value;
temp=value-v1;
for (i=0;i<preci;i++)
{
temp*=10;
/* O_X=position1;
O_Y=position2;
code_1='0'-0x20;
CW_PR();
position1=position1-6; */
}
v2=(int)(temp+0.5);
dispint_f(position1,position2,v2);
O_X=position1-preci*1;
O_Y=position2;
code_1='.'-0x20;
CW2_PR_F();
position1=position1-1-preci*1;
position1=dispint_f(position1,position2,v1);
if (is_neg){
O_X=position1;
O_Y=position2;
code_1='-'-0x20;
CW2_PR_F();
}
}
/*顯示英文*/
void dispes(uchar position1,uchar position2,uchar chanum,uchar* p)
{
uchar idata i;
for(i=0;i<chanum;i++)
{
position1=position1+1;
if(*(p+i)==0)code_1=0;
else code_1=*(p+i)-0x20;
// code_1=0x37;
O_X=position1;
O_Y=position2;
CW2_PR();
}
}
/*顯示反白英文*/
void dispes_f(uchar position1,uchar position2,uchar chanum,uchar* p)
{
uchar idata i;
for(i=0;i<chanum;i++)
{
position1=position1+1;
if(*(p+i)==0)code_1=0;
else code_1=*(p+i)-0x20;
O_X=position1;
O_Y=position2;
CW2_PR_F();
}
}
/*顯示中文*/
/*void dispcs(uchar position1,uchar position2,uchar chanum,uchar* p)
{
uint idata i;
for(i=0;i<chanum;i++)
{
position1=position1+16;
code_1=*(p+i);
O_X=position1;
O_Y=position2;
CCW_PR();
}
if(chanum==7){
dispes(0x2e,1," ");
dispes(0x3e,1," ");
}
} */
void blank_point(uchar position1,uchar position2,uchar chanum)
{
uchar i;
for(i=0;i<chanum;i++)
{
dispes(position1+i*1,position2,1," ");
}
}
void blank_line(uchar position)
{
uchar i;
// for (i=0;i<30;i++)
{
dispes(0,position,30," ");
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -