智能压力测量仪课程设计说明书_第1页
智能压力测量仪课程设计说明书_第2页
智能压力测量仪课程设计说明书_第3页
智能压力测量仪课程设计说明书_第4页
智能压力测量仪课程设计说明书_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 . . . 华信学院课程设计说明书题目: 智能压力测量仪 姓 名: 巍 院 (系): 机电工程学院 专业班级: 电气工程三班 学 号: 1102120310 指导教师: 宋东亚 坤漓 成 绩:时间: 2013年 12月 17 日至 2013 年 12 月 28 日华信学院课程设计任务书题目智能压力测量仪 专业、班级 电气工程与其自动化三班 学号 1102120310 巍 主要容:利用单片机计一个智能压力测量仪,要求显示压力数据。基本要求:1.设计一个智能压力测量仪,要求显示当前压力数值。2.利用proteus软件完成设计电路和仿真;3.掌握并口驱动数码管动态显示的方法;4.通过此次设计将单片

2、机软硬件结合起来对程序进行编辑、校验,锻炼实践能力和理论联系实际的能力。主要参考资料:1全利,单片机原理与接口技术M,高等教育2王文杰,单片机应用技术M,冶金工业3朱清慧,PROTEUS教程电子线路设计、制版与仿真M,清华大学4单片机实验指导书,天煌教仪5伟,单片机C语言程序设计实训100例M,电子工业完 成 期 限:指导教师签名:课程负责人签名:年 月 日目录摘要- 2 -1 引言- 2 -1.1 问题的提出- 2 -1.2任务与分析- 3 -2方案设计- 3 -2.1 系统方案设计论证- 3 -2.1.1系统的控制方案设计- 3 -2.2最终设计方案总体设计框图- 3 -3 系统硬件设计-

3、 4 -3.1 AT89C51单片机- 4 -3.1.1 AT89C51单片机介绍- 4 -3.1.2 选用AT89C51单片机原因- 6 -3.2 时钟电路- 6 -3.3 复位电路- 6 -3.4 PG160128A显示电路- 7 -3.5 A/D转换电路- 8 -4 系统软件设计- 9 -4.1主程序框图- 9 -4.2显示子程序框- 10 -5 系统调试过程- 10 -5.2 Keil程序调试- 12 -5.3 Proteus仿真调试- 12 -结论- 15 -致- 16 -参考文献- 16 -附录一程序源代码- 16 -附录二电路原理图与PCB图- 32 -附录三 Proteus仿真

4、截图- 33 -摘 要本课程设计是基于8051单片机为控制核心的压力检测系统。在硬件电路部分,此设计的采用8051单片机,ADC0832转换器,本设计先测量出压力的电信号,然后通过单片机对所测出的压力值,并通过LCD显示压力数值。关键词:8051单片机、压力检测、LCD显示、1 引 言1.1 问题的提出随着电子化程度越来越高,通过增加更多的电子装置,使机器工作在更好的状态,充分发挥机器的性能,保证机器的安全性,减少机器故障率,增加机器寿命等,具有重要的意义。1.2任务与分析本设计的主要任务就是利用单片机实现压力的检测功能。检测压力检测系统所具有的功能如下:压力检测系统是通过声音和文字信息来体现

5、压力的状态。该系统利用8051单片机作为微控制器,通过压变式压力传感器对压力进行信号检测,传感器输出信号经数字滤波与A/D转换后输入ECU,经计算后在LED屏幕上显示压力。2方案设计2.1 系统方案设计论证2.1.1系统的控制方案设计检测压力传感器MPX4250检测到压力信号后,通过ADC0832转换后送入AT89C51单片机,单片机对数据进行处理,显示等。2.2最终设计方案总体设计框图A/D传感器压力传感器LCD显示压力80C51单片机图2.1 系统总体设计框图本方案是由压力传感器、A/D模数转换器、AT89C51单片机、LED显示电路。压力传感器采集压力信号,将其转换为相对应的电压信号,将

