文档库 最新最全的文档下载
当前位置:文档库 › 简单的PT2314BT2314 音调程序

简单的PT2314BT2314 音调程序

简单的PT2314BT2314 音调程序
简单的PT2314BT2314 音调程序

/**********************************************************************************************/ //PT2314的音量调节, 高低音调节,声道选择,静音,红外遥控,

/**********************************************************************************************/ #include"reg52.h"

#include"intrins.h"

#define uchar unsigned char

#define uint unsigned int

#define ulong unsigned long

/*pt2314写入地址*/

#define WriteDeviceAddress 0x88

/*红外0/1代码时长定义*/

#define Imax 14000

#define Imin 8000

#define Inum1 1450

#define Inum2 700

#define Inum3 3000

/*对应音量+,音量-,高音+,高音-,低音+,低音- 静音,音源选择*/

/*菜单,静音,加,减,dvd,vcd,cd,aut*/

#define Vol_Cut 0x08/*静音*/

#define up 0x07

#define down 0x0a

#define menu_Choose 0x05/*包括treble , bass, vol*/

/*#define vol_bass_up 0x05 遥控器的便捷扩展按键

#define vol_bass_down 0x06

#define vol_treble_up 0x03

#define vol_treble_down 0x04*/

#define menu_road_Choose 0x03 //菜单选择包括了下面按一下就跳变次/* #define Choose_dvd 0x09 遥控器的便捷扩展按键

#define Choose_cd 0x10

#define Choose_mp3 0x11

#define Choose_mp4 0x12 */

/*显示定义*/

//unsigned char Bass=0x60;

//unsigned char Treble=0x70;

/////////////////////

#define vol 0x00;

#define bass 0x60;

#define treble 0x70;

#define aud_Choose 0x40;

///////////////////////////////////////////////送到显示程序中的数组

unsigned char tab_display[]={0x7c,0x3a,0xfe,0xfc,0x04};//C:0x9c D:0xfc V:0x7c o:0x3a B:0xfe A:0xee

///////////////////////////////////////////////共阴数MR6625显示T:0x1e r:0x0e

unsigned char code dis_code[]={

0xfc,/*0*/

0x60,/*1*/

0xDA,/*2*/

0xF2,/*3*/

0x66,/*4*/

0xB6,/*5*/

0xBE,/*6*/

0xE0,/*7*/

0xFE,/*8*/

0xF6/*9*/

/////////////////////////////////////////////

unsigned char vol_iic[]={0,0,0,0x5c,0,0};/*vol,bass,treble,aud_Choose ,左声道静音量 右声道静音量, 传到iiC的数据*/

/////////////////////////////////////////////

unsigned char Choose_vbt[]={38,8,8};/*vol,bass,vtreble 音量调节变量存储*/

/////////////////////////////////////////////////MR-6625 最后一位显示表格

//unsigned char code MR_6625[]={0X20,0X01,0X02,0X04,0X08,0X10,0X40};//mp4,播放,暂停,DVD,CD,点,mp3 正

unsigned char code MR_6625[]={0X04,0X80,0X40,0X20,0X10,0X08,0X02};//mp4,播放,暂停,DVD,CD,点,mp3 反

///////////////////////////////////////////////////////////////////////音量表格

/*unsigned char code vol_10db[]={0x00,0x08,0x10,0x18,

0x20,0x28,0x30,0x38};//10db增量

unsigned char code vol_1_25db[]={0x00,0x01,0x02,0x03,0x04,

0x05,0x06,0x07}; //1.25db增量

*/

unsigned char code

vol_db[]={0x38|0x07,0x38|0x06,0x38|0x05,0x38|0x04,0x38|0x03,0x38|0x02,0x38|0x01,0x38| 0x00,

0x30|0x07,0x30|0x06,0x30|0x05,0x30|0x04,0x30|0x03,0x30|0x02,0x30|0x01,0x30|0x00,

0x28|0x07,0x28|0x06,0x28|0x05,0x28|0x04,0x28|0x03,0x28|0x02,0x28|0x01,0x28|0x00,

0x20|0x07,0x20|0x06,0x20|0x05,0x20|0x04,0x20|0x03,0x20|0x02,0x20|0x01,0x20|0x00,

0x18|0x07,0x18|0x06,0x18|0x05,0x18|0x04,0x18|0x03,0x18|0x02,0x18|0x01,0x18|0x00,

0x10|0x07,0x10|0x06,0x10|0x05,0x10|0x04,0x10|0x03,0x10|0x02,0x10|0x01,0x10|0x00,

0x08|0x07,0x08|0x06,0x08|0x05,0x08|0x04,0x08|0x03,0x08|0x02,0x08|0x01,0x08|0x00,

0x00|0x07,0x00|0x06,0x00|0x05,0x00|0x04,0x00|0x03,0x00|0x02,0x00|0x01,0x00|0x00,

};

///////////////////////////////////////////////////////////////////////B/T调音声调表格

unsigned char code Tiaoyin[]={0x00,0x01,0x02,0x03,

0x04,0x05,0x06,0x07,

0x0f,0x0e,0x0d,0x0c,

0x0b,0x0a,0x09,0x08};

//////////////////////////////////////////////////////////32位编码接收存储

unsigned char Im[4]={0x00,0x00,0x00,0x00};

/////////////////////////////////////////////

unsigned long m,Tc;

unsigned char IrOK; // 码是否正确的标识符

unsigned char f;

unsigned char flag;

//unsigned char h;

unsigned char MenuChoosem;

unsigned char Numer;

unsigned char MenuRoadChoosem;

unsigned char Choose;

unsigned char UpDown;

unsigned char VolCutm;

unsigned char ppp;

///////////////////////////////////////

sbit m74HC164_DATA=P1^0;

sbit m74HC164_CLK=P1^1;

sbit Menu_high=P1^2;

sbit Menu_low=P1^3;

sbit Value_high=P1^4;

sbit Value_low=P2^5;

sbit Postion_Choose=P2^6;

//sbit P17=P1^7;

sbit a0=ACC^0; //累加器做模拟串口传输的数据位定义//////////////////////////////

sbit K1=P2^0;

sbit K2=P2^1;

sbit K3=P2^2;

sbit K4=P2^3;

sbit K5=P2^4;

//////////////////////////////////////////

sbit SCL=P3^7;//总线端口设置

sbit SDA=P3^6;

////////////////////////////////////////////////////////////////

void Dely()

{

unsigned char m,n,s;

for(s=2;s>0;s--)

for(m=2;m>0;m--)

for(n=2;n>0;n--);

}

//定时函数

///////////////////////////////////////////

void DelayMs(unsigned int number) //红外延时

unsigned char temp;

for(;number!=0;number--)

{

for(temp=112;temp!=0;temp--) ;

}

}

//////////////////////////////////////////

