EDN首页   博客首页

最新日志

发表于:2007-12-4 16:13:12
标签:Proteus  

2

Proteus 自建元件库

一、Proteus VSM仿真模型简介

    在使用Proteus仿真单片机系统的过程中,经常找不到所需的元件,这就需要自己编写。Proteus VSM的一个主要特色是使用基于DLL组件模型的可扩展性。这些模型分为两类:电气模型(Electrical Model)和绘图模型(Graphical Model)。电气模型实现元件的电气特性,按规定的时序接收数据和输出数据;绘图模型实现仿真时与用户的交互,例如LCD的显示。一个元件可以只实现电气模型,也可以都实现电气和绘图模型。
    Proteus为VSM模型提供了一些C++抽象类接口,用户创建元件时需要在DLL中实现相应的抽象类。VSM模型和Proteus系统通信的原理如下图: 
点击看大图0 && image.height>0){if(image.width>=510){this.width=510;this.height=image.height*510/image.width;}}" border="0"> 

绘图模型接口抽象类:

ICOMPONENT――ISIS内部一个活动组件对象,为VSM模型提供在原理图上绘图和用户交互的服务。
IACTIVEMODEL――用户实现的VSM绘图模型要继承此类,并实现相应的绘图和键盘鼠标事件处理。

电气模型接口抽象类:

IINSTANCE――一个PROSPICE仿真原始模型,为VSM模型提供访问属性、模拟节点和数据引脚的服务,还允许模型通过仿真日志发出警告和错误信息。
ISPICECKT(模拟)――SPICE拥有的模拟元件,提供的服务:访问、创建和删除节点,在稀疏矩阵上分配空间,同时还允许模型在给定时刻强制仿真时刻点的发生和挂起仿真。
ISPICEMODEL(模拟)――用户实现的VSM模拟元件要继承此类,并实现相应的载入数据,在完成的时间点处理数据等。
IDSIMCKT(数字)――DSIM拥有的数字元件,提供的服务:访问数字系统的变量,创建回调函数和挂起仿真。
IDSIMMODEL(数字)――用户实现的VSM数字元件要继承此类,并实现相应的引脚状态变化的判断和回调事件的处理。
IDSIMPIN(数字)――数字组件的引脚,提供检测引脚状态和创建输出事务事件的服务。
IDBUSPIN(数字)――数字组件的数据或地址总线,提供检测总线状态和创建总线输出事务事件的服务。
IMIXEDMODEL(混合)――同时继承了ISPICEMODEL 和 IDSIMMODEL,元件既有模拟特性,又有数字特性。

       为了让Proteus访问用户模型中的成员函数,必须创建用户模型的一个实例。这不能通过类的接口来实现,只能通过从DLL中导出几个C函数来实现,在用户模型中必须实现这些C函数,达到构造和析构用户模型实例的效果。

(1)构造和析构绘图模型实例:
IACTIVEMODEL *createactivemodel (CHAR *device, ILICENCESERVER *ils)
VOID deleteactivemodel (IACTIVEMODEL *model)

(2)构造和析构模拟电气模型实例:
ISPICEMODEL *createspicemodel (CHAR *device, ILICENCESERVER *ils)
VOID deletespicemodel (ISPICEMODEL *model)

(3)构造和析构数字电气模型实例:
IDSIMMODEL *createdsimmodel (CHAR *device, ILICENCESERVER *ils)
VOID deletedsimmodel (IDSIMMODEL *model)

(4)构造和析构混合电气模型实例:
IMIXEDMODEL *createmixedmodel (CHAR *device, ILICENCESERVER *ils)
VOID deletemixedmodel (IDSIMMODEL *model)

二、Proteus VSM仿真模型开发流程
1.绘制元件图形、引脚和相关符号。
2.制作元件,设置元件属性。
3.用C++编写元件,实现电气和绘图模型,编译生成DLL。
4.搭建电路仿真测试。

三、VSM模型开发实例
下面以TG19264A点阵式液晶显示元件的开发为实例详细讲解开发过程。

1.打开Proteus,选择菜单 查看>>Snap 10 th,选择左边绘图工具栏的2D graphics box,绘制如图所示的三个图形。


点击看大图0 && image.height>0){if(image.width>=510){this.width=510;this.height=image.height*510/image.width;}}" border="0"> 

2.选择2D graphics line,给出两条直线,设置width为36th,颜色为灰色。选择2D graphics circle,给四个角绘制安装孔。选择Markers for component origin,给三个图形分别绘图符号原点(图中红色部分)。


点击看大图0 && image.height>0){if(image.width>=510){this.width=510;this.height=image.height*510/image.width;}}" border="0"> 

3.选择Device pin,顺时针旋转90度,放置20个引脚,如图所示。GND、VCC、V0、Vee、LED+的电气类型选择PP-Power Pin,D/I、R/W、E、CS1、RET、CS2、CS3的电气类型选择IP-Input,D0~D7的电气类型选择IO- Bidirectional。


点击看大图0 && image.height>0){if(image.width>=510){this.width=510;this.height=image.height*510/image.width;}}" border="0"> 

 

4.右键拖出选择框选择第一个符号,选择菜单库>>制作符号,命名为LCD19264A_C,确定。同理,第二和第三个分别命名为LCD19264A_1 和LCD19264A_0。当用户调用drawsymbol (-1),将绘制LCD19264A_C,调用drawsymbol (1),将绘制LCD19264A_1,调用drawsymbol (0),将绘制LCD19264A_0。


点击看大图0 && image.height>0){if(image.width>=510){this.width=510;this.height=image.height*510/image.width;}}" border="0"> 

 

5.右键拖出选择框选择符号LCD19264A_C,选择菜单库>>制作元件,Device Properties设置如图,
点击看大图0 && image.height>0){if(image.width>=510){this.width=510;this.height=image.height*510/image.width;}}" border="0"> 
点击Next>。跳过封装设置,点击Next>。组件属性设置如图,
点击看大图0 && image.height>0){if(image.width>=510){this.width=510;this.height=image.height*510/image.width;}}" border="0"> 
点击看大图0 && image.height>0){if(image.width>=510){this.width=510;this.height=image.height*510/image.width;}}" border="0"> 
点击Next>。选择数据手册(可选),点击Next>。选择器件库,点击OK。

6.打开VC,新建工程,选择Win32 Dynamic-Link Library,给工程命名,建立空的DLL工程。从Proteus安装目录的INCLUDE文件夹中将VSM.HPP复制到当前工程目录,新建文件 LCD19264A.H和LCD19264A.CPP,编写如下代码。


CODE:

/*****************************************************************
* 文件:LCD19264A.H
* 说明:不支持以下特性
* (1) 不支持显示开关控制
* (2) 不支持设置显示起始行
*****************************************************************/
#i nclude "vsm.hpp"

//LCD常量
#define LCD_BLK_NUM  3  //lcd block number
#define LCD_BLK_LEN  64  //lcd block length
#define LCD_LINE_NUM 8  //lcd line number
#define LCD_LENGTH  (LCD_BLK_LEN*LCD_BLK_NUM)  //lcd length
#define LCD_WIDTH  64  //lcd width
#define BLANK_WIDTH  50  //the width of blank
#define SYM_LINEWIDTH 28  //the width of symbol line
//LCD命令掩码
#define CMD_MASK  0xc0
//LCD命令
#define DISP_ONOFF  0x00 //开关背光
#define SET_STARTLINE 0xc0 //设置起始行
#define SET_XADDRESS 0x80 //设置X地址
#define SET_YADDRESS 0x40 //设置Y地址
//延时常量
#define DELAY_1s  1000000000000
#define DELAY_1ms 1000000000
#define DELAY_1us 1000000
#define DELAY_1ns 1000
#define DELAY_1ps 1

