华北电力大学微机课程设计
华北电力大学_接口实验报告

华北电力大学科技学院实验报告||实验名称实验一开发器的使用与设计实验实验二中断8259应用、定时/计数器8253应用实验三并行接口8255应用实验四存储器拓展实验实验五A/D转换结果送数码管显示课程名称微机原理实验与课程设计||专业班级学生姓名:学号:成绩:指导教师:张少敏实验日期:2013/5实验一、数据转换实验一、实验目的1、初步掌握在PC机上建立、汇编、链接和运行8086/88汇编语言程序的过程。
2、通过对两个验证性实验的阅读、调试,掌握不同进制数及编码相互转换的程序设计方法。
3、完成程序设计题,加深对数码转换的理解,了解简单程序设计方法。
二、实验条件一台计算机三、实验内容与步骤1)设二字节十六进制数存放于起始地址为3500H的内存单元中,把他们转换成ASCII码后,再分别存入起始地址为350AH的四个内存单元。
从书上ASCII码表中可知十六进制数加30H即可得到0H~9H的ASCII码,而要得到AH~FH的ASCII码,则需再加7H。
2)参考程序如下:CODE SEGMENTASSUME CS:CODESTART:MOV CX,0004hMOV DI,3500HMOV AX,0000HMOV DS,AXMOV DX,[DI]A1:MOV AX,DXAND AX,000FHCMP AL,0AHJB A2ADD AL,07HA2:ADD AL,30HMOV[DI+0AH],ALINC DIPUSH CXMOV CL,04HSHR DX,CLPOP CXLOOP A1MOV AH,4CHINT21HCODE ENDSEND START四、实验结论与分析错误分析:在保存文件时,第一步忘了加后缀.ASM,导致打开不了文件。
实验结果:在调试运行后350AH的内存单元中会显示3500H中所转换的对应的ASCII码。
五、实验心得在这次课程设计的过程中的收获是很大的。
这次课程设计我主要是应用老师教的相关知识及自己的一些想法,完成了数据转换问题。
华电保定微机原理实验

华电保定微机原理实验华电保定微机原理实验是一门常见于电子信息类专业的实践性课程,本次我们进行的微机原理实验是在MCS-51单片机系统上完成的。
该实验旨在通过实际操作,让学生更加深入地理解计算机系统的工作原理。
下面将详细介绍该实验的过程和结果。
实验仪器:MCS-51单片机开发板、继电器模拟器、拨码开关、LED灯、数码管等。
实验内容:利用MCS-51单片机系统实现简单的IO控制、数码管显示和时钟延时等功能。
实验步骤:1.硬件连接:根据实验要求,将MCS-51单片机开发板与实验仪器连接,并确认连接正确、稳定。
2. 编写程序:根据实验要求,利用Keil C51或其他编程工具编写程序,完成IO控制、数码管显示和时钟延时等功能的代码编写。
3.烧录程序:将编写好的程序烧录到MCS-51单片机开发板中。
4.实验操作:根据实验要求,进行实验操作和测试,观察实验现象并记录。
5.实验结果分析:根据实验结果和实验要求进行结果分析,验证和评估实验的准确性和有效性。
实验要求和实验现象:1.IO控制实验:利用拨码开关进行输入,根据输入的状态控制LED 灯的亮灭。
实验要求:当拨码开关向左拨动时,LED灯亮起;当拨码开关向右拨动时,LED灯熄灭。
实验现象:根据拨码开关的状态,控制LED灯的亮灭。
2.数码管显示实验:将数值输出到数码管进行显示。
实验要求:利用数码管显示0-9的数字,以0.5秒的间隔依次循环显示。
实验现象:数码管上依次显示0、1、2...9,然后再从0开始循环显示。
3.时钟延时实验:利用定时器进行延时操作。
实验要求:利用定时器延时1秒,然后将LED灯进行翻转。
实验现象:LED灯每隔1秒钟反转亮灭一次,周而复始。
实验结果:通过上述三个实验,我们可以深入理解计算机系统的工作原理。
通过编写程序,控制IO口和外设,观察不同状态下的现象和变化。
实验结果表明,我们所编写的程序可以正确地实现IO控制、数码管显示和时钟延时等功能。
实验结果分析:实验结果表明,我们所编写的程序可以准确地控制外部设备,实现预期的功能。
华北电力大学微机原理课程设计报告

课程设计报告( 2013—2014 年度第一学期)课程:微机原理及应用题目:电子琴及电子播放器院系:自动化系班级:自动化1103学号: 201111010122201109010113201102020331学生姓名:詹文超靳朝阳张晓指导教师:张妍设计周数:一周成绩:日期:2014年1 月10 日微机原理及应用课程设计报告一、目的与要求1.通过对微机系统分析和具体设计,使学生加深对所学课程的理解。
2.掌握汇编语言程序设计的基本方法和典型接口电路的基本设计方法。
3.培养学生分析问题、解决问题的能力。
4.培养学生对微型计算机应用系统的基本设计能力。
5.提高学生的实践动手能力和创新能力。
二、主要内容1. 电子琴及电子播放器2. 系统介绍本设计不仅可以实现小键盘电子琴演奏,还可以通过拨码开关播放不同的电子音乐,主要有小星星,两只老虎和欢乐颂。
硬件设计用到8253和8255芯片,8253工作在方式3,产生一定的频率方波,同时对应着不同音调;8255为可编程接口芯片,用于整个系统的开关控制功能。
3. 系统实现的功能系统主要实现三个功能:1、自动演奏3首歌曲;2、利用小键盘手动演奏;3、歌曲之间的相互切换。
4.所用芯片的工作原理(1)8253原理8253有3个独立的计数通道,每个通道结构相同,例若clk0给定频率,向控制字寄存器写入控制字,并向计数器0写入计数初值,采用不同的方式即可产生不同的频率。
8253的内部结构(1).数据总线缓冲器实现8253与CPU数据总线连接的8位双向三态缓冲器,用以传送CPU向8253的控制信息、数据信息以及CPU从8253读取的状态信息,包括某时刻的实时计数值。
(2).读/写控制逻辑控制8253的片选及对内部相关寄存器的读/写操作,它接收CPU发来的地址信号以实现片选、内部通道选择以及对读/写操作进行控制。
(3).控制字寄存器在8253的初始化编程时,由CPU写入控制字,以决定通道的工作方式,此寄存器只能写入,不能读出。
离线潮流计算课程设计(华北电力大学,李燕华老师)

