《计算机接口编程技术》实验程序

《计算机接口编程技术》实验程序
《计算机接口编程技术》实验程序

第一章微型计算机接口寻址

//端口选址程序:

1、实验电路接线关系:

#include

main()

{

while(1){

outportb(0xec00+0x2A0-0x280,100);/*选择Y4*/

delay(10000);

outportb(0xec00+0x2A8-0x280,100 ); /*选择Y5*/

delay(10000);

if(kbhit()) break;

}

}

第二章中断计数

(一)单脉冲触发中断计数程序

1、硬件接线

2、程序流程

3、程序清单

//T8259-1.c

#include /*header file */

#include

#include

#include

void is0(),is1(); /*function */

unsigned int io82590=0xec30,io82591=0xec31;

unsigned char icw1=0x13,icw4=1,ocw1=0xfc,ocw2=0x20,ocw3=0xce; void main()

{

int i,j;

outportb(io82590,icw1); /* init */

outportb(io82591,icw4);

outportb(io82591,ocw1);

while(!kbhit()) /* key check */

{

outportb(io82590,ocw3); /*read status command */

i=inportb(io82590); /*read status */

if((i&0x80)==0x80) /*check int irr */

{

if((i&7)==0) is0(); /* irr0 */

if((i&7)==1) is1(); /* irr1 */

}

}

}

void is0() /*int ir0 service */

{

printf("0");

outportb(io82590,ocw2);

}

void is1() /*int ir1 service */

{

printf("1 ");

outportb(io82590,ocw2);

}

(二)BIOS和DOS调用程序

1、DOS调用程序

#include

#include

main()

{

union REGS inreg,outreg;

unsigned int year1;

unsigned char month1,date1;

clrscr();

inreg.h.ah=0x2a;

gotoxy(10,10);

intdos(&inreg,&outreg);

year1=outreg.x.cx;

month1=outreg.h.dh;

date1=outreg.h.dl;

gotoxy(10,10);

printf(“%d %d %d”, year1, month1,date1);

getch();

}

2、BIOS调用程序

#include

#include

main()

{

union REGS inreg,outreg;

unsigned char hour1,minute1,second1;

clrscr();

inreg.h.ah=0x2;

gotoxy(10,10);

int86(0x1a,&inreg,&outreg);

hour1=outreg.h.ch;

minute1=outreg.h.cl;

second1=outreg.h.dh;

gotoxy(10,10);

printf(“%d %d %d”, hour1,minute1,second1);

getch();

}

(三)中断服务子程序

#include

#include

#include

void interrupt far ints(); /*定义中断服务函数*/

unsigned int porta=0x300;

unsigned char control_word=0x98,ackbyte=0x0c;

int bytenum=0, bytenum1=0,i,j,k,n;

main()

{

void(interrupt far *mode)(); /*定义中断服务函数指针,保存原中断向量*/

disable(); /*关中断*/

mode=getvect(0x0a); /*取中断向量*/

setvect(0x0a,ints); /*设置中断向量*/

enable(); /*开中断*/

while(!kbhit())

{

if(bytenum<> bytenum1)

{

gotoxy(20,20);

printf(“count num:%d”, bytenum);

bytenum1= bytenum;

}

}

setvect(0x0a,mode); /*恢复中断向量*/

}

void interrupt far ints() /*中断服务函数说明*/ {

unsigned char j,k;

disable(); /*关中断*/

bytenum++; /*中断服务操作,计数*/ outportb(0x20,0x20); /*结束中断*/

enable(); /*开中断*/

}

第三章可调宽脉冲生成

1、利用8253/8254定时/计数器进行单脉冲计数

(1)、硬件接线

8253芯片片选线CS接280H;

8253芯片GATE0接+5V;

8253芯片CLK0接脉冲输入;

8253芯片OUT0接发光二极管;

(2)程序清单

#include

#include

main()

{

unsigned char bl,bh;

unsigned int ol;

outportb(0xec03,0x30);

outportb(0xec00,5);

outportb(0xec00,0);

clrscr();

while(1)

{

gotoxy(20,20);

outportb(0xec03,0);

bl=inportb(0xec00);

bh=inportb(0xec00);

ol=bl+256*bh;

printf(“bl=%d,bh=%d,ol=%d”,bl,bh,ol);

getch();

}

}

2、定时闪烁灯

(1)硬件接线:

8253芯片片选线CS接280H;

8253芯片GATE0接+5V;

8253芯片CLK0接1MHZ脉冲输入;

8253芯片OUT0接CLK1;

8253芯片GATE1接+5V;

8253芯片OUT1接发光二级管;

(2)程序清单

#include

#include

main()

{

unsigned int time1=1000,time2=2000; outportb(0xec03,0x36);

outportb(0xec00,time1%256); outportb(0xec00,time1/256); outportb(0xec03,0x76);

outportb(0xec00,time2%256); outportb(0xec00,time2/256);

}

第四章数据通信

1、开关量检测

(1)硬件接线

8255A芯片的数据线D7-D0接总线D7-D0;

8255A芯片的A1、A0接总线的A1、A0;

8255A芯片的WR、RD接总线的IOW、IOR;

8255A芯片的片选CS连接端口地址288H;

8255A芯片的PA端口PA7~PA0接开关K7~K0;

8255A芯片的PB端口PB7~PB0接八个发光二极管LED7~LED0。(2)程序清单

#include

#include

main()

{

unsigned char a;

outportb(0xec0b,0x90);

while(!kbhit())

{

a=inportb(0xec08);

outportb(0xec09,a);

}

}

2、LED静态显示

(1)硬件接线

8255A芯片的数据线D7-D0接总线D7-D0;

8255A芯片的A1、A0接总线的A1、A0;

8255A芯片的WR、RD接总线的IOW、IOR;

8255A芯片的片选CS连接端口地址288H;

8255A芯片的PA端口PA67~PA0接开关K7~K0;

8255A芯片的PB端口PB0~PB6接LED的a、b、c、d、e、f、g。

(2)程序清单

#include

#include

unsigned char

table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; int i,j,k,m;

main()

{

outportb(0xec0b,0x80);

while(!kbhit())

{

for(i=0;i<10;k++)

{

outportb(0xec08,table[i]);

Delay(100);

}

}

}

3、LED动态显示

(1)硬件接线

8255A芯片的数据线D7-D0接总线D7-D0;

8255A芯片的A1、A0接总线的A1、A0;

8255A芯片的WR、RD接总线的IOW、IOR;

8255A芯片的片选CS连接端口地址288H;

8255A芯片的PA端口PA67~PA0接开关K7~K0;

8255A芯片的PB端口PB0~PB6接LED的a、b、c、d、e、f、g;8255A芯片的PB端口PC1接S1;