6、电压信号输送到A/D模数转换器转换为数字信号,并送入到AT89C51单片机中,经过单片机的数字滤波处理后,在通过PG160128的驱动程序,将其显示在LCD显示器上。3 系统硬件设计3.1 AT89C51单片机3.1.1 AT89C51单片机介绍(1)8051单片机在此单片机上集成了微处理器(CPU),部数据存储器(RAM),以与输入输出端口。8051单片机采用40只引脚的双列直插封装方式,各引脚的功能如下:时钟引脚X1与 X2:用于接晶体振荡器,此次设计用的晶振频率为6MHZ。RESET脚:是复位信号输入端,高电平有效。ALE脚:地址锁存允许信号,用于锁存单片机输出的地址信号,高电平有效PS

7、EN脚:程序存储器输出控制端,在单片机访问外部程序存储器时,此引脚输出的负脉冲作为读外部程序存储器的选通信号,接至程序存储器的OE端。低电平有效。EA脚:其功能为外程序存储器选择控制端。当EA为高电平时,单片机访问部程序存储器,当EA为低电平时,单片机直接访问片外程序存储器。本设计用的是8031,由于8031部无程序存储器,所以此引脚应接地。低电平有效。I/O口引脚:共4个,分别是P0、P1、P2、P3,均为8位口。这4个I/O口可分别作为基本的Input、Output端口。其中P0口可作为数据总线和地址总线(低8位)分时复用的端口,P2口可作为地址总线的高8位,即P0口和P2口地起构成16位

8、地址总线,可供寻址的地址围是:64KB。P3口具有第二功能,即可以产生中断,定时计数等功能。RD、WR引脚:为读和写选通信号,RD用于将单片机的数据写入外设中,WR用于从外设中读取数据。低电平有效AT89C51系列单片机都是以8031为核心发展起来的,具有和51系列单片机与基本结构和软件特征,其部结构如图3-2所示:振荡器与定时电路AT89C51CPU4K字节ROM128字节RAM2个16位定时器/计数器64K总线扩展控制可编程I/O可编程串行口图3-2 AT89C51单片机框图3.1.2 选用AT89C51单片机原因在课程设计里所需外围电路简单,在设计里面使用的引脚较少,占用的资源也比较少。

9、而且该芯片是以AT89C51为核心,性能价格比高,应用成熟,且对其部结构较为熟悉,芯片功能够用而且适用,从而选用AT89C51单片机作为主控芯片。3.2 时钟电路本设计采用部时钟方式的电路。 AT89C51单片机部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,就构成了一个稳定的自激振荡器。电路中的电容C1和C2典型值通常选择为33pF左右。晶体的振荡频率的围通常是在1.2MHZ12MHZ之间。晶体的频率越高,则系统的时钟频率也就越高,单片机的运行速度也就越快。.图3-3 时钟电路3.3 复

10、位电路 复位电路通常采用上电自动复位和按钮复位两种方式。本次设计采用上电复位电路。上电复位电路是在上电瞬间来实现的,其电路如图3-4所示。上电时, RESET端维持两个机器周期的高电平实现复位。图3-4 复位电路3.4 PG160128A显示电路PG160128A是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器与格160×128全点阵液晶显示器组成。可完成图形显示,也可以显示10×8个(16×16点阵)汉字。主要技术参数和性能:模块自带-15负压,用于LCD的驱动电压1. 电源VDD:+5V; 2.显示容:160(列)×128(行)点 3.全屏幕点阵

11、 4.十三种指令 5.与CPU接口采用8位数据总线并行输入输出 6.占空比1/1287.工作温度:-10+55,存储温度:-20+70这里通过PG160128A来显示相关信息图3-5 显示电路ADC0832 是美国国家半导体公司生产的一种8 位分辨率、双通道A/D转换芯片。学习并使用ADC0832 可是使我们了解A/D转换器的原理,有助于我们单片机技术水平的提高。这里通过ADC0832将压力传感器输出的电压信号转换为数字信号,并送入到单片机中进行处理。3.5 A/D转换电路4 系统软件设计4.1主程序框图 开始开始(1)主程序流程框图如下: (2)信号采集子程序框图如下: 置数据区首地址信号采