离线潮流计算课程设计(华北电力大学、刘燕华老师)班级学号姓名一、课程设计的目的离线潮流计算课程设计是“电力系统稳态分析”课程教学的重要实践环节,目的是使学生加深理解所学知识,锻炼应用理论解决实际问题的能力。
二、课程设计内容1、手算算例1(精度取10 -2),求潮流计算结果。
2、编写潮流计算程序,计算算例2 。
三、课程设计要求1、计算机语言:编程语言可任选,建议使用C语言,使用VC6.0平台。
2、潮流计算方法:牛顿—拉夫逊法和P-Q分解法。
3、编写潮流计算程序,并在计算机上调试通过,运行结果正确。
4、要求潮流计算程序具有一定的通用性,基础数据以数据文件的形式输入。
5、撰写课程设计报告,内容包括:1)潮流计算的意义2)潮流计算几种主要方法的比较3)手算算例1的计算过程及结果4)程序框图、源程序及符号说明5)算例及计算结果四、验收方式以答辩的形式进行验收,演示程序并回答有关问题。
五、算例1、节点①为平衡节点,U1=1∠0°,节点②为PV节点,P2=0.4,U2=1.1,节点③为PQ节点,S3 = 0.8+ j 0.6,网络结构和参数如图1所示。
2、GN1节点为平衡节点,V9=1.04,δ9=0.0,GEN2和GEN3为PV节点,V7=1.025,P7=1.63,V8=1.025,P8=0.85,其它节点为PQ节点,S1=1.25+j0.5,S3=0.9+j0.3,S5=1.0+j0.35,ε=0.0001,网络结构如图2所示。
①②③P 2=0.4U 2=1.1U 1=1∠0°S 3 = 0.8+j 0.6y 12=1.17 - j 4.71y 13=5.88 - j 23.5图1 算例1图2 算例2Txt 文档 原始数据GEN1⑨j 0.058 ②S 3③①S 1⑦ ⑥⑤ ④⑧GEN3GEN2 0.01+j0.085B/2=0.0880.017+j0.092 B/2=0.079 0.039+j0.17 B/2=0.1790.032+j0.161 B/2=0.153 j0.0630.019+j0.072 B/2=0.075S 50.012+j0.101B/2=0.105j0.059Line1 1 1 12 0.01 0.085000001 0.0882 1 1 1 6 0.032000002 0.160999998 0.1529999973 1 1 2 3 0.017000001 0.092 0.0790000044 2 1 2 9 0 0.057999998 15 1 1 3 4 0.039000001 0.170000002 0.1790000056 1 1 4 5 0.012 0.101000004 0.1049999977 2 1 4 8 0 0.059 18 1 1 5 6 0.018999999 0.071999997 0.0750000039 2 1 6 7 0 0.063000001 1Node1 1 -1.25 -0.52 1 0.000000 0.0000003 1 -0.9 -0.34 1 0.000000 0.0000005 1 -1.000000 -0.356 1 0.000000 0.0000007 2 1.63 1.0258 2 0.85 1.0259 0 1.04 0.000000上机程序:编程#include<stdafx.h>#include<string.h>#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<float.h>#include<math.h>using namespace System;#define LINE_TOTAL_NUM 9#define NODE_TOTAL_NUM 9#define NODE_DATA_FILENAME "node.txt"#define LINE_DATA_FILENAME "line.txt"#define B "B.txt"#define G "G.txt"#define deltaPQ "deltapq.txt"#define JACCOBI "jaccobi.txt"#define PQ "pq.txt"#define line_S "linedeltaS.txt"#define U "u.txt"#define line_pq "lineS.txt"struct NodeData{unsigned int Index; //node indexunsigned int Type; //node type: PQ:1,PV:2,balance point:0float FirstInput; //PQ or PV:active power,balance point:Vfloat SecondInput; //PQ:reactive power,PV:V,balance point:angle};struct NodeData gNodeData[NODE_TOTAL_NUM]; // define a global variable of node 确定节点读入结构体struct LineData{unsigned int Index; //line indexunsigned int Type; //line type: Line:1,tranformer:2,line connected to ground:3unsigned int Status; //line status: on:1,off:0unsigned int SrcNode; //source node index of this lineunsigned int DestNode;//destination node index of this linefloat Resistance; //resistance of the linefloat Reactance; //reactance of the linefloat Conductance; //Line: conductance B/2,transformer:change ratio};struct LineData gLineData[LINE_TOTAL_NUM]; //确定支路节点导纳结钩体struct NodeV oltage{float V oltage;float Angle;};struct NodeV oltage gNodeV oltage[NODE_TOTAL_NUM];struct DeltaPQ{ //定义不平衡功率的结构体float DeltaP; //有功float DeltaQ; //无功};struct DeltaPQ gDeltaPQ[NODE_TOTAL_NUM]; //定义不平衡功率数组gUnbPowervoid SolveEquation(unsigned int Dimension,float** FactorMatrix,float* ConstV ector);//void SolveEquation(unsigned int Dimension,float** FactorMatrix,float* ConstV ector);float gY_G[NODE_TOTAL_NUM][NODE_TOTAL_NUM];float gY_B[NODE_TOTAL_NUM][NODE_TOTAL_NUM];int main(array<System::String ^> ^args){Console::WriteLine(L"Hello World");float node_P[9],node_Q[9],line_deltap[9],line_deltaq[9];unsigned int i,j,k,n,m; //cycle variable;FILE* fp; //file structureunsigned int PVNum=0; //the number of PV nodefp=fopen(NODE_DATA_FILENAME,"r"); //open and read the node datafor(i=0;i<NODE_TOTAL_NUM;i++){fscanf(fp," %d %d %f %f ",&gNodeData[i].Index,&gNodeData[i].Type,&gNodeData[i].FirstInput,&gNodeData[i].SecondInput);//initiate the NodeV oltage according to node type 读入节点数据PQ或PVswitch(gNodeData[i].Type){case 1: //PQ nodegNodeV oltage[i].V oltage = 1.0;gNodeV oltage[i].Angle = 0.0;break;case 2: //PV nodegNodeV oltage[i].V oltage = gNodeData[i].SecondInput;gNodeV oltage[i].Angle = 0.0;PVNum++;break;case 0: //balance nodegNodeV oltage[i].V oltage = gNodeData[i].FirstInput;gNodeV oltage[i].Angle = gNodeData[i].SecondInput;break;default:printf("there is no such a node type, data has mistake");return 0;}}fclose(fp);fp=fopen(LINE_DATA_FILENAME,"r"); //open and read the line data 读节点导纳数据for(i=0;i<LINE_TOTAL_NUM;i++){fscanf(fp," %u %u %u %u %u %f %f %f", &gLineData[i].Index,&gLineData[i].Type,&gLineData[i].Status,&gLineData[i].SrcNode,&gLineData[i].DestNode,&gLineData[i].Resistance,&gLineData[i].Reactance,&gLineData[i].Conductance);}fclose(fp);float line_g[9], line_b[9],line_g0[9], line_b0[9];for(i=0;i<NODE_TOTAL_NUM;i++){ line_g[i]=0;line_b[i]=0;line_g0[i]=0;line_b0[i]=0;for(j=0;j<NODE_TOTAL_NUM;j++){gY_G[i][j] = 0.0;gY_B[i][j] = 0.0;}}for(i=0;i<LINE_TOTAL_NUM;i++){float tAbs;float LineG,LineB;unsigned int tSrcNode,tDestNode;tSrcNode = gLineData[i].SrcNode - 1;//counting from zerotDestNode = gLineData[i].DestNode - 1;tAbs = pow(gLineData[i].Resistance,2)+pow(gLineData[i].Reactance,2);//由阻抗求导纳LineG = gLineData[i].Resistance/tAbs;LineB = (-1)*gLineData[i].Reactance/tAbs;if(gLineData[i].Type){if(gLineData[i].Type == 1)//it means Line 线路{gY_G[tSrcNode][tSrcNode]+= LineG;gY_B[tSrcNode][tSrcNode] += LineB + gLineData[i].Conductance;gY_G[tDestNode][tDestNode] += LineG;gY_B[tDestNode][tDestNode] += LineB + gLineData[i].Conductance;gY_G[tSrcNode][tDestNode] += (-1)*LineG;gY_B[tSrcNode][tDestNode] += (-1)*LineB;gY_G[tDestNode][tSrcNode] += (-1)*LineG;gY_B[tDestNode][tSrcNode] += (-1)*LineB;line_g[i]=LineG;line_b[i]=LineB;line_b0[i]=gLineData[i].Conductance;}else if(gLineData[i].Type == 2) //it means Transformer 变压器{float V olRatio = gLineData[i].Conductance;gY_G[tSrcNode][tSrcNode] += LineG/pow(V olRatio,2);gY_B[tSrcNode][tSrcNode] += LineB/pow(V olRatio,2);gY_G[tDestNode][tDestNode] += LineG;gY_B[tDestNode][tDestNode] += LineB;gY_G[tSrcNode][tDestNode] += (-1)*LineG/V olRatio;gY_B[tSrcNode][tDestNode] += (-1)*LineB/V olRatio;gY_G[tDestNode][tSrcNode] += (-1)*LineG/V olRatio;gY_B[tDestNode][tSrcNode] += (-1)*LineB/V olRatio;line_g[i]=LineG/V olRatio;line_b[i]=LineB/V olRatio;}else if(gLineData[i].Type == 3)//it means line connected to ground{unsigned int tNotZeroNode;if(gLineData[i].SrcNode != 0)tNotZeroNode = gLineData[i].SrcNode-1;elsetNotZeroNode = gLineData[i].DestNode-1;;gY_G[tNotZeroNode][tNotZeroNode] += LineG;gY_B[tNotZeroNode][tNotZeroNode] += LineB;}elsereturn 0;}}//form deltaPQ//form Jacobin Matrix//N-R methodfp=fopen(G,"w"); //write the ymatrix data to filefor(i=0;i<9;i++){for(j=0;j<9;j++)fprintf(fp," %f ",gY_G[i][j]);fprintf(fp,"\n");}fprintf(fp,"\n\n");fclose(fp);fp=fopen(B,"w"); //write the ymatrix data to filefor(i=0;i<9;i++){for(j=0;j<9;j++)fprintf(fp," %f ",gY_B[i][j]);fprintf(fp,"\n");}fprintf(fp,"\n\n");fclose(fp);for(m=0;m<5;m++){unsigned int tSrcNode,tDestNode;float p1,p2,q1,q2,line_p[9][9],line_q[9][9];for(i=0;i<9;i++)for(j=0;j<9;j++){line_p[i][j]=line_q[i][j]=0;}fp=fopen(line_S,"w");fprintf(fp,"------ 线上的网损功率----- ");fprintf(fp,"\n\n");for(i=0;i<LINE_TOTAL_NUM;i++){tSrcNode = gLineData[i].SrcNode - 1;//counting from zerotDestNode = gLineData[i].DestNode - 1;p1=line_g[i]*(gNodeV oltage[tSrcNode].V oltage*gNodeV oltage[tSrcNode].V oltage-gNodeV oltage[tSrcNode].V oltage* gNodeV oltage[tDestNode].V oltage*cos(gNodeV oltage[tSrcNode].Angle-gNodeV oltage[tDestNode].Angle))-gNodeV oltage[tSrcNode].V oltage*gNodeV oltage[tDestNode].V oltage*line_b[i]*sin(gNodeV oltage[tSrcNode].Angle-gNodeV oltage[tDestNode].Angle);q1=-(line_b[i]*(gNodeV oltage[tSrcNode].V oltage*gNodeV oltage[tSrcNode].V oltage-gNodeV oltage[tSrcNode].V oltage *gNodeV oltage[tDestNode].V oltage*cos(gNodeV oltage[tSrcNode].Angle-gNodeV oltage[tDestNode].Angle))+gNo deV oltage[tSrcNode].V oltage*gNodeV oltage[tDestNode].V oltage*line_g[i]*sin(gNodeV oltage[tSrcNode].Angle-gNodeV oltage[tDestNode].Angle)+gNodeV oltage[tSrcNode].V oltag e*gNodeV oltage[tSrcNode].V oltage* line_b0[i]);p2=line_g[i]*(gNodeV oltage[tDestNode].V oltage*gNodeV oltage[tDestNode].V oltage-gNodeV oltage[tSrcNode].V oltag e*gNodeV oltage[tDestNode].V oltage*cos(gNodeV oltage[tDestNode].Angle-gNodeV oltage[tSrcNode].Angle))-gN odeV oltage[tSrcNode].V oltage*gNodeV oltage[tDestNode].V oltage*line_b[i]*sin(gNodeV oltage[tDestNode].Angle-gNodeV oltage[tSrcNode].Angle);q2=-(line_b[i]*(gNodeV oltage[tDestNode].V oltage*gNodeV oltage[tDestNode].V oltage-gNodeV oltage[tSrcNode].V olta ge*gNodeV oltage[tDestNode].V oltage*cos(gNodeV oltage[tDestNode].Angle-gNodeV oltage[tSrcNode].Angle))+g NodeV oltage[tSrcNode].V oltage*gNodeV oltage[tDestNode].V oltage*line_g[i]*sin(gNodeV oltage[tDestNode].Angle-gNodeV oltage[tSrcNode].Angle)+gNodeV oltage[tDestNode].V olta ge*gNodeV oltage[tDestNode].V oltage* line_b0[i]);line_deltap[i]=p1+p2;line_deltaq[i]=q1+q2;line_p[tSrcNode][tDestNode]=p1;line_p[tDestNode][tSrcNode]=p2;line_q[tSrcNode][tDestNode]=q1;line_q[tDestNode][tSrcNode]=q2;fprintf(fp," 第%d 条%6.3f + j%6.3f ",i+1,line_deltap[i],line_deltaq[i]);fprintf(fp,"\n");}fprintf(fp,"\n\n");fclose(fp);fp=fopen(line_pq,"w");fprintf(fp,"------ 线路潮流----- ");fprintf(fp,"\n\n");fprintf(fp,"有功 1 2 3 4 5 6 7 8 9\n");for(i=0;i<9;i++){fprintf(fp," %d ", i+1 );for(j=0;j<9;j++){fprintf(fp," %6.3f ",line_p[i][j]);}fprintf(fp,"\n");}fprintf(fp,"\n\n");fprintf(fp," 无功 1 2 3 4 5 6 7 8 9\n");for(i=0;i<9;i++){fprintf(fp," %d ", i+1 );for(j=0;j<9;j++){fprintf(fp," %6.3f ",line_q[i][j]);}fprintf(fp,"\n");}fprintf(fp,"\n\n");fclose(fp);float tempP[NODE_TOTAL_NUM]={0.0},tempQ[NODE_TOTAL_NUM]={0.0};//设两个变量数组用于存储两个累加和for(i=0;i<9;i++){for(j=0;j<9;j++){tempP[i]+=gNodeV oltage[j].V oltage*(gY_G[i][j]*cos(gNodeV oltage[i].Angle-gNodeV oltage[j].Angle)+gY_B[i][j]*sin(gNodeV oltage[i].Angle-gNodeV oltage[j].Angle));tempQ[i]+=gNodeV oltage[j].V oltage*(gY_G[i][j]*sin(gNodeV oltage[i].Angle-gNodeV oltage[j].Angle)- gY_B[i][j]*cos(gNodeV oltage[i].Angle-gNodeV oltage[j].Angle));}}for(i=0;i<9;i++) //利用公式求解每个节点的不平衡功率{if(gNodeData[i].Type == 1) //如果是PQ节点则△P和△Q都要求{gDeltaPQ[i].DeltaP=gNodeData[i].FirstInput-gNodeV oltage[i].V oltage*tempP[i];gDeltaPQ[i].DeltaQ=gNodeData[i].SecondInput-gNodeV oltage[i].V oltage*tempQ[i];node_P[i]=gNodeData[i].FirstInput;node_Q[i]=gNodeData[i].SecondInput;}if(gNodeData[i].Type==2) //如果是PV节点只需求△P{gDeltaPQ[i].DeltaP=gNodeData[i].FirstInput-gNodeV oltage[i].V oltage*tempP[i];node_P[i]=gNodeData[i].FirstInput;node_Q[i]=gNodeV oltage[i].V oltage*tempQ[i];}if(gNodeData[i].Type==0){node_P[i]=gNodeV oltage[i].V oltage*tempP[i];node_Q[i]=gNodeV oltage[i].V oltage*tempQ[i];}}float B_Array[14];for(i=0;i<NODE_TOTAL_NUM;i++) //向数组中放入不平衡功率的值{if(gNodeData[i].Type==1) //PQ节点两个都要输入{B_Array[i]=gDeltaPQ[i].DeltaP;B_Array[i+NODE_TOTAL_NUM-1]=gDeltaPQ[i].DeltaQ;}if(gNodeData[i].Type==2) //PV节点只输入△PB_Array[i]=gDeltaPQ[i].DeltaP;if(gNodeData[i].Type==0) //平衡节点不输入数据{}}fp=fopen(deltaPQ,"w");for(i=0;i<14;i++){fprintf(fp," %f ",B_Array[i]);fprintf(fp,"\n");}fprintf(fp,"\n\n");fclose(fp);float gJaccobi[14][14];float H[8][8],N[8][6],J[6][8],L[6][6];float s;for(i=0;i<8;i++)for(j=0;j<8;j++){{ s=0;for(k=0;k<9;k++)s=s+gNodeV oltage[k].V oltage*(gY_G[i][k]*sin(gNodeV oltage[i].Angle-gNodeV oltage[k].Angle)-gY_B[i][k]*cos( gNodeV oltage[i].Angle-gNodeV oltage[k].Angle));}if(i==j){H[i][i]=gNodeV oltage[i].V oltage*(s-gNodeV oltage[i].V oltage*(gY_G[i][i]*sin(gNodeV oltage[i].Angle-gNodeV olt age[i].Angle)-gY_B[i][i]*cos(gNodeV oltage[i].Angle-gNodeV oltage[i].Angle)));}elseH[i][j]=-gNodeV oltage[i].V oltage*gNodeV oltage[j].V oltage*(gY_G[i][j]*sin(gNodeV oltage[i].Angle-gNodeV oltag e[j].Angle)-gY_B[i][j]*cos(gNodeV oltage[i].Angle-gNodeV oltage[j].Angle));}for(i=0;i<8;i++)for(j=0;j<6;j++){s=0;for(k=0;k<9;k++){s=s+gNodeV oltage[k].V oltage*(gY_G[i][k]*cos(gNodeV oltage[i].Angle-gNodeV oltage[k].Angle)+gY_B[i][k]*sin (gNodeV oltage[i].Angle-gNodeV oltage[k].Angle));}if(i==j){N[i][i]=-gNodeV oltage[i].V oltage*(s-gNodeV oltage[i].V oltage*(gY_G[i][i]*cos(gNodeV oltage[i].Angle-gNodeV ol tage[i].Angle)+gY_B[i][i]*sin(gNodeV oltage[i].Angle-gNodeV oltage[i].Angle)))-2*gNodeV oltage[i].V oltage*gNo deV oltage[i].V oltage*gY_G[i][i];elseN[i][j]=-gNodeV oltage[i].V oltage*gNodeV oltage[j].V oltage*(gY_G[i][j]*cos(gNodeV oltage[i].Angle-gNodeV oltag e[j].Angle)+gY_B[i][j]*sin(gNodeV oltage[i].Angle-gNodeV oltage[j].Angle));}for(i=0;i<6;i++)for(j=0;j<8;j++){s=0;for(k=0;k<9;k++){s=s+gNodeV oltage[k].V oltage*(gY_G[i][k]*cos(gNodeV oltage[i].Angle-gNodeV oltage[k].Angle)+gY_B[i][k]*sin (gNodeV oltage[i].Angle-gNodeV oltage[k].Angle));}if(i==j){J[i][i]=-gNodeV oltage[i].V oltage*(s-gNodeV oltage[i].V oltage*(gY_G[i][i]*cos(gNodeV oltage[i].Angle-gNodeV olt age[i].Angle)+gY_B[i][i]*sin(gNodeV oltage[i].Angle-gNodeV oltage[i].Angle)));}elseJ[i][j]=gNodeV oltage[i].V oltage*gNodeV oltage[j].V oltage*(gY_G[i][j]*cos(gNodeV oltage[i].Angle-gNodeV oltage [j].Angle)+gY_B[i][j]*sin(gNodeV oltage[i].Angle-gNodeV oltage[j].Angle));}for(i=0;i<6;i++)for(j=0;j<6;j++)s=0;for(k=0;k<9;k++){s=s+gNodeV oltage[k].V oltage*(gY_G[i][k]*sin(gNodeV oltage[i].Angle-gNodeV oltage[k].Angle)-gY_B[i][k]*cos( gNodeV oltage[i].Angle-gNodeV oltage[k].Angle));}if(i==j){L[i][i]=-gNodeV oltage[i].V oltage*(s-gNodeV oltage[i].V oltage*(gY_G[i][i]*sin(gNodeV oltage[i].Angle-gNodeV olt age[i].Angle)-gY_B[i][i]*cos(gNodeV oltage[i].Angle-gNodeV oltage[i].Angle)))+2*gNodeV oltage[i].V oltage*gNo deV oltage[i].V oltage*gY_B[i][i];}elseL[i][j]=-gNodeV oltage[i].V oltage*gNodeV oltage[j].V oltage*(gY_G[i][j]*sin(gNodeV oltage[i].Angle-gNodeV oltag e[j].Angle)-gY_B[i][j]*cos(gNodeV oltage[i].Angle-gNodeV oltage[j].Angle));}for(i=0;i<8;i++){for(j=0;j<8;j++)gJaccobi[i][j]=H[i][j];}for(i=0;i<8;i++){for(j=8;j<14;j++)gJaccobi[i][j]=N[i][j-8];}for(i=8;i<14;i++){for(j=0;j<8;j++)gJaccobi[i][j]=J[i-8][j];}for(i=8;i<14;i++){for(j=8;j<14;j++)gJaccobi[i][j]=L[i-8][j-8];}fp=fopen(JACCOBI,"w"); //write the Jmatrix data to filefprintf(fp," ----------%d 次迭代之后的雅各比---------- ", m+1);fprintf(fp,"\n");for(i=0;i<14;i++){for(j=0;j<14;j++)fprintf(fp," %f ", gJaccobi[i][j]);fprintf(fp,"\n");}fclose(fp);fp=fopen(U,"w");fprintf(fp,"----- %d次迭代之后的节点电压和相角-----",m+1);fprintf(fp,"\n\n");for(i=0;i<9;i++){fprintf(fp," %6.3f ,%6.3f ",gNodeV oltage[i].V oltage,gNodeV oltage[i].Angle*180/3.14 );fprintf(fp,"\n");}fclose(fp);float *Jgb[14]={0};for(i=0;i<14;i++)Jgb[i]=gJaccobi[i];SolveEquation(14,Jgb,B_Array);for(i=0;i<8;i++)gNodeV oltage[i].Angle=gNodeV oltage[i].Angle-B_Array[i];for(i=0;i<6;i++)gNodeV oltage[i].V oltage=gNodeV oltage[i].V oltage-gNodeV oltage[i].V oltage*B_Array[i+8];}fp=fopen(PQ,"w");fprintf(fp,"----- %d次迭代之后的节点注入功率-----",m);fprintf(fp,"\n\n");for(i=0;i<9;i++){fprintf(fp," %6.3f + j%6.3f ",node_P[i],node_Q[i] );fprintf(fp,"\n");}fclose(fp);return 0;}void SolveEquation(unsigned int Dimension,float** FactorMatrix, float* ConstV ector){unsigned int i,j,k;//消元过程for(i=0;i<Dimension;i++){//规格化过程:(每次消元前,先规格化,以便以下各行消元时,消元系数直接取待消//列元素的值即可,也便于回代过程,而运算量并不增加)for( j = i+1; j < Dimension; j++ ){FactorMatrix[i][j] = FactorMatrix[i][j] / FactorMatrix[i][i];}ConstV ector[i] = ConstV ector[i]/FactorMatrix[i][i];for( j = i+1; j < Dimension; j++ ) //消去第i列(从i+1行到最后一行){if( FactorMatrix[j][i] != 0 ) //如果第j行第i列元素本就是,则不需本列对应的消元过程{for( k = i + 1; k < Dimension; k++ ) //当FactorMatrix[i][k]=0,a[j][k]值不变,可省去运算if( FactorMatrix[i][k] != 0 )FactorMatrix[j][k] = FactorMatrix[j][k] - FactorMatrix[j][i] * FactorMatrix[i][k];}//常数项的消元ConstV ector[j] = ConstV ector[j] - FactorMatrix[j][i]* ConstV ector[i];}}//回代过程for( i = Dimension-1; i > 0; i-- ) //Dimension-2:最后一个变量可直接获得,从n-1个变量求起{for(j = Dimension-1; j > i-1 ; j-- ){if( FactorMatrix[i-1][j] != 0 )ConstV ector[i-1] = ConstV ector[i-1] - FactorMatrix[i-1][j] * ConstV ector[j];//a[i][k]=0时可以不算}}return;}结果数据:B-17.338230 11.604095 0.000000 0.000000 0.000000 5.975134 0.000000 0.000000 0.00000011.604095 -39.189156 10.510682 0.000000 0.000000 0.000000 0.000000 0.000000 17.2413810.000000 10.510682 -15.840926 5.588245 0.000000 0.000000 0.000000 0.000000 0.0000000.000000 0.000000 5.588245 -32.016567 9.763170 0.000000 0.000000 16.949152 0.0000000.000000 0.000000 0.000000 9.763170 -22.567842 12.984672 0.000000 0.000000 0.0000005.975134 0.000000 0.000000 0.000000 12.984672 -34.604820 15.8730150.000000 0.0000000.000000 0.000000 0.000000 0.000000 0.000000 15.873015 -15.873015 0.000000 0.0000000.000000 0.000000 0.000000 16.949152 0.000000 0.000000 0.000000 -16.949152 0.0000000.000000 17.241381 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -17.241381G2.552792 -1.365188 0.000000 0.000000 0.000000 -1.187604 0.000000 0.000000 0.000000-1.365188 3.307379 -1.942191 0.000000 0.000000 0.000000 0.000000 0.000000 0.0000000.000000 -1.942191 3.224200 -1.282009 0.000000 0.000000 0.000000 0.000000 0.0000000.000000 0.000000 -1.282009 2.441990 -1.159981 0.000000 0.000000 0.000000 0.0000000.000000 0.000000 0.000000 -1.159981 4.586491 -3.426511 0.000000 0.000000 0.000000-1.187604 0.000000 0.000000 0.000000 -3.426511 4.614115 0.000000 0.000000 0.0000000.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.0000000.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.0000000.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000Pq----- 5次迭代之后的节点注入功率------1.250 + j-0.5000.000 + j 0.000-0.900 + j-0.3000.000 + j 0.000-1.000 + j-0.3500.000 + j 0.0001.630 + j 0.0440.850 + j-0.0830.722 + j 0.269Lines------ 线路潮流-----有功 1 2 3 4 5 6 7 8 91 0.000 -0.408 0.000 0.000 0.000 -0.842 0.000 0.000 0.0002 0.411 0.000 0.311 0.000 0.000 0.000 0.000 0.000 -0.7223 0.000 -0.310 0.000 -0.590 0.000 0.000 0.000 0.000 0.0004 0.000 0.000 0.604 0.000 0.246 0.000 0.000 -0.850 0.0005 0.000 0.000 0.000 -0.245 0.000 -0.755 0.000 0.000 0.0006 0.865 0.000 0.000 0.000 0.765 0.000 -1.630 0.000 0.0007 0.000 0.000 0.000 0.000 0.000 1.630 0.000 0.000 0.0008 0.000 0.000 0.000 0.850 0.000 0.000 0.000 0.000 0.0009 0.000 0.722 0.000 0.000 0.000 0.000 0.000 0.000 0.000无功 1 2 3 4 5 6 7 8 91 0.000 -0.380 0.000 0.000 0.000 -0.120 0.000 0.000 0.0002 0.222 0.000 0.015 0.000 0.000 0.000 0.000 0.000 -0.2373 0.000 -0.170 0.000 -0.130 0.000 0.000 0.000 0.000 0.0004 0.000 0.000 -0.185 0.000 0.061 0.000 0.000 0.124 0.0005 0.000 0.000 0.000 -0.271 0.000 -0.079 0.000 0.000 0.0006 -0.079 0.000 0.000 0.000 -0.037 0.000 0.115 0.000 0.0007 0.000 0.000 0.000 0.000 0.000 0.044 0.000 0.000 0.0008 0.000 0.000 0.000 -0.083 0.000 0.000 0.000 0.000 0.0009 0.000 0.269 0.000 0.000 0.000 0.000 0.000 0.000 0.000Linedeltas------ 线上的网损功率-----第1 条0.003 + j-0.158第2 条0.023 + j-0.198第3 条0.002 + j-0.155第4 条0.000 + j 0.032第5 条0.013 + j-0.315第6 条0.001 + j-0.210第7 条0.000 + j 0.041第8 条0.011 + j-0.116第9 条0.000 + j 0.159Deltapq0.000000-0.000000-0.0000000.0000000.000000-0.0000000.000000-0.000000-0.000001-0.000001-0.0000010.0000000.0000000.000000Jaccobi----------5 次迭代之后的雅各比-----------17.706173 11.808823 0.000000 0.000000 0.000000 5.897350 0.000000 0.000000 -1.283349 1.763017 -0.000000 -0.000000 -0.000000 2.020332 11.895562 -41.236431 10.961612 0.000000 0.000000 0.000000 0.0000000.000000 1.025734 -3.480160 1.732301 -0.000000 -0.000000 -0.000000 -0.000000 10.856828 -16.528721 5.671892 0.000000 0.000000 0.000000 0.000000 -0.000000 2.299367 -2.403131 1.903763 -0.000000 -0.000000 -0.000000 -0.000000 5.934539 -34.030075 10.204877 0.000000 0.000000 17.890657 -0.000000 -0.000000 0.758889 -2.595565 0.986676 -0.000000-0.000000 -0.000000 -0.000000 10.151972 -23.438147 13.286174 0.000000 0.000000 -0.000000 -0.000000 -0.000000 1.431959 -3.692233 4.2602746.221704 -0.000000 -0.000000 -0.000000 13.658310 -36.512653 16.632639 0.000000 0.388424 -0.000000 -0.000000 -0.000000 2.850076 -4.868500-0.000000 -0.000000 -0.000000 -0.000000 -0.000000 16.632639 -16.632639 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -1.630000-0.000000 -0.000000 -0.000000 17.890657 -0.000000 -0.000000 0.000000 -17.890657 -0.000000 -0.000000 -0.000000 -0.850000 -0.000000 -0.0000003.783349 -1.763017 0.000000 0.000000 0.000000 -2.020332 0.000000 0.000000 -16.706175 11.808823 0.000000 0.000000 0.000000 5.897350 -1.025734 3.480160 -1.732301 0.000000 0.000000 0.000000 0.000000 0.000000 11.895562 -41.236435 10.961612 0.000000 0.000000 0.000000 0.000000 -2.2993674.203131 -1.903763 0.000000 0.000000 0.000000 0.000000 -0.000000 10.856828 -15.928721 5.671892 0.000000 0.000000 0.000000 0.000000 -0.758889 2.595565 -0.986676 0.000000 0.000000 -0.850000 -0.000000 -0.000000 5.934539 -34.030071 10.204877 0.000000 0.000000 0.000000 0.000000 -1.431959 5.692233 -4.260274 0.000000 0.000000 -0.000000 -0.000000 -0.000000 10.151972 -22.738146 13.286174-0.388424 0.000000 0.000000 0.000000 -2.850076 4.868500 -1.630000 0.000000 6.221704 -0.000000 -0.000000 -0.000000 13.658310 -36.512653 U----- 5次迭代之后的节点电压和相角-----0.996 ,-4.0341.026 ,-2.2511.012 ,-3.7411.031 , 1.8961.011 , 0.6421.027 , 3.6391.025 , 9.2391.025 , 4.617 1.040 , 0.000。
华北电力大学科技学院 软件综合实验(实验报告)