8255A芯片的PB端口PC0接S0。

(2)程序清单

#include

#include

unsigned char

table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; int I,j,k,m;

main()

{

outportb(0xec0b,0x80);

while(!kbhit())

{

outportb(0xec08,0x7d);

outportb(0xec0a,2);

delay(100);

outportb(0xec08,0x6d);

outportb(0xec0a,1);

delay(100);

}

}

4、LED点阵显示

(1)硬件接线

行选线接端口地址288H;

列选线接端口地址290H。

(2)程序清单

#include

#include

main()

{

char table1[]={0x44,0x54,0x0x54,0x7f,0x54,0xdc,0x44,0x24};

char table2[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

int i;

while(!kbhit())

{

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

{

outportb(0xec08,table1[i]);

outportb(0xec10,table2[i]);

delay(100);

}

}

}

5、继电器控制

(1)硬件接线

8253芯片片选线CS接280H;

8253芯片GATE0接+5V;

8253芯片CLK0接1MHZ脉冲输入;

8253芯片OUT0接CLK1;

8253芯片GATE1接+5V;

8253芯片OUT1接8255芯片的PA0;

8255芯片的PC0接继电器控制端IK。

(2)程序清单

#include

#include

main()

{

unsigned int time1=1000,time2=2000;

unsigned char a;

outportb(0xec0b,0x90);

outportb(0xec03,0x36);

outportb(0xec00,time1%256);

outportb(0xec00,time1/256);

outportb(0xec03,0x76);

outportb(0xec00,time2%256);

outportb(0xec00,time2/256);

while(!kbhit())

{

a=inportb(0xec08);

outportb(0xec0a,a);

}

}

6、串口通信编程

(1)硬件接线

定时器8253的片选CS接280H;

8253输出端OUT0连接8251的发送和接收时钟频率引脚TxCLK、RxCLK;

8251的片选CS接2B8H;

8251的数据总线D

0~D

7

接数据总线D

~D

7

8251读写控制线RD——和WR——分别接总线的IOR和IOW;

8251的c/D接总线的低位地址线A0;

8251的RESET接总线RESET端;

8251发送数据引脚TxD接8251接收数据引脚RxD。

(2)程序流程图

(3)程序清单

#include

#include

io82530=0xec00,io8253c=0xec03,iodata=0xec08,io8251c=0xec09,i,j,m,n; unsigned char cdata8253=52,cword8251=0x5e,oword8251=0x15,x,y;

main()

{

outportb(io8251c,0);

outportb(io8251c,0);

outportb(io8251c,0);

outportb(io8251c,0x40);

outportb(io8251c,cword8251);

outportb(io8251c,oword8251);

outportb(io8253c,cword8253);

outportb(io82530,cdata8253);

while(1)

{

x=getche();

y=inportb(io8251c);

if(x&1) outportb(iodata,x);

if(x&2)

{

if(!(x&0x38))

{

gotoxy(20,20);printf(“x=%c\n”,x); }

}

}

}

第五章模拟信号检测和数字控制信号输出

1、A/D实验

(1)硬件接线

0809的片选CS接端口地址298H;

0809的IN0接实验仪上的一可变电阻RW1;

0809的EOC接8255A的PC0;

8255A的CS接280H。

(2)程序清单

A、最简单程序:

#include

#include

main()

{

while(!kbhit())

{

outportb(0xec18,0);

delay(1);

gotoxy(20,20);

cprintf(“data=%5d”,inportb(0xec18));

}

}

B、通过8255A检测EOC基础上检测程序:

#include

#include

main()

{

unsigned char s;

textcolor(15);textbackground(1);clrscr();

outportb(0xec03,0x9b);

while(!kbhit())

{

outportb(0xec18,0);

while(1)

{

s=inportb(0xec02);

s=s&1;

if(!(s==1)) continue;

gotoxy(20,20);

cprintf(“data=%5d”,inportb(0xec18)); break;

}

}

C、有图形显示的A/D数据采集程序

#include

#include

main()

{

int driver,mode,i,j;

driver=VGA;mode=VGAHI;

initgraph(&driver,&mode,””);

setbkcolor(1);setcolor(15);

cleardevice();

i=0;

while(1)

{

outportb(0xec18,0);

delay(1);

putpixel(i%640,420-inportb(0xec18),15);

i++;

delay(100000);

if(i%640==0) cleardevice();

}

getch();

}

2、D/A输出锯齿波

(1)硬件接线

(2)程序清单

DAC0832

#include

#include

main()

{

unsigned char i=0; /*i为输出的数字量*/

int driver,mode,j=0;

driver=VGA;mode=VGAHI;

initgraph(&driver,&mode,””);

setbkcolor(1);setcolor(15);

cleardevice();

while(1)

{

outportb(0xec10,i++); /*从D/A输出i后,使i加1*/

putpixel(j%640,420-i,15);

j++;

if(kbhit()) /*如有键按下则退出*/

{

getch();

exit(0);

}

}

}

3.电子琴实验

实验电路如图,8253的CLK0接1MHz时钟,GATE0接+5V,OUT0接8255的PA0,K8跳线连接喇叭,编程使计算机的数字键1、2、3、4、5、6、7作为电子琴按键,按下即发出相应的音阶。

(1)编程原理提示:

对于一个特定的D/A转换接口电路,CPU执行一条输出指令将数据送入D/A,即可在其输出端得到一定的电压输出。给D/A转换器输入按正弦规律变化的数据,在其输出端即可产生正弦波。对于音乐,每个音阶都有确定的频率。

调节向D/A转换器输出数据的时间间隔,例如:发"1"频率为261.1HZ,周期为 1/261.1 = 3.83ms,输出数据的时间间隔为 3.83ms/32 = 0.12ms。定时时间可以由8253配合8255来实现。按下某键后发音时间的长短可以由发出的正弦波的个数多少来控制。

(2)硬件接线

8253 CS 接280H;

8253 CLK0 接1MHZ

8253 GATE0 接+5V

8253 OUT0 接8255的PA

8255 CS 接288H;

DAC0832 CS接290H

(3)程序原理分析:

定时功能的实现:由不同音阶的频率可以计算出其总周期时长和正弦波每个参数所在停留的时间,每个正弦波参数停留的时间就是8253定时器提供的延时

开 始从键盘读一字符

求出音阶值保存

正弦波个数计数器赋值60取正弦波数据送DAC0832

延 时

返 回DOS

60个正弦波 完了吗?

1个正弦波 完了吗?是ESC键吗?

是数字1…8吗?Y

N

N

N

N

Y

Y

Y 每个正弦波数据个数计数器赋初值

取出音阶值求出8253定时时间常数(计数器初值)8253初始化为方式0设置8253A口输入PA0为1吗?

子程序返回

Y

N

主程序 延时子程序

(4)参考程序 #include

int ff[]={120,106,94,89,79,70,63,59,1}; /*8253发不同音的计数器初值*/ unsigned char data[]={0x80,0x96,0x0ae,0x0c5,0x0d8,0x0e9,0x0f5, 0x0fd, 0x0ff, 0x0fd,0x0f5,0x0e9,0x0d8,0x0c5,0x0ae,0x96,0x80,0x66,0x4e,0x38, 0x25,0x15,0x09,0x04,0x00,0x04,0x09,0x15,0x25,0x38,0x4e,0x66};/*正弦波数据*/

void so(int j),de_lay(int i); /*说明输出正弦波数据和延时两个函数*/ main() {

int k,j;

outportb(0xec0b,0x90); /*置8255工作方式字:A 口方式0,输入,其他任意*/ for(;;) {

k=getch(); /*键盘输入,并取值*/

if(k<0x31||k>0x38) break; /*不在1-8范围内,则退出*/

for (j=0;j<60;j++) so(k-0x30); /*属于1-8范围,则发声处理*/ } }

void so(int ii) {

int i;

for(i=0;i<32;i++) /*轮流输出正弦波数据*/

程序设计课程设计实验报告

《程序设计》课程设计姓名: 学号: 班级:软件工程14班 指导教师: 成绩:

1.消除类游戏 【问题描述】 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。当有多处可以被消除时,这些地方的棋子将同时被消除。 【基本要求】 现在给你一个n行m列的棋盘(1≤n,m≤30),棋盘中的每一个方格上有一个棋子,请给出经过一次消除后的棋盘。 请注意:一个棋子可能在某一行和某一列同时被消除。 输入数据格式: 输入的第一行包含两个整数n,m,用空格分隔,分别表示棋盘的行数和列数。接下来n行,每行m 个整数,用空格分隔,分别表示每一个方格中的棋子的颜色。颜色使用1至9编号。 输出数据格式: 输出n行,每行m个整数,相邻的整数之间使用一个空格分隔,表示经过一次消除后的棋盘。如果一个方格中的棋子被消除,则对应的方格输出0,否则输出棋子的颜色编号。 【测试数据】 为方便调试程序,可将输入数据先写入一个文本文件,然后从文件读取数据处理,这样可避免每次运行程序时都要从键盘输入数据。 测试数据一 输出说明: 棋盘中第4列的1和第4行的2可以被消除,其他的方格中的棋子均保留。 测试数据二 输出说明: 棋盘中所有的1以及最后一行的3可以被同时消除,其他的方格中的棋子均保留。 【功能实现】 #include #include<> usingnamespacestd;

{ intm,n,i,j; inttemp; cin>>n>>m; temp=m; m=n; n=temp; int*map=newint[m*n]; int*mark=newint[m*n]; int*tmap=map; int*tmark=mark; intdif=0; ount=0; } p rintf("请输入要输入数的个数\n"); s canf("%d",&n);/*输入要输入数的个数*/ f or(i=0;idata1[j+1].number)

实验四-循环结构汇编语言程序的设计实验报告

循环结构汇编语言程序设计实验报告

实验四循环结构汇编语言程序设计 一、实验目的 1、学习循环结构的汇编语言程序的设计和调试。 2、学习通过直接对8086计算机的寄存器和存的直接访问,编写更高效简洁的汇编程序。 3、加深掌握计算机整体的工作过程。 3、加深对排序算法的理解。 二、实验任务 编写程序求出数组A中(20个元素)的最大值和最小值(数组没有排序)。 要求至少采用二种不同的排序算法来实现。( 快速排序,归并排序、堆排序、Shell排序、插入排序、冒泡排序、交换排序、选择排序、基数排序……) 三、实验容 为了更好地实现老师所布置的实验任务,我们根据情况选取以下两种方式实

验。 1、利用冒泡排序的方式求解数组A中元素的最大值最小值。设计流程图如 下所示: 2、利用选择排序的方式求得数组A中元素的序列。设计流程图如下所示:

四、实验环境 PC机: winXP/win7(32位)/win7(64位)+winxp 虚拟机 汇编工具:Masm.exe+Link.exe。 五、实验步骤 1)建立和生成的文件 (1)编写的源程序,源程序名为abc、扩展名为.asm (2)源程序经汇编程序Masm.exe汇编(翻译)后生成二进制目标程序,文件名为abc.obj (3)目标程序需要经Link.exe连接生成可执行程序,文件名为abc.exe 2)汇编环境 最基本的汇编环境只需要两个文件:Masm.exe和Link.exe。将这两个文件拷入到已经建好的文件夹(例如 huibian)中,并将文件夹huibian放在硬盘根

目录C :\>下 3)上机步骤 进入DOS窗口中执行。 4)调试程序 进入DEBUG后,调试程序 5)调试成功后重新汇编、连接并生成可执行代码 6)执行程序,并对运行结果截图。 利用冒泡排序求得数组A中元素的最大值最小值的实验结果如下图所示:(说明:输入数据为:13,0,59,900,587,1,657,234,34,48) 利用选择排序对数组A中元素排序得到的序列得实验结果如下图所示:(说明:输入数据为13,0,59,900,587,1,657,234,34,48)