/*
LCD元件既有数字电气特性,也有绘图特性,所以要继承IACTIVEMODEL和IDSIMMODEL
*/
class LCD19264A : public IACTIVEMODEL,public IDSIMMODEL
{
public:
/* 电气模型成员函数 */
//数字电路总是返回TRUE
INT isdigital (CHAR *pinname);
//当创建模型实例时被调用,做初始化工作
VOID setup (IINSTANCE *inst, IDSIMCKT *dsim);
//仿真运行模式控制,交互仿真中每帧开始时被调用
VOID runctrl (RUNMODES mode);

//交互仿真时用户改变按键等的状态时被调用
VOID actuate (REALTIME time, ACTIVESTATE newstate);
//交互仿真时每帧结束时被调用,通过传递ACTIVEDATA数据与绘图模型通信,从而调用animate()进行绘图
BOOL indicate (REALTIME time, ACTIVEDATA *data);
//当引脚状态变化时被调用,主要用来处理数据输入和输出
VOID simulate (ABSTIME time, DSIMMODES mode);
//可通过setcallback()设置在给定时间调用的回调函数
VOID callback (ABSTIME time, EVENTID eventid);

/* 绘图模型成员函数 */
//当创建模型实例时被调用,做初始化工作
VOID initialize (ICOMPONENT *cpt);
//被PROSPICE调用,返回模拟电气模型
ISPICEMODEL *getspicemodel (CHAR *device);
//被PROSPICE调用,返回数字电气模型
IDSIMMODEL *getdsimmodel (CHAR *device);
//当原理图需要重绘时被调用
VOID plot (ACTIVESTATE state);
//当相应的电气模型产生活动事件时被调用,常用来更新图形
VOID animate (INT element, ACTIVEDATA *newstate);
//用来处理键盘和鼠标事件
BOOL actuate (WORD key, INT x, INT y, DWORD flags);
private:
IINSTANCE *instance; //PROSPICE仿真原始模型
IDSIMCKT *ckt;   //DSIM的数字元件
ICOMPONENT *component; //ISIS内部一个活动组件对象
//引脚定义
IDSIMPIN *di; //D/I
IDSIMPIN *rw; //R/W
IDSIMPIN *en; //E
IDSIMPIN *cs1; //CS1
IDSIMPIN *cs2; //CS2
IDSIMPIN *cs3; //CS3
IDSIMPIN *d[8]; //D0~D7
IBUSPIN *databus; //D[0..7]
//LCD参数
BYTE x_addr; //X地址(见手册)
BYTE y_addr; //Y地址(见手册)
BYTE status; //状态(见手册)
BYTE cur_blk; //当前块号(总共分3块,见手册)
BYTE DDRAM[LCD_BLK_NUM][LCD_BLK_LEN*LCD_WIDTH/8]; //LCD显示RAM
BOOL new_flag; //新数据到达标志
//显示参数
BOX lcdarea; //LCD显示区域
float pix_width, pix_height; //每象素对应矩形的宽和高
};


CODE:
/*****************************************************************
* 文件:LCD19264A.CPP
* 说明:不支持以下特性
* (1) 不支持显示开关控制
* (2) 不支持设置显示起始行
*****************************************************************/
#i nclude
#i nclude "LCD19264A.h"
//----------------------------------------------------------------------------
//电气模型的实现
//构造数字电气模型实例
extern "C" IDSIMMODEL __declspec(dllexport) * createdsimmodel (CHAR *device, ILICENCESERVER *ils)
{
//授权认证
ils->authorize(0x88888888, 0x69); //版本为6.9
return new LCD19264A; //创建模型实例
}

//析构数字电气模型实例
extern "C" VOID __declspec(dllexport) deletedsimmodel (IDSIMMODEL *model)
{
delete (LCD19264A *)model; //删除模型实例
}

//数字电路总是返回TRUE
INT LCD19264A::isdigital (CHAR *pinname)
{
return 1;
}

//当创建模型实例时被调用,做初始化工作
VOID LCD19264A::setup (IINSTANCE *inst, IDSIMCKT *dsim)
{
instance = inst; //PROSPICE仿真原始模型
ckt = dsim;  //DSIM的数字元件
//获取引脚
di = instance->getdsimpin("D/I,d/i", true);
di->setstate(FLT); //FLOAT
rw = instance->getdsimpin("R/W,r/w", true);
rw->setstate(FLT);
en = instance->getdsimpin("E,e", true);
en->setstate(FLT);
cs1 = instance->getdsimpin("CS1,cs1", true);
cs1->setstate(FLT);
cs2 = instance->getdsimpin("CS2,cs2", true);
cs2->setstate(FLT);
cs3 = instance->getdsimpin("CS3,cs3", true);
cs3->setstate(FLT);
d[0] = instance->getdsimpin("D0,d0", true);
d[0]->setstate(FLT);
d[1] = instance->getdsimpin("D1,d1", true);
d[1]->setstate(FLT);
d[2] = instance->getdsimpin("D2,d2", true);
d[2]->setstate(FLT);
d[3] = instance->getdsimpin("D3,d3", true);
d[3]->setstate(FLT);
d[4] = instance->getdsimpin("D4,d4", true);
d[4]->setstate(FLT);
d[5] = instance->getdsimpin("D5,d5", true);
d[5]->setstate(FLT);
d[6] = instance->getdsimpin("D6,d6", true);
d[6]->setstate(FLT);
d[7] = instance->getdsimpin("D7,d7", true);
d[7]->setstate(FLT);
//为方便操作,将D0~D7映射为8位总线
databus = instance->getbuspin("LCD_DBUS", d, 8);
databus->settiming(100,100,100); //设置时间延迟
databus->setstates(SHI,SLO,FLT); //设置总线逻辑为[1,0,三态]时的驱动状态

//lcd model
x_addr = 0; //X地址(见手册)
y_addr = 0; //Y地址(见手册)
status = 0; //状态(见手册)
new_flag = TRUE; //新数据到达标志
}

//仿真运行模式控制,交互仿真中每帧开始时被调用
VOID LCD19264A::runctrl (RUNMODES mode)
{
}

//交互仿真时用户改变按键等的状态时被调用
VOID LCD19264A::actuate (REALTIME time, ACTIVESTATE newstate)
{

}

//交互仿真时每帧结束时被调用,通过传递ACTIVEDATA数据与绘图模型通信,从而调用animate()进行绘图
BOOL LCD19264A::indicate (REALTIME time, ACTIVEDATA *data)
{
if(new_flag){ //有新数据到达
  data->type = ADT_REAL; //call back animate() to refresh lcd
  data->realval = (float)time*DSIMTICK;
}
return TRUE;
}