12、集 设置采集个数求出压力值 A/D转换开始LCD显示数值 等待转换 结束储存,转换中断开始设置数据存储区首址设置采集数据个数对数据进行处理恢复现场返回图4-3 数字滤波流程框图波流程框图(3) 数字滤波流 4.2显示子程序框开始初始化调用显示函数返回图4-4 显示子程序流程图5 系统调试过程通过上面的设计,设计已经基本完成。下面主要实现Altium Designer的原理图、印制板图的绘制和做相关检测,对Keil进行相应的检查和调试,并用Proteus对所设计系统进行仿真。5.1原理图和印制板图绘制和检查5.1.1 在protel99se绘制原理图并进行相应的ERC检查图5-1 原理图的绘制绘

13、制完原理图之后,对原理图进行编译检测,ERC检测结果。5.1.2 在PROTEL99SE生成PCB图在创建完原理图后,对各元器件的引脚进行封装,在原理图中创建网络表(NET),然后再PROTEL99S中新建PCB ,对于生成的PCB图中各器件进行调整,并布线,最终生成PCB图。结果如图5-2所示图5-2 生成PCB图5.2 Keil程序调试程序调试结果如下所示:creating hex file from "压力检测系统"."压力检测系统" - 0 Error(s), 0 Warning(s).5.3 Proteus仿真调试在Proteus中建立仿真图。

14、按下开始仿真按钮,开始进行仿真实验,结果如图5-4,图5-5,图5-6所示:图5-4 Proteus仿真图 图5-5 Proteus仿真图图5-6 Proteus仿真图仿真电路图中实现对压力检测的控制,输出到PG160128A显示。结 论通过MPX4250检测到压力信号,转换为电压值,然后通过ADC0832转换后产生一个数字信号输入到AT89C51单片机中进行处理,再通过单片机驱动PG160128A显示压力的相关信息。由于显示程序的复杂性,所以选用了C语言作为开放程序加快了开发进度。本次设计由于时间较为仓促,难免考虑不周全,还有许多功能需要完善,这需要下来再去深究。在本次课程设计里面,我把电路

15、和单片机必备的一些基本操作技能再次熟悉了一遍。 对于压力检测,我只进行了最简单的程序编写和仿真,而往往在实际中是作为一个系统中的很小子环节来进行应用的,所以还需要我进一步学习更多的单片机与相关测试传感器知识。致本课题在选题与进行过程中得到宋老师的悉心指导。论文行文过程中,宋老师多次帮助我分析思路,开拓视角,在我遇到困难想放弃的时候给予我最大的支持和鼓励。宋老师严谨的治学态度,踏实坚韧的工作精神,将使我终生受益。再多华丽的言语也显得苍白。在此,谨向宋老师致以诚挚的意和崇高的敬意。 参考文献1谭浩强.C程序设计(第三版)M.清华大学.2005(2007重印)2 毅刚,喜元等. MCS-5

16、1单片机应用设计(第3版)M.工业大学.2001.3徐琤颖.Protel99SE EDA技术与应用.M.机械工业.2009.1重印4古辉,均等.微型计算机接口与控制技术.M.机械工业.2009.1附录一 程序源代码/名称:160128液晶显示当前压力#include<AT89X52.H>#include<showfun.h>#include<stdio.h>#include<math.h>#include<stdarg.h>#include<string.h>#include<intrins.h>#define

17、 HZ_CHR_HEIGHT 12#define HZ_CHR_WIDTH 12#include<absacc.h>#include<string.h>#define uchar unsigned char#define uint unsigned intextern char fnLCMInit();/LCD初始化extern void fnSetPos(unsigned char urow,unsigned char ucol);/设置当前地址extern uchar dprintf(uchar x,uchar y,char *fmt);/ASCII(8*16)与汉

18、字(16*16)显示函数sbit CS=P34;sbit CLK=P32;sbit DI0=P33;uint theLastTime;/一次鸣响持续次数unsigned char dsp4;/作为压力存储传入函数显示uchar Get_AD_Result()uchar i,dat1=0,dat2=0;CS = 0;CLK=0;/起始控制位DI0 = 1; _nop_(); _nop_();CS = 0; _nop_(); _nop_();CLK = 1; _nop_(); _nop_();/第一个下降沿之前,设DI = 1 / 0 /选择单端/差分(SGL/DIF)模式中的单端输入模式CLK