微机原理简单输入输出实验报告

东南大学 《微机实验及课程设计》 实验报告 实验四(1)简单输入输出 一. 实验目的与内容 (一)实验目的 1)进一步掌握TPC实验装置的基本原理和组成结构; 2)掌握利用I/O指令单步调试检查硬件接口功能,学会利用示波器检测I/O指令执行时总线情况; 3)掌握简单并行输入输出接口的工作原理及使用方法,进一步熟悉掌握输入输出单元的功能

和使用。 (二)实验内容及要求 1、输出接口输出,根据8个发光二极管发光的情况验证编程从键盘输入一个字符或数字,将其ASCII码通过正确性。(输出端口实验必做) 2、用逻辑电平开关预置某个字母的ASCII码,编程输入这个ASCII码,并将其对应字母在屏幕上显示出来。(输入端口实验必做) 3、利用基本实验(1)中的输出锁存电路,设计L0~L7为流水灯,流水间隔时间由软件产生。(输出端口实验) 4、利用基本实验(2)中的输入电路,监测逻辑电平开关K0~K7的变换,当开关状态为全开时,在屏幕上显示提示信息并结束程序。(输入端口实验) 要求: 1、输入输出端口应该可以响应外设的连续变化。 2、输出按ESC键退出;输入按任意键退出。 3、内容3、4比做一题,选做一题 二. 实验基本原理 (一)基本原理 简单并行输出实验:八D触发器74LS273的八个输入端接数据总线D0~D7,从键盘输入一个字符或数字,通过2A8H~输出接口输出该字符或者数字代表的ASCII码,再通过8个发光二极管发光显示二进制数码,从而验证编程以及电路的正确性。 简单并行输入实验:八缓冲器74LS244的八个输出端接数据总线D0~D7,8个输入端分别接逻辑电平开关K0~K7,在逻辑电平开关上预置任意字符的ASCII码,编程将此ASCII码通过2A0H~输入,ASCII码对应字符显示在屏幕上,从而验证编程及电路的正确性。 (二)实验接线图