综合实验报告( 2012 -- 2013 年度第 1学期)名称:软件设计与实践题目:网页视频播放器院系:信息工程班级:学号:学生姓名:指导教师:田志刚设计周数: 2成绩:日期:2012年1 月11 日《软件综合实验》任务书一、目的与要求软件综合实验是计算机科学与技术、软件工程、网络工程和信息安全专业学生的必修实践环节,本环节是在第六学期、第七学期设置,主要让学生进一步理解、巩固、加深前面所学的课程,并能综合运用所学课程的知识进行设计,掌握算法设计及实现的理论与方法,为毕业设计和今后的工作打下良好的基础。
课程的基本要求:1. 熟悉微机的应用环境。
2. 利用所学课程的知识,解决程序设计中的实际问题(实际应用题目,或模拟实际应用的题目),为毕业设计和今后的工作打下良好的基础。
二、主要内容能熟练地利用微机设计出有实用价值的程序。
1. 熟悉Windows以及其它工具软件系统,2. 根据所选题目进行算法设计(画出流程图,写出各模块的文档)。
3. 编程。
4. 上机调试。
三、进度计划四、设计(实验)成果要求编制一个网页播放视频,要求有两种播放模式,一种是可以操作者播放并控制,另外一种是仅可以播放和暂停,不允许改变视频播放进度。
五、考核方式实验结果(60%)+实验报告(30%)+实验过程表现(10%)学生姓名:指导教师:年月日一、课程设计(综合实验)的目的与要求本次课程设计主要让学生进一步理解、巩固、加深前面所学的课程,并能综合运用所学课程的知识进行设计,掌握算法设计及实现的理论与方法,为毕业设计和今后的工作打下良好的基础。
课程的基本要求:1. 熟悉微机的应用环境。
2. 利用所学课程的知识,解决程序设计中的实际问题(实际应用题目,或模拟实际应用的题目),为毕业设计和今后的工作打下良好的基础。
二、设计(实验)正文1、实验内容编制一个网页播放视频,要求有两种播放模式,一种是可以操作者播放并控制,另外一种是仅可以播放和暂停,不允许改变视频播放进度。
《微机原理及接口》课程设计任务书