//当引脚状态变化时被调用,主要用来处理数据输入和输出
VOID LCD19264A::simulate (ABSTIME time, DSIMMODES mode)
{
BYTE data;
if(en->isnegedge()){  //E的下降沿到达
  if((rw->istate()==SLO)||(rw->istate()==WLO)){ //R/W为低表示写
   //读块选择
   if((cs1->istate()==SLO)||(cs1->istate()==WLO))
    cur_blk = 0;
   else if((cs2->istate()==SLO)||(cs2->istate()==WLO))
    cur_blk = 1;
   else if((cs3->istate()==SLO)||(cs3->istate()==WLO))
    cur_blk = 2;
   else
    return; //not select block
  
   data = (BYTE)databus->getbusvalue(); //读数据
   if((di->istate()==SHI)||(di->istate()==WHI)){ //D/I为高表示数据
    DDRAM[cur_blk][x_addr*LCD_BLK_LEN+y_addr] = data; //写入数据
    new_flag = TRUE; //新数据到达标志
    y_addr = ((y_addr+1)%LCD_BLK_LEN);  //y地址自动加1
    if(y_addr==0)
     x_addr = ((x_addr+1)%LCD_LINE_NUM); //自动换行
   }else{  //D/I为低表示命令
    switch(data&CMD_MASK)
    {
    case DISP_ONOFF: //开关背光
     break;
    case SET_STARTLINE: //设置起始行
     break;
    case SET_XADDRESS: //设置X地址
     x_addr = (data&0x07); //bit2~bit0
     break;
    case SET_YADDRESS: //设置Y地址
     y_addr = (data&0x3f); //bit5~bit0
     break;
    default:
     break;
    }
   }
  }else{  //E的下降沿到达,R/W为高表示读结束
   databus->drivetristate(time); //驱动总线为三态
  }
}else if(en->isposedge()  //E的上升沿到达
   && ((rw->istate()==SHI)||(rw->istate()==WHI))){ //R/W为高表示读
  if((di->istate()==SHI)||(di->istate()==WHI)){ //D/I为高表示数据
   //读块选择
   if((cs1->istate()==SLO)||(cs1->istate()==WLO))
    cur_blk = 0;
   else if((cs2->istate()==SLO)||(cs2->istate()==WLO))
    cur_blk = 1;
   else if((cs3->istate()==SLO)||(cs3->istate()==WLO))
    cur_blk = 2;
   else
    return; //not select block
   data = DDRAM[cur_blk][x_addr*LCD_BLK_LEN+y_addr];
   databus->drivebusvalue(time, data);  //输出数据
   y_addr = ((y_addr+1)%LCD_BLK_LEN);  //y地址自动加1
   if(y_addr==0)
    x_addr = ((x_addr+1)%LCD_LINE_NUM); //自动换行
  }else{  //D/I为低表示命令
   databus->drivebusvalue(time, status); //输出状态
  }
}
}

//可通过setcallback()设置在给定时间调用的回调函数
VOID LCD19264A::callback (ABSTIME time, EVENTID eventid)
{
}

//----------------------------------------------------------------------------
//绘图模型的实现
// Exported constructor for active component models.
extern "C" IACTIVEMODEL __declspec(dllexport) * createactivemodel (CHAR *device, ILICENCESERVER *ils)
{
ils->authorize (0x88888888,0x69); //6.9
return new LCD19264A;
}

// Exported destructor for active component models.
extern "C" VOID  __declspec(dllexport) deleteactivemodel (IACTIVEMODEL *model)
{
delete (LCD19264A *)model;
}

//当创建模型实例时被调用,做初始化工作
VOID LCD19264A::initialize (ICOMPONENT *cpt)
{
//获取ICOMPONENT接口和初始化
component = cpt;
component->setpenwidth(0);
component->setpencolour(BLACK);
component->setbrushcolour(BLACK);
//获取显示区域
component->getsymbolarea(0,&lcdarea);
//计算每象素对应矩形的宽和高
pix_width = (float)(lcdarea.x2-lcdarea.x1-BLANK_WIDTH*2-SYM_LINEWIDTH*2)/LCD_LENGTH;
pix_height = (float)(lcdarea.y2-lcdarea.y1-BLANK_WIDTH*2-SYM_LINEWIDTH*2)/LCD_WIDTH;
}

//被PROSPICE调用,返回模拟电气模型
ISPICEMODEL *LCD19264A::getspicemodel (CHAR *)
{
return NULL;
}

//被PROSPICE调用,返回数字电气模型
IDSIMMODEL  *LCD19264A::getdsimmodel (CHAR *)
{
return this;
}

//当原理图需要重绘时被调用
VOID LCD19264A::plot (ACTIVESTATE state)
{
//绘制LCD19264A_C元件基本图形
component->drawsymbol(-1);
//刷新LCD数据显示
new_flag = TRUE;
animate (0, NULL);
}

//当相应的电气模型产生活动事件时被调用,常用来更新图形
VOID LCD19264A::animate (INT element, ACTIVEDATA *data)
{
BOX pix;
BYTE dat,block,line,byte_off,bit_off;
if(new_flag){ //当有新数据到达
  new_flag = FALSE;
  component->begincache (lcdarea); //打开缓冲
  component->drawsymbol(1);  //显示LCD19264_1符号
  //显示各点数据
  for(block=0; block   for(line=0; line    for(byte_off=0; byte_off     dat = DDRAM[block][line*LCD_BLK_LEN+byte_off]; //get byte data
     for(bit_off=0; bit_off<8; bit_off++){
      if(dat&(1<       pix.x1 = (int)(BLANK_WIDTH+(block*LCD_BLK_LEN+byte_off)*pix_width+0.5);
       pix.y1 = -(int)(BLANK_WIDTH+(line*8+bit_off)*pix_height+0.5);
       pix.x2 = pix.x1 + (int)(pix_width+0.5);
       pix.y2 = pix.y1 - (int)(pix_height+0.5);
       component->drawbox(pix); //绘制1个象素点
      }
     }
    }
   }
  }
  component->endcache(); //结束缓冲,显示数据
}
}

//用来处理键盘和鼠标事件
BOOL LCD19264A::actuate (WORD key, INT x, INT y, DWORD flags) 
{
return FALSE;
}

7.搭建电路如下电路,新建Keil C工程,编写代码测试元件。如下图:
点击看大图0 && image.height>0){if(image.width>=510){this.width=510;this.height=image.height*510/image.width;}}" border="0">

点击此处查看原文 >>

系统分类: 单片机   |    用户分类:    |    来源: 转贴

评论(2) | 阅读(1095)
发表于:2007-11-26 15:17:14
标签:Keil和Proteus之间的通信  

1

Keil和Proteus之间的通信设置

如何在keil中调用proteus进行MCU外围器件的仿真!
         proteus 6.9以前的版本
  1、安装keil c51 与 proteus
  2、把proteus安装目录下MODELS文件夹里 VDM51.dll文件复制到Keil安装目录的 \C51\BIN
   目录中。
  3、修改keil安装目录下 Tools.ini文件,在C51字段加入TDRV5=BIN\VDM51.DLL
   ("Proteus VSM Monitor-51 Driver"),保存
   注意:不一定要用TDRV5,根据原来字段选用一个不重复的数值就可以了。引号内的
   名字随意~
  4、打开proteus,画出相应电路(这个自己摸索吧。注意:proteus中mouse的左右键与
   一般程序是相反的样子)。在proteus的tools菜单中选中use remote debug monitor
  5、在keil中编写MCU的程序(keil不会,那先学学吧,比medwin难学些哦!)。
  6、进入KEIL的project菜单option for target '工程名'。在DEBUG选项中右栏上部的下
   拉菜选中 Proteus VSM Monitor-51 Driver
   在进入seting,如果同一台机IP 名为127.0.0.1,如不是同一台机则填另一
   台的IP地址。端口号一定为8000
   注意:可以在一台机器上运行keil,另一台中运行proteus进行远程仿真哦~
  7、在keil中进行debug吧,同时在proteus中查看直观的结果(如LCD显示…) 
 
        proteus 6.9以后的版本
 

proteus 7.12与 keil 8.0的联调方法
    对于proteus 6.9以后的版本,在安装盘里或LABCENTER公司有vdmagdi插件,安装该插件即可实现与KEIL的联调。
    首先安装vdmagdi软件,然后再进行以下设置:

Keil设置
    在Keil软件上单击“Project菜单/Options for Target”选项或者点击工具栏的“option for ta rget”按钮 ,弹出窗口,点击“Debug”按钮,出现如图所示页面。
点击看大图 
在出现的对话框里在右栏上部的下拉菜单里选中“Proteus VSM Monitor-51 Driver”。并且还要点击一下“Use”前面表明选中的小圆点。再点击“Setting”按钮,设置通信接口,在“Host”后面添上“127.0.0.1”,如果使用的不是同一台电脑,则需要在这里添上另一台电脑的IP地址(另一台电脑也应安装Proteus)。在“Port”后面添加“8000”。设置好的情形如图所示,点击“OK”按钮即可。最后将工程编译,进入调试状态,并运行。  