工业控制网络实验报告

工业控制网络实验报告 班级:信科14-4班 姓名:温华强 学号:08143080

实验四 S7-200与S7-300(S7-400)的以太网通讯 一、实验目的 1.学习使用STEP 7 Micro/WIN32软件; 2.学会如何使用以太网建立S7-200与S7300之间的通讯; 3.掌握S7-200与S7300之间的以太网通讯是如何进行的; 二、实验必备条件 1.带有STEP 7和STEP 7 Micro/WIN32(版本 3.2 SP1以上)软件的编程设备; 2.PC/PPI 电缆和PC适配器或者 CP5611/5511/5411 和MPI电缆; 3.一个CPU22X,符合以下类型要求: CPU 222 Rel. 1.10 或以上、CPU 224 Rel. 1.10 或以上、CPU 226 Rel. 1.00 或以上、CPU 226XM Rel. 1.00 或以上; 4.一个CP243-1,订货号为 6GK7 243-1EX00-0XE0; 5.一个HUB和网络电缆或者以太网直连电缆; 6.一套 S7-300/400 PLC 包括以下器件:电源、CPU、CP343-1或CP443-1 三、实验步骤 1.将CP243-1配置为CLIENT。使用STEP 7 Micro/WIN32中的向导程序。在命令菜单中选择Tools--> Ethernet Wizard。 2.点击Next>按钮,系统会提示您在使用向导程序之前,要先对程序进行编译。点击Yes编译程序。

3.在此处选择模块的位置。在线的情况下,您也可以用Read Modules按钮搜寻在线的CP243-1模块。点击Next>按钮。 4.在此处填写IP地址、子网掩码、通讯类型,点击Next>按钮。

贪吃蛇游戏程序设计实验报告

Windows编程大作业贪吃蛇设计与实现 学校:武汉轻工大学 院系: 班级: 姓名: 学号: 2015年12月16日

目录 一、题目介绍 二、设计目的 三、详细设计 3.1贪吃蛇本体设计 3.2贪吃蛇食物设计 3.3游戏界面设计 3.3.1游戏初始化 3.3.2游戏开始 3.3.3游戏暂停 3.3.4游戏退出 3.3.5游戏总界面 3.3.6游戏区域与背景 3.3.7关于SNAKE 3.4玩法规则设计 3.5核心设计 四、功能测试 五、总结 六、参考文献

一、题目介绍: 编写一个基于MFC的小游戏。 基本要求: 1、实现一个小游戏 2、实现基本游戏控制功能 3、具有游戏数据保存功能 4、界面布局合理、美观; 二、设计目的: 通过使用vc++6.0实现一个小游戏的课程设计,进一步掌握MFC的高级使用方法和锻炼自己动手写程序的能力。了解游戏设计的整个过程,通过熟练使用MFC来设计游戏。程序主要包括:游戏界面设计,游戏菜单栏设计,游戏初始化,游戏控制等。培养和锻炼开发游戏的能力。 三、详细设计 3.1贪吃蛇的本体设计 贪吃蛇的头部拥有一个坐标(x,y),蛇体有一个长度len,蛇有一个运动方向direct,故定义一个结构体如下: struct Snake { int x,y; int len; int direct; }Snake[50]; 3.2贪吃蛇食物设计 贪吃蛇的食物有一个坐标(x,y),此食物有一个标志isfood,当isfood为0时,表示食物还没被吃,为1时,表示被吃。 struct Food { int x; int y; int isfood; }Food; 3.3游戏界面设计 3.3.1游戏初始化 游戏初始蛇体长度为3,颜色为灰色,食物标志为1,因为此时没有显示出食物,需要随机生成后,才置为0;

汇编语言-实验五 输入输出程序设计

实验五输入输出程序设计 一、实验目的 1) 掌握输入输出程序的编写方法。 2) 熟悉系统功能调用的方法。 3) 熟悉动画程序的编写方法。 二、实验内容 1)在CRT上每隔一秒连续显示字符0-9。 编程提示 为了使输出的字符之间有空格,在每一个循环中输出一个0-9的字符和一个空格。为了输出0-9,置寄存器BL初值为0,每循环一次使其增量。为了保证输出是十进制,增量后用DAA调整指令。由于输出为一位十进制数,用AND 0FH 指令屏蔽高4位。 2)用系统功能调用将‘HELLO’由键盘输入,再从屏幕输出‘***HELLO***’。 3)编制在屏幕上画线的子程序,调用该子程序画一矩形。 4)编制字母下落一行的子程序,调用该子程序使字母从屏幕顶部下落到底部。 5)创建一磁盘文件,保存从键盘输入的字符串。 6)编写程序用设置系统时间,首先从键盘以十进制数形式输入时间,然后修改系统时间,并重新以十进制形式显示时间。 7)编写程序将屏幕分割成格状,每一格涂上不同颜色,格数从键盘输入。 8)编写程序在屏幕上显示菜单,输入相应菜单的序号后,选种该菜单项。 三、源程序 EXAM5-1 STACK SEGMENT STACK DB 1024 DUP(0)

STACK ENDS CODE SEGMENT ASSUME CS:CODE,SS:STACK START:MOV BL,0 LP:MOV DL,20H MOV AH, 2 INT 21H MOV AL,BL ADD AL, 0 DAA AND AL,0FH MOV BL,AL PUSH BX OR AL,30H MOV DL,AL MOV AH, 2 INT 21H MOV BX,3E8H LP2:MOV CX,176H ;延时1ms LP1:PUSHF POPF LOOP LP1 DEC BX JNZ LP2 POP BX INC BL JMP LP CODE ENDS END START 执行程序EXAM5-1·EXE,屏幕上依次循环显示一个数字一个空格: 0 1 2 3 4 5 6 7 8 9 …… EXAM5-2 STACK SEGMENT STACK DB 1024 DUP(0) STACK ENDS DA TA SEGMENT BUFF DB 6,7 DUP(?),‘$’ DA TA ENDS INPUT MACRO BUFE MOV DX,OFFSET BUFE MOV AH,0AH INT 21H ENDM