《微机原理及接口》课程设计任务书适用专业:计算机科学与技术一、本次课程设计的目的和意义学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。
通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。
二、设计时间和设计题目(一)、设计时间:两周(二)、设计题目:可从以下题目中任选一题,原则上每班每题不超过5人。
每题的设计要求:a、设计出完整的接口电路。
B、编写出全部程序。
C、在实验系统上调试通过。
1、交通灯控制系统:按照时间控制原则,利用并行接口和定时器,采用时间中断方式设计一套十字路口的交通灯管理系统,通行时间(或禁止时间)30秒,准备时间3秒,在准备时间里黄灯闪烁3次,闪烁频率为0.5秒,周而复始。
可利用8255、8253、8259等接口电路。
2、温度测控系统的设计:利用ADC0809采用中断式设计一个温度测控系统,在LED 数码显示器上显示温度值,并对温度进行测试和控制,当检测温度到达温度上限60℃时开风扇(即开启电动机),低于下限30℃时关闭风扇,LED上的显示内容为:XX ℃(采用十进制显示)。
3、函数发生器1的设计:利用D/A设计一个函数发生器,并利用按键选择输出波形,能分别产生三角波、阶梯波(每阶梯1V)、正向锯齿波、负向锯齿波和方波。
并利用按键(自行定义)进行输出波形选择,同时将当前输出波形代号显示在LED上(左边位):0为方波、1为正向锯齿波、2为负向锯齿波、3 为三角波、4为阶梯波。
4、函数发生器2的设计:设计一个三角波发生器,可利用键盘改变其输出波形的幅值。
例如,可利用1---5这5个数字键改变其输出波形的幅值,当按下1---5数字键时使D/A输出幅值从1V增加到5V。
5、电子音乐播放器:设计要求:利用8253作为音阶频率发生器,应先对一段音乐进行编码后存入音符表,并建立好音阶表(只建立一个8度即可,音阶表见附录),音符长度不能少于60个,连续播放3遍后停止。
试验指导书-华北电力大学电气与电子工程学院

线相连,一根作串行数据线(SD),另一根作串行时钟线(SC),从而实现数据存储。本装 置的单片机片内设有两个串行通讯口(UART0 及UART1),UART0 用于同装在面板上的人机 对话CPU 通讯。UART1 则留作备用。
2、关于本装置的人—机对话功能请参阅附录 II 装置正常工作表现为: a) 面板上工作指示绿色灯亮、其它指示灯灭。 b) LCD 第一行显示实时时钟,第二行轮流显示各模拟量的测量值及保护压板和定值区 号等有关信息(当 KG2 中相应位置 1 时),无报警信号,则基本上可确定装置已处于正常工 作状态。 2、装置调试实验 2.1、整定时间日期: a) 在 LCD 的一级菜单中选 CLK,按<SET>键,LCD 显示时间和日期,用选择键将日期和时 间调整好,按<SET>键确认。 b) 按<Q>键使 LCD 回到正常状态,观察显示的日期和时间是否正确。 c) 拉掉电源几分钟,然后合上,检查显示的日期和时间是否正确。 2.2、开入量检查: 使人机对话功能进入 VFC-VI-DI 子菜单,给各开入量输入端子分别加上+24V 电压(与
本装置的硬件主要由下列部分构成: 1)交流插件(AC):本插件将系统电压互感器、电流互感器二次侧强电信号变换 成保护装置所需的弱电信号,同时起隔离和抗干扰作用。本插件设有九个模拟量输入变压器 (TV 及TA),分别用于三相电压、三相电流、3U0、3I0(或IX)及重合闸检同期用的线路抽 取电压UX。 2) 模数变换插件(VFC):本插件共有九路电路结构完全相同的电压频率变换器,分 别将交流插件输出的五路电压和四路电流变换成脉冲频率随输入模拟量幅值大小变化的脉 冲量,并经快速光耦光电隔离后送至CPU 系统中的计数器计数,以实现模数转换。 3) 保护CPU 插件:是整套保护装置核心部分。本插件所用单片机的总线不引出,片 内包括了装置所要求的各种外设功能逻辑。其上配有存放工作程序的只读存储器(ROM),
三相电压电流的采集课程设计 华北电力大学