Proteus的设置
进入Proteus的ISIS,鼠标左键点击菜单“Debug”,选中“use romote debuger monitor”,如图所示。此后,便可实现KeilC与Proteus连接调试。
 

 

点击此处查看原文 >>

系统分类: 单片机   |    用户分类:    |    来源: 整理

评论(0) | 阅读(821)
发表于:2007-11-26 12:51:04
标签:无标签

0

评论(0) | 阅读(424)
发表于:2007-11-23 13:26:19
标签:volatile  

2

volatile的用法

volatile的本意是“易变的”

由于访问寄存器的速度要快过RAM,所以编译器一般都会作减少存取外部RAM的优化。比如:

static int i="0";

int main(void)
{
...
while (1)
{
if (i) dosomething();
}
}

/* Interrupt service routine. */
void ISR_2(void)
{
i=1;
}

程序的本意是希望ISR_2中断产生时,在main当中调用dosomething函数,但是,由于编译器判断在main函数里面没有修改过i,因此可能只执行一次对从i到某寄存器的读操作,然后每次if判断都只使用这个寄存器里面的“i副本”,导致dosomething永远也不会被调用。如果将将变量加上volatile修饰,则编译器保证对此变量的读写操作都不会被优化(肯定执行)。此例中i也应该如此说明。

一般说来,volatile用在如下的几个地方:

1、中断服务程序中修改的供其它程序检测的变量需要加volatile;

2、多任务环境下各任务间共享的标志应该加volatile;

3、存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写都可能由不同意义;

另外,以上这几种情况经常还要同时考虑数据的完整性(相互关联的几个标志读了一半被打断了重写),在1中可以通过关中断来实现,2中可以禁止任务调度,3中则只能依靠硬件的良好设计了。

 简单点: 就是该变量会以编译器无法预知的方式发生变化,请编译器不要做优化(所有的编译器的优化均假设编译器知道变量的变化规律)

点击此处查看原文 >>

系统分类: 单片机   |    用户分类:    |    来源: 整理

评论(0) | 阅读(389)
发表于:2007-11-14 16:16:21
标签:无标签

0

WORD技巧60例分享