2016级《工业控制组网与组态技术》

《工业控制组网与组态技术》教学大纲 课程代码:01ANN803 适用专业:自动化专业 教学时数:56 学时其中实践56 学时 一、课程简介及基本要求 本课程主要是现场总线/工业以太网的网络通讯基本原理,面向底层PLC控制,构建控制网络,人机交互界面HMI(Human Machine Interface)实现远程监视及优化控制,并以工程实践为例,从整体上掌握现代大中型自动化系统的实施过程。 二、课程实验目的要求 通过课程的教学与实践使学生掌握大中型自动化系统的控制网络基本原理、设计方法、实施方法;掌握HMI的设计方法;结合S7-300 PLC工程实例,达到一定运用能力。 三、主要仪器设备 I/A S小型集散控制系统、过程控制实验装置 四、实验方式与基本要求 1、试验方式:综合设计 2、基本要求:掌握大中型自动化系统的控制网络基本原理、设计方法、实施方法 五、考核与报告(小四号黑体字) 1、考核方式:以平时考核(考勤、课堂组织纪律、课堂讨论发言)、平时实训完成度和期末考试(大作业)相结合的方式进行,综合评价学生的学习成绩 2、成绩评定:平时成绩(20%)+实训操作成绩(30%)+期末成绩(50%) 3、报告填写要求:不少于6次 六、实验项目设置与内容(小四号黑体字) 序号实验名称内容提要 实验 学时 每组 人数 实验 属性 开出 要求 备注 1 集散控制系统的组 态 1、掌握软件组态 2、学习集散控制方法 8 6 验证必做 2 基于DCS的温度控制 系统的设计与实施 1、系统设计、硬件连接 2、组态和实现控制 8 6 综合必做 3 基于DCS的液位控制 系统的设计与实施 1、掌握系统设计、硬件连接 2、验证组态和实现控制 8 6 综合选做 4 基于FCS的温度控制 系统的设计与实施 1、掌握系统设计、硬件连接 2、验证组态和实现控制 8 6 综合必做 5 基于FCS的液位控制 系统的设计与实施 1、掌握系统设计、硬件连接 2、验证组态和实现控制 8 6 综合必做 6 PROFIBUS-DP应用1、掌握网络系统故障及诊断 2、掌握STEP7使用方法 8 6 综合选做 7 HMI组态软件 1、掌握HMI的使用 2、完成基本PLC功能 8 6 综合选做 七、教材及实践指导书 1、使用教材:陈在平.《工业控制网络与现场总线技术》第三版.机械工业出版社.2006年. 2、参考教材: 杨卫华.《工业控制网络与现场总线技术》.机械工业出版社,2008. 何衍庆,俞金寿.《工业数据通信与控制网络》.化学工业出版社.2002年.

游戏C语言实验报告

嘉应学院计算机学院 实验报告 课程名称: C程序设计 开课学期: 2015—2016学年第1学期 班级:计算机1505 指导老师:陈广明 设计题目:游戏2048 学生姓名(学号):第3组:钟瞻宇

目录 一、实验目的和要求 .................................................................................................................................................... 二、实验环境、内容和方法 ........................................................................................................................................ 三、程序设计 ................................................................................................................................................................ 四、源代码 .................................................................................................................................................................... 五、调试与运行结果.................................................................................................................................................... 六、总结........................................................................................................................................................................

实验四 MATLAB程序设计

实验四 MATLAB 程序设计 1.实验目的 (1)熟练掌握MATLAB 的程序流程控制结构。 (2)掌握M 文件的结构,M 函数文件编写、使用。 (3)熟练掌握函数调用和参数传递。 2.实验仪器 (1)Matlab6.5应用软件安装版 一套 (3)PC 机 一台 3. 实验原理 依据MA TLAB 的编程的原理,编写M 函数文件,调用M 函数文件,完成曲线绘制。 4. 实验步骤 (1)利用for 、while 控制语句和sum 指令求和。 (2)使用MA TLAB 函数文件绘图。 (3)利用置换指令绘制脉冲响应曲线. (4)利用feval 指令实现指定的函数。 5. 实验报告内容(选做其中两题) (1)分别用for 和while 循环语句计算∑==630i i 2 K 的程序,再写出一种避免循环的计算程序。 (提示:可考虑利用MA TLAB 的sum (X,n )函数,实现沿数组X 的第n 维求和。)保存为M 文件. (2)将课本例4-8子函数编程及调用演示,三个子图上的圆和多边形绘制在同一坐标系中。并保存为M 文件。保存输出结果图。 (3)利用置换指令subs(X,new),例4-18中的脉冲响应在t=[0,18]的曲线。并保存为M 文件。保存输出结果图。 (4)试利用feval ()指令计算F(x)+F 2(x),其中F 可取‘sin ’、‘cos ’。(提示:先编写以个M 函数function y=trif(F,x)实现F(x)+F 2(x)的计算,在编写调用函数完成F 为‘sin ’、‘cos ’的计算),并保存为M 文件。(指定完成sin(pi/2)+sin(pi/2)^2; cos(pi/3)+cos(pi/3)^2)

实验四 输入输出流程序设计

C++面向对象程序设计课程实验报告 课程名称C++面向对象程序设计班级实验日期2014.5.16-2012 .5.23 姓名学号实验成绩实验名称实验四输入输出流程序设计 实验目的及要求1.理解输入输出流的基本概念,明确流是一个类 2.了解输入输出流类库基本结构和主要类,掌握主要层次,其中重 点理解fstream,iostream和iomanip 3.理解流缓冲区类的派生关系以及设备缓冲、文件缓冲和流缓冲 4.熟悉格式化的输入和输出,记住主要的常用的操作符,以及各种 应用(对齐) 掌握文件的输入和输出,区别C语言中的文件写入、打开等操作,会对一个文件进行I/O操作 实验环境硬件平台:普通的PC机 软件平台:Windows 操作系统编程环境:VisualC++ 6.0 实验内容1.文件数据的读取。编制一程序来显示并保存[2,1000]内的所有素数。显示、保存素数的格式为:每行10个素数,每一个素数占7个字符,右对齐,最后一行不足10个素数时按一行输出 2.编写一个单向链表的类模板,分别实现增加、删除、查找和打印操作 算法描述及实验步骤1、这个题主要考察了文件中数据的读取,还包括数据格式化输入输出。首先定义一个ofstream类的对象output,在main函数中打开文件后,再分别编写判断素数、每行输出10个数以及使辖域为7的代码,最后关闭文件。 2 这个题是C++与数据结构的结合,实现单向链表内各种功能。首先定义一个类ListNode,然后利用前插入法初始化链表,编写类模板的成员函数,再分别进行增加、删除和查找的操作