void delay(unsigned char ms) //显示延时程序{

unsigned char i;

while(ms--)

{

//for (i=0;i<125;i++);

for (i=0;i<30;i++);

}

}

///////////////////////////////////////////////////////PT2314 iic程序//开总线

void Start()

{

SDA=1;

SCL=1;_nop_();_nop_();//_nop_();

SDA=0;_nop_();_nop_();//_nop_();

SCL=0;//_nop_();_nop_();_nop_();

}

///////////////////////////////////////////////////////////

//结束总线

void Stop()

SCL=0;

SDA=0;_nop_();_nop_();//_nop_();

SCL=1;_nop_();_nop_();//_nop_();

SDA=1;//_nop_();_nop_();_nop_();

}

///////////////////////////////////////////////////////

//测试ACK

bit TestAck()

{

bit ErrorBit;

SDA=1; _nop_();//_nop_();_nop_();

SCL=1;_nop_();//_nop_();_nop_();

ErrorBit=SDA;

SCL=0;

return(ErrorBit);

}

///////////////////////////////////////////////////

//写入8个bit到PT2314

Write8Bit(uchar input)

{

uchar temp;

for(temp=8;temp!=0;temp--)

{

SDA=(bit)(input&0x80);

SCL=1;_nop_();//_nop_();_nop_();_nop_();

SCL=0;_nop_();//_nop_();_nop_();_nop_();

input=input<<1;

}

}

////////////////////////////////////////////////////

//写入一个字节到PT2314中

void WritePT2314(uchar ch)

{

Start();

Write8Bit(WriteDeviceAddress);

TestAck();

Write8Bit(ch);

TestAck();

Stop();

//DelayMs(20);

}

/////////////////////////////////////////////////////////////////////

void change_all() /*数值处理分配到表格*/

{

switch(MenuChoosem)

{

case 0 : tab_display[2]=dis_code[Choose_vbt[0]/10];

tab_display[3]=dis_code[Choose_vbt[0]%10]; break; /*vol*/ case 1 : tab_display[2]=dis_code[Choose_vbt[1]/10];

tab_display[3]=dis_code[Choose_vbt[1]%10]; break; /*bass*/ case 2 : tab_display[2]=dis_code[Choose_vbt[2]/10];

tab_display[3]=dis_code[Choose_vbt[2]%10]; break; /*treble*/ }

/* IIC数据处理*/

if(VolCutm==0)

{

tab_display[4]=MR_6625[2]|MR_6625[5]|MR_6625[Choose];

vol_iic[4]=0xdf;//静音

vol_iic[5]=0xff;

}

else

{

tab_display[4]=MR_6625[1]|MR_6625[5]|MR_6625[Choose];

vol_iic[4]=0xc0;//开静音

vol_iic[5]=0xe0;

}

vol_iic[0]=vol_db[Choose_vbt[0]]|vol;

vol_iic[1]=Tiaoyin[Choose_vbt[1]]|bass;

vol_iic[2]=Tiaoyin[Choose_vbt[2]]|treble;

if(Choose==0)

{vol_iic[3]=0x5c;}

if(Choose==3)

{vol_iic[3]=0x5d;}

if(Choose==4)

{vol_iic[3]=0x5e;}

if(Choose==6)

{vol_iic[3]=0x5f;}

}

void out_74HC164(unsigned char data_buf) /*模拟传输到74HC164*/ {

unsigned char i;//y;

i=8;

ACC=data_buf;

do

{

m74HC164_DATA=a0;

m74HC164_CLK=0;

m74HC164_CLK=1;

ACC=ACC>>1;

}

while(--i!=0);

}

///////////////////////////////////////////////////////////

void display_74HC164()

{ unsigned char m;

for(m=0;m<3;m++)

{

Numer=tab_display[0]; //菜单高位显示

out_74HC164(Numer);

Menu_high=0;

delay(2);

Menu_high=1;

Numer=tab_display[1]; //菜单低位显示

out_74HC164(Numer);

Menu_low=0;

delay(2);

Menu_low=1;

Numer=tab_display[2]; //数值高位显示

out_74HC164(Numer);

Value_high=0;

delay(2);

Value_high=1;

Numer=tab_display[3]; //数值低位显示

out_74HC164(Numer);

Value_low=0;

delay(2);

Value_low=1;

Numer=tab_display[4]; //点位选择显示

out_74HC164(Numer);

Postion_Choose=0;

delay(2);

Postion_Choose=1;

}

m=0;

}

////////////////////////////////////////////////////////////////

void Vol_Cut_m() /*静音入口*/

{

VolCutm=~VolCutm ;

}

/////////////////////////////////////////////////////////////

void menu_road_Choose_m() //选择mp4,DVD,CD,mp3 /*输入选择*/ { //Choose: 0 3 4 6

MenuRoadChoosem++;

if(MenuRoadChoosem==4)

{

MenuRoadChoosem=0;

}

switch(MenuRoadChoosem)

{

case 0: Choose=0; break; /*mp4*/

case 1: Choose=3; break; /*DVD*/

case 2: Choose=4; break; /*CD*/

case 3: Choose=6; break; /*mp3*/

}

}

/////////////////////////////////////////////////////////////////////

void menu_Choose_m() /*菜单控制选择*/

{

MenuChoosem++;

if(MenuChoosem==3)

{

MenuChoosem=0;

}

switch(MenuChoosem) //显示代码

{

case 0: tab_display[0]=0x7c;

tab_display[1]=0x3a; break; /*vol*/

case 1: tab_display[0]=0xfe;

tab_display[1]=0xee; break; /*bass*/

case 2: tab_display[0]=0x1e;

tab_display[1]=0x0e; break; /*treble*/

}

}

///////////////////////////////////////////////////////////////////////////////////

void up_m() /*数值调节+*/

{

switch(MenuChoosem)

{

case 0 : UpDown=Choose_vbt[0]; break; /*vol*/

case 1 : UpDown=Choose_vbt[1]; break; /*bass*/

case 2 : UpDown=Choose_vbt[2]; break; /*treble*/

}

UpDown++;

if(MenuChoosem==0) /*vol重新存入Choose_vbt[]*/

{ if(UpDown>64)

{

UpDown=64;

}

Choose_vbt[0]=UpDown;

}

if((MenuChoosem==1)|(MenuChoosem==2))

{

if(UpDown>16)

{

UpDown=16;

}

}

if(MenuChoosem==1) /*bass重新存入Choose_vbt[]*/

{

Choose_vbt[1]=UpDown;

}

if(MenuChoosem==2) /*treble重新存入Choose_vbt[]*/

{

Choose_vbt[2]=UpDown;

}

}

////////////////////////////////////////////////////////////////////////////////////

void down_m()/*数值调节-*/