1、 Word表格自动填充
  在Word表格里选中要填入相同内容的单元格,单击“格式→项目符号和编号”,进入“编号”选项卡,选择任意一种样式,单击“自定义”按钮,在“自定义编号列表”窗口中“编号格式”栏内输入要填充的内容,在“编号样式”栏内选择“无”,依次单击“确定”退出后即可。

  2、 Word中巧输星期

  单击“格式→项目符号和编号”,进入“编号”选项卡,单击“自定义”按钮,在“编号样式”栏内选择“一、二、三”等样式,在“编号格式”栏内的“一”前输入“星期”即可。

  3、 粘贴网页内容
  在Word中粘贴网页,只须在网页中复制内容,切换到Word中,单击“粘贴”按钮,网页中所有内容就会原样复制到Word中,这时在复制内容的右下角会出现一个“粘贴选项”按钮,单击按钮右侧的黑三角符号,弹出一个菜单,选择“仅保留文本”即可。

  4、 快速转换大写金额
  在Word中输入12345,然后点击“插入→数字”命令,在弹出的“数字”对话框“数字类型”栏里选择中文数字版式“壹、贰、叁••••• • • ”单击“确定”,则12345就变成中文数字“壹万贰仟叁佰肆拾伍”。

  5、 去掉自动编号功能
  点击“工具→自动更正选项”,打开“自动更正”对话框,进入“键入时自动套用格式”选项卡,找到“键入时自动应用”组中的“自动编号列表”复选项,取消前面的钩即可。这样就可以去掉那些“烦心”的自动编号功能。同样也可去除“画布”,方法是:点击“工具→选项”,进入“常规”选项卡,去除“插入‘自选图形’时自动创建绘图画布”复选框上的钩即可。

  6、画出不打折的直线
  在Word中如果想画水平、垂直或“15º、30º、45º、75º”角的直线,只须在固定一个端点后,按住Shift键,上下拖动鼠标,将会出现上述几种直线选择,位置调整合适后松开Shift键即可。

  7、加减乘除松输入
  i和I在中文输入法智能ABC中有着特殊的意义,它们可以作为输入小写和大写中文数字的前导字符,还可以用来将数字运算符号变为相应的汉字,在i或I后面输入+、—、*、/,按回车键或空格键,即可得到与之对应的汉字加、减、乘、除。

  8、部分加粗表格线
  在Word中需要加粗某一条或几条表格线时,可以先在工具栏选项中点击“表格和边框”按钮,然后在“表格和边框”窗口选定“线型”与“线宽”,再点击“绘制表格”按钮,最后在欲加粗的表格线上从头到尾画上一笔即可。

  9、打造整齐的Word公式
  使用Word公式编辑器创建公式后,你如果感到其中的公式不整齐(特别是矩阵形式的公式),那么你可以通过下列方式进行微调:单击该公式,右键进入“设置对象格式”,选择“版式”中任意一种形式,单击“确定”,再选中需要调整的项;按下Ctrl键后,利用光标上下左右移动对该项进行微调;重复上下左右移动对该项进行微调;重复上述步骤,直到将公式位置调整到满意为止。

  10、文字旋转轻松做
  在Word中可以通过“文字方向”命令来改变文字的方向。但也可以用以下简捷的方法来做。选中要设置的文字内容,只要把字体设置成“@字体”就行,比如“@宋体”或“@黑体”,就可使这些文字逆时针旋转90度了。
]
  11、去除默认的输入法:
  打开选项窗口,点击其中的“编辑”选项卡,去除最下面的“输入法控制处于活动状态”前的对号,点击确定。重新启动Word后,就会发现微软拼音不会一起启动了。  

  12、翻译文字:
  先要安装好字典库,连线上网,通过网上资源翻译。选择准备翻译的文字,然后点选Word菜单栏“工具”→“信息检索”;界面右边将出现“信息检索”版面。在“搜索”栏选择“翻译”,再在“翻译”栏选择“将”哪国语言“翻译为”哪国语言,结果马上就会显示出来。要快速翻译下一个词,可以按住Alt键不放,然后点选生词。

  13、快速显示文档中的图片:
  如果一篇Word文档中有好多图片,打开后显示比较慢。但我们打开文档时,快速点击“打印预览”按钮,图片就会立刻清晰的显示出来,然后关闭打印预览窗口,所有插入的图片都会快速显示出来了。

  14、给图片注解文字:
  选定要添加说明的图片,单击鼠标右键,在快捷功能菜单中选“题注”,以打开题注窗口;然后在“标签”栏选择“公式”、“表格”或“图表”;最后在“题注”栏输入注解文字,再点“确定”按钮结束。此时,注解文字会自动显示在图片下方。注解文字可以随时更改,如改变字体大小,或者删除等等。

  15、制作水印:
  Word2003具有添加文字和图片两种类型水印的功能,而且能够随意设置大小、位置等等。在Word菜单栏点击“格式”→“背景”→“水印”。在“水印”对话框中选择“文字水印”,然后在“文字”栏选择合适的字句,或另外输入文字;或在“水印”对话框中选择“图片水印”,然后找到要作为水印图案的图片。最后按“确定”,水印就会出现在文字后面。

  16、自动更正错误词组:
  可以通过Word2003自动更正写错的词组。比如“为虎作伥”容易写成“为虎做伥”,依次点击“工具-自动更正选项”菜单,在弹出的“自动更正”窗口中选择“自动更正”标签项,在下面的替换文本框中输入“为虎做伥”,然后在替换为文本框中输入“为虎作伥”,点击确定。这样以后如果在文章中再次输入“为虎做伥”的时候,Word就会自动更正为“为虎作伥”。用同样的办法我们可以把容易混淆的一些词组或是成语添加到自动更正中,让你的Word识别词组能力更强、更智能化。

  17、轻松统计文档字数:
  打开Word文档,然后依次点击“工具-字数统计”菜单,就可以清楚的看到这篇文档的统计信息,也可以通过打开文档属性窗口,接着选择“摘要”标签,然后点击“高级”按钮,这时也可以看到该文档的详细统计信息。但是需要统计多篇文档的总字数,这样一篇篇的统计,也就太慢了,效率也很低。可以先打开其中任意一篇文档,然后依次点击“插入-文件”菜单,然后把其它文档全部插入进来,合并成一篇文档,然后再点击“字数统计”菜单项,就可以轻松的查看所有文档的总字数了。

  18、一版多页显示:
  先按“预览打印”图标,或点击“文件”→“打印预览”,Word将处于“预览”模式;在工具栏上单击鼠标右键,选择“常用”。这时,Word的菜单栏下一排会出现“常用”工具栏。再在工具栏上右击鼠标,选择“自定义”,进入自定义设置状态;现在,将“打印预览”工具栏上的“多页”按钮拖到“常用”工具栏上。关闭“自定义”窗口,再关闭“预览”模式;以后,点击Word“常用”工具栏上的“多页”按钮,就可以选择一页显示多少个版面了。

  19、加载稿纸:
  到微软网站(http://www.microsoft.com/downloads/details.aspx?FamilyId=6730FF58-875D-4772-A3B3-3895DE9C0B2F&&displaylang=zh-cn)上下载稿纸加载项,安装后在Word2003的“格式”菜单下就可以看到“稿纸设置”命令,选择后在设置对话框“启用稿纸隔线”,然后我们设定每格的尺寸、网格样式、网格颜色、纸张大小等,确定后Word中的就自动应用稿纸样式,文字被放到稿纸的每个格子上。

  20、自动缩进两个汉字
  我们中国人写东西都有段首空两个汉字 俗称低两格的习惯,如果每次都要在段首敲四个空格半角键,实在是太麻烦了,Word 2000为我们提供了更为方便的办法,选中所要设置缩进的段落,打开“格式”菜单中的“段落”设置,在“特殊格式”下拉框中选择“首行缩进”,在“度量值”中选择“2字符”。当然,最方便的办法还是在默认模板中设置段落“首行缩进”为“2字符”。

  21、删除行首行尾空格
  由于网页排版中的“低两格”都是通过插入空格来实现的,所以我们从网上拷贝下来的文章段落在Word 2000中进行段落重排时,由于我们已经设置了自动“首行缩进”两个汉字,再加上这两个全角空格,就成了段首四个汉字空格,手工进行删除实在是太麻烦,这时我们可以选中要去掉行首行尾空格的段落,然后按下工具栏中的“居中”按钮,使段落的对齐方式为居中,这时行首行尾的空格就都被去掉了,最后再按“左对齐”按钮,使段落恢复原来的对齐方式。

  22、删除空行
  对于文章中的空行,手工删除也是一件很麻烦的事情,其实想一下空行的特点,也就是多个“段落标记”连在一起,那么我们用Word 2000的替换功能就可实现删除文章中的空行。打开“编辑”菜单中的“替换”对话框,把光标定位在“查找内容”输入框中,按下“高级”按钮,选择“特殊字符”中的“段落标记”两次,在输入框中会显示为“^p^p”,在“替换为”输入框中用上面的方法插入一个“段落标记”,即“^p”,然后按下“全部替换”按键,可删除单行的空行,对于多行空行,可进行重复替换,直到删除全部的空行为止。

  23、修改Word文档的默认保存路径
  一般来说,Word文件默认的保存路径是CMy Documents文件夹,修改其默认保存路径,可以执行主菜单“工具/选项”命令,在“选项”对话框中切换到“文件位置”选项卡,在“文件类型”选项卡中选中“文档”,然后单击“更改”按钮,并将其指定为自己所要保存的路径就可以了。

  24、去掉Word页眉下面的那条横线
  去掉Word页眉下的那条横线可以用下面的四种方法。一是可以将横线颜色设置成“白色”;二是在进入页眉和页脚时,设置表格和边框为“无”;第三种方法是进入页眉编辑,然后选中段落标记并删除它;最后一种方法是将“样式”图标栏里面的“页眉”换成“正文”就行了。

  25、将光标快速返回到Word文档的上次编辑点
  按下“Shift+F5”组合键,就可以将插入点返回到上次编辑的文档位置,当再次按下“Shift+F5”组合键时,插入点会返回当前的编辑位置。如果是在打开文档之后立刻按下“Shift+F5”组合键,可以将插入点移动到上次退出Word时最后一次的编辑位置。

  26、删除空行
  对于文章中的空行,手工删除是一件很麻烦的事情,其实想一下空行的特点,也就是多个“段落标记”连在一起,那么我们用Word的替换功能就可实现删除文章中的空行。打开“编辑”菜单中的“替换”对话框,把光标定位在“查找内容”输入框中,按下“高级”按钮,选择“特殊字符”中的“段落标记”两次,在输入框中会显示为“^p^p”,在“替换为”输入框中用上面的方法插入一个“段落标记”,即“^p”,然后按下“全部替换”按键,可删除单行的空行,对于多行空行,可进行重复替换,直到删除全部的空行为止。

  27、按姓氏笔画排序
  在Word的表格功能中,为了适应中文习惯,新增了按“姓氏笔画”排序功能。具体使用方法是:选择需要排序的列,左击“表格/排序”选单项,再选择“类型”组合框中的“笔画”项,并选择“递增”或“递减”,点击“确定”即可。你会看到,此时的表格已按“姓氏笔画”(而不是“姓名笔画”)的递增(或递减)排列好了。

  28、显示过宽文档
  在打开文档时,有时会发现因为文档过宽,屏幕上显示不全,这可怎么办,总不能看一行就拖动一次水平滚动条吧!这时我们可以重新调整行的宽度,使其适合文档窗口的大小。如果使用的是普通视图或大纲视图,可以单击“工具”菜单中的“选项”命令,再单击“视图”选项,然后选中“窗口内自动换行”复选框即可。我们也可以通过改变显示比例使文字适用于普通视图或页面视图中的文档窗口。这时我们单击“视图”菜单中的“显示比例”命令,然后选择“页宽”选项即可。我们还可以切换到Web版式视图中,使文字自动换行。

  29、在Word2000中输入英语音标
  如何在一篇文章或一份英语试卷中输入英语音标?有一个非常简单办法可以解决这个问题。如果你的计算机中装有金山词霸的话,在把英语翻译成中文时,你会发现屏幕上显示出了用国际音标标注的英文单词的发音音标,这表明计算机在安装了金山词霸后,一定在其内部安装了含有英语音标的字库。这个字库文件就在Windows文件夹下的字体文件夹Fonts中,其文件名是ksphonet.ttf,字体名是kingsoft phonetic。
  进入中文word2000,需要输入音标时,可在“插入”菜单下选择“符号”,在“符号”选项卡下“字体”下拉菜单中选择“kingsoft phonetic plain”,这是你会看到国际音标中的符号出现在屏幕上,选择你所需要的音标双击之即插入到文章中。
  如果你的计算机中没有安装金山词霸,那也没关系,你只要到装有金山词霸的机器上(或光盘中)把含有音标的字体文件ksphonet.ttf复制到你的计算机即可。方法是:在有金山词霸的计算机上找到文件夹windows\fonts\,将其中的名为ksphonet.ttf的字体文件有鼠标拖放复制到A盘中(注意此时用鼠标右键采用发送到A盘的方法进行复制是无效的),然后再在你的计算机上把它拖放复制到windows\fonts文件夹中就行了。

  30、在Word中标注汉语拼音
  在输入中文时可能会需要在文字上面标注拼音,最原始的方法就是把拼音按输入文字的方法来输入,然后通过调整字体的大小和行距等来排版。但这样往往会造成文字与拼音对不齐而影响版面。要解决这个问题也不难。按如下步骤操作即可:先选择需标注拼音的文字,然后运行“格式”下拉菜单中的“中文版式”子菜单中的“拼音指南”命令,接着在各文字相对应的方框中输入拼音。最后单击“确定”按钮完成拼音的标注。

  31、给跨页的表格自动添加表头
  如果你在Word中制作的表格有多页,往往需要从第二页开始的每一页都有与第一页相同的表头,这时,可按以下步骤进行操作:选定第一页的表头(表头有多行时要选定多行),在“表格”选单上单击“标题行重复”。

  32、给Word文件减肥
  在Word中输入一点儿文字,很容易就达到几十KB,真不知微软是怎么回事,好像觉得我们的硬盘太大了似的。所以,很有必要给Word文件减减肥。
  具体方法:只要我们使用“文件”菜单下的“另存为”命令,Word则会重新将信息进行整理存盘,这样会使得文件的容量大大减少。如果你嫌每次都要“另存为”太麻烦的话,可以打开Word,单击“工具”菜单中的“选项”命令,再单击“保存”选项卡,在设置窗口中取消选择“快速保存”选项,以后Word就会在每次保存文件时自动进行信息整理并存盘,实现“减肥”操作“一劳永逸”。另外,如果我们使用了Word的嵌入字体技术,则在选中“嵌入TrueType字体”后,还应选中“只嵌入所用字符”复选框,否则Word会把所用的TrueType字体一同“打包”,使得文件增大。

  33、取消自作聪明的超级链接
  当我们在Word文件中键入网址或信箱的时候,Word会自动为我们转换为超级链接,只要在文件的网址上按一下,就可以启动IE进入键入的网址或给输入的信箱发信。 但是,有时候我们并不需要这样的功能,就会觉得这种功能有些碍手碍脚了。
  如何取消这种功能呢? 在Word中选择“工具”→“自动更正”,先单击“键入时自动套用格式”选项卡,将“internet 及网络路径替换为超级链接”项前的对勾取消。
  再单击“自动套用格式”选项卡,将“internet 及网络路径替换为超级链接”项前的对勾取消。
  再单击“确定”,以后再输入网址,就不会转化为超链接了。

  34、实现Word个性模板
  用Word建立的文件默认页面是A4大小,即宽210毫米、高297毫米。但是有时由于工作的需要,我们不希望用A4大小的纸张,这样每次都必须打开“页面设置”对话框进行设置,同时,Word中默认生成的文档文件是不自动缩进的,必须使用手工调整它们的缩进,非常麻烦。其实,巧妙利用Word的模板文件功能可以设置Word的默认页面大小和自动缩进,从而实现个性模板。
  ①进入WordXP的模板文件夹,在Windows 9x和Windows Me下为CWindows\Application Data\Microsoft\Templates文件夹下,而在Windows 2000和Windows NT上为CDocuments and Settings\用户名\Application Data\Microsoft\Templates文件夹下(此文件夹为隐藏文件夹,你必须对文件夹选项进行设置才能够进入,详见Windows手册),你会看到在此文件夹中有一个normal.dot文件,此文件就是Word的默认模板文件。双击它,系统就会自动调用WordXP打开它。
  ②单击“文件”→“页面设置”,调出页面设置对话框,将页面大小及上下左右边距设置自己所需的值,如图5所示。笔者经常使用它来写作,每次左右拖动滚动条来查看文章不太方便,所以把宽度设置小了一些,为15厘米,高度不变,仍为24厘米。
  ③单击“格式”→“段落”,在段落设置对话框中选择“缩进和间距”标签,点击“特殊格式”下拉框,选择“首行缩进”,并设置度量值为0.7厘米(相当于两个汉字字符),即设置每段自动缩进两格(中国人用中文的特色)。
  ④单击“文件”→“保存”命令,选择保存类型为文档模板文件,由于此时normal.dot原模板已经启动,所以无法直接保存为normal.dot文件。在此,笔者将它保存为normal1.dot文件。
  ⑤再次进入C:\Windows\Application Data\Microsoft\Templates文件夹下,这时会看到两个模板文件normal.dot和normal1.dot。选中normal.dot文件(老模板文件),按下F2键,选择“重命名”,将它重新命名为oldnormal.dot文件,按照此法再将新的模板文件normal1.dot重命名为normal.dot文件。
  ⑥上面的制作步骤完成后,使用起来就方便多了。单击快捷栏上的“新建”图标或直接按“Ctrl+N”快捷键即可以用你刚才的设置来进行文件处理了。

  35、巧用“稿纸”格式
  在Word2000中,用户可以利用“稿纸向导”生成稿纸格式的文档。可是,如何生成“小字本”格式的文档呢?问题的关键在于掌握稿纸格式的制作过程。Word2000提供的稿纸格式是用绘图工具绘制并插入“页眉”中得到的,因此利用“稿纸”格式也要从这一点下手:
  ①左击“文件/新建”选单项,选择“稿纸向导”,生成20×20的稿纸文档;
  ②左击“视图/页眉和页脚”选单项;
  ③左击“绘图”工具栏中的“选择对象”按钮;
  ④右击“稿纸”,选择“组合/取消组合”命令;
  ⑤拖动方格列,排成31×20的“小字本”格式;
  ⑥左击“文件/页面设置”,选择“文档网格”卡;
  ⑦将每页行数设置为31后确定;
  ⑧关闭“页眉/页脚”即可。


  36、抢救Word文件有妙招
  你是否遇到过这样的事情:用Word工作了很长时间,写了许多文字,但是文件还没有来得及存盘,却突然遇到停电或死机,此时的你是否有欲哭无泪的感觉?唉,这就叫“天有不测风云”。不过,不要担心,我有办法。下面是具体的操作方法:
  ①首先按菜单“工具”,再按“选项”;
  ②接着找出Word自动记录文件的位置: 按一下“文件位置”标签,点选“自动恢复文件”,再按一下“更改”按钮。
  ③利用快捷键的技巧,将文件位置给复制起来:拖曳选取“文件夹名称”,按下组合键Ctrl+C(复制),再点击一下“取消”按钮回到Word下。
  注意:如果你的Word不太稳定,常让你做无用功,干脆把这个文件夹另外指定一个名称,往后找起来会更方便。
  ④打开资源管理器,寻找这个文件夹的位置,按一下组合键Ctrl+V(粘贴)。
  ⑤Word会自动把来不及存盘的文件“寄放”在这里,如果此处有一个以上的文件,你可以从日期上判定哪一个才你是想要的文件。 从“修改日期”这里可以看出文件的存盘日期。 在文件上连按两下鼠标左键,就能直接打开了。到这儿,你的文件就重新“活”了,还不快试试?


  37、Word中取消文本录入过程中的自动编号
  可执行菜单“工具/自动更正”命令,在打开的“自动更正”对话框中,切换到“键入时自动套用格式”选项卡,然后取消选择“自动编号列表”复选框中的复选标志,然后单击“确定”按钮完成即可。

  38、在Word中设置上下标注
  首先选中需要做上标文字,然后按下组合键Ctrl+Shift+“+”就可将文字设为上标,再按一次又恢复到原始状态;按Ctrl+“+”可以将文字设为下标,再按一次也恢复到原始状态。

  39、Word中光标快速返回到上次编辑点
  按下“Shift+F5”组合键,就可以将插入点返回到上次编辑的文档位置,当再次按下“Shift+F5”组合键时,插入点会返回当前的编辑位置。如果是在打开文档之后立刻按下“Shift+F5”组合键,可以将插入点移动到上次退出Word时最后一次的编辑位置。

  40、Word中方便快捷选择字体号
  为了达到快速选择字体的目的,将常用字体以按钮形式设置在工具栏上。首先在中文Word2000菜单中选择“工具栏选项中的“自定义命令,进入“自定义编辑“界面,然后在“自定义编辑“界面中选择命令卡,并移动光标条到类别栏中的“字体项“,在“字体项“ 有字体,此时就可以通过使用鼠标直接将相应的字体拖曳到工具栏上,直到将需要的字体都设置到工具栏中。

  41、隐藏图形来加速屏幕滚动
  如果觉得屏幕滚动得太慢,则请按如下方法操作: 在页面视图中单击“工具”菜单中的“选项”命令,然后单击“视图”选项卡;选中“图片框”复选框,可隐藏以嵌入方式(直接在插入点插入至文字的图片)插入的图片,Word将只显示大样而不显示具体图片。
  清除“图形”复选框上的选中标记,可以隐藏以浮动方式导入的图片(即位于图形层并可根据需要精确地放置在页面上的、还可置于文字和其他对象之前或之后的图片)和用绘图工具创建的对象,如自选图形等。
  42、取消后台打印加快速度
  后台打印方式虽然可以使操作人员在打印文档时能够继续在中文Word2000中进行操作,但这种打印方式却同时占用了大量内存,以至于影响了中文Word2000的打印速度。为了将后台打印方式取消,可以从“工具”菜单中选择“选项”项,然后再选择“打印”选项卡,最后将“后台打印”复选框失效即可。


  43、用重复执行命令加快操作

  通过双击快捷工具条上的某些命令按钮即可达到重复执行相应命令的目的,如我们只须双击格式工具栏上的“格式刷”按钮,系统即会进入“格式刷”的设置状态,然后我们就可以重复利用它快速地为整篇文档定义相同的格式了;再如,当我们双击“绘图”工具栏上的“矩形”或“椭圆形”按钮之后,系统即会将图形处理方式暂时定义为“矩形”或“椭圆形”,此时用户就可以连续绘制多个不同的“矩形”或“椭圆形”、而无需任何停顿,运行效率非常高。在双击某个命令按钮并实现重复执行目的之后,若须取消重复执行功能,只须再次单击该按钮或按下ESC键即可。
  
44、用超级链接快速切换

  超级链接是指一个计算机文档(页面)的特定区域能引入其它文档或程序。它带有颜色和下滑线的文本或图形,如果单击,就会跳转至某个文件或文件中的某个位置,或者跳转到全球广域网或 Intranet 上的某个 HTML 页。此外,超级链接还可以指向新闻组、Gopher、Telnet 和 FTP 站点。
  鼠标放在超级链接上会变成手形,点击后即可切换。Word2000中也有相类似的超级链接功能,可将文档中的文字、图像等与本机硬盘或因特网上所设置的相关信息链接起来。
  1? 开一个文档,选择要作为超级链接显示的文字;
  2、单击“插入”菜单中的“超级链接”选项弹出对话框。在“链接到文件或URL”中输入待链接文档(目标文档)的路径。此路径可以是Internet地址(URL)或本机硬盘上的文档;
  3、按“确定”按钮,就完成了一个超级链接的创建。


  45、快速改变快捷键

  同时按下Ctrl+Alt+“+”(其中引号中的“+”为数字键盘上的加号键)三键,这时光标会变成一个奇怪的形状,而且当你移动时光标位置不变。
  将这个变异的光标移动到菜单上或工具栏上,左键单击你想指定的菜单命令或工具栏上的命令按钮便会自动弹出“自定义键盘”对话框,进入“请按新快捷键”选项。
  按下新的快捷键以后,文本框中会显示你的快捷键组合注意:最好用Shift+Alt+Key(键盘上的任意键)的组合,因为这样的组合在Word中最少被用到,以免重复。此外输入组合键时要同时按下,否则Word不予承认。在“当前快捷方式”文本框里选中要删除的快捷方式,然后单击“删除”可以去除不需要的快捷键。
  
46、快速排列图形

  图形的操作如果您想在一篇文档中使图形获得满意的效果,比如将几个图形排列得非常整齐,可能需要费一番工夫,但是下面的方法能够使您非常容易地完成这项工作。
  首先通过按Shift键并依次单击想对齐的每一个图形来选中它们。然后单击绘图工具条上的“绘图”按钮,选取弹出式菜单中的“对齐或分布”选项,并选择一种对齐或分布的方法。


  47、快速返回到前次的编辑位置

  Word2000不仅提供了静态的定位操作,而且还能够找到编辑过程中的刚才的文档编辑位置。
  当在文档的某个位置进行编辑时,可能会需要查看文档的另一位置的信息,这时文档位置发生了改变,再回到原来的编辑处则需要使用文档移动功能键进行查找。Word2000提供的快速恢复编辑位置的功能可使这个操作非常简单。若要回到前次的编辑位置,只需按Shift+F5组合键即可,它使光标在最后编辑过的三个位置间循环。
  另外,当文档关闭的时候,Word2000也会记录此时文档的编辑位置,当再次打开此文档的时候,按下Shift+F5组合键就回到了关闭文档时的编辑位置,这种功能尤其给编辑文档的连续性带来了很大方便。
  
48、快速改变英文字的大小写

  在文章中输入英文的过程中,你一定会因为英文字的大小定转换而烦恼,利用Shift+F3快捷键,可以方便地将英文改写为“全部大写”、“全部小写”或“首字母为大写其余为小写”,操作方法为:首先将光标移到英语单词之中,表示选中了该单词;然后按下Shift+F3,字母的大小写就在三种方式中变换,反复按Shift+F3,直到得到符合要求的字母大小写样式即可。


  49、用目录快速定位

  目录通常是长文档不可缺少的部分,有了目录,阅读者就能很容易地知道文档中有什么内容,如何查找这些内容。下面介绍使用内部标题样式创建目录的方法:
  1、单击要建立目录的地方,通常是文档的最前面;
  2、选择“插入”菜单的“索引和目录”命令打开“索引和目录”对话框;
  3、在对话框中选择“目录”选项卡;
  4、选中“显示页码”和“页码右对齐”复选框;
  5、在“格式”框中选择一种目录格式,在“显示级别”框中键入或者选择一种显示级别。显示级别是指在目录中从最高级开始显示的级别数;
  6、若要对其它选项进行设置,单击“选项”按钮进行。在选定了各选项后,单击“确定”按钮。
  这样,Word2000就会在指定的地方建立目录,目录中的页码是由Word自动确定的。编制好目录后,Word将搜索带有指定样式的标题,按照标题级别排序,引用页码,并且在文档中显示目录,还可以利用它在联机文档中快速漫游。将鼠标指针移动到目录的页码上,你会看到鼠标指针变成了手形,单击左键即可跳转到文档中相应的标题下。
  
50、在长文档中快速漫游

  在文档中漫游。单击常用工具栏上(就是有“新建”和“打开”按钮的那个工具栏,靠近右边,唉,没办法学问多了,盖都盖不住)的“文档结构图”按钮,然后再单击文档结构图中要跳转的标题即可至文档中相应位置。文档结构图将在一个单独的窗格中显示文档标题,你可通过文档结构图在整个文档中快速漫游并追踪特定位置。在文档结构图中,可选择显示的内容级别,调整文档结构图的大小。若标题太长,超出文档结构图宽度,不必调整窗口大小,只需将鼠标指针在标题上稍作停留,即可看到整个标题。
  51、快速选定文本
  在使用Word的过程中,最经常遇到的是文本选定操作。在Word中文本中选定操作可通过多种方法来实现。其中鼠标拖曳方法最为常用,以下是常用的选定文本的方法。
  选定一个段落:将鼠标指针移动到该段落的左侧,直到指针变为指向右边的箭头,然后双击。或者在该段落中的任意位置三击;
  选定多个段落:将鼠标指针移动到一段落的左侧,直到指针变为指向右边的箭头,然后双击,并向上或向下拖动鼠标;
  选定一大块文本:单击要选定内容的起始处,然后滚动要选定内容的结尾处,在按住 Shift 键同时单击。
  选定整篇文档:将鼠标指针移动到文档中任意正文的左侧,直到指针变为指向右边的箭头,然后三击;

  52、快速选择超长文字

  不知你有没有发现,当你想选择一段超过屏幕长度的文本时,文字处理器滚动得太快,很难一次就选正确。现在介绍一种有效的选择大段文本的方法;这个技巧可用于所有的文字处理器,因为它是一个基本的Windows功能。点击你想选择的开始处。用滚动条代替光标键向下移动文档,直到你看到想要选择的结束部分。按下Shift键,然后点击想要亮显文本的结束处。
  
53、快速选择多页

  在Word窗口底部的状态栏中除了显示文档当前的状态,在其右边有一个“扩展”功能,平时它处于浅白色,表示未“未激活”,只要用鼠标双击即可激活。用鼠标拖动来选取文字部分时,经常不能准确选定范围,特别是当范围超过了一屏幕时,这时“扩展”功能就有用了,可用以下方法操作:
  (1)先将鼠标的光标置于选取范围的起始处;
  (2)双击状态栏的“扩展”按钮,打开“扩展”功能;
  (3)单击边框的滚动条的移动按钮,如翻页、前后调整等操作;
  (4)将光标移到范围的结束处,这样就可以选取大块范围了。
  选定垂直文本:按住 Alt 键,然后将鼠标拖过要选定的文本。


  54、快速选定多个对象

  当选定比较少,并且对象容易被鼠标捕捉时。我们可以将鼠标箭头移动到对象的上面,当鼠标出现十字箭头时,按下鼠标左键即可选定此对象,当选定? 对象时,只要按住“Shift”键,用同样的方法依次单击各个对象即可选中多个对象。
  当选定对象比较多,并且比较集中时。我们只要单击“绘图”工具栏的“选择对象”工具按钮,在对象区域外侧的适当地点按住鼠标左键,然后拖动鼠标出现一个矩形的虚线框,待欲选定的对象或全部对象位于矩形虚线框内时释放鼠标左键,便可选中多个或者全部对象。
  当要选定的对象比较分散,并且对象不易被鼠标捕捉时。首先用鼠标右键单击工具栏,在快捷菜单中选择“自定义”选项,在“自定义”对话框中选择“命令”选项卡,在“类别”列表框中选择“绘图”选项,用鼠标将“命令”列表框中的“选中多个对象”拖放到“绘图”工具栏中,单击“关闭”按钮。当在Word 2000工作区内绘制了多个对象时,单击“绘图”工具栏建立的“选中多个对象”工具按钮,在弹出的“选中多个对象”对话框中列出了所有对象,在“对象”列表框中用鼠标单击欲选定的各个对象,选择完毕后单击“确定”按钮,即可选中多个对象。
  55、选择的特定操作
  在所选的内容较多或进行一些特殊的选定操作时,用下列的选定方法会更加快捷和方便。
  1、单击待选文本块的一端,使插字符移动该位置,按下F8键,然后用日常的文本滚动方式滚动到待选文本的末尾,单击鼠标即可选定所要的文本。请注意采用这种方式选定文本以后,在对选定的文本进行操作之前先按一次ESC键有利于消除一些误动作。
  2、按住Ctrl键后,在文本区内单击可选中一个句子,在文本左侧位置单击可选中所有文本,组合键Ctrl+A也可选中全部文本。


  56、用“日积月累”提示

  首先单击 Office 助手,如果看不到助手,单击“帮助”菜单中的“显示 Office 助手”命令,然后单击“选项”按钮,再选中“选项”选项卡上的“启动时显示‘日积月累’”复选框即可。
  
57、用工具栏的屏幕提示
  当您将鼠标指针停留在工具栏按钮上时,Microsoft Word 会在屏幕提示中显示此按钮的名字。首先单击“工具”菜单中的“自定义”命令,然后单击“选项”选项卡,选中“显示关于工具栏的屏幕提示”复选框即可显示或隐藏工具栏的屏幕提示。
  注意:当选中或清除“显示关于工具栏的屏幕提示”复选框时,此设置将会影响所有的 Microsoft Office 程序。
  58、用批注和修订的屏幕提示。
  首先单击“工具”菜单中的“选项”命令,然后单击“视图”选项卡,然后选中“屏幕提示”复选框即可。

  59、用“记忆式键入”的屏幕提示。
  首先单击“工具”菜单中的“自动更正”命令,然后单击“自动图文集”选项卡,然后选中“显示有关‘自动图文集’和日期的‘记忆式键入’提示”复选框即可。
  
60、用 Office 助手提示

  使用 Word2000 时,可暂时显示 Office 助手。也可以在整个 Word 时段关闭 Office 助手,而仅使用帮助窗口。
  (1)暂时显示 Office 助手。单击“帮助”菜单中的“显示 Office 助手”命令即可。
  (2)在整个 Word 时段打开 Office 助手。首先单击助手气球中的“选项”按钮,若如果看不到助手气球,单击助手,然后选中“选项”选项卡上的“使用 Office 助手”复选框即可。
  (3)打开 Office 助手自动显示帮助主题的功能。首先单击 Office 助手,如果看不到助手,单击“帮助”菜单中的“显示 Office 助手”命令,单击“选项”按钮,然后在“选项”选项卡上选中“推测帮助主题”复选框即可。
  (4)显示屏幕提示中的快捷键。可以对 Word 进行设置,使其在显示工具栏屏幕提示的同时显示该工具栏按钮的快捷键组合。首先单击“工具”菜单中的“自定义”命令,然后单击“选项”选项卡,选中“在屏幕提示中显示快捷键”复选框即可

点击此处查看原文 >>

系统分类: 汽车电子   |    用户分类:    |    来源: 转贴

评论(0) | 阅读(599)
发表于:2007-11-14 15:24:54
标签:C51问答  

2

C51问答

一、#pragma asm是什么意思?

#pragma asm

MOV P1,R7

NOP

NOP

MOV P1,#0

#pragma endasm

实际上就是一个在C51中内嵌汇编语言的开关

 

二、一个 hex to bcd 的算法程序

HEX_BCD:CLR A

        MOV 30H,A

        MOV 31H,A

        MOV 32H,A

        MOV R2,#15

H_B0:   MOV A,R1

        RLC A

        MOV R1,A

        MOV A,R0

        RLC A

        MOV R0,A

        MOV A,32H

        RLC A

        ACALL BCD_ADJ

        MOV 32H,A

        MOV A,31H

        RLC A

        ACALL BCD_ADJ

        MOV 31H,A

        MOV A,30H

        RLC A

        ACALL BCD_ADJ

        MOV 30H,A

        DJNZ R2,H_B0

        MOV A,R0

        RLC A

        MOV A,32H

        RLC A

        MOV 32H,A

        MOV A,31H

        RLC A

        MOV 31H,A

        MOV A,30H

        RLC A

        MOV 30H,A

        RET

BCD_ADJ:PUSH PSW

        PUSH ACC

        CJNE A,#50H,$+2

        JC B1

        POP ACC

        ADD A,#30H

        PUSH ACC

B1:     ANL A,#0FH

        CJNE A,#5,$+2

        JC B2

        POP ACC

        ADD A,#3

        PUSH ACC

B2:     POP ACC

        POP PSW

        RET

三、有关单片机ALE引脚的问题

"单片机不访问外部锁存器时ALE端有正脉冲信号输出,此频率约为时钟振荡频率的1/6.每当访问

外部数据存储器是,在两个机器周期中ALE只出现一次,即丢失一个ALE脉冲."这句话是不是有毛

.我觉得按这种说法,应该丢失3ALE脉冲才对,我一直想不通是怎么回事,