调试过程及实验结果 总结1.一旦文件被打开,文件中的文本数据信息的读/写操作与控制台文件信息的输入/输出操作就完全一致 2.定义ifstream、ofstream、fstream流类对象时,应用对象名替代控制台文本信息输入/输出使用的输入流类对象(如cin)和输出流类对象(如cout)

工业控制网络技术课程实验指导书2013

实 验 一 Automation Studio 的使用和基本程序编程及调试 一、实验目的 1、掌握Automation Studio 的基本使用技巧和方法 2、熟悉Automation Studio 的基本命令 3、学会和掌握Automation Studio 程序的调试方法 二、实验设备 PC机一台,装有Automation Studio编程软件;贝加莱PLC-2003一台; 各PC机与PLC-2003通过RS232电缆连接进行通信。 详见附录一。 三、实验内容 熟悉并练习Automation Studio的使用,用选定的编程语言编制、调试控制程序。Automation Studio是贝加莱公司为其自动化控制设备PLC(可编程计算机控制器)开发的一种可使用多种编程语言的PLC开发环境,如附录二所示。 1.PLC硬件配置: 根据所给实验装置,使用Automation Studio对系统硬件进行配置。 配置方法见本指导书附录B。 2.实验程序1: 使用Automation Basic或其它PLC编程语言,编制一段小控制程序,实现以下功能:利用实验装置上的第一个模拟量旋钮(电位器),来控制模拟量输

出,当旋转该电位器时,第一个模拟量输出随之变化,旋钮逆时针旋到底时(模拟量输入为最小值0),要求模拟量输出为0(光柱无显示),当旋钮顺时针旋到底时(模拟量输入为最大值32767),要求模拟量输出为最大值(光柱全显示); 同时,第二个模拟量输出的状态正好与第一个模拟量输出相反。 3.实验程序2: 使用Automation Basic或其它PLC编程语言,编制一段小控制程序,实现以下功能:利用实验装置上的两个开关,来控制模拟量输出,当接通(合上)其中一个开关(另一个应处于断开状态)时,第一个模拟量输出从0开始随时间逐渐增大,达到其最大值后,再从0开始…,周而复始;当接通(合上)另一个开关时,第二个模拟量输出从0开始随时间逐渐增大,达到其最大值后,再从0开始…,同时,第二个模拟量输出从其最大值开始随时间逐渐减小,达到0后,再从其最大值开始…,周而复始。 四. 思考题 1.在Automation Studio中为什么要对PLC系统硬件进行配置? 2.为什么要为用户编制的控制程序命名? 3.为用户程序选择循环周期的原则是什么? 4.Automation Studio为用户提供多种编程语言有什么好处?

Java程序设计实验报告2(弹球游戏)[1]1

《Java语言程序设计》课程设计 实习报告 题目: 班级: 学号: 姓名: 同组人员: 指导老师:张彬

一、实验目的 1、掌握Swing图形用户界面编程以及事件处理等,掌握java绘图技术。 2、掌握多线程编程的基本原理,能使用Runnable、ExecutorService等接口进行 线程的创建、启动等工作。 3、培养独立查找资料,并解决问题的能力。 二、实验任务 1、设计并编程实现弹球游戏: 用户能通过GUI组件指定生成小球的数量,每个小球将从随机的位置出现,并具有随机颜色,随机速度以及随机的运动方向,小球沿初始方向匀速运动,当碰到窗口边缘时,小球将依据受力原理改变运动方向(可简化考虑,受力只改变小球的运动方向,小球仍按照初始速度匀速运动,且不考虑小球之间的碰撞)。 鼠标在界面中显示为方块状,玩家需按住鼠标来回移动以避开运动的小球及屏幕四周,如果鼠标碰到任一小球或者窗口四周,则游戏结束。 程序需提供计时功能,并最终显示玩家能坚持多少秒。 2、程序要求: (1)具备相应界面,并通过事件编程,实现相应的GUI组件功能。 (2)使用多线程技术,在程序窗口区域绘制小球,并以线程控制小球的移动,实现动画效果。 (3)实现鼠标与屏幕四周,以及与小球的碰撞检测。 三、开发工具与平台 1.开发工具:Eclipse默认是一个和Jbuilder类似的Java开发工具,但它不仅仅只