{

switch(MenuChoosem)

{

case 0: UpDown=Choose_vbt[0]; break; /*vol*/

case 1: UpDown=Choose_vbt[1]; break; /*bass*/

case 2: UpDown=Choose_vbt[2]; break; /*treble*/

}

if(UpDown>1)

{

UpDown--;

}

else

{

UpDown=0;

}

if(MenuChoosem==0) /*vol重新存入Choose_vbt[]*/ {

Choose_vbt[0]=UpDown;

}

if(MenuChoosem==1) /*bass重新存入Choose_vbt[]*/

{

Choose_vbt[1]=UpDown;

}

if(MenuChoosem==2) /*treble重新存入Choose_vbt[]*/

{

Choose_vbt[2]=UpDown;

}

}

////////////////////////////////////////////////////////////////////////////////////////

void menu()

{ //unsigned char wait;

if(IrOK==1)

{

IrOK=0;

switch(Im[2])

{

case 0x08 : Vol_Cut_m(); break; /*静音入口*/

case 0x03 : menu_road_Choose_m(); break;/*输入选择*/

case 0x05 : menu_Choose_m(); break;/*菜单控制选择*/

case 0x07 : up_m(); break;/*数值调节+*/

case 0x0a : down_m(); break;/*数值调节-*/

default: break;

}

change_all();

//for(wait=0;wait<10;wait++)

// {

// display_74HC164();

// }

switch(MenuChoosem)

{ case 0 : WritePT2314(vol_iic[0]); break;

case 1 : WritePT2314(vol_iic[1]); break;

case 2 : WritePT2314(vol_iic[2]); break;

}

if(VolCutm==0)

{

WritePT2314(vol_iic[4]);

WritePT2314(vol_iic[5]);

}

else

{

WritePT2314(vol_iic[4]);

WritePT2314(vol_iic[5]);

}

WritePT2314(vol_iic[3]);

/* WritePT2314(vol_iic[0]);//DelayMs(30);

WritePT2314(vol_iic[1]);//DelayMs(30);

WritePT2314(vol_iic[2]);//DelayMs(30);

WritePT2314(vol_iic[3]);//DelayMs(30);

WritePT2314(vol_iic[4]);//DelayMs(30);

WritePT2314(vol_iic[5]);//DelayMs(30);

*/

}

}

//////////////////////////////////////////////////按键

void anjian(void)

{

if(K1==0)

{

Dely();

if(K1==0)

{

Im[2]=0x08;

IrOK=1;

do{

menu();

display_74HC164();

} while(K1==0);

}

}

if(K2==0)

{

Dely();

if(K2==0)

{ Im[2]=0x03;

IrOK=1;

do{

menu();

display_74HC164();

} while(K2==0);

}

}

if(K3==0)

{

Dely();

if(K3==0)

{ Im[2]=0x05;

IrOK=1;

do{

menu();

display_74HC164();

} while(K3==0);

}

}

if(K4==0)

{

Dely();

if(K4==0)

{ Im[2]=0x07;

IrOK=1;

do{

menu();

display_74HC164();

} while(K4==0);

}

}

if(K5==0)

{

Dely();

if(K5==0)

{

IrOK=1;

Im[2]=0x0a;

do{

menu();

display_74HC164();

} while(K5==0);

}

}

}

/////////////////////////////////////////////////////////////////////////////

void intersvr1(void) interrupt 2 using 1