一、课程设计(综合实验)的目的与要求 1.1 目的 本课程设计是完成《微机原理及应用》理论教学以后,为农业电气化与自动化专业开设的必 修环节,学生通过本课程设计,进一步巩固本课程的理论知识,掌握硬件电路图设计的相关知识,汇 编程序的设计方法。提高学生利用计算机软、硬件技术、综合其他课程知识,分析和解决实际问题的 能力。 1.2 要求 1.2.1. 掌握 ADC0809 转换的原理。 1.2.2. 掌握单片机的键盘,拨码开关等输入设备的应用。 1.2.3. 掌握 LCD 显示器输出器件的使用 1.2.4.设计一套以 MCS-51 单片微机为核心的测量与控制系统.
4
减少外部驱动芯片。单片机普遍配置有等待状态、睡眠状态、关闭状态等工作方式,功耗越来越小。 单片机集成度越来越高,外围电路内装化。综上所述,单片机正向多功能、高性能、高速度、低电压、 低功耗、低价格的方向发展。单片机的应用潜力是非常巨大的。
2.2.1.单片机的优点 单片机体积小、价格低,性价比高,应用灵活性强等特点在嵌入式微控制系统中具有十分重要的 地位。应用方便、稳定可靠。很容易嵌入到系统之中,以实现各种方式的检测、计算或控制。单片机 的发展非常迅速,短短几十年时间里,单片机就经过了 4 位机、8 位机、16 位机、32 位机等几十大 发展阶段,单片机形式多样、集成度高、功能日臻完善。近几年,单片机的内部结构愈加完美,配套 的片内外围功能部件越来越完善。 2.2.2.单片机的发展趋势 单片机的发展趋势是向大容量、高性能化、外围电路内装化等方面发展。CPU 的改进包括数据总 线宽度的增加,采用双 CPU 结构。存储器的容量不断增大。片内 I/O 口增加了并行口的驱动能力,以
二、设计(实验)正文 交流采样技术是按照一定规律对被测信号的瞬时值进行采样,按一定算法进行数值处理,从而获 得被测量的测量方法。该方法的理论基础是采样定理,即要求采样频率为被测信号频率中最高频率的 2 倍以上,这就要求硬件处理电路能提供高的采样速度和数据处理速度。目前单片机、DSP 及高速 A/D 转换器的大量涌现, 为交流采样技术提供了强有力硬件支持。 交流采样法包括同步采样、 准同步采样、 非同步采样几种。 交流采样技术是将二次测得电压、电流变成 MCU 可以测量的交流小信号,然后直接送入 MCU 直接 处理。由于这种方法能够对被测量的瞬时值进行采样,因而实时性好,相位失真小。它用软件的功能 代替硬件的功能又使硬件的投资大大减少。随着微机技术的不断发展,交流采样必将以其优异的性价 比逐步取代传统的直流采样方法。 设交流电压电流表达式为: u(t)= u m sin wt
华北电力大学科技学院arm课程设计92666895

课程设计(综合实验)报告( 2015-- 2016年度第一学期)名称:ARM课程设计题目:操作系统加采集电压显示院系:信息工程系班级13K2学号:31学生姓名:指导教师:张老师设计周数:2成绩:日期:2016年6月23日一、课程设计(综合实验)的目的与要求题目:根据上课已学内容和知识点设计:在带UC/OS-II操作时系统的基础上采集实验板上的电压值,显示电压。
要求:(1)用TFT、32*32液晶显示出采集的电压值的波形(需要显示有坐标轴、符合和对波形的说明)。
(2)液晶显示的同时要求ARM与PC有一条接口线,在PC上也显示采集的电压值(即串口显示电压值)。
(3)在液晶显示和PC显示的基础上同时要求采集的电压可以自动采集一次(即刷新一次)。
(4)当采集的电压值超过2V时,报警(即要有一个报警信号)。
二、设计(实验)正文1:设计思路(1)对于采集电压值可根据A/D转换使得电压值能在液晶上显示;用液晶显示采集电压的值可根据课内实验做的液晶显示实验来写;要在液晶上显示波形可以根据采集到的电压值与液晶屏的大小的采集点数的关系来写。
(2)在PC上显示可根据UART通信的知识点(异步串行通信)来进行设计。
(3)根据液晶屏的大小,判断是否到达最高数从而当采集完并显示出波形后可以自动再次刷新,重新采集并显示。
(4)报警可设计一个蜂鸣器,让其超过2V就报警(可利用课内做过的蜂鸣器实验来获得思路)。
(5)对于所有的操作系统,我是先在裸机下写程序,等到都测试好了再添加进来(分成四个任务)。
2:设计代码#include "lpc177x_8x.h"#include "includes.h"#include "../ADC/adc.h"#if ADC_DEBUG#include "../UART/uart.h"#endifextern volatile uint32_t ADCValue[ADC_NUM];extern volatile uint32_t ADCIntDone;#if ADC_DEBUGextern volatile uint32_t UART0Count;extern volatile uint8_t UART0Buffer[BUFSIZE];#endif#define BEEPON (LPC_GPIO3->CLR = 1ul << 30) //蜂鸣器工作#define BEEPOFF (LPC_GPIO3->SET = 1ul << 30) //蜂鸣器不工作/OS_EVENT *mbox;static OS_STK stkTaskA[256];static OS_STK stkTaskB[256];static OS_STK stkTaskC[256];static OS_STK stkTaskD[256];/********************************************************** ***********************************************宏定义*********************************************************** **********************************************/uint32_t x=0;//定义全局变量INT8U err;INT16U *pd;uint32_t ADCSum=0;uint32_t i;/********************************************************** ************************************************* 函数名称:myDelay** 函数描述:软件延时** 输入参数:ulTime** 返回值:无*********************************************************** **********************************************/void myDelay (uint32_t ulTime){uint32_t i;while (ulTime--) {for (i = 0; i < 19192; i++);}}void GPIOInit( void ){LPC_GPIO3->DIR |= 1<<30; //设置P3.30为输出LPC_GPIO3->SET |= 1<<30; //设置P3.30为高电平}/********************************************************** ************************************************* 函数名称:beepOperate** 函数描述:蜂鸣器工作** 输入参数:uiFrequency 蜂鸣器工作频率** 返回值:无*********************************************************** **********************************************/void beepOperate (void){BEEPON; // 蜂鸣器鸣叫OSTimeDly(OS_TICKS_PER_SEC / 2);BEEPOFF; // 蜂鸣器不鸣叫OSTimeDly(OS_TICKS_PER_SEC / 2);}void coordinate (void)//定义显示坐标及一些说明{lcd_Clear(LCD_WHITE); // 背景色为白色lcd_DrawHLine(0,320,230,LCD_BLACK);lcd_DrawLine(0,120,320,120,LCD_RED);lcd_DrawVLine(0,0,230,LCD_RED);GUI_SetColor(GREEN, RED);GUI_PutString8_8(10,5,"Y");GUI_SetColor(GREEN, RED);GUI_PutString8_8(310,230,"X");GUI_SetColor(BLUE, RED);GUI_PutString8_8(20,5,"bo xing tu");GUI_PutString8_8(150,230,"max voltage is 3V");}/*********************************************************************************************************** 函数名称:TaskD** 函数描述:任务D ,LCD显示** 输入参数:无** 返回值:无*********************************************************** **********************************************/void TaskD(void *pvData){pvData = pvData;while (1) {pd=(INT16U *)OSMboxPend(mbox,0,&err); // 等待消息//lcd_SetPixel(x,119-ADCSum/13,LCD_BLACK);也可以用这个函数GUI_Point(x,230-ADCSum*240/2500,BLACK); //描点函数,也就是坐标的开始(即从0,239位置为0位置),可以通过改变230-ADCSum*240/2500这个值来改变坐标的起始位置,也可以直接写230-ADCSum/10(自己定义,10表示2500/240,即满屏显示电压幅度值)x++;if(x==319){//描点函数自动刷新x=0;coordinate();}}}/********************************************************** ************************************************* 函数名称:TaskC** 函数描述:任务C ,蜂鸣器报警** 输入参数:无** 返回值:无*********************************************************** **********************************************/void TaskC(void *pvData){pvData = pvData;while (1) {pd=(INT16U *)OSMboxPend(mbox,0,&err); //等待消息if(ADCSum>=2000)//蜂鸣器报警条件{beepOperate();}}}/********************************************************** ************************************************* 函数名称:TaskB** 函数描述:任务B,串口显示** 输入参数:无** 返回值:无*********************************************************** **********************************************/void TaskB(void *pvData){unsigned int a=0;unsigned int b=0;unsigned int c=0;unsigned int d=0;pvData = pvData;while (1) {pd=(INT16U *)OSMboxPend(mbox,0,&err); //等待消息a=ADCSum/1000;//电压转换最高位b=(ADCSum-a*1000)/100; //电压转换第二位c=(ADCSum-a*1000-b*100)/10; //电压转换第三位d=ADCSum-a*1000-b*100-c*10; //电压转换第四位UART0Buffer[0] =(unsigned char)a+0x30;UART0Buffer[1] =(unsigned char)b+0x30;UART0Buffer[2] =(unsigned char)c+0x30;UART0Buffer[3] =(unsigned char)d+0x30;//转换成字符形式发送UART0Buffer[4] =(0x3D);UART0Buffer[5] =(a+48);UART0Buffer[6] =(0x2e);//小数点UART0Buffer[7] =(b+48);UART0Buffer[8] =(c+48);UART0Buffer[9] =(d+48);UART0Buffer[10] =(0x56);//“V”UART0Buffer[11] =(0xD);//回车UART0Buffer[12] =(0xA);//换行UARTSend( 0,(uint8_t*)UART0Buffer, 13);OSTimeDly(1);}}/********************************************************** ************************************************* 函数名称:TaskA** 函数描述:任务A , ADC采集电压** 输入参数:无** 返回值:无*********************************************************** **********************************************/void TaskA(void *pvData){pvData = pvData;mbox=OSMboxCreate(NULL); //创建消息邮箱,在优先级最高的任务创建while (1) {ADCSum=0;ADC_Start(0); //打开A/D转换while(ADC_GetStat(0)); //等待转换完成ADCSum=ADCRead(0); //读ADC通道0采集到的值ADCSum=(ADCSum*2500)/4096;//计算电压分辨率OSMboxPost(mbox,&ADCSum);//发送采集的电压OSTimeDly(1);}}/********************************************************** ************************************************* 函数名称:main** 函数描述:用户程序入口函数** 输入参数:无** 返回值:无*********************************************************** **********************************************/int main(void){ //一定要严格按照下面初始化顺序来做,液晶一定要在串口前面,否则很容易错SystemInit();LPC_SC->PCONP |= 0x00000800; //EMC上电GPIOInit(); // 通用I/O口初始化lcd_Init(); //初始化液晶#if ADC_DEBUG 如果定义了调试则编译串口初始化 UARTInit(0, 9600);#endifADCInit( ADC_CLK );coordinate ();//坐标轴初始化OSInit();OSTaskCreate(TaskA, (void *)0, &stkTaskA[sizeof(stkTaskA) / 4 - 1], 0);OSTaskCreate(TaskB, (void *)0, &stkTaskB[sizeof(stkTaskB) / 4 - 1], 1);OSTaskCreate(TaskC, (void *)0, &stkTaskC[sizeof(stkTaskC) / 4 - 1], 2);OSTaskCreate(TaskD, (void *)0, &stkTaskD[sizeof(stkTaskD) / 4 - 1], 3);OSStart();}说明:这里只显示主函数的内容,其余内容因为代码太多,在附录里截图显示,那些是根据课内实验移植的一些调用函数,在做的过程中经常出现例如“头文件找不到、目录不对应、大小太小等问题”,都是在这个移植的时候没添好造成。
华电微机原理课程设计