19、= 0;DI0 = 1; _nop_(); _nop_();CLK = 1; _nop_(); _nop_();/第二个下降沿之前,设DI = 0 / 1,选择CH0/CH1CLK = 0;DI0 = 0; _nop_(); _nop_();CLK = 1;DI0 = 1; _nop_(); _nop_(); /第三个下降沿之前,设DI = 1CLK = 0;DI0 = 1; _nop_(); _nop_(); /第4-11个下降沿读数据(MSB->LSB)for(i=0;i<8;i+) CLK = 1; _nop_(); _nop_();CLK = 0; _nop_(); _no

20、p_();dat1 = dat1 << 1 | DI0;for(i=0;i<8;i+)dat2 = dat2 | (uchar)(DI0)<<i);CLK = 1; _nop_(); _nop_();CLK = 0; _nop_(); _nop_();CS = 1;return (dat1 = dat2) ? dat1:0;unsigned char dsp4; /作为压力存储传入函数显示void delay() /蜂鸣器鸣响间隔延时 uint i, j = 200;while(j-)for (i = 0; i <= 500; i+);void main()

21、uchar AD_Result;/获取的AD值float ad=0;/当前压力值float Y1,Y2,dY;/限幅滤波dY=2;/定时器初始化fnLCMInit();fnSetPos(0,0);dprintf(30,12,"液晶屏显示当前压力");dprintf(110,58,"千帕");AD_Result=Get_AD_Result();Y1=(AD_Result*5.0/255.0/5.1-0.04)/0.00369-3.45;while(1)AD_Result=Get_AD_Result();Y1=(AD_Result*5.0/255.0/5.1

22、-0.04)/0.00369-3.45;if(abs(Y2-Y1)<=dY)/变化不能太快,否则会失效ad=Y2;Y1=Y2;elsead=Y1;sprintf(dsp,"%-3.0f",ad);dprintf(82,58,dsp);/LCD显示控制程序#define ASC_CHR_WIDTH 8#define ASC_CHR_HEIGHT 12/数字字符点阵库,粗体初号,32*64点阵,32/8=4,每个数字需要4*64字节,共10个数字char code MSK1=0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff;char

23、 code MSK2=0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff;code uchar const uPowArr=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;uchar code ASC_MSK58*10=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, / < 0x20时,打印此字0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/ ' '0x00

24、,0x30,0x78,0x78,0x78,0x30,0x30,0x00,0x30,0x30,0x00,0x00,/ '!'0x00,0x66,0x66,0x66,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/ '"'0x00,0x6c,0x6c,0xfe,0x6c,0x6c,0x6c,0xfe,0x6c,0x6c,0x00,0x00,/ '#'0x30,0x30,0x7c,0xc0,0xc0,0x78,0x0c,0x0c,0xf8,0x30,0x30,0x00,/ '$'0x00,0x