{

Tc=TH0*256+TL0; //提取中断时间间隔时长

TH0=0;

TL0=0; //定时中断重新置零

偶写的一个简单行编辑程序(我的实习题)

/*这是清华大学《数据结构题集》实习题3中的一道题--做一个简单行编辑 程序,也是我的实习作业。现已经写出来,如大家有兴趣可以看一看。本人编 程水平不高,属于初学者,如有高手看到请不要见笑。程序在VC++6.0中调试 通过,题目的具体要求: 打开一个文件 o<行号><文件名><回车> 行插入格式: i<行号><回车><文本><回车> 行删除格式: d<行号1>[<空格><行号2>]<回车> 活区切换格式: n<回车> 活区显示格式: p<回车> 退出编辑模式: e<回车> 其中执行打开文件命令后,需要输入要打开的文件名和要输出的文件名。 如果谁对编程,网络技术有兴趣,大家可以联系我做个朋友,一起研究学习。 联系方式: E-mail:blackcat242@https://www.wendangku.net/doc/59153238.html, QQ :21739034 */ #define NULL 0 #define OK 0 #include #include #include #include #include typedef struct text { char string[80];//存储每一行的元素 struct text *next;//指向后一个节点的指针 struct text *pre;//指向前一个节点的指针 int num;//每一行元素的长度 int flat;//确定此行是否被删除的标志 }text; FILE *fp,*out;//fp是执行被打开的文件,out指向被写入的文件 text *head;//链表的头指针 int n=0,sum,delnum,xiugai=0,page=0; file://修改用来指示文件是否被修改过,如果修改过才回存盘。page用来计算显示的file://页数.delnum用来存储被删除的字节数,sum存储一页的总字节数 void byebye()//没有具体用处,只是写着玩的,在屏幕上显示一个bye { puts("\t\t\t******** * * ********"); puts("\t\t\t* * * * * "); puts("\t\t\t* * * * * "); puts("\t\t\t* * * * * "); puts("\t\t\t******** * ********");

C++课程设计简易文本编辑器

目录 第一章课程设计目的和要求 (1) 1.1课程设计的目 (1) 1.2基本要求 (1) 第二章课程设计任务内容 (2) 2.1设计背景 (2) 2.2简易文本编辑器设计内容 (2) 第三章详细设计 (3) 3.1总体结构图 (3) 3.2函数分析 (3) 3.3主函数程序流程图 (4) 3.4子函数流程图 (5) 第四章程序编码与调试 (7) 4.1程序编码 (7) 4.2编码调试 (8) 4.3运行结果 (9) 第五章课程设计心得与体会 (11) 附录1 参考文献 (12) 附录2 源程序代码 (13)

第一章课程设计目的和要求 C语言课程设计是一门实践性非常强的课程,不但要注重c语言程序设计基本知识的学习,更要注重程序设计技能的培养,使学生能够允许渐进地把握c语言程序设计的技能。通过课程设计,培养学生阅读和编写程序的能力,培养计算机程序设计的能力和素质,以及思维方法。初步积累编程经验,打下良好的计算机应用基础。 1.1课程设计的目 1.通过本项课程设计,可以培养独立思考、综合运用所学有关相应知识的能力, 能更好的巩固《c语言程序设计》课程学习的内容 2.掌握工程软件设计的基本方法,强化上级动手编程能力,闯过理论与实践相 结合的难关!更加了解了c语言的好处和其可用性。 3.掌握基本的程序设计过程和技巧,掌握基本的分析问题合理性,通过计算机 求解问题的能力,具备初步的高级语言程设计能力。为后续个门计算机课程 的学习和毕业设计打下结实基础。 4.通过c语言课程设计,使学生了解高级程序设计语言的结构。 1.2 基本要求 1.基本要求: ①要求用VC中的MFC控件打开和保存文件。 ②要求在设计的程序中至少能完成六种编辑功能。 ③完成的程序界面要美观,能够完成六种编辑的全过程。 2.创新要求: ①在记事本中增加工具栏,工具栏中应有常使用的工具按钮; ②在记事本中增加状态栏;

简易文本编辑器说明书

中北大学 课程设计说明书 学院、系: 专业: 班级: 学生姓名:学号: 设计题目:简易文本编辑器 起迄日期: 2016年12月16日~2016年12月29日指导教师: 日期: 2016年12月29日

1 设计目的 通过用户调查分析及实际需求,开发出一个文本编辑器,可以方便用户对文本进行编辑。系统需要实现如下基本功能: (1)具有图形菜单界面; (2)查找,替换(等长,不等长),插入(插串,文本块的插入)、块移动(行块,列块移动),删除;(3)可正确存盘、取盘; (4)正确显示总行数。 2 任务概述 要设计一简易的文本编辑器,要求有图形菜单界面,也就是菜单选择的界面,要实现的功能有对文本进行存盘,取盘,在某一个盘中新建一个TXT的文件,在里面输入内容,对这个文件进行取盘,显示出文本内容,并在显示的时候显示行数,具有对文本进行查找、替换、插入、移动、删除等功能。 为实现数据的有序存储,该编辑器应该用顺序表来存储输入的信息。顺序表是数据结构中线性表的一种,它是用一块地址连续的存储空间依次存储线性表的元素。其特点为:在顺序表上逻辑关系相邻的两个元素在物理位置上也相邻;在顺序表上可以随即存取表中的元素。在编辑器的主界面中应有如下提示信息: ⑴显示当前文本信息:从文件中读出文本,在某一个盘中创建一个文本文件,所以要读出来, 显示到显示器上,并统计出行数。 ⑵查找文本信息:因为在下面做插入,删除,移动之类的都需用到查找,在查找的时候,也要 调用一个字符匹配模式的程序,来判断查找的内容是否符合所要查找的内容。 ⑶删除文本信息:首先在数组中查找要删除的信息,查找的时候调用匹配模式的子函数,如果 找到该信息,提示是否确认删除该信息,通过确认来删除信息,如果未找到要删除的信息,提示未找到该信息; ⑷插入文本信息:首先调用字符匹配模式的子函数找到插入点,如果找到该插入点,提示输入 插入信息,确认插入信息后,选择是否在这个位置插入,如果是的话执行插入,不是的话再往下查找下一个插入点。 ⑸替换文本信息:首先在数组中查找要被替换的信息,如果找到该信息,提示输入要替换的 信息内容,否则提示未找到要被替换的信息; ⑹保存文本信息:在这里使用文件写入读出的功能,把你修改完的内容保存到你所建立的文 本中。 ⑺显示文本内容:读出文件中的所有字符,显示到显示器上。 ⑻退出 3 模块划分 (1)系统主要包含主程序模块和其他操作模块。其调用关系如图(一)所示。

8086汇编语言程序设计

实验1 简单汇编语言程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握简单汇编语言程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG 工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG 工具调试程序,验证程序的正确性。 1. 若X、Y、R、W 是存放8 位带符号数字节单元的地址,Z 是16 位字单元的 地址。试编写汇编程序,完成Z←((W-X) ÷5-Y)?(R+ 2) 。 2.试编写一个程序,测试某数是否是奇数。如该数是奇数,则把DL 的第0 位置1,否则将该位置0。 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验2 分支及循环程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握分支程序和循环程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编写汇编程序,统计某存储区若干个数据中英文字母的个数,并将结果在屏幕上显示。 2.从键盘任意输入一组字符数据,请编写汇编程序将该组数据加密后在屏幕上显示。参考加密方法是:每个数乘以2。(说明:本题的加密方法,同学们可以自己拟定) 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验3 子程序程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握子程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编程以十进制形式和十六进制形式显示AX的内容,并把两个显示功能分别封装成子程序dispDEC和dispHEX。 2.设在以EXAMSCORE为首地址的数据缓冲区依次存放某班10名同学5门功课的成绩,现要统计各位同学的总分,并将总分放在该学生单科成绩后的单元,并调用第1个程序封装好的子程序,以十进制方式显示统计情况,显示格式自行设计。请编程完成此功能。数据缓冲区参考数据定义如下: EXAMSCORE DB 01 ;学号 DB 89,76,54,77,99 ;单科成绩 DW ? ;该学生的总分 DB 02 ;学号 DB 79,88,64,97,92 ;单科成绩 DW ? ;该学生的总分 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

简单行编辑器 数据结构 课程设计汇总

中国矿业大学徐海学院计算机系《软件认知实践》报告 姓名:学号: 专业: 设计题目:简单行编辑器 指导教师: 2012年12月25

目录 第1章题目概述 (1) 第1.1节题目要求 (1) 第1.2节主要难点 (2) 第2章系统流程图 (3) 第3章数据结构和算法 (4) 第4章核心代码分析 (6) 第5章复杂度分析 (10) 第6章总结 (11) 参考文献 (13)

第1章题目概述 在这次课程设计中我选的题目是文本编辑,文本编辑几乎是每个使用电脑 的人都会遇到的问题,特别是网络小说作家们。在文本的编辑中,我们会时常 遇到文本信息的统计问题、小型子串的查找问题、子串的查找和删除问题等。 如果靠人自己去观察和执行相关操作的话,不仅累人,而且很容易出错。而使 用计算机程序去实现的话,则会省力不少,而且相对来说非常精确。本程序使 用了较快速的查找算法,可以大大提高检索的效率,相信这可一极大的方便用 户用电脑编辑文本文件。 第1.1节题目要求 文章编辑 功能:输入一页文字,程序可以统计出文字、数字、空格的个数。 静态存储一页文章,每行最多不超过80个字符,共N行; 要求 (1)分别统计出其中英文字母数和空格数及整篇文章总字数; (2)统计某一字符串在文章中出现的次数,并输出该次数; (3)删除某一子串,并将后面的字符前移。 存储结构使用线性表,分别用几个子函数实现相应的功能; 输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标 点符号。 输出形式: (1)分行输出用户输入的各行字符; (2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数" (3)输出删除某一字符串后的文章; 实现功能 (1)文章内容的输入:包括字母、标点符号、数字等; (2)文章内容的统计:包括文章中大写字母、小写字母、数字、标点符

新版汇编语言程序设计钱晓捷第1章习题答案

第1章汇编语言基础知识(全) 2010-10-18 19:32:40| 分类:答案集锦| 标签:|字号大中小订阅 第1章汇编语言基础知识 〔习题1.1〕简述计算机系统的硬件组成及各部分作用。 〔解答〕 CPU:包括运算器、控制器和寄存器组。运算器执行所有的算术和逻辑运算;控制器负责把指指令逐条从存储器中取出,经译码分析后向机器发出各种控制命令,并正确完成程序所要求的功能;寄存器组为 处理单元提供所需要的数据。 存储器:是计算机的记忆部件,它用来存放程序以及程序中所涉及的数据。 外部设备:实现人机交换和机间的通信。 〔习题1.2〕明确下列概念或符号: 主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB 〔解答〕 主存又称内存是主存储器的简称,主存储器存放当前正在执行的程序和使用的数据,CPU可以直接存取,它由半导体存储器芯片构成其成本高、容量小、但速度快。辅存是辅助存储器的简称,辅存可用来长期保存大量程序和数据,CPU需要通过I/O接口访问,它由磁盘或光盘构成,其成本低、容量大,但速 度慢。 RAM是随机存取存储器的英语简写,由于CPU可以从RAM读信息,也可以向RAM写入信息,所以RAM也被称为读写存储器,RAM型半导体存储器可以按地址随机读写,但这类存储器在断电后不能保存信息;而ROM中的信息只能被读出,不能被修改,ROM型半导体通常只能被读出,但这类存储器断电 后能保存信息。 存储器由大量存储单元组成。为了区别每个单元,我们将它们编号,于是,每个存储单元就有了一个存储地址,I/O接口是由一组寄存器组成,为了区别它们,各个寄存器进行了编号,形成I/O地址,通常 称做I/O端口。 KB是千字节、MB是兆字节、GB是吉字节和TB是太字节,它们都是表示存储器存储单元的单位。 〔习题1.3〕什么是汇编语言源程序、汇编程序、目标程序? 〔解答〕 用汇编语言书写的程序就称为汇编语言源程序;完成汇编工作的程序就是汇编程序;由汇编程序编 译通过的程序就是目标程序。

(完整版)教你10分钟学会微信排版【图文编辑】

教你10分钟学会微信排版 一、要不要排版? 当然要。 有人鼓吹不要排版,说人家许多大V都没怎么排版。 别学。 首先,没有硬货,再不排版,就是找死。长得一般,再不打扮,能行? 其次,六神磊磊、小道消息的Fenng和环时的老金,随便写点啥,阅读和转发量都比你的硬货多。为啥?因为人家的内容有资历和名气加持啊,所谓一句顶一万句。 问你一句:是真的没时间排版,还是懒,宁可在群里吹水? 二、用什么编辑器? 第三方编辑器没必要折腾。多一种工具,多一些麻烦。 那用什么? 微信公众号后台自带的编辑器就行。虽然简陋了点,但是足够用了。 就像你手里有一把简单的刀,还不满足,到处去找花里胡哨的刀,却没把时间用在练功夫上。何苦? 我问你: 手中这把简单的刀,你都摸熟了? 微信自带编辑器的每个功能,你都试了一遍? 每个功能的排版效果你都知道了? 如果没有,即便给你一个顶级编辑器,你也只会其中几项基本功能。 排版讲求美感,恕我直言,各种编辑器很多,排出来花样不少,但,美感好的文章,真的不多。 三、怎样才算好的排版? 其实,排版很简单,目的就两点: 一、让读者眼睛爽,印象深; 二、更重要的,为了突出内容,让读者专注于内容,读完文章,知道你到底传达了什么意思或者什么情感。 所以,评估一个排版的好坏,不是单纯看花样、看创意,而是,是否有助于实现这两点目的。如果没有,那么花样越多,反而造成干扰。 排版要注意三点: 颜色和字号,突出重点内容; 段间距和行间距,形成平衡的布局; 线条和符号,引导视线。 简约、突出重点内容、实现必要的引导,即可。 四、怎么利用微信编辑器的各个功能呢? 复制文字,粘贴到微信编辑器中。 记住,不要用ctrl+v,这样会保留原来的样式,调整起来麻烦, 要用ctrl+shift+v。 全选正文,设定行间距。 微信默认的行间距是1,这样太拥挤,最好调为1.5或者1.75。 如果文字少,那就调为2倍,这样让文章显得不那么单薄。

行编辑程序

计算机系 上机实验报告 实验项目名称行编辑程序 所属课程名称数据结构 实验类型综合型实验 班级 完整学号 姓名 成绩

实验概述: 【实验目的】 1.练习行编辑程序并写出栈的逻辑结构表示 2.掌握栈的特点并实现栈的存储表示 3.用栈解决行编辑的问题 【实验环境】(使用的软件) Visual C++ 6.0 控制台编程环境 实验内容(不够附页): 【实验方案设计与实验过程】(分析、设计、实验步骤、测试数据、实验结果)一、分析 行编辑程序的功能:接受用户从终端输入的程序或数据,并存入用户的数据区。 较好的做法:设立一个输入缓冲区,用来接收用户输入的一行字符,然后逐行存入用户数据区。 例如,当用户发现刚刚键入放入一个字符是错的时,可补符进一个退格符“#”,以表示前一个字符无效;如果发现当前键入的行内差错较多或难以补救,则可以键入一个退行符“@”,以表示当前行中的字符均无效。 二、设计 使用栈结构实现输入缓冲区 从终端接收一个字符进行判断: 1、不是“#”也不是“@”则压入栈顶 2、是“#”,则栈顶元素出栈 3、是“@”,则栈清空 4、接收到行结束符或全文结束符将数据送入用户数据区 三、实验步骤

四、测试数据 【实验小结】(实验过程中出现的问题、结果分析、出错原因分析等)(实验过程中出现问题举例) 1.问题: 在程序实现过程中,编译时没有出现错误: 但在运行结果时却出现如下错误: 仔细检查程序,发现是由于少写了如下一段程序:case'@':{ while(!StackEmpty(S)) Pop(S,c); };break;//构造空栈S 加上以上语句,再编译执行,程序运行正常。 成绩: 批阅日期:

参考简单行编辑程序报告

沈阳航空工业学院 课程设计 简单的行编辑程序 班级 / 学号 6402103/077_ 学生姓名赵壮 指导教师张雷

沈阳航空工业学院 课程设计任务书 课程名称软件技术基础课程设计 院(系)电子信息工程学院专业电子信息工程 班级6402103 学号200604021077 姓名赵壮 课程设计题目简单行编辑程序 课程设计时间: 2008 年7 月14 日至2008 年7 月27 日课程设计的内容及要求: [问题描述]文本编辑程序是利用计算机进行文字加工的基本软件工具,实现对文本文件的插入、删除等修改操作。限制这些操作以行为单位进行的编辑程序称为行编辑程序。被编辑的文本文件可能很大,全部读入编辑程序的数据空间(内存)的作法既不经济,也不总能实现。一种解决方法是逐段地编辑。任何时刻只把待编辑文件的一段放在内存,称为活区。试按照这种方法实现一个简单的行编辑程序。设文件每行下超过320字符,很少超过80字符。 [基本要求]实现以下4条基本编辑命令: (1)行插入。格式:i<行号><回车><文本>.<回车>将<文本>插入活区中第<行号>行之后。 (2)行删除。格式:d<行号l>[<空格><行号2>=<回车>删除活区中第<行号1>行(到第<行号2>行=。例如:“d10┛”和d1014┛” (3)活区切换。格式: n<回车>将活区写入输出文件,并从输入文件中读入下一段,作为新的活区。 (4)活区显示。格式:p<回车>逐页地(每页20行)显示活区内容,每显示一页之后请用户决定是否继续显示以后各页(如果存在)。印出的每一行要前置以行号和一个空格符,行号固定占4位.增量为l。 各条命令中的行号均须在活区中各行行号范围之内,只有插入命令的行号可以等于活区第一行行号减l,表示插入当前屏幕中第一行之前,否则命令参数非法。 指导教师年月日 负责教师年月日 学生签字年月日

C语言学习知识必背18个经典编辑程序

C语言必背18个经典程序 1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/ #include "stdio.h" main() {int i,j,result; for (i=1;i<10;i++) { for(j=1;j<10;j++) { result=i*j; printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/ } printf("\n");/*每一行后换行*/ } } 2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 兔子的规律为数列1,1,2,3,5,8,13,21....*/ main() { long f1,f2; int i; f1=f2=1; for(i=1;i<=20;i++) { printf("%12ld %12ld",f1,f2); if(i%2==0) printf("\n");/*控制输出,每行四个*/ f1=f1+f2; /*前两个月加起来赋值给第三个月*/ f2=f1+f2; /*前两个月加起来赋值给第三个月*/ } } 3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。*/ #include "math.h" main() { int m,i,k,h=0,leap=1; printf("\n"); for(m=101;m<=200;m++) { k=sqrt(m+1); for(i=2;i<=k;i++) if(m%i==0) {leap=0;break;} if(leap) /*内循环结束后,leap依然为1,则m是素数*/

C语言课程设计 简单的行编辑器.

语言程序设计报告 姓名: 班级: 学号: 指导教师: 课题:简单的行编辑器

简单的行编辑器 一.题目要求 1.设置一个简单的行编辑器,每行以回车结束。 2.数据以文件形式存储。 3.编辑器具有查找,替代,修改数据的功能。 二.需求分析 根据题目要求,数据以文件的形式存储,所以应提供文件的输入,输出等操作;还需要文件具有查找,替换,修改数据的功能。 三.总体设计 根据上面的需求分析,可以将这个系统的设计分为如下七大模块: 编辑,查找,修改,,删除,替换,保存,退出。 四.详细设计 1.主函数 为了各模块的独立性,主函数一般设计得比较简单,本系统主要用主函数打开上次保存的数据和进入主菜单函数 流程图

程序 main() pfile=fopen("Linedit.txt","a+"); readfile(lines,pfile); fclose(pfile); menu(lines); } int readfile(char (*lines)[MAXC],FILE *pfile) { int i=0; while(!feof(pfile)){ fgets(lines[i],MAXC,pfile); /*if(!strstr(lines[i],"\n")) return 1;*/ i++; } return 0; } 2. 主菜单函数 流程图 程序 void menu(char (*lines)[MAXC]){ int selection; do{

system("cls"); puts("\t\t***********************MUNU******************\n\n"); puts("\t\t1.Edit new line"); puts("\t\t2.Replace line"); puts("\t\t3.Delete line"); puts("\t\t4.Search line"); puts("\t\t5.Modify data"); puts("\t\t6.Save"); puts("\t\t0.Exit"); puts("\n\n\t\t********************************************\n"); printf("Please select a number:[ ]\b\b"); do{ scanf("%d",&selection); if(selection<0||selection>6) { printf("Invalid selection!Please try again "); printf("and select a number:[]\b\b\n"); } else break; }while(true); switch(selection) { case 1:edit(lines);break; case 5:modify(lines);break; case 3:mydelete(lines);break; case 4:search(lines);break; case 2:replace(lines);break; case 6:savetofile(lines);break; case 0:myexit(lines); } } while(true); } 3.各功能模块设计 (1)编辑模块 流程图

简单的行编辑器课程设计报告

中国地质大学 C语言课程设计 题目编号和名称16 简单的行编辑器 教师姓名 学生姓名 学生学号 学生班级 所在院系 日期2010 年7 月16 日

简单的行编辑器 目录 1.题目要求………………………………………… 2.需求分析……………………………………….... 3.总体设计………………………………………… 4.详细设计………………………………………… 5.总结………………………………………………. 1.【题目要求】 设计一个简单的行编辑器 【要求】 (1)设置一个简单的行编辑器,每行以回车结束 (2)数据以文件形式存储 (3)编辑器具有查找、替换、修改数据的功能 2.【需求分析】 根据题目要求,行编辑器的数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;在程序运行过程中要实现查找、替换、修改数据的功能应提供查找、替换、修改数据等操作;另外还应提供键盘式选择菜单功能选择。 3.【总体设计】 根据上面的需求分析,可以将这一系统的设计分为输入、查找、替换修改数据、退出等四个模块(系统功能模块如图1所示) 图1 行编辑器功能模块图

4.【详细设计】 1. 主函数 主函数的设计一般较简单,一般只提供输入、功能处理和输出部分的函数调用其中各功能模块用菜单方式选择。主函数流程图如图1-1 程序如下 void main() { cout<<"\t\t\t 简单行编辑.\n"; Str s1; Str s2; Str ss; Str ss1; Str ss2; int n; s1.input_str(); int choice=-1; while(choice!=0) 图1-1 行编辑器主函数流程 { //system("cls"); cout<<"\t\t\t *******简单行编辑******\n"; cout<<"\t\t\t ***********************\n"; cout<<"\t\t\t 1: 打印字符串.\n"; cout<<"\t\t\t 2: 插入字符串.\n"; cout<<"\t\t\t 3: 删除字符串.\n"; cout<<"\t\t\t 4: 复制整个字符串.\n"; cout<<"\t\t\t 5: 替换字符串.\n"; cout<<"\t\t\t 6: 查找一个字符串的位置.\n"; cout<<"\t\t\t 7: 继续输入. \n"; cout<<"\t\t\t 0: 退出.\n"; cout<<"\t\t\t ************************\n";

简单行编辑程序实验报告

简单行编辑程序课程设计 一.设计要求 1.问题描述 文本编辑程序是利用计算机进行文字加工的基本软件工具,实现对文本文件的插入、删除等修改操作。限制这些操作以行为单位进行的编辑程序称为行编辑程序。 被编辑的文本文件可能很大,全部读入编辑程序的数据空间(内存)的做法即不经济,又不总能实现。一种解决方法是逐段的编辑。任何时刻只把待编辑文件的一段放在内存,称为活区。试按这种方法实现一个简单的行编辑程序,设文件每行不超过320个字符,很少超过80个字符。 2.需求分析 该程序要实现以下4条基本的编辑命令: (1)行插入。格式:i<行号><回车><文本>. <回车> 将<文本>插入活区中第<行号>行之后。 (2)行删除。格式:d<行号1>[<空格><行号2>.]<回车>例如 删除活区中第<行号1>行(到第<行号2>行)。 (3)活区切换。格式:n<回车> 将活区写入输出文件,并从输入文件中读入下一段,作为新的活区。(4)活区显示。格式:p<回车>;逐页地(每页20行)显示活区内容,在每显示的一页之后请用户决定是否继续显示以后各页(如果存在)。印出的每一行要前置行号和一个空格符,行号固定占4位,增量为1。 各条命令中的行号均须在活区中各行号范围之内,只有插入命令的行号可以等于活区第一行行号减一,表示插入当前的屏幕中第一行之前,否则命令参数非法。 二.概要设计 1.主界面设计 为了实现简单行编辑程序,设计一个含有多个菜单项的主控菜单子程序以链接系统的各项子功能。主控菜单运行如下:

2.存储结构设计 该系统采用串的顺序存储结构。 3.系统功能设计 (1)行插入 (2)行删除 (3)文本显示 (4)保存文件 (5)读取文件 (6)退出系统 三.模块设计 1.模块设计 本程序包含主程序模块、菜单选择模块和串操作模块。调用关系如下主程序模块菜单选择模块串操作模块 2.系统子程序及功能设计 (1)enter(int linenum) 据结构设计 ADT line{ 基本操作: enter(linenum) 初始条件:有内存。 操作结果:linenum +1. delete_text( ) 初始条件:line存在。 操作结果:若删除的最后一行,则直接删除。 若删除中间一行,则后面的linenum -1。 Load()

行编辑程序说明书

摘要 本课程设计是实现“简单的行编辑程序”,此编辑程序的主要用处是接受用户从终端输入的程序和数据,并存入用户的数据区。这个行编辑程序需要实现的功能包括:能够设立一个输入缓冲区,用于接受用户输入的一行字符然后逐行存入用户数据区;用户在输入出差错时,并在发现有误时可以及时更改。此程序是一个课程设计的程序,只是模拟的一个简单的行编辑器,如需要真正设计一个行编辑器,那么还需要更为完善的程序。 关键词:行编辑;数据结构;VC++;线性结构

Abstract This course is designed to achieve "a simple line editor", the main use of this editing program is to accept input from the terminal user programs and data, and the data stored in the user's area. This program needs to achieve line editing features include: the ability to set up an input buffer for receiving a line of characters entered by the user and stored in the user data area progressive; awry when the user input, and can be found in time to change the wrong time . This program is a curriculum design process, just simulate a simple line editor, such as the need to really design a line editor, you also need a more comprehensive program. Keyword:Line editing; data structure; VC + +; linear structure

文本编辑器的详细使用说明

文本编辑器的详细使用说明

文本编辑器的详细使用说明 ①基本操作:对作业内容进行剪切、 复制、粘贴等操作 ②文字格式化:对作业内容进行格式 调整,包括字体大小、颜色、样式等。图标依此为:【段落标签】【字体】【字体大小】【加粗】【斜体】【下划线】【删除线】【字体颜色】【背景颜色】【内容全选】【删除文字格式】 ③段落格式化:对作业中的段落进行 格式调整,包括:【对齐】【列表】【减 少缩进】【增加缩进】 ④常用的网页编辑: 超链接: 直接建立超链接:填写链接地址、选择链接页面的打开方式、输入链接文字,点击【确定】

链接我自己的附件:选择电脑上的附件,输入链接文字,点击【确定】 ●取消超链接:选中编辑器中的超链 接,点击取消即可。可以直接删除 链接文字。 ●图片: 如何上传图片 上传图片(图片要为.jpg格式)请按照使用说明中的步骤进行, 截图后如何存为.jpg格式: ①首先打开画图工具步骤: 点击【开始】----【所有程序】----【附件】----【画图】

②将图片存为.jpg格式 用qq截图后,在画图工具中的空白处右击鼠标【粘贴】,然后保存时放在桌面上,保存时将图片选择成.jpg格式。 图片的大小判断方法: 鼠标右击要上传的图片,点击【属性】 根据IE浏览器不同分类两类: ①ie6或ie7中点击【摘要】查看高度和宽度,将其记录下后填入如下框中 ②ie8及以上点击【详细信息】查看高度和宽度

上传图片: 在编辑框中找到图片按钮,按照如下步骤进行 ①开编辑框找到图片按钮 ②点击上传,找到要上传的图片

③填写长宽 ④点击确定

数据结构课程设计:行编辑程序

一、需求分析 由于被编辑的文本文件可能很大,全部读入编辑程序的数据空间(内存)的作法既不经济,也不总能实现。而用行编辑把待编辑文件的一段放进内存,称为活区。本行编辑程序是以每行不超过320个字符为前提的。每次编辑会读入80行,活区每次只显示20行。 1.该程序要实现以下基本编辑命令和一些相关的命令: (1)行插入。格式:i<回车><行号><回车><文本><回车>。 将<文本>插入活区第<行号>行之后。 (2)行删除。格式:d<回车><行号1>,<行号2><回车>。 删除活区中第<行号1>行到第<行号2>行。 (3)活区切换。格式:n<回车><页数><回车>。 由于每次从输入文件读入80行,而活区每页显示20行,而活区切换就是要切换 到需编辑的页面上去。 (4)活区显示。格式p<回车>。 显示当前要编辑的活区内容。印出的每一行都有一个前置行号和一个空格符,行 号固定为2位,增量为1。 (5)清屏。格式:c<回车>。 (6)获得帮助。格式:h<回车>。 (7)退出。格式:e<回车>。 二、概要设计 程序结构流程图: 存储结构的定义如下: typedef struct text { char string[80];//存储每一行的元素 struct text *next;//指向后一个节点的指针 int flat;//确定此行是否被删除的标志

}text,*textp; 功能函数: Status Createlist(textp &head); 功能:建立一个80个节点的链表,是整个活区的大小int del(textp head); 功能:删除显示的活区的任意一行。 int display(textp &head); 功能:按照每页20行的规格显示活区的内容。 void freemem(textp &head); 功能:销毁链表,释放内存。 int insert(textp &head); 功能:在显示的活区插入一行内容。 Status SaveFile(textp head,FILE *out); 功能:将活区的内容保存到输出文件。 Status LoadFile(textp head,FILE *fp); 功能:从输入文件读取内容到活区。 void HELP(); 功能:提供命令的格式。 主函数: void main() { 初始化; 输入命令; Switch(c) { case ‘e’:退出并保存编辑的内容 case ‘p’: 显示活区 case ‘n’: 活区切换 case ‘d’: 删除一行 case ‘i’: 插入一行 case ‘c’: 清屏 case ‘h’: 获得帮助 } } 三、详细设计 #include #include #include #include #include

(完整版)KUKA简单操作说明书

KUKA简单操作说明书 一、KUKA控制面板介绍 1、示教背面 在示教盒的背面有三个白色和一个绿色的按钮。三个白色按钮是使能开关(伺服上电),用在T1和T2模式下。不按或者按死此开关,伺服下电,机器人不能动作;按在中间档时,伺服上电,机器人可以运动。绿色按钮是启动按钮。 Space Mouse为空间鼠标又称6D鼠标。 2、示教盒正面

急停按钮: 这个按钮用于紧急情况时停止机器人。一旦这个按钮被按下,机器人的伺服电下,机器人立即停止。 需要运动机器人时,首先要解除急停状态,旋转此按钮可以抬起它并解除急停状态,然后按功能键“确认(Ackn.)”,确认掉急停的报警信息才能运动机器人。 伺服上电: 这个按钮给机器人伺服上电。此按钮必须在没有急停报警、安全门关闭、机器人处于自动模式(本地自动、外部自动)的情况下才有用。 伺服下电: 这个按钮给机器人伺服上电。

模式选择开关: T1模式:手动运行机器人或机器人程序。在手动运行机器人或机器人程序时,最大速度都为250mm/s。 T2模式:手动运行机器人或机器人程序。在手动运行机器人时,最大速度为250mm/s。在手动运行机器人程序时,最大速度为程序中设定的速度。 本地自动:通过示教盒上的启动按钮可以使程序自动运行。 外部自动:必须通过外部给启动信号才能自动执行程序。 退出键: 可以退出状态窗口、菜单等。 窗口转换键: 可以在程序窗口、状态窗口、信息窗口之间进行焦点转换。当某窗口背景呈蓝色时,表示此窗口被选中,可以对这个窗口进行操作,屏幕下方的功能菜单也相应改变。 暂停键: 暂停正在运行的程序。按“向前运行”或“向后运行”重新启动程序。 向前运行键: 向前运行程序。在T1和T2模式,抬起此键程序停止运行,机器人停止。 向后运行键: 向后运行程序。仅在T1和T2模式时有用。 回车键: 确认输入或确认指令示教完成。 箭头键: 移动光标。

实验二:简单汇编语言程序设计与调试

深圳大学实验报告 课程名称微型计算机技术 项目名称实验二:简单汇编语言程序设计与调试 学院 专业 指导教师 报告人学号 实验时间 2015-11-01 提交时间 2015-11-15 教务处制

一、实验目的与要求 1.1掌握使用运算类指令编程及调试方法。 1.2掌握运算类指令对各个状态标志位的影响及其测试方法。 二、实验内容与方法 8086/8088指令系统提供了实现加、减、乘、除运算的基本指令,可对表2-1所示的数据类型进行算术运算。 表2-1 数据类型算术运算表 2.1二进制双精度加法运算 2.1.1 实验要求: 计算X+Y=Z,将结果Z存入某存储单元。 2.1.2 实验原理: 本实验程序是双精度(2个16位,既32位)运算,利用累加器AX,先求低16位和,并存入低址存储单元,后求高16位和,再存入高址存储单元。由于低位和可能向高位有进位,因而高位字相加语句需要用ADC指令,则低位相加有进位时,CF=1,高位字相加时,同时加上CF中的1。 2.1.3 参考程序清单: STACK SEGMENT STACK DW 64 DUP(?) STACK ENDS DATA SEGMENT XL DW ?;请在此处给X低位赋值 XH DW ?;请在此处给X高位赋值 YL DW ?;请在此处给Y低位赋值 YH DW ?;请在此处给Y高位赋值 ZL DW ? ZH DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX

MOV AX,XL ;X的值送AX ADD AX,YL ;X低位加Y低位 MOV ZL,AX ;存低位和 MOV AX,XH ;X高位送AX ADC AX,YH ;X高位加Y高位 MOV ZH,AX ;存高位和 CODE ENDS END START 2.2十进制数的BCD码减法运算 2.2.1 实验要求: 计算X-Y=Z,其中X,Y,Z为BCD码。 2.2.2 参考实验程序及流程图如下: STACK SEGMENT STACK DW 64 DUP(?) STACK ENDS DATA SEGMENT X DW ? ;请在此处给X赋值 Y DW ? ;请在此处给Y赋值 Z DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AH,00H SAHF MOV CX,0002H MOV SI,OFFSET X MOV DI,OFFSET Z A1: MOV AL,[SI] SBB AL,[SI+02H] DAS

简单行编辑程序——课程设计

简单行编辑程序 题目:简单行编辑程序 班级:计算机科学与技术(非师范) 姓名: 学号: 完成日期:2010-6-25 1.需求分析 以无歧义的陈述说明程序设计的任务,强调的是程序要做什么?并明确规定: 文本编辑程序是利用计算机进行文字加工的基本软件工具,实现对文本文件的插入、删除等修改操作。限制这些操作以行为单位进行的编辑程序称为行编辑程序。 (1) 输入的形式和输入值的范围; 无范围 (2) 输出的形式; 字符串 (3) 程序所能达到的功能; 实现以下4条基本编辑命令: (1)行插入。格式:i<行号><回车><文本><回车> 将<文本>插入活区中第<行号>行之后 (2)行删除。格式:d<行号1>[□<行号2>]<回车> 删除活区中第<行号1>行(到第<行号2>行)。两种格式的例子是:“d10↙”和“d10□14↙” (3)活区切换。格式:n<回车> 将活区写入输出文件,并从输入文件中读入下一段,作为新的活区。 (4)活区显示。格式:p<回车> (4) 测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。

2.概要设计 说明本程序中用到的所有抽象数据类型的定义、主程序的流程以及各程序模块之间的层次(调用)关系。 typedef struct text { char string[80];//存储每一行的元素 struct text *next;//指向后一个节点的指针 struct text *pre;//指向前一个节点的指针 int num;//每一行元素的长度 int flat;//确定此行是否被删除的标志 }text; FILE *fp,*out;//fp是执行被打开的文件,out指向被写入的文件 text *head;//链表的头指针 int n=0,sum,delnum,xiugai=0,page=0; //file://修改用来指示文件是否被修改过,如果修改过才回存盘。page用来计算显示的 //file://页数.delnum用来存储被删除的字节数,sum存储一页的总字节数 3.详细设计

相关文档
相关文档 最新文档