华电微机原理课程设计一、教学目标本课程的教学目标旨在让学生掌握微机原理的基础知识,培养学生运用微机进行分析和解决问题的能力。
具体目标如下:1.知识目标:学生能够理解微机的基本组成原理、工作方式以及各部分的功能;掌握微机指令系统、编程方法及其应用;了解微机系统的设计与开发过程。
2.技能目标:学生能够使用微机进行基本编程,独立完成简单微机应用程序的设计与调试;具备微机硬件系统的基本调试和维护能力。
3.情感态度价值观目标:培养学生对微机技术的兴趣,使其认识微机技术在现代社会中的重要作用,提高学生运用科学知识解决实际问题的能力。
二、教学内容本课程的教学内容主要包括微机原理的基本概念、微机的组成与工作原理、指令系统与编程、微机系统的设计与开发等。
具体安排如下:1.微机原理的基本概念:介绍微机的定义、发展历程、分类及性能指标。
2.微机的组成与工作原理:讲解微机的基本组成部件,如中央处理器、存储器、输入输出设备等,以及它们的工作原理。
3.指令系统与编程:学习微机的指令系统,包括数据传输指令、算术运算指令、逻辑运算指令等,并掌握编程方法及技巧。
4.微机系统的设计与开发:介绍微机系统的设计原则、开发流程,以及系统调试与维护方法。
三、教学方法为实现教学目标,将采用以下教学方法:1.讲授法:教师讲解微机原理的基本概念、组成原理、指令系统等理论知识,引导学生掌握课程内容。
2.案例分析法:通过分析实际案例,使学生了解微机原理在实际应用中的作用,提高学生的实践能力。
3.实验法:安排实验室实践环节,让学生亲自动手进行微机编程和硬件调试,培养学生的动手能力。
4.讨论法:学生进行分组讨论,分享学习心得和经验,促进学生之间的交流与合作。
四、教学资源为实现教学目标,将提供以下教学资源:1.教材:选用权威、实用的教材,为学生提供系统的学习资料。
2.参考书:推荐相关参考书籍,丰富学生的知识体系。
3.多媒体资料:制作课件、教学视频等多媒体资料,提高课堂教学效果。
华北电力大学潮流上机课程设计报告

课程设计报告(2014—2015年度第一学期)名称:电力系统潮流上机院系:电气与电子工程学院班级:电气1215学号:一、课程设计的目的与要求培养学生的电力系统潮流计算机编程能力,掌握计算机潮流计算的相关知识二、设计正文(详细内容见附录)1.手算2.计算机计算3.思考题三、课程设计总结或结论四、参考文献1.《电力系统分析基础》,李庚银,机械工业出版社,2011年,第一版;2.1.2.计算机计算流程图3.完整的潮流程序头文件(定义变量):#define Bus_Num9#define Line_Num9#define Precision1e-5struct Bus{int No;struct{floatfloatfloatfloatfloat#include#include#include#include#includevoid{ob1.SetSize(2);ob1.Data(0,0)=1;ob1.Data(0,1)=2;ob1.Data(1,0)=2;ob1.Data(1,1)=1;ob1.Value(0)=4;ob1.Value(1)=6;ob1.Run();printf("x1=%f\n",ob1.Value(0));}void GetData()//Readthedata{FILE*fp;int i;fp=fopen("E:\\1121960726\\flow\\data\\data.txt","r");if(fp==NULL){printf("Cannotopenthefilenamed'data.txt'\n");return;}{}{}}void{intfloatfor{for{}}for(i=0;i<=Line_Num-1;i++){if(gLine[i].k==0){bus1=gLine[i].No_I-1;bus2=gLine[i].No_J-1;r=gLine[i].R;x=gLine[i].X;d=r*r+x*x;b=-x/d;gY_G[bus1][bus1]=gY_G[bus1][bus1]+g;gY_G[bus2][bus2]=gY_G[bus2][bus2]+g;gY_G[bus1][bus2]=gY_G[bus1][bus2]-g;gY_G[bus2][bus1]=gY_G[bus2][bus1]-g;gY_B[bus1][bus1]=gY_B[bus1][bus1]+b+gLine[i].B;gY_B[bus2][bus2]=gY_B[bus2][bus2]+b+gLine[i].B;gY_B[bus1][bus2]=gY_B[bus1][bus2]-b;gY_B[bus2][bus1]=gY_B[bus2][bus1]-b;}else{g=r/d;b=-x/d;}}if{printf("Cannotopenthefilenamed'ymatrix.txt'\n");return;}fprintf(fp,"---YMatrix---\n");for(i=0;i<=Bus_Num-1;i++){for(j=0;j<=Bus_Num-1;j++){}}fclose(fp);}void SetInitial(){int i;for(i=0;i<=Bus_Num-1;i++){if(gBus[i].Type==3){}}void{int i,j;for{ifelsefor{ifgDelta_Q[i]=gDelta_Q[i]-gf[i+1]*(gY_G[i+1][j]*ge[j]-gY_B[i+1][j]*gf[j])+ge[i+1]*(gY_G[i+1][j]*gf[j]+gY_B[i+1][j]*ge[j]); }}for(i=0;i<=Bus_Num-2;i++)//合?并?é{gDelta_PQ[2*i]=gDelta_P[i];gDelta_PQ[2*i+1]=gDelta_Q[i];}fp=fopen("E:\\1121960726\\flow\\data\\unbalance.txt","w");printf("无法打开文件:”'unbalance.txt'\n");return;}fprintf(fp,"---Unbalance---\n");for(i=0;i<=2*Bus_Num-3;i++){fprintf(fp,"Unbalance[%d]=%10.5f\n",i+1,gDelta_PQ[i]); }fclose(fp);}void{int i,j;floatfor{ga[i]=0;gb[i]=0;for{}}for{for{if(i!=j){{gJaccobi[2*i+1][2*j]=0;gJaccobi[2*i+1][2*j+1]=0;}else//PQ{gJaccobi[2*i+1][2*j]=-gJaccobi[2*i][2*j+1];gJaccobi[2*i+1][2*j+1]=gJaccobi[2*i][2*j];}}gJaccobi[2*i][2*j]=-gY_B[i+1][j+1]*ge[i+1]+gY_G[i+1][j+1]*gf[i+1]+gb[i];gJaccobi[2*i][2*j+1]=gY_G[i+1][j+1]*ge[i+1]+gY_B[i+1][j+1]*gf[i+1]+ga[i];if(gBus[i+1].Type==2)//PV节¨2点ì?{gJaccobi[2*i+1][2*j]=2*gf[i+1];gJaccobi[2*i+1][2*j+1]=2*ge[i+1];}else//PQ节点{gJaccobi[2*i+1][2*j]=-gY_G[i+1][j+1]*ge[i+1]-gY_B[i+1][j+1]*gf[i+1]+ga[i];}}}}if{printf("return;}for{for{}}}void{int i,j;NEquationob1;//解矩阵方程ob1.SetSize(2*(Bus_Num-1));for(i=0;i<=2*Bus_Num-3;i++)for(j=0;j<=2*Bus_Num-3;j++)ob1.Data(i,j)=gJaccobi[i][j];for(i=0;i<=2*Bus_Num-3;i++)ob1.Value(i)=gDelta_PQ[i];ob1.Run();for(i=0;i<=Bus_Num-2;i++)gDelta_f[i]=ob1.Value(2*i);gDelta_e[i]=ob1.Value(2*i+1);gDelta_fe[2*i]=gDelta_f[i];gDelta_fe[2*i+1]=gDelta_e[i];}fp=fopen("E:\\1121960726\\flow\\data\\revised.txt","w");if(fp==NULL){printf("无法打开文件:”'revised.txt'\n");return;}for{}}void{int i;for{}if{printf("return;}for{fprintf(fp,"f(%d)=%10.5f,e(%d)=%10.5f\n",i+1,gf[i+1],i+1,ge[i+1]);} fclose(fp);}int main(array<System::String^>^args){int i,Count_Num;float maxValue;//test();GetData();GetYMatrix();SetInitial();for(Count_Num=0;Count_Num<=100;Count_Num++) {GetUnbalance();GetJaccobi();GetRevised();GetNewValue();maxValue=fabs(gDelta_fe[0]);for(i=1;i<=2*(Bus_Num-1)-1;i++){if(maxValue<fabs(gDelta_fe[i]))}for{}{}return0;}(1(2(3)Jacobi矩阵:(4)NewVoltageValue:(5)不平衡量:(6)修正量:(6)结果:3.回答思考题1.潮流计算的方法有哪些?各有何特点?2.如果交给你一个任务,请你用已有的潮流计算软件计算北京城市电网的潮流,你应该做哪些工作?(收集哪些数据,如何整理,计算结果如何分析)3.设计中遇到的问题和解决的办法。
计算机网络课程设计方案(华北电力大学科技学院)

课程设计报告( 2018 -- 2018 年度第 2 学期>名称:计算机网络课程设计题目:以太网数据帧分析及网院系:信息工程系班级:软件09K2学号: 0919********学生姓名:闫雪峰指导教师:张长明设计周数:1周成绩:日期:2018年7月6日《计算机网络》课程设计任务书一、目的与要求1.目的将网络基本原理及基本概念用于实际,将书本上抽象的概念与具体的实现技术结合起来,使学习深化,培养学生对基本原理的应用能力以及实际动手能力。
2.要求独立完成课程设计题目以及课程设计报告。
报告应包括设计思路、网络拓扑图、开发中遇到的问题以及解决方法。
二、主要内容1.互联网的模拟(1)互联网设备认知①网线制作;②交换机与路由器认识;③熟悉网络设备配置命令;(2)互联网模拟环境设计①网络物理拓扑结构设计及IP地址分配;②网络逻辑拓扑结构设计;(3)网络设备配置实现按步骤<2)所设计的网络拓扑进行设备连接并配置。
配置内容包括路由选择协议OSPF配置,VLAN划分等,并进行测试。
(4)网络数据帧捕获与协议分析①配置应用服务器<Web服务器或FTP服务器),通过抓包工具分别在服务器端和客户端捕获数据帧;②分别从数据链路层、网络层、运输层及应用层对捕获到的数据帧进行分析,掌握数据传输过程。
2.简单邮件客户端的实现设计并一个邮件客户端,要求:为发送方提供一个图形界面,其中有发送方的邮件地址字段、接收方的电子邮件字段、消息主题和消息本身。
在客户端和接收方邮件服务器之间直接建立一个TCP连接,发送并接收SMTP命令和数据,来将邮件传送到接收方的邮件服务器上。
3.Windows环境下实现多用户mini FTP Client/Server文件传输协议FTP<File Transfer Protocol,FTP)采用两个TCP连接来传输一个文件,用户协议解释器通过处理用户输入产生标准FTP命令,并通过控制连接传送到服务器进程。
机电一体化课程设计(2011)