是Java开发工具,只要装上相应的插件,eclipse也可作为其它语言的开发工具。如C/C++插件(CDT)。 2.开发平台:JDK1.5 四、设计思路 1.界面设计 (1)制作一个简单的面板JFrame,文件保存为bollFrame.java 其中为一public的类bollFrame,其构造方法为: bollFrame(int n){ super(); setTitle("我的弹球小游戏"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();//得到电脑屏幕大小 setSize(450,450); setLocation((dimension.width-game.getWidth())/2-250, (dimension.height-game.getHeight())/2-250);//设置面板显示基中; this.n = n; myBollPanel = new bollPanel(n);//构造一个画板; add(myBollPanel);//将画板放入JFrame createMenu();//创建菜单; setJMenuBar(bar); } (2)构造画板类,文件保存为bollPanel.java 其构造函数如下: bollPanel(int n){ this.n = n; // executorThread = Executors.newCachedThreadPool();//创建线程池; mouse = new mouseThread(mxNow,myNow,groupThread,this);//启动鼠标线程; this.setIsOver(false);//游戏开始线程条件的判断; for(int i =0 ;i

微机原理实验五输入与输出程序设计

实验六输入与输出程序设计 一、实验目的 1.掌握常用DOS中断调用的功能以及在应用程序中的使用方法。 2.学习键盘输入和屏幕输出的基本方法。 3.宏指令、子程序在应用程序中的使用。 4.汇编语言程序设计的调试与完善。 二、设计指标与实验要求 1.设计内容 本实验要求设计完成:①屏幕输出提示(如“Want input(Y/N)?”),若键入N 则结束程序返回操作系统;键入Y则转2步;键入的是其它字母则回①步。②换行后输出提示(如“please input a strings:”),且在该提示后键入一字符串(输入到输入缓冲区)。 ③换行后输出提示(如“your inputting is:”),在该提示后输出由②步输入的字符串。 ④换行后输出提示“Want continue(Y/N)? ”,若键入Y则转②步;键入N则结束程序返回操作系统;其它字母则回第④步。 2.设计要求 ①按屏幕提示要求输入,从屏幕上获得正确结果。 ②把程序中常用的中断调用定义成宏指令(至少定义2个)。 ③字符串回显部分设计成子程序,可以选择用21H中断的2号或9号功能来实现,应 能显示由主程序指定的任一字符串。要注意这两种方法实现的设计过程是不同的。 采用2号功能的,子程序输入参数为“回显字符串地址”和“回显字符数”;采用 9号功能的,子程序输入参数为“回显字符串地址”。 ④屏幕的提示信息显示格式尽量做到兼顾美观。 3.实验步骤 ①.选用合适的程序文本编辑软件编辑源程序,并为文件取以.ASM为扩展名的文件存盘。 ②.用宏汇编软件MASM对源程序文件进行汇编,若有错误,根据提示(行号,错误类型)回源程序文件中修改。 ③.用LINK对由MASM汇编后产生的目标文件做连接,生成可执行文件;若有错误(同

单片机实验4 子程序设计-- BCD码转换为二进制

实验4. 子程序设计----BCD 码转换为二进制 单字节可存放两位压缩BCD 码(0—99) 为0 —9) 单字节BCD 码转换为二进制子程序 入口:(R0)= 压缩BCD 码的地址 出口:(A)= 转换结果 DSFR::MOV A,@R0 ANL A,#0F0H ;取十位数 SWAP A ;变为标准BCD 码 MOV B,#10 MUL AB ;(A)=D1×10 MOV R7,A ;D1× 10暂存 R7 MOV A,@R0 ANL A,#0FH ;取个位 ADD A,R7 ;A=D1×10+D0 RET 1、实验内容: 子程序设计要点: 1) 子程序一般为多次返复使用的程序段,一般应说明入口条件,DSFR 子程序的 入口条件是:被转换为二进制的单字节BCD 码为间接寻址,间接寻址寄存器为R0。要调用DFSR 子程序必需先将压缩BCD 码的存放地址赋与R0。而出口条件是指最后结果在哪儿存放。本子程序转换结果在ACC 内。 2) 主程序调用子程序,在调试时一般要先调试子程序、再调试主程序。

2、实验步骤 1)打开PV32编程序。汇编正确进入调试界面。否则修改程序重新汇编直到通过。 2)打开DATD窗口给20H、21H、R6、R7赋值 3)单步调试DSFR子程序观察并记禄寄存器、内存的变化。判断程序是否正确。若发现 问题重返编辑界面,修改、存盘、汇编。返回调试界面调试通过。 4) 设断点调试主程序观察并记禄寄存器、内存的变化。判断程序是否正确。若发现问 题重返编辑界面,修改、存盘、汇编。返回调试界面调试通过。 3.实验报告 1.写出主程序流程图、子程序流程图、程序清单 2.根据记渌数据给程序加注解 3.调试心得

C语言程序设计实验报告

《C程序设计》实验教学大纲 一、适用范围 大纲适用信息管理专业本科教学使用。 二、课程名称 C程序设计 三、学时数与学分 总学时:90 总学分: 4 实验学时:28 实验学分:1 四、教学目的和基本要求 目的:通过C程序设计实验,培养学生对学习程序设计的兴趣,加深对讲授内容的理解,尤其是通过上机来掌握语法规则,使学生全面了解 C 语言的特点,熟练掌握C 语言程序设计的基本方法和编程技巧。 基本要求:了解和熟悉C语言程序开发的环境;学会上机调试程序,善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行,达到实验知识和理论知识的融会贯通。上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止,上机结束后,应整理出实验报告。 注:带*的实验项目为选做实验项目 六、教材、讲义及参考书 《C程序设计题解与上机指导》谭浩强主编清华大学出版社 七、实验成绩评定办法 实验成绩=平时实验表现+实验报告。实验成绩占总成绩的20%。 实验成绩以等级形式给出,评定等级分优、良、中、及格、不及格五类。 1、平时考核:上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止。在实验中,教师可根据学生编程操作能力、观察和分析及运用知识能力、程序编制正确性以及学生的课堂纪律、实验态度、保持实验室卫生等方面的表现进行综合考核。

