C语言系统函数word版Word文档格式.docx

上传人:b****6 文档编号:20414219 上传时间:2023-01-22 格式:DOCX 页数:34 大小:21.69KB
下载 相关 举报
C语言系统函数word版Word文档格式.docx_第1页
第1页 / 共34页
C语言系统函数word版Word文档格式.docx_第2页
第2页 / 共34页
C语言系统函数word版Word文档格式.docx_第3页
第3页 / 共34页
C语言系统函数word版Word文档格式.docx_第4页
第4页 / 共34页
C语言系统函数word版Word文档格式.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

C语言系统函数word版Word文档格式.docx

《C语言系统函数word版Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言系统函数word版Word文档格式.docx(34页珍藏版)》请在冰豆网上搜索。

C语言系统函数word版Word文档格式.docx

用法:

#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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1