4 3 2 1
P13 P12 P11 P10
接同步螺头脉冲
+5V
11 10
U9
ALE
U10
11 3 4 7 8 13 14 17 18 21 CLK D0 D1 D2 D3 D4 D5 D6 D7 VCC E Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 GND 1 2 5 6 9 12 15 16 19 11
自动刀架。刀架内带小容量交流电动机,控制正
转选刀。内置的霍尔元件检测刀位位置,电动机
反转完成刀具定位。
1.2.3 微机数控系统设计 ⑪.微机数控系统总体控制方案设计 ⑫.主芯片选型分析 ⑬.存储器扩展电路设计 ⑭.I/O接口电路及外接电路的设计 ⑮.伺服控制电路设计
⑯.系统控制软件设计
1.2.4 课程设计说明书编制
⑪.说明书是课程设计的总结性技术文件,应叙述整个设计 的内容。包括总体方案的确定,系统框图的分析,机械传 动系统设计计算,微机控制系统的选型说明以及外电路的 设计计算,控制软件设计及其功能说明等。
⑫.说明书的字数不少于1万2千字。 1.2.5 图纸 ⑪.机械结构装配图(A1图纸,可采用电脑绘图)。要求视图 基本完整、符合标准。其中至少要有一个坐标轴的完整剖 视图。 ⑫.微机控制系统电气原理图,A3排版要求用Protel等EDA 软件完成图纸绘制。
V CC C S1
PC0 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7
37
40
VCC
2764(1)
8155(1)
RESET
2764(2)
9
10K Ω
6264
P00 P01 P02 P03 P04 P05 P06 P07 ALE/P
微机原理课程设计报告

微型计算机技术课程设计指导教师:班级:姓名:学号:班内序号:课设日期:_________________________目录一、课程设计题目错误!未定义书签。
二、设计目的错误!未定义书签。
三、设计内容错误!未定义书签。
四、设计所需器材与工具3五、设计思路错误!未定义书签。
六、设计步骤(含流程图和代码)错误!未定义书签。
七、课程设计小结36一、课程设计题目:点阵显示系统电路及程序设计利用"汇编语言与微型计算机技术"课程中所学的可编程接口芯片8253、8255A、8259设计一个基于微机控制的点阵显示系统。
二、设计目的1.通过本设计,使学生综合运用"汇编语言与微型计算机技术"、"数字电子技术"等课程的内容,为今后从事计算机检测与控制工作奠定一定的根底。
2.掌握接口芯片8253、8255A、8259等可编程器件、译码器74LS138、8路同相三态双向总线收发器74LS245、点阵显示器件的使用。
3.学会用汇编语言编写一个较完整的实用程序。
4.掌握微型计算机技术应用开发的全过程,包括需求分析、原理图设计、元器件选用、布线、编程、调试、撰写报告等步骤。
三、设计内容1.点阵显示系统启动后的初始状态在计算机显示器上出现菜单:dot matrix display system1.←left shift display2.↑up shift display3.s stop4.Esc Exit2.点阵显示系统运行状态按计算机光标←键,点阵逐列向左移动并显示:"微型计算机技术课程设计,点阵显示系统,计科11302班,陈嘉敏,彭晓〞。
按计算机光标↑键,点阵逐行向上移动并显示:"微型计算机技术课程设计,点阵显示系统,计科11302班,陈嘉敏,彭晓〞。
按计算机光标s键,点阵停顿移动并显示当前字符。
3.完毕程序运行状态按计算机Esc键,完毕点阵显示系统运行状态并显示"停〞。
微机课程设计报告

微机原理课程设计报告课程设计名称:微机原理课程设计学院名称:电气信息工程学院专业:自动化班级:学号: 3 姓名:2013 年 1 月 11 日一、目的:结合微型计算机原理课程的学习,进一步巩固已学的知识,同时针对计算机原理知识的具体应用,学会对系统中DOS和BIOS的使用。
学会使用屏幕编辑程序——EDIT,弄懂汇编程序的上级过程以及如何运用DEBUG软件进行汇编程序的调试。
二、内容与要求:1.字符串匹配设计为掌握提示信息的设置和输入方法及读取键入信息的方法。
编写程序实现两个字符串比较。
如相同,则显示“MATCH”,否则,显示“NO MATCH”。
2.响铃设计为掌握响铃的使用方法,编写程序,从键盘接受输入字符,如是数字N则响铃N此,如不是数字则不响。
3.将键盘输入的小写字母转换成大写字母的设计为了解小写字母和大写字母在计算机内的表示方法,并学习如何进行转换,编写程序,接受键盘字符,并将其中的小写字母转变为大写字母,然后显示在屏幕上。
4.排序设计为掌握用汇编语言编写排序程序的思路和方法。
编写程序,从首地址为1000H开始存放50个数,要求设计程序将这些数从小到大排序,排序后的数,仍放在该区域中。
下面着重介绍程序2——响铃设计:三、流程图:四、程序代码及注释DATA SEGMENTD1 DB 'PLEASE INPUT A NUMBER:','$'D2 DB 0AH,'ERROR!','$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXLEA DX,D1MOV AH,9INT 21HMOV AH,1INT 21HCMP AL,30H ;键盘输入值与0比较JB L2CMP AL,39H ;键盘输入值与9比较JA L2AND AL,0FHCMP AL,0JE OVERMOV CL,ALL1: MOV DL,07H ;实现响铃MOV AH,2INT 21HDELAY: MOV DX,0FFFFH ;延迟功能TI1: MOV AX,0FFFFH ;循环嵌套实现延迟功能TI2: DEC AXJNZ TI2DEC DXJNZ TI1DEC CL ;通过CL控制响铃次数 JNZ L1JMP OVERL2: LEA DX,D2MOV AH,9INT 21HOVER: MOV AH,4CH ;返回DOSINT 21HCODE ENDSEND START五、心得体会:为期一周的微机原理课程设计已经接近尾声了,通过这次近一周的上机实训,使我们对于汇编语言的运用有了更加深刻的认识,同时在与老师和同学的不断沟通交流中自己学到了很多知识,也纠正了以往的一些错误,可谓是受益匪浅。
华北电力大学微机课程设计

课程设计(综合实验)报告( 20 14 -- 20 15 年度第 1学期)名称:微机原理课程设计题目:课题2 交通灯控制系统院系:控制与计算机工程学院班级:自动化1203学号:1121190308学生姓名:刘帅__指导教师:吴华设计周数:1周成绩:日期:年月日一、课程设计(综合实验)的目的与要求1.1目的:在微机原理及应用课程中分别了微计算机各个基本组成模块的原理和编程技术的基础之上,综合应用各部分知识,在实验室现有设备情况下,设计一个具有一定功能的应用系统,达到对各部分知识加深理解,融会贯通的目的。
1.2要求:用8255实现交通信号灯软件,硬件设计。
8255控制LED发光管实现的十字路口信号灯电路及管理程序,并尽量接近真实信号灯的工作情况。
二、设计(实验)正文1. 设计题目:一个十字路口的交通信号灯,东西向为一组,南北向为一组,组内信号灯亮灭情况相同,R6、Y5、G4 作为南北路口的交通灯,R2、Y1、G0作为东西路口的交通等.程使六个灯按交通等变化规律亮灭。
要求进行周期性重复控制:g) 南北路口的绿灯、东西路口的红灯同时亮20 秒。
h) 南北路口的黄灯闪烁3 秒,同时东西路口的红灯闪 3 秒。
i) 南北路口的红灯、东西路口的绿灯同时亮90 秒。
j) 南北路口的红灯、同时东西路口的黄灯亮闪烁3 秒。
k) 在 LED 上同步显示倒计时。
2 设计过程:2.1芯片类型及使用:( 1 )交通信号灯的灯光变化和数码显示通过8255实现控制。
PA口用于输出信号控制灯光的变化,PB口用于输出信号控制数码管的显示,PC0用于输入k0的控制开关信号,PC1用于输入用于硬件延时的方波信号。
PC7用于输出控制数码管工作/不工作的信号。
故写入方式控制字为10000001B=81H( 2 )LED数码显示:数码管采用共阴极接法,位选信号为0则数码管工作。
a~dp段发亮条件:对应位输入1,见下表所示:用两片8255控制四个数码管,U12的PA、PB端控制计数器的高位(也就是十位)。
微机原理实验报告 期中 华北电力大学保定

华北电力大学课程报告||报告名称汇编语言的数据处理实践课程名称微机原理与汇编语言程序设计||专业班级:信安1301 学生姓名:学号:成绩:* 封面左侧印痕处装订一、设计要求采用恰当的汇编语言设计环境,基于课程中对有符号数组输入输出、求平均值、输出平均值的程序例子,设计能对有符号数据进行处理的程序,要求在程序中实践三种主程序与子程序参数传递的方法、实践子程序库的使用方法和宏汇编技术,并能体现一定的新颖性。
要求整个设计具备一定的工作量,报告描述格式规范、条理清晰,并能反映自己的创新。
二、设计内容1.从键盘输入有符号十进制数的子程序,实现子程序与主程序通过寄存器传递参数。
2.向显示器输出有符号十进制数的子程序,实现子程序与主程序通过共享变量传递参数。
3.求数组的平均值,实现子程序与主程序通过堆栈传递参数。
4.显示数组的平均值。
5.对重复汇编的程序语句,设计子程序库和宏汇编技术三、所用环境介绍所采用的实验环境是masm for windowsMasm for windows 集成实验环境是从事一线教学的大学教师针对汇编语言初学者的特点开发的一个简单易用的汇编语言学习与实验软件,支持最新操作系统WINDOWS 7,支持DOS的16/32位汇编程序和Windows下的32汇编程序(并提供调试通过的35个WINDOWS汇编程序实例源代码),它具有错误信息自动定位、关键字实时帮助并且在帮助中动画演示汇编指令的执行过程、语法着色、无限次撤消与恢复、WORD式的查找、替换、定位、支持中文、长文件名等功能。
四、实验方法与步骤1.子程序从键盘输入一个有符号10进制数,负数用“-”引导,正数直接输入或用“+”引导,子程序还要包含将ascii码转换为二进制数的过程,算法如下:(1)判断是正数还是负数,并用一个寄存器记录下来(2)输入0~9数字(ASCII码),减30h转换为二进制数(3)将前面输入的数值乘以10,并与刚输入的数字相加得到新的数值(4)重复(2)、(3),直到输入一个非数字字符结束(5)如果是负数则求补,转换成补码,否则直接保存数字2.子程序在屏幕上显示一个有符号10进制数,负数用“-”引导。
UML课程设计-华北电力大学科技学院

