C语言系统函数word版Word文档格式.docx
《C语言系统函数word版Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言系统函数word版Word文档格式.docx(34页珍藏版)》请在冰豆网上搜索。
用法:
#include<
system.h>
功能:
清屏
说明:
清除屏幕缓冲区及液晶显示缓冲区
光标位置回到屏幕左上角。
举例:
//clrscr.c
#include<
main()
{
clrscr();
textmode(0x00);
printf("
Pressakey"
);
getchar();
ClearScreen();
AnotherScreen"
return0;
}
DispBCD
externvoidDispBCD(int);
显示七段数码管数字
调用后在屏幕左侧图标区显示对应数字。
显示最大值为999。
//DispBCD.c
inti;
i=9;
NowDisplay9"
DispBCD(9);
i=99;
NowDisplay99"
DispBCD(99);
i=999;
DispBCD(999);
SetScrollBar
externvoidSetDispBar(intsum,intcur);
显示滚动条
调用后在屏幕左侧图标区显示百分比滚动条。
sum为总长度,cur为当前位置。
//SetScrollBar.c
ScrollBarTest"
for(i=0;
i<
60;
i+=5)
SetScrollBar(60,i);
sleep
(1);
TextOut,outtextxy
externvoidTextOut(intx,inty,char*str,intmode);
在屏幕上指定位置输出字符串
outtextxy为指向TextOut的宏,用法相同。
str所指向字符串可以为中文或英文。
中文显示成16x16点阵,英文显示成8x16点阵。
mode决定往屏幕上写的方式,其值含义如下:
0:
背景透明,点阵中为0的点不显示。
1:
正常方式,即点阵中为0的点擦除,为1的点显示。
2:
反显方式,即点阵中为1的点擦除,为0的点显示。
3:
异或方式,即点阵中点的值和屏幕当前位置的值作异或后取值,为0则擦除,为1显示。
//TextOut.c
TextOut(0,0,"
文曲星"
1);
TextOut(10,10,"
0);
TextOut(20,20,"
您好"
2);
TextOut(30,30,"
GGV-金远见"
3);
TextOut
externvoidUpdateLCD(unsignedintmode);
以指定模式刷新屏幕
文曲星屏幕可以按大行(行高16点)或小行(行高8点)显示。
以CC300的屏幕为例,液晶分辨率为112*48即横向可显示112点,纵向可显示48点
由于一个大行占据16点,小行占据8点,故可显示48/16=3大行,或48/8=6小行。
大行和小行可以同屏显示。
具体哪一行为大行,娜一行为小行由mode来决定。
mode低字节从bit7-bit0每一位代表一行,为1表示大行,为0表示小行。
举例如下:
mode值对应二进制值屏幕显示状态
0xE011100000三大行
0xC011000000两大行,两小行
0x8010000000一大行,四小行
0x0000000000六小行
0x2000100000两小行,一大行,两小行
0x4001000000一小行,一大行,三小行
...
以此类推。
Line1\n"
Line2\n"
Line3\n"
Line4\n"
Line5\n"
Line6\n"
UpdateLCD(0x00);
//allarevisible
UpdateLCD(0xE0);
//onlyfirst3linesvisible
UpdateLCD(0x40);
//line6invisible
UpdateLCD(0x20);
bell
externvoidbell(void);
响铃
当在文曲星中,如果所按键在当前功能中不可用,便会发出类似声音。
//bell.c
intc;
pressanykey\n"
c=getchar();
while(c!
=0x1b)
bell();
Thankyou!
"
block
externvoidblock(intleft,inttop,intright,intbottom,intmode);
在屏幕上画一矩形并填充。
(left,top)指定左上角坐标,(right,bottom)指定右下角坐标。
mode决定画图方式,其值含义如下:
清除方式
正常方式
反相方式
//block.c
gotoxy(10,10);
//Hidecursor(movedoutofscreen)
block(1,0,111,47,1);
block(20,10,100,30,0);
block(40,0,80,47,2);
cursor
externvoidcursor(intmode);
设定光标形态
mode值含义如下:
0x00:
块状光标(默认)
0x80:
下划线光标
其它值无意义
//cursor.c
cursor(0x00);
presskeytochangecursor"
cursor(0x80);
delay
externvoiddelay(unsignedintmsec);
短暂延时
延时msec*4毫秒
//delay.c
\nHello,world!
delay(250);
//250*4=1000msec=1sec
\nHi,guys"
get_chi_font
externvoidget_chi_font(char*str,char*buf);
取春鹤值阏�
把str所指向的汉字的16*16点阵信息存放在buf中。
buf必须有足够的空间(>
32字节)来容纳返回的数据。
只返回str指向的第一个汉字的点阵数据。
返回的点阵排列如下:
第一字节十六字节
第二字节十七字节
......
十四字节第30字节
十五字节第31字节
//get_chi_font.c
charbuf[32];
char*s="
*p;
inti,j,k;
//Loopvariable
intx=0,y=0;
//screenlocationtodisplayHZ
intr;
//currentbyte
//HideCursor
p=s;
while(*p)
get_chi_font(p,buf);
2;
i++)
for(j=0;
j<
16;
j++)
r=buf[i*16+j];
for(k=0;
k<
8;
k++)
putpixel(x+i*8+k,y+j,((r<
<
k)&
0x80)?
1:
0);
p+=2;
//forwardaChineseCharacter(HZ),twobytes
x+=16;
get_eng_font
externvoidget_eng_font(charch,char*buf,intmode);
取英文字符的点阵
把字符ch的点阵信息存放在buf中。
buf必须有足够的空间容纳返回的数据。
mode=0时返回8x16点阵信息,mode=1时返回8x8点阵信息。
//get_eng_font.c
GlobalView"
x=y=0;
get_eng_font(*p,buf,0);
r=buf[j];
putpixel(x+k,y+j,((r<
p++;
//forwardtonextcharacter
x+=8;
x=0,y=16;
get_eng_font(*p,buf,1);
getkey
externintgetkey(void);
读键
功能同getchar
//getkey.c
Presskey..."
while((c=getkey())!
='
Q'
)
key:
%c\nvalue:
%x"
c,c);
getpixel
externintgetpixel(intx,inty);
返回屏幕上指定点的状态
(x,y)为屏幕上点的坐标,如果点为清除状态返回零,否则返回非零值。
//pixel.c
inti,j;
V"
//Hidecursor
if(getpixel(i,j))
putpixel(10+i,10+j,1);
else
putpixel(10+i,10+j,0);
gotoxy,move
externvoidgotoxy(intx,inty);
将光标移动到指定位置
gotoxy(x,y)将光标移动到指定行y和列x。
gotoxy(0,0)将光标移动到屏幕左上角。
move(row,col)是到gotoxy的宏,将光标移动到指定行row和列col
move(1,1)将光标移动到屏幕左上角。
//gotoxy.c
char*scrbuf=(char*)0x280;
/*writetoScreenBuf,fasterthanprintforputchar*/
85;
i++)scrbuf[i]='
+'
;
gotoxy(2,2);
//row3,col3
move(2,2);
//row2,col2
line
externvoidline(intleft,inttop,intright,intbottom,intmode);
在屏幕上画直线
(left,top)和(right,bottom)指定直线的两个端点坐标。
mode决定划线的模式。
超出屏幕的线将被裁端。
mode值的含义:
mode=0:
=1:
=2:
取反方式
//line.c
move(10,10);
//hidecursor
block(20,10,100,40,1);
line(1,1,111,47,1);
//fromtoplefttobottomright
line(1,47,111,1,0);
//frombottomlefttotopright
line(112/2,1,112/2,47,2);
//lineverticallyatthemiddleoftheLCD
noidle
externvoidnoidle(void);
调用系统例程
文曲星是单任务系统,为防止应用程序占用过多的系统时间而影响系统程序的执行
同时也为了防止个别程序崩溃而造成系统无法启动,文曲星内核在中断到来时会检
测应用程序所执行的时间,如果在4秒内系统程序没有得到运行,则中断程序将强迫
文曲星进入睡眠状态,即所谓的死机。
因此,当程序运算时间过长(一般为循环过程)时,请调用noidle来防止系统关机。
//noidle.c
Waiting...\n"
10;
32767;
noidle();
SystemShutdown?
putpixel
externvoidputpixel(intx,inty,intmode);
在屏幕的指定位置上画点
(x,y)为屏幕上点的坐标,mode值含义如下:
清除(x,y)处的点
在(x,y)处画点
将(x,y)处的点的状态取反
return