25、00,0x00,0xc4,0xcc,0x18,0x30,0x60,0xcc,0x8c,0x00,0x00,/ '%'0x00,0x70,0xd8,0xd8,0x70,0xfa,0xde,0xcc,0xdc,0x76,0x00,0x00,/ '&'0x00,0x30,0x30,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/ '''0x00,0x0c,0x18,0x30,0x60,0x60,0x60,0x30,0x18,0x0c,0x00,0x00,/ '('0x00,0x

26、60,0x30,0x18,0x0c,0x0c,0x0c,0x18,0x30,0x60,0x00,0x00,/ ')'0x00,0x00,0x00,0x66,0x3c,0xff,0x3c,0x66,0x00,0x00,0x00,0x00,/ '*'0x00,0x00,0x00,0x18,0x18,0x7e,0x18,0x18,0x00,0x00,0x00,0x00,/ '+'0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x38,0x60,0x00,/ ','0x00,0x00,0x00,

27、0x00,0x00,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,/ '-'0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x38,0x00,0x00,/ '.'0x00,0x00,0x02,0x06,0x0c,0x18,0x30,0x60,0xc0,0x80,0x00,0x00,/ '/'0x00,0x7c,0xc6,0xce,0xde,0xd6,0xf6,0xe6,0xc6,0x7c,0x00,0x00,/'0'0x00,0x10,0x30,0xf0,0x30

28、,0x30,0x30,0x30,0x30,0xfc,0x00,0x00,/'1'0x00,0x78,0xcc,0xcc,0x0c,0x18,0x30,0x60,0xcc,0xfc,0x00,0x00,/'2'0x00,0x78,0xcc,0x0c,0x0c,0x38,0x0c,0x0c,0xcc,0x78,0x00,0x00,/'3'0x00,0x0c,0x1c,0x3c,0x6c,0xcc,0xfe,0x0c,0x0c,0x1e,0x00,0x00,/'4'0x00,0xfc,0xc0,0xc0,0xc0,0xf8,0x0c,0

29、x0c,0xcc,0x78,0x00,0x00,/'5'0x00,0x38,0x60,0xc0,0xc0,0xf8,0xcc,0xcc,0xcc,0x78,0x00,0x00,/'6'0x00,0xfe,0xc6,0xc6,0x06,0x0c,0x18,0x30,0x30,0x30,0x00,0x00,/'7'0x00,0x78,0xcc,0xcc,0xec,0x78,0xdc,0xcc,0xcc,0x78,0x00,0x00,/'8'0x00,0x78,0xcc,0xcc,0xcc,0x7c,0x18,0x18,0x30,0x7

30、0,0x00,0x00,/'9'0x00,0x00,0x00,0x38,0x38,0x00,0x00,0x38,0x38,0x00,0x00,0x00,/':'typedef struct typFNT_GB16/汉字字模显示数据结构char Index2;char Msk24;struct typFNT_GB16 code GB_16="液",0x01,0x00,0x41,0x00,0x2F,0xF0,0x84,0x80,0x54,0xE0,0x29,0x20,0x5A,0xA0,0xCD,0x40,0x49,0x40,0x48,0x80,

31、0x49,0x40,0x4E,0x30,/"液1""晶",0x1F,0x80,0x10,0x80,0x1F,0x80,0x10,0x80,0x1F,0x80,0x00,0x00,0x7B,0xE0,0x4A,0x20,0x7B,0xE0,0x4A,0x20,0x7B,0xE0,0x00,0x00,/"晶1""屏",0x7F,0xE0,0x40,0x20,0x7F,0xE0,0x48,0x80,0x45,0x00,0x5F,0xE0,0x44,0x80,0x7F,0xF0,0x44,0x80,0x44,0x80,0x

32、48,0x80,0x90,0x80,/"屏1""显",0x00,0x40,0x3F,0xE0,0x20,0x40,0x3F,0xC0,0x20,0x40,0x3F,0xC0,0x49,0x00,0x29,0x20,0x29,0x40,0x29,0x80,0x09,0x20,0xFF,0xF0,/"显1""示",0x00,0x40,0x7F,0xE0,0x00,0x00,0x00,0x20, 0xFF,0xF0,0x02,0x00,0x12,0x80,0x12,0x40, 0x22,0x20,0x42,0x10,0x

33、8A,0x10,0x04,0x00,/"示1""当",0x04,0x00,0x44,0x40,0x24,0x80,0x04,0x00,0x7F,0xC0,0x00,0x40,0x00,0x40,0x3F,0xC0,0x00,0x40,0x00,0x40,0x7F,0xC0,0x00,0x40,/"当1""前",0x20,0x80,0x11,0x00,0xFF,0xE0,0x00,0x00,0x7C,0x40,0x45,0x40,0x7D,0x40,0x45,0x40,0x7D,0x40,0x45,0x40,0x44

34、,0x40,0x4C,0xC0,/"前1""压",0x00,0x00,0x7F,0xE0,0x40,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x5F,0xC0,0x42,0x00,0x42,0x80,0x42,0x40,0x42,0x00,0xBF,0xE0,/"压1""力",0x08,0x00,0x08,0x00,0xFF,0xC0,0x08,0x40,0x08,0x40,0x08,0x40,0x08,0x40,0x10,0x40,0x10,0x40,0x20,0x40,0x40,0

35、x40,0x83,0x80,/"力1""千",0x00,0x00,0x03,0xC0,0x7C,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0xFF,0xE0,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,/"千1""帕",0x20,0x80,0x21,0x00,0xFB,0xE0,0xAA,0x20,0xAA,0x20,0xAA,0x20,0xAB,0xE0,0xAA,0x20,0xAA,0x20,0xBA,0x20,0x23,0xE

36、0,0x22,0x20,/"帕1"uchar gCurRow, gCurCol;/图形当前行.列存储,行高16点,列宽8点uchar tCurRow, tCurCol;/文本当前行.列存储,行高8点,列宽8点uchar ShowModeSW;/当前显示模式uint txthome,grhome;uchar fnST01();/状态位STA1,STA0判断uchar fnST3();/状态位ST3判断uchar fnPR1(uchar uCmd,uchar uPar1,uchar uPar2);/写双参数的指令uchar fnPR11(uchar uCmd,uchar uPa

37、rl);/写单参数的指令uchar fnPR12(uchar uCmd);/写无参数的指令uchar fnPR13(uchar uData);/写数据uchar fnPR2();/读数据void fnSetPos(uchar urow,uchar ucol);/设置当前地址char fnLCMInit();/LCM初始化uchar dprintf(uchar x,uchar y,char *fmt);void OutToLCD(uchar Dat,uchar x,uchar y);/显示辅助函数uchar fnST01()/状态位STA1,STA0判断(读写指令和读写数据uchar i;for

38、(i=10;i>0;i-)if(LCMCW&0x03)=0x03)break;return i;/若返回0,说明错误uchar fnST3(void)/状态位ST3判断(数据自动写状态)uchar i;for(i=10;i>0;i-)if(LCMCW&0x08)=0x08)break;return i;/若返回0,说明错误uchar fnPR1(uchar uCmd,uchar uPar1,uchar uPar2)/写双参数的指令if(fnST01()=0)return 1;LCMDW=uPar1;if(fnST01()=0)return 2;LCMDW=uPar2

39、;if(fnST01()=0)return 3;LCMCW=uCmd;return 0;/返回0成功uchar fnPR11(uchar uCmd,uchar uParl)/写单参数的指令if(fnST01()=0)return 1;LCMDW=uParl;if(fnST01()=0)return 2;LCMCW=uCmd;return 0;/返回0成功uchar fnPR12(uchar uCmd)/写无参数的指令if(fnST01()=0)return 1;LCMCW=uCmd;return 0;/返回0成功uchar fnPR13(uchar uData)/写数据if(fnST3()=0

40、)return 1;LCMDW=uData;return 0;/返回0成功uchar fnPR2(void)/读数据if(fnST01()=0)return 1;return LCMDW;void fnSetPos(uchar urow,uchar ucol)/设置当前地址uint iPos;iPos=urow*20+ucol;fnPR1(LC_ADD_POS,iPos & 0xFF,iPos/256);gCurRow=urow;gCurCol=ucol;char fnLCMInit(void)/LCM初始化reset=0;reset=1;fnPR1(LC_TXT_STP,0x00,0

41、x00);/文本显示区首地址fnPR1(LC_TXT_WID,0x14,0x00);/文本显示区宽度fnPR1(LC_GRH_STP,0x00,0x00);/图形显示区首地址fnPR1(LC_GRH_WID,0x14,0x00);/文本显示区宽度fnPR11(LC_CGR_POS,CGRAMSTART>>11);fnPR12(LC_CUR_SHP|0x01);/光标形状fnPR12(LC_MOD_OR);/显示方式设置fnPR12(LC_DIS_SW|0x08);grhome=GRSTART;txthome=TXTSTART;return 0;uchar dprintf(uchar x,uchar y,char *fmt)/ASCII与汉字显示函数char c1,c2,cData;uchar i=0,j,uLen;uchar k;uLen=strlen(fmt);while(i<uLen)c1=fmti;c2=fmti+1;fnSetPos(y,x/8);if(c1>=0)/ASCIIif(c1<0x20)switch(c1)case CR:cas

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论