课程设计(综合实验)报告( 20 -- 20 年度第学期)名称:UML课程设计题目:图书管理系统院系:科技学院班级:软件11k1学号:68686868686868学生姓名:南方小羊指导教师:刘书刚设计周数: 1成绩:日期:2012年6 月日《面向对象技术与UML》课程设计任务书一、目的与要求1.本实验是为软件工程专业的学生在学习《面向对象技术与UML》后,为培养更好的解决问题和实际动手能力而设置的实践环节。
通过本环节,使学生拥有应用面向对象方法进行分析与设计的能力,为后继课程和毕业设计打下良好基础。
2.通过该实验,培养学生从系统宏观层面理解和领会面向对象思想和方法;并熟练运用相关建模工具对软件系统进行静态建模和动态建模。
3.通过运用面向对象方法对一个小型软件应用系统进行完整设计,可以培养学生面向对象分析和建模能力。
主要有以下几个方面的具体要求:使用UML语言中的各种图形表达面向对象分析设计的建模结果;熟练使用建模工具实践UML语言;加深面向对象概念、面向对象设计原则的理解,并能够自觉运用;熟悉并实践面向对象分析与设计的步骤。
二、主要内容本实验是针对一个实际中常见的小型系统(需求参见班级邮箱中下发的需求文档)进行全面的分析,主要包含以下内容:1. 根据所选系统收集简单需求,利用CASE工具对系统进行用例建模。
2. 根据前述需求描述,进行初步分析,寻找并筛选类及其属性、操作,绘制相应的类图;同时寻找类之间的静态关系,建立类模型。
3. 根据用例模型,分析类对象的状态变化情况,并对其中重要部分绘制系统的状态图。
4. 根据用例模型,进行类之间的交互情况分析,并对其中重要的交互情况绘制活动图。
5. 根据用例模型,进行类之间的交互情况分析,并对其中重要的交互情况绘制顺序图。
6. 将类图生成代码(C++或JAVA)。
7.将代码在相应的环境中,进行扩充编程,能运行,具有良好的人机界面。
三、进度计划四、设计(实验)成果要求1.运用建模工具完成系统的面向对象的分析;生成代码;代码运行,效果良好。
华电过程计算机控制综合课程设计

华电过程计算机控制综合课程设计一、引言华电过程计算机控制综合课程设计是电气工程专业的一门重要课程,旨在培养学生在电力系统运行控制过程中运用计算机技术进行数据处理与分析的能力。
本文将介绍华电过程计算机控制综合课程设计的背景及重要性,并讨论该课程设计的具体内容和实施方法。
二、背景和重要性随着电力系统规模的不断扩大和技术的不断进步,电力系统的运行控制需要越来越多的数据处理和分析。
华电过程计算机控制综合课程设计作为电气工程专业的核心课程,旨在培养学生对电力系统运行控制过程的理解和掌握,以及运用计算机技术进行数据处理与分析的能力。
通过该课程设计的学习,学生能够深入了解电力系统的运行机理和控制方法,掌握运用计算机进行数据处理和分析的技术,为电力系统的安全稳定运行提供技术支持。
三、课程设计内容华电过程计算机控制综合课程设计主要包括以下几个方面的内容:1. 电力系统运行控制基础知识:介绍电力系统的基本组成和运行原理,包括电力系统的拓扑结构、电力设备的特性和运行参数等。
2. 计算机控制技术:介绍计算机控制技术在电力系统运行控制中的应用,包括计算机软件的选择与应用、数据采集与处理技术等。
3. 数据处理与分析方法:介绍电力系统中数据的采集、处理和分析方法,包括数据采集装置的选择与应用、数据处理与分析的基本方法和技术等。
4. 课程设计案例分析:通过实际案例,对电力系统运行控制过程中的问题进行分析和解决,培养学生的实际应用能力和解决问题的能力。
四、课程设计实施方法华电过程计算机控制综合课程设计的实施方法主要包括以下几个步骤:1. 学习理论知识:学生首先需要通过课堂学习,掌握电力系统运行控制的基本理论知识,包括电力系统的组成、运行原理以及计算机控制技术等。
2. 案例分析与讨论:学生在学习理论知识的基础上,通过分析实际案例,讨论电力系统运行过程中可能出现的问题,并提出解决方案。
3. 课程设计方案的制定:学生根据课程设计要求,制定课程设计方案,包括选题、设计目标、实施步骤等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
卑址电力*孑课程设计(综合实验)报告(20 14 -- 20 15 年度第1学期)名称: 微机原理课程设计题目: 课题2交通灯控制系统院系: 控制与计算机工程学院班级: 自动化1203学号: 1121190308学生姓名:刘帅指导教师:吴华设计周数:1周成绩: ______________________1.1目的:在微机原理及应用课程中分别了微计算机各个基本组成模块的原理和编程技术的基础之上,综合应用各部分知识,在实验室现有设备情况下,设计一个具有一定功能的应用系统,达到对各部分知识加深理解,融会贯通的目的。
1.2要求:用8255实现交通信号灯软件,硬件设计。
8255控制LED发光管实现的十字路口信号灯电路及管理程序,并尽量接近真实信号灯的工作情况。
二、设计(实验)正文1.设计题目:一个十字路口的交通信号灯,东西向为一组,南北向为一组,组内信号灯亮灭情况相同,R6、Y5、G4作为南北路口的交通灯,R2、Y1、G0乍为东西路口的交通等.程使六个灯按交通等变化规律亮灭。
要求进行周期性重复控制:g)南北路口的绿灯、东西路口的红灯同时亮20秒。
h)南北路口的黄灯闪烁3秒,同时东西路口的红灯闪3秒。
i)南北路口的红灯、东西路口的绿灯同时亮90秒。
j)南北路口的红灯、同时东西路口的黄灯亮闪烁3秒。
k)在LED上同步显示倒计时。
2设计过程:2.1 芯片类型及使用:(1 )交通信号灯的灯光变化和数码显示通过8255实现控制。
PA O用于输出信号控制灯光的变化,PB口用于输出信号控制数码管的显示,PC0用于输入k0的控制开关信号,PC佣于输入用于硬件延时的方波信号。
PC7用于输出控制数码管工作/不工作的信号。
故写入方式控制字为10000001B=81H(2儿ED 数码显示:数码管采用共阴极接法,位选信号为0则数码管工作。
a 〜dp段发亮条件:对应位输入1,见下表所示:PB控制计数器的低位(也就是个位)。
(3 )用两片74LS273控制南北东西12个路灯。
D1--D12分别对应芯片的UQ0 Q9 Q7 Q4 Q1、Q10 Q8 Q5 Q2、Q11。
(4)8086的20根地址线分别接到3个74LS273的U6 U7、U10的D口。
(5 )用一片74LS154控制两片8255。
U6 U7、U10的C端经过逻辑运算接入来控制两片8255的显示顺序。
2.2线路连接及写入程序中的数据的计算(1)南北向红灯,东西向黄灯,低电平0无效,高电平1有效•(2)南北向绿灯,东西向红灯,Ied15显然没有,那数据的最高四位一定是(3)南北向黄灯,东西向红灯4。
3.功能流程图及电路连接图(1)功能及程序流程图U11的Q6 Q3 U5的ABC端用1111。
R6, Y1闪3秒(2 )硬件电路 仿真。
4程序 .MODEL SMALL .8086 .STACK .CODE .STARTUPSTART:MOV DX,0406HMOV AL,80H OUT DX,AL MOV DX,0606H MOV AL,80H OUT DX,AL MOV AX,ALL_LIGHT ;数据的地址 0MOV DX,0200H MOV DX,AXAGAIN: MOV SI,OFFSET SITUATION;取得定义数据段的偏移地址EAMOV DX,0200H;273 地址b -L L F F Q K <■R L Kr E F H- h- .1 I 1 I .1 I I I J 112 >1* 11 2 IL亠亠亠亠亠IMLu「士/A XI忙b Ess壬"5I'JZ LJ I'IWH'.|±蚩-1 •<»$<»NEXT: MOV AX,[SI]OUT DX,AX ; 数据输出到交通LED灯上PUSH SILEA SI,LEDLEA DI,TABLEONE;DUAN0:MOV AX,93 ; 赋初值93MOV CX,AXPUSH CXAB: CALL DISPLAYPOP CXDEC CXPUSH CXMOV AX,CXCMP AX,3JGE ABPOP CXPOP SIADD SI,2 ; 下一状态 1MOV DX,0200H MOV AX,[SI] OUT DX,AXPUSH SI LEA SI,LEDLEA DI,TABLETWO;DUAN1:MOV AX,3MOV CX,AX PUSH CXAC: CALL DISPLAYPOP CX DEC CX PUSH CX MOV AX,CX CMP AX,0 JGE ACADD SI,2 ; 下一状态 2MOV DX,0200HMOV AX,[SI]OUT DX,AXPUSH SILEA SI,LEDLEA DI,TABLETHREE;DUAN2:MOV AX,23MOV CX,AXPUSH CXAD: CALL DISPLAYPOP CXDEC CXPUSH CXMOV AX,CXCMP AX,3JGE ADPOP CXPOP SIADD SI,2 ; 下一状态 3MOV DX,0200HMOV AX,[SI]OUT DX,AXPUSH SILEA SI,LEDLEA DI,TABLEFOUR;DUAN3:MOV AX,3MOV CX,AXPUSH CXAE: CALL DISPLAYPOP CXDEC CXPUSH CXMOV AX,CXCMP AX,0JGE AE; 数码管分解显示子程序DISPLAYDISPLAY PROC NEARMOV DX,10DIV DL ;32/10=3,把十位给分解出来显示0, 此时AL=3,AH=2 MOV CL,ALMOV CH,AHXOR BX,BXMOV BL,CLMOV AL,[SI+BX]MOV DX,0400HOUT DX,ALXOR BX,BXMOV BL,CHMOV AL,[SI+BX]MOV DX,0600HOUT DX,ALCALL XUNMOV DX,10DIV DLMOV CL,ALMOV CH,AHXOR BX,BXMOV BL,CLMOV AX,[SI+BX]MOV DX,0402HOUT DX,ALXOR BX,BXMOV BL,CHMOV AL,[SI+BX]MOV DX,0602HOUT DX,ALCALL DELAYRETDISPLAY ENDPXUN PROC NEARMOV AH,0INC DI RETXUN ENDPDELAY 时间)PROC NEAR ;;延时子程序2,延时时间为500*(执行469次循环语句的MOV BX,500 LP1: MOV CX,469 LP2:LOOP LP2 DEC BX JNZ LP1RETDELAY ENDP课程设计(综合实验)总结或结论一周的课程设计结束了,在这次的课程设计中不仅检验了我们所学习的知识,也培养了我们如何去把握一件事 情,如何去做一件事情,又如何完成一件事情。
在设计过程中,同学分工设计,同学们相互探讨,相互学习,相互监督。
学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。
通过这次课程设 计,综合运用本专业所学课程的理论和实际知识进行一次交通灯设计工作的实际训练从而培养和提高学生独立 工作能力,相关的课程都有了全面的复习, 独立思考的能力也有了提高。
在这次设计过程中,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。
由于我们的设计能 力有限,.DATA TABLEONE DB90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,3 7,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10 ,9,8,7,6,5,4 TABLETWO TABLETHREE TABLEFOUR LED 数组0 SITUATION led15,LSB —— 51 高电平1有效 52 DW 那数据的最高四位- -定是53DWSIT_END = $ALL_LIGHT EQU ENDDB DB DB DB 》led0DW 3,2,1,0 20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 3,2,1,03FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;数码管待显示的字符 1111100001100001B 1111010001010001B 1111001100001100B 11111111001010001010B 1111110010010110B;南北向红灯,东西向绿灯,MS ——》 ;南北向红灯, ;南北向绿灯, ;南北向黄灯, 东西向黄灯,低电平0无效,东西向红灯,Ied15显然没有, 东西向红灯 4在设计过程中难免岀现错误,恳请老师们多多指教,我十分乐意接受你们的批评与指正,我们将万分感谢。
四、参考文献[1]郑学坚,周斌•微型计算机原理及应用[M].北京:清华大学出版社,2001.[2]朱定华等•微型计算机原理及应用[M].北京:电子工业出版社,2005.附录(设计流程图、程序、表格、数据等)。