2、实验报告:学生实验后应按时完成实验报告。 八、实验教学大纲说明 本大纲共安排28学时的实验,其中带*号实验项目为选做实验项目,实际课时为18学时。实验项目多为设计性实验项目,每个设计性实验项目中都包含数个小的设计性题目,其中带*号的题目为选做题目,有时间和有能力的同学可以选做。 九、实验项目 实验一 C程序的运行环境和运行一个C程序的方法 一、实验目的 1.了解Visual C++编译系统的基本操作方法,学会独立使用该系统。 2.了解在该系统上如何编辑、编译、连接和运行一个C程序。 3.通过运行简单的C程序,初步了解C源程序的特点。 二、实验内容 1.用编辑程序,输入教材第一章例程序,并进行编译和运行。应了解所用的系统是用什么命令进行编译和连接运行的。编译和连接后所得到的目标程序的后缀是什么形式的 2.编写一个C程序,输出以下信息: **************************** very good! **************************** 3.输入并运行教材第一章中例,了解如何在运行时向程序变量输入数据。 实验二数据类型、运算符和表达式 一、实验目的 1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。 2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。 二、实验内容 1.输入并运行以下程序: main( ) { char c1,c2; c1=97;c2=98; printf(“%c %c\n”,c1,c2); printf(“%d %d\n”,c1,c2); } 在此基础上 ①将第三行、第四行改为: c1=321;c2=353; 再使之运行,分析其运行结果。 ②将第二行改为: int c1,c2; 再使之运行,分析其运行结果。。 2.输入并运行以下程序: main( ) {int i=8,j=10,m,n; m=++i;n=j++;

级工业控制组网与组态技术

级工业控制组网与组态技 术 The latest revision on November 22, 2020

《工业控制组网与组态技术》教学大纲 课程代码:01ANN803适用专业:自动化专业 56学时其中实践56学时 教学时 数: 一、课程简介及基本要求 本课程主要是现场总线/工业以太网的网络通讯基本原理,面向底层PLC控制,构建控制网络,人机交互界面HMI(HumanMachineInterface)实现远程监视及优化控制,并以工程实践为例,从整体上掌握现代大中型自动化系统的实施过程。 二、课程实验目的要求 通过课程的教学与实践使学生掌握大中型自动化系统的控制网络基本原理、设计方法、实施方法;掌握HMI的设计方法;结合S7-300PLC工程实例,达到一定运用能力。 三、主要仪器设备 I/AS小型集散控制系统、过程控制实验装置 四、实验方式与基本要求 1、试验方式:综合设计 2、基本要求:掌握大中型自动化系统的控制网络基本原理、设计方法、实施方法 五、考核与报告(小四号黑体字) 1、考核方式:以平时考核(考勤、课堂组织纪律、课堂讨论发言)、平时实训完成度和期末考试(大作业)相结合的方式进行,综合评价学生的学习成绩 2、成绩评定:平时成绩(20%)+实训操作成绩(30%)+期末成绩(50%) 3、报告填写要求:不少于6次 七、教材及实践指导书

1、使用教材:陈在平.《工业控制网络与现场总线技术》第三版.机械工业出版社.2006年. 2、参考教材: 杨卫华.《工业控制网络与现场总线技术》.机械工业出版社,2008. 何衍庆,俞金寿.《工业数据通信与控制网络》.化学工业出版社.2002年.

《程序设计课程设计》实验报告材料

《程序设计》课程设计 姓名: 学号: 班级:软件工程14 班 指导教师: 成绩:

1.消除类游戏 1.1【问题描述】 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。当有多处可以被消除时,这些地方的棋子将同时被消除。 1.2【基本要求】 现在给你一个n行m列的棋盘(1≤n,m≤30),棋盘中的每一个方格上有一个棋子,请给出经过一次消除后的棋盘。 请注意:一个棋子可能在某一行和某一列同时被消除。 输入数据格式: 输入的第一行包含两个整数n, m,用空格分隔,分别表示棋盘的行数和列数。接下来n行,每行m个整数,用空格分隔,分别表示每一个方格中的棋子的颜色。颜色使用1至9编号。 输出数据格式: 输出n行,每行m个整数,相邻的整数之间使用一个空格分隔,表示经过一次消除后的棋盘。如果一个方格中的棋子被消除,则对应的方格输出0,否则输出棋子的颜色编号。 1.3【测试数据】 为方便调试程序,可将输入数据先写入一个文本文件,然后从文件读取数据处理,这样可避免每次运行程序时都要从键盘输入数据。 测试数据一 输出说明: 棋盘中第4列的1和第4行的2可以被消除,其他的方格中的棋子均保留。 棋盘中所有的1以及最后一行的3可以被同时消除,其他的方格中的棋子均保留。 1.4【功能实现】 #include #include using namespace std;

int main() { int m, n, i ,j; int temp; cin >> n >> m; temp = m; m = n; n = temp; int * map = new int[m * n]; int * mark = new int[m * n]; int * tmap = map; int * tmark = mark; int dif = 0; //输入 for ( i = 0 ; i < m ; i++ ) for (j = 0; j < n; j++) cin >> *(tmap + i * n + j); for (i = 0; i < m; i++) for (j = 0; j < n; j++) { //横行 if ((tmap + 2 - map) % n != 0 || (tmap + 1 - map) % n != 0) if (*(tmap) == *(tmap + 1) && * (tmap + 1) == *(tmap + 2)) { dif = tmap - map; *(tmark + dif) = 0; *(tmark + dif + 1) = 0; *(tmark + dif + 2) = 0; } //竖列 if (tmap + 2 * n - map < m * n || tmap + n - map < m * n) if (*(tmap) == *(tmap + n) && * (tmap + n) == *(tmap + 2 * n)) { dif = tmap - map; *(tmark + dif) = 0; *(tmark + dif + n) = 0; *(tmark + dif + 2 * n) = 0; } tmap = map + (j+1) + i * n; } //输出 cout << endl; tmap = map; for (i = 0; i < m; i++)

微机实验 子程序设计

微机实验三分支和循环程序设计实验 一、分支程序设计实验 1.实验目的 1.掌握分支程序的结构。 2掌握分支程序的设计、调试方法。 2.实验设备 微机一台 3.内容 设计一数据块间的搬移程序 设计思想: 程序要求把内存中一数据区(称为源数据块)传送到另一存贮区(称为目的数据块)。源数据块和目的数据块在存贮中可能有三种情况。 对于两个数据块分离的情况,数据的传送从数据块的首址开始,或者从数据块的末址开始均可,但对于有部分重叠的情况,则要加以分析,否则重叠部分会因“搬移”而遭破坏。 可以得出以下结论:当源数据块首址〉目的块首址时,从数据块首址开始传送数据。当源数据块首址〈目的块首址时,从数据块末地址开始传送数据。 流程图: 结果: 在源数据块中存入6个数,分别使SI大于、等于、小于DI均发觉数据正确传送。可见程序正确。

实现代码如下: DATA SEGMENT ORG 3500H SRC_MESS DB 1,2,3,4,5,6 ORG 3510H NEW_LOC DB 20 DUP(0) DATA ENDS ; CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX LEA SI,SRC_MESS LEA DI,NEW_LOC MOV CX,6 CLD ;DF置0 CMP SI,DI ;源数据块首址〈目的块首址时,从数据块末地址开始传送数据。 JL NEXT1 ;如果SI小于DI,则跳转到NEXT1(否则直接执行NEXT2) NEXT2: REP MOVSB NEXT1: ADD SI,CX ; SI=SI+CX-1 从末地址开始传递数据 DEC SI ; ADD DI,CX ;DI+=DI+CX-1 DEC DI ; STD ; DF置1 JMP NEXT2 ; CODE ENDS END START 结果显示:将3500H开始的1,2,3,4,5,6复制到3510H开始的地址。 DATA SEGMENT

c语言程序设计基本输入输出和简单程序设计

实验3 基本输入输出和简单程序设计 实验目的 1.掌握常用的C语言语句,熟练应用赋值、输入、输出语句。 2.理解C语言程序的顺序结构,掌握顺序结构设计的基本方法。 3.进一步熟悉C程序的编辑、编译、连接和运行以及调试跟踪的过程。 实验内容 1.准备实验环境: (1)启动Visual Studio 201X 或者Codeblocker等C程序开发的IDE (2)如果保留了实验1的工程项目,则可以直接双击工程项目文件夹中的.sln 文件打开它即可。否则,按实验1的做法,创建一个Win32控制台应用程序(即ConsoleApplication)工程,以自己的姓名全拼音为工程名称。可能有些同学已经忘记了,我们再指导一遍: 首先新建项目:

2.理解分析程序,熟悉基本的C程序输入输出。 1)给工程新建一个源程序文件,取名为"你的姓名全拼_3_1.c",并将以下程序编写进该源程序保存: #include int main() { int a=25; double d = 4321.123456789012345; char c = 'T'; printf("你的姓名_3_1:理解输出!\n");/* 改姓名哦*/ printf("a = :%d;%5d;%-5d;%+05d!\n",a,a,a,-a); printf("a = :%5x;%o!\n",a,a); printf("d = :%f;%15f;%8.3f;%20.15f;%.2f!\n",d,d,d,d,d); printf("c = :%c;%5c;%-5c!\n",c,c,c); } 运行该程序,将运行的结果截图放在下面: 程序运行的结果图:

相关文档
最新文档