当前位置:文档之家› 微机系统课程设计实验报告---交通信号灯自动控制模拟指示系统[13页].docx

微机系统课程设计实验报告---交通信号灯自动控制模拟指示系统[13页].docx

微机系统课程设计实验报告---交通信号灯自动控制模拟指示系统[13页].docx
微机系统课程设计实验报告---交通信号灯自动控制模拟指示系统[13页].docx

微机系统课程设计实验报告

课题:交通信号灯自动控制模拟指示系统

一、课程设计目的

1.掌握CPU与各芯片管脚连接方法,提高借口扩展硬件电路

的连接能力。

2.加深对定时器、计数器和并行借口芯片的工作方式和编程

方法的理解。

3.掌握交通信号灯自动控制系统的设计思路和实现方法。

二、课程设计内容

设计并实现十字路口通信号自动控制模拟指示系统。设该路口由A、B两条通行相交而成,四个路口各设一组红、黄、绿三色信号灯,用两位数码管作倒计时显示。

三、应用系统设计方案

交通信号灯的亮灭时间及数码管显示时间可以通过8253来控制,8253的时钟源采用时钟信号发生器与分频电路提供,通过计算获得计数初值为1000。按照需要设定工作在方式3.

交通信号灯及数码管可以采用系统提供的相应模块,控制可以通过8255可编程并行借口,PA口控制红黄绿交通灯的亮灭,PB口和PC口控制时间显示数码管的段和位。PC0作为OUT1的输入。

四、系统测试结果

1.基本功能实现

(1)以秒为计时单位,两位数码管以十进制递减计数显示通行剩余时间,在递减计数为零瞬间转换。即南

北的绿灯、东西的红灯同时亮30秒,同时南北路口

数码管递减显示绿灯剩余时间;为0时,南北的黄

灯闪烁5秒钟,同时东西的红灯继续亮;南北的红

灯、东西的绿灯同时亮30秒,同时东西路口数码管

递减显示绿灯剩余时间;为0时,南北红灯继续亮,

同时东西的黄灯闪烁5秒;若不结束,则开始循环。

(2)通过键盘可以对红、黄、绿三色信号灯所亮时间再0~99内任意设定。

(3)十字路口的通行气势状态可自行设定,系统启动后自动运行,按“Q”退出。

2、发挥部分实现

(1)增加人工干预模式,在特殊情况下可通过人工干预,手动控制A、B交通灯的切换时间,并可以随时切

换为自动运行模式。

(2)增加夜间控制功能,交通灯在进入夜间模式后,A、B干道上红、绿灯均不亮,黄灯信号灯闪烁。

(3)增加红灯倒计时显示。

五、课程设计中遇到的问题及解决办法

1.8253的两个计时器的连接及工作方式选择,在查找相关资料后,将两个计时器串联,并工作在方式3下,初始值为

1000。

2.在数码管上同时显示南北红灯、东西绿灯及黄灯的剩余时间

倒计时,在查找相关资料,研究有关程序后解决了该问题。

六、实验体会

微机系统课程设计实验加深了学生对微机系统的理解,提高了团队探讨、查找资料及合作能力,加深了学生对于软、硬件结合的映像,促进了学生总体能力的提升。

七、分组及分工

组长:张栋

软件:马思奇、王刚

硬件:魏世峰、徐珂

八、源程序

// 321.cpp : Defines the entry point for the console application.

//

#include

#include

#include"stdafx.h"

#include"windows.h"

#include"stdio.h"

#include"PCI9052Dll.h"

#include"conio.h"

//using namespace std;

#define DefaultTime 10

#define smgd 0xc0 //数oy码?管¨1段?初?始o?化?¥

#define smgw 0xc0 //数oy码?管¨1位?初?始o?化?¥数oy据Y #define hld 0xf3 //红¨?绿¨?灯ì?初?始o?化?¥数oy据Y

unsigned char table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //0到ì?9

的ì?数oy码?管¨1代?¨2码?

int judge = 0;//,aaa=1; //判D断?黄?灯ì?,ê?若¨?为a黄?灯ì?则¨°为a1,ê?aaa是o?用??来¤??帮??助¨2保à?ê存??干¨|预?è前??红¨?绿¨?灯ì?状á??态??的ì?参?数oy;

unsigned short usIoAddr;

unsigned short Addr;

unsigned char data,data1,data2,data3,data4; //data用??来¤??记?录?当ì?à前??黄?灯ì?的ì?方¤?向¨°,ê?data1,ê?data2,data3,data4用??来¤??记?录?4个?数oy码?管¨1的ì?数oy字á? unsigned char Idata,Idata0,Idata1,Idata3,Idata2; //Idata0和¨aIdata1用??来¤??判D断?时o?à间?是o?否¤?到ì?1秒?,ê?Idata2记?录?被à?干¨|预?è之?前??的ì?灯ì?状á??态??

unsigned char Idata4; //保à?ê存??是o?否¤?为a自á?动?¥运?行D 模?ê式o?

void init_8255()

{

data = 0x81; //初?始o?化?¥。?ê方¤?式o?控?制?字á?。?êA出?,ê?B出?,C高?四?位?出?,ê?低ì¨a四?位?入¨?(ê?§从?¨?8253)ê?,A,B都?为a 方¤?式o?0

OutByte( Addr+3,data);

OutByte( Addr , hld ); //初?始o?化?¥红¨?绿¨?灯ì?。?ê。?êS,N绿¨?,ê?W,E红¨?

OutByte( Addr + 1 , smgd ); //初?始o?化?¥数oy码?

管¨1段?

OutByte( Addr + 2 , smgw ); //初?始o?化?¥数oy码?管¨1位?

}

void init_8253()

{

OpenDevice();

GetIoBase(&usIoAddr);

Addr = usIoAddr;

OutByte( Addr+11 , 0x36 ); //初?始o?化?¥计?数oy器??0,ê?先¨¨低ì¨a后¨?高?,ê?方¤?式o?3,ê?二t进?制?

OutByte( Addr+8 , 0xe8 );

OutByte( Addr+8 , 0x03 );

OutByte( Addr+11 , 0x76 ); //初?始o?化?¥计?数oy器??1,ê?先¨¨低ì¨a后¨?高?,ê?方¤?式o?3,ê?二t进?制?

OutByte( Addr+9 , 0xe8 );

OutByte( Addr+9 , 0x03 );

}

void fun( int a , int b) // a表à¨a示o?红¨?灯ì?时o?à间?. b为a模?ê式o?:0表à¨a示o?南?北à?à,1表à¨a示o?东?西??,2表à¨a示o?夜°1间?模?ê式o? {

char ch;

for( int i = a; i >= -5; i-- ) //显?示o?黄?灯ì?的ì?五?秒?

{

int right_shi,left_shi,right_ge,left_ge,k; //i为a低ì¨a位?

k= i; //k1用??来¤??判D断?绿¨?灯ì?是o?否¤?结¨¢束o?;ê?k为a绿¨?灯ì?时o?à间?

OutByte( Addr , Idata2 );

if(Idata2 = 0xf3)

{

if(i >= 0)

{

right_shi = (i + 5)/10; //right_shi(右?¨°十o?),right_ge(右?¨°个?)为a右?¨°边à?两¢?位?

right_ge = (i + 5)%10;

left_shi = k/10; //left_shi(左á¨?十o?),left_ge(左á¨?个?)为a左á¨?边à?两¢?位?

left_ge = k%10;

}

else if(i < 0 && i >= -5)

{

right_shi = (i + 5)/10; //right_shi(右?¨°十o?),right_ge(右?¨°个?)为a右?¨°边à?两¢?位?

right_ge = (i + 5)%10;

left_shi = (k + 5) / 10; //left_shi(左á¨?十o?),left_ge(左á¨?个?)为a左á¨?边à?两¢?位?

left_ge = (k + 5) % 10;

}

}

if(Idata2 = 0x1e)

{

if(i >= 0)

{

right_shi = (i)/10; //right_shi(右?¨°十o?),right_ge(右?¨°个?)为a右?¨°边à?两¢?位?

right_ge = (i)%10;

left_shi = (k + 5)/10; //left_shi(左á¨?十o?),left_ge(左á¨?个?)为a左á¨?边à?两¢?位?

left_ge = (k + 5)%10;

}

else if(i < 0 && i >= -5)

{

right_shi = (i + 5)/10; //right_shi(右?¨°十o?),right_ge(右?¨°个?)为a右?¨°边à?两¢?位?

right_ge = (i + 5)%10;

left_shi = (k + 5) / 10; //left_shi(左á¨?十o?),left_ge(左á¨?个?)为a左á¨?边à?两¢?位?

left_ge = (k + 5) % 10;

}

}

data3 = table[left_shi]; //data3,4为a左á¨?边à?两¢?位?

data4 = table[left_ge];

data1 = table[right_shi];

data2 = table[right_ge];

// aaa=1;

while( 1 ) //8253计?数oy器??,ê?一°?秒?一°?变à?

{

InByte( Addr+2 , &Idata ); //中D间?参?数oy

Idata1 = Idata & 0x01; //8253输o?入¨?结¨¢果?

if( Idata1 == 0x01 && Idata0 == 0x00 ) //判D断?时o?à间?。?ê一°?秒?一°?次??

{

Idata0 = Idata1;

break;

}

Idata0 = Idata1;

// if(aaa==1) //自á?动?¥运?行D状á??态??

// {

if( judge == 1 ) //若¨?有?D黄?灯ì?。?ê。?ê黄?灯ì?闪|¨¢烁?

{

if(b==1)

{

if( Idata0 == 0x00 )

{

Idata = data | 0x02;

OutByte( Addr , Idata );

InByte ( Addr , &Idata2);

}

if( Idata0 == 0x01 )

{

OutByte( Addr , data );

InByte ( Addr , &Idata2);

}

}

if(b==0)

{

if( Idata0 == 0x00 )

{

Idata = data | 0x10;

OutByte( Addr , Idata );

InByte ( Addr , &Idata2);

}

if( Idata0 == 0x01 )

{

OutByte( Addr , data );

InByte ( Addr , &Idata2);

}

}

if(b==2)

{

if( Idata0 == 0x00 )

{

Idata = data | 0x12;

OutByte( Addr , Idata );

}

if( Idata0 == 0x01 )

{

OutByte( Addr , data );

}

}

}

// }

//南?北à?à绿¨?东?西??红¨?

if( b == 1 )

{

OutByte( Addr+1 , data3 );OutByte( Addr+2 , 0xe0 );

//第ì¨2一°?个?数oy码?管¨1

OutByte( Addr+2 , 0xf0);

OutByte( Addr+1 , data4 );OutByte( Addr+2 , 0xd0 );

//第ì¨2二t个?数oy码?管¨1

OutByte( Addr+2 , 0xf0);

OutByte( Addr+1 , data1 );OutByte( Addr+2 , 0xb0 );

//第ì¨2三¨y个?数oy码?管¨1

OutByte( Addr+2 , 0xf0);

OutByte( Addr+1 , data2 );OutByte( Addr+2 , 0x70 );

//第ì¨2四?个?数oy码?管¨1

OutByte( Addr+2 , 0xf0);

if( k == 0)

// 判D断?绿¨?灯ì?结¨¢束o?

{

OutByte( Addr , 0xf5 );

// 红¨?绿¨?灯ì?互£¤变à?

InByte( Addr , &data );

// 获?得ì?当ì?à前??黄?灯ì?方¤?向¨°;ê?

judge = 1;

}

}

//南?北à?à红¨?东?西??绿¨?

if( b== 0 )

{

OutByte( Addr+1 , data3 );OutByte( Addr+2 , 0xb0 );

//第ì¨2三¨y个?数oy码?管¨1

OutByte( Addr+2 , 0xf0);

OutByte( Addr+1 , data4 );OutByte( Addr+2 , 0x70 );

//第ì¨2四?个?数oy码?管¨1

OutByte( Addr+2 , 0xf0);

OutByte( Addr+1 , data1 );OutByte( Addr+2 , 0xe0 );

//第ì¨2一°?个?数oy码?管¨1

OutByte( Addr+2 , 0xf0);

OutByte( Addr+1 , data2 );OutByte( Addr+2 , 0xd0 );

//第ì¨2二t个?数oy码?管¨1

OutByte( Addr+2 , 0xf0);

if( k == 0 ) // 判D断?绿¨?灯ì?结¨¢束o?

{

OutByte( Addr , 0xee); // 红¨?绿¨?灯ì?互£¤变à?

InByte( Addr , &data ); //获?得ì?当ì?à前??黄?灯ì?方¤?向¨°;ê?

judge = 1;

}

}

/*

InByte( Addr+2 , &Idata3 ); //人¨?工?è干¨|预?è

Idata3 &= 0x06; //只?保à?ê留¢?PC2,ê?PC3口¨2

if( Idata3 == 0x04 )

{

if(aaa==1)

{

InByte ( Addr , &Idata2);

aaa=0;

}

OutByte( Addr , 0xff );

OutByte( Addr , 0xf3 );

}

if( Idata3==0x00 )

{

if(aaa==1)

{

InByte ( Addr , &Idata2);

aaa=0;

}

OutByte( Addr , 0xff );

OutByte( Addr , 0x1e );

}*/

//检¨?查¨|是o?否¤?需¨¨要°a退a?出?系|ì统a3

if(kbhit())

{

ch=getch();

if(ch=='q'||ch=='Q')

{

OutByte(Addr,0xff);

printf("close");

CloseDevice();

return;

}

}

} //while end

}//for end

}

void main()

{

int num1 (0), num2(0); //num为a红¨?灯ì?时o?à间?

init_8253();

init_8255();

//检¨?查¨|当ì?à前??为a哪?种?模?ê式o?

TestCondition:

{

InByte( Addr+2 , &Idata3 ); //人¨?工?è干¨|预?è

Sleep(1000);

Idata4 = Idata3 & 0x06;

if( Idata4 == 0x00)

{

printf("\n-----------交?通a?§灯ì?自á?动?¥模?ê式o?!----------\n ");

Sleep(1000);

num1 = DefaultTime ;

num2 = DefaultTime ;

}

if( Idata4 == 0x04)

{

printf("\n-----------交?通a?§灯ì?干¨|预?è模?ê式o?一°?(ê?§干¨|预?è南?北à?à交?通a?§灯ì?)-------\n");

Sleep(1000);

printf("请?输o?入¨?南?北à?à方¤?向¨°绿¨?灯ì?显?示o?时o?à间?\n");

scanf("%d", &num1);

num2 = DefaultTime;

}

if(Idata4 == 0x02)

{

printf("\n-----------交?通a?§灯ì?干¨|预?è模?ê式o?二t(ê?§干¨|预?è东?西??交?

通a?§灯ì?)-------\n");

Sleep(1000);

printf("请?输o?入¨?东?西??方¤?向¨°绿¨?灯ì?显?示o?时o?à间?\n");

scanf("%d", &num2) ;

num1 = DefaultTime;

}

if(Idata4 == 0x06)

{

printf("\n-----------交?通a?§灯ì?干¨|预?è模?ê式o?三¨y(ê?§干¨|预?è南?北à?à交?通a?§灯ì?)-------\n");

Sleep(1000);

printf("请?输o?入¨?南?北à?à、?é东?西??方¤?向¨°绿¨?灯ì?显?示o?时o?à间?\n");

scanf("%d%d", &num1, &num2);

}

}

while(1)

{

int time_hour,t1=7,t2=8;

SYSTEMTIME current;

GetLocalTime(¤t);

time_hour = current.wHour ;

if( time_hour >= t1 && time_hour <=t2 ) // 判D断?白??á天?¨?或¨°夜°1间?模?ê式o?

{

Idata0 = 0x00;

Idata2=0xf3;

fun( num1 , 1 ); //数oy码?管¨130秒?倒ì1计?

时o?à

OutByte( Addr , 0x1e ); //S,N红¨?,ê?W,E绿¨?

judge = 0;

Idata2=0x1e;

fun( num2 , 0 );

OutByte( Addr , hld ); //S,N绿¨?,ê?W,E红¨?

judge = 0;

goto TestCondition;

}

//进?入¨?夜°1间?模?ê式o?

else

{

OutByte( Addr+2 , 0xf0); //关?闭à?数oy码?管¨1

Idata2=0xed; //四?个?方¤?向¨°都?亮¢¨¢黄?灯ì?

judge = 1; //黄?灯ì?开a关?打?¨°开a

OutByte( Addr , 0xed ); //A口¨2控?制?亮¢¨¢黄?灯ì? 11101101

data = 0xed; //data为a当ì?à前??黄?灯ì?的ì?状á??态??

fun( 0 , 2 ); //进?入¨?夜°1间?模?ê式o?,ê?1秒?后¨?推a?出?

}

}

}

微机系统实验报告

西安电子科技大学 实验报告

实验一汇编语言编程实验 一、实验目的 (1)掌握汇编语言的编程方法 (2)掌握 DOS 功能调用的使用方法 (3)掌握汇编语言程序的调试运行过程 二、实验设备 PC 机一台。 三、实验内容 1. 将指定数据区的字符串数据以ASCII码形式显示在屏幕上,并通过DOS功能调用完成必要提示信息的显示。 2. 在屏幕上显示自己的学号姓名信息。 3. 循环从键盘读入字符并回显在屏幕上,然后显示出对应字符的ASCII码,直到输入”Q”或“q”时结束。 4. 自主设计输入显示信息,完成编程与调试,演示实验结果。 四、实验源码 DA TA SEGMENT DISCHA DB'WangHan 14030188004',0AH,0DH,'$' TAB DB' ',0AH,0DH,'$' BLANK DB' $' DA TA ENDS STACK SEGMENT STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DA TA,SS:STACK START: MOV AX,SEG DISCHA MOV DS,AX MOV DX,OFFSET DISCHA MOV AH,09H INT 21H NEXT: MOV AH,01H INT 21H CMP AL,'Q' JE ENDSS

CMP AL,'q' JE ENDSS MOV BL,AL MOV AX,SEG BLANK MOV DS,AX MOV DX,OFFSET BLANK MOV AH,09H INT 21H MOV BH,0AH MOV DL,BL MOV CL,04H SHR DL,CL CMP DL,BH JNL Q3 JMP Q2 Q1: ADD DL,07H Q2: ADD DL,30H MOV AH,02H INT 21H MOV DL,BL MOV DH,0FH AND DL,DH CMP DL,BH JNL Q3 JMP Q4 Q3: ADD DL,07H Q4: ADD DL,30H MOV AH,02H INT 21H MOV AX,SEG TAB MOV DS,AX MOV DX,OFFSET TAB MOV AH,09H INT 21H MOV CX,0009H LOOP NEXT

微机原理课程设计电压报警器实验报告

南通大学电子信息学院 微机原理课程设计 报告书 课题名: 班级: 姓名: 学号: 指导老师: 日期: xxx

目录 1.设计目的 (2) 2.设计内容 (2) 3.设计要求 (2) 4.设计原理 (3) 5.硬件电路图 (3) 6.程序代码 (5) 7.程序及硬件系统调试情况 (19) 8.设计总结与体会 (19)

一、设计目的 课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力的重要教学环节。它具有动手、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一个重要教学环节。 通过课程设计,要求学生熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,使学生得到微机开发应用方面的初步训练。让学生独立或集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。通过本次课程设计使学生熟练掌握微机系统与接口扩展电路的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。 通过课程设计实践,不仅要培养学生事实求是和严肃认真的工作态度,培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅资料,撰写设计报告表达设计思想和结果的能力。 二、设计内容 设计一个电压报警器,要求采集实验箱提供的0~5V的电压,当输入电压在3V以内,显示电压值,如2.42。当输入电压超过3V,显示ERR,并报警。电压值可在七段数码管显示,点阵广告屏显示或液晶屏显示。报警形式自行设计,

控制系统仿真课程设计报告.

控制系统仿真课程设计 (2011级) 题目控制系统仿真课程设计学院自动化 专业自动化 班级 学号 学生姓名 指导教师王永忠/刘伟峰 完成日期2014年6月

控制系统仿真课程设计一 ———交流异步电机动态仿真 一 设计目的 1.了解交流异步电机的原理,组成及各主要单元部件的原理。 2. 设计交流异步电机动态结构系统; 3.掌握交流异步电机调速系统的调试步骤,方法及参数的整定。 二 设计及Matlab 仿真过程 异步电机工作在额定电压和额定频率下,仿真异步电机在空载启动和加载过程中的转速和电流变化过程。仿真电动机参数如下: 1.85, 2.658,0.2941,0.2898,0.2838s r s r m R R L H L H L H =Ω=Ω===, 20.1284Nm s ,2,380,50Hz p N N J n U V f =?===,此外,中间需要计算的参数如下: 21m s r L L L σ=-,r r r L T R =,22 2 s r r m t r R L R L R L +=,10N m TL =?。αβ坐标系状态方程: 其中,状态变量: 输入变量: 电磁转矩: 2p m p s r s L r d ()d n L n i i T t JL J βααωψψβ=--r m r r s r r d 1d L i t T T ααβαψψωψ=--+r m r r s r r d 1d L i t T T ββαβψψωψ=-++22s s r r m m m s r r s s 2r r r r d d i R L R L L L L i u t L T L L ααβαα σψωψ+=+-+22 s s r r m m m s r r s s 2 r r r r d d i R L R L L L L i u t L T L L ββαββ σψωψ+=--+[ ] T r r s s X i i αβαβωψψ=[ ] T s s L U u u T αβ=()p m e s s s s r n L T i i L βααβ ψψ=-

计算机仿真课程设计报告

、 北京理工大学珠海学院 课程设计任务书 2010 ~2011 学年第 2学期 学生姓名:林泽佳专业班级:08自动化1班指导教师:钟秋海工作部门:信息学院一、课程设计题目 : 《控制系统建模、分析、设计和仿真》 本课程设计共列出10个同等难度的设计题目,编号为:[0号题]、[1号题]、[2号题]、[3号题]、[4号题]、[5号题]、[6号题]、[7号题]、[8号题]、[9号题]。 学生必须选择与学号尾数相同的题目完成课程设计。例如,学号为8xxxxxxxxx2的学生必须选做[2号题]。 二、课程设计内容 (一)《控制系统建模、分析、设计和仿真》课题设计内容|

! " [2 有波纹控制器Dy(z)和一单位速度信号输入时的最少拍无波纹控制器Dw(z)。具体要求见(二)。 (二)《控制系统建模、分析、设计和仿真》课题设计要求及评分标准【共100分】 , 1、求被控对象传递函数G(s)的MATLAB描述。(2分) 2、求被控对象脉冲传递函数G(z)。(4分) 3、转换G(z)为零极点增益模型并按z-1形式排列。(2分) 4、确定误差脉冲传递函数Ge(z)形式,满足单位加速度信号输入时闭环稳态误差为零和实际 闭环系统稳定的要求。(6分) 5、确定闭环脉冲传递函数Gc(z)形式,满足控制器Dy(z)可实现、最少拍和实际闭环系统稳 定的要求。(8分)

6、根据4、5、列写方程组,求解Gc(z)和Ge(z)中的待定系数并最终求解Gc(z)和Ge(z) 。 (12分) 7、求针对单位加速度信号输入的最少拍有波纹控制器Dy(z)并说明Dy(z)的可实现性。 (3分) ! 8、用程序仿真方法分析加速度信号输入时闭环系统动态性能和稳态性能。(7分) 9、用图形仿真方法(Simulink)分析单位加速度信号输入时闭环系统动态性能和稳态性能。 (8分) 10、确定误差脉冲传递函数Ge(z)形式,满足单位速度信号输入时闭环稳态误差为零和实际 闭环系统稳定的要求。(6分) 11、确定闭环脉冲传递函数Gc(z)形式,满足控制器Dw(z)可实现、无波纹、最少拍和实际 闭环系统稳定的要求。(8分) 12、根据10、11、列写方程组,求解Gc(z)和Ge(z)中的待定系数并最终求解Gc(z)和Ge(z) 。 (12分) 13、求针对单位速度信号输入的最少拍无波纹控制器Dw(z)并说明Dw(z)的可实现性。(3分) 14、用程序仿真方法分析单位速度信号输入时闭环系统动态性能和稳态性能。(7分) 15、用图形仿真方法(Simulink)分析单位速度信号输入时闭环系统动态性能和稳态性能。 & (8分) 16、根据8、9、14、15、的分析,说明有波纹和无波纹的差别和物理意义。(4分) 三、进度安排 6月13至6月14:下达课程设计任务书;复习控制理论和计算机仿真知识,收集资料、熟悉仿真工具;确定设计方案和步骤。 6月14至6月16:编程练习,程序设计;仿真调试,图形仿真参数整定;总结整理设计、 仿真结果,撰写课程设计说明书。 6月16至6月17:完成程序仿真调试和图形仿真调试;完成课程设计说明书;课程设计答 辩总结。 [ 四、基本要求

微机控制技术实训报告

重庆航天职业技术学院 温度采集报警报告 报告题目:数字温度计 系部:电子工程系专业:计算机控制技术 姓名: 学号: 指导老师:汤平

温度采集报警任务书 题目:数字温度计 任务与要求: 1、查阅数字温度计设计相关资料,熟悉数字温度计设计的原 理,查阅A/D转换及传感器相关知识,画出数字温度计原理图,并编写相应 的源程序。 2、使用8052单片机作为处理器,设计数字温度计设计,设定温 度最高值和最低值。数码管进行循环显示,显示实际温度值。 3、实现单路的电压采集和显示,显示3位温度值,最后1位显示“C” 4、并用喇叭报警。 发挥部分:将仿真电路图和程序修改为中断方式实现温度采集和显示。

前言 温度的检测与控制是工业生产过程中比较典型的应用之一,随着传感器在生活中的更加广泛的应用,利用新型数字温度传感器实现对温度的测试与控制得到更快的开发,本文设计了一种基于80C52的温度检测及报警系统。该系统可以方便的实现温度采集和显示,并可根据需要任意设定上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。该系统设计和布线简单,结构紧凑,抗干扰能力强,在大型仓库、工厂、智能化建筑等领域的温度检测中有广泛的应用前景。

目录 1、原理 (1) 2、元器件介绍 (2) 3、元器件清单 (7) 4、参考电路图 (8) 5 电路图详解 (10) 6、元器件的排版与焊接 (11) 7、参考程序编写与导入 (12) 8、成品的调试 (15) 9、总结 (16) 10、参考文献 (17)

计算机操作系统 实验报告

操作系统实验报告 学院:计算机与通信工程学院 专业:计算机科学与技术 班级: 学号: 姓名: 指导教师: 成绩: 2014年 1 月 1 日

实验一线程的状态和转换(5分) 1 实验目的和要求 目的:熟悉线程的状态及其转换,理解线程状态转换与线程调度的关系。 要求: (1)跟踪调试EOS线程在各种状态间的转换过程,分析EOS中线程状态及其转换的相关源代码; (2)修改EOS的源代码,为线程增加挂起状态。 2 完成的实验内容 2.1 EOS线程状态转换过程的跟踪与源代码分析 (分析EOS中线程状态及其转换的核心源代码,说明EOS定义的线程状态以及状态转换的实现方法;给出在本部分实验过程中完成的主要工作,包括调试、跟踪与思考等) 1.EOS 准备了一个控制台命令“loop ”,这个命令的命令函数是 ke/sysproc.c 文件中的ConsoleCmdLoop 函数(第797行,在此函数中使用 LoopThreadFunction 函数(第755 行)创建了一个优先级为 8 的线程(后面简称为“loop 线程”),该线程会在控制台中不停的(死循环)输出该线程的ID和执行计数,执行计数会不停的增长以表示该线程在不停的运行。loop命令执行的效果可以参见下图: 2. 线程由阻塞状态进入就绪状态 (1)在虚拟机窗口中按下一次空格键。 (2)此时EOS会在PspUnwaitThread函数中的断点处中断。在“调试”菜单中选择“快速监视”,在快速监视对话框的表达式编辑框中输入表达式“*Thread”,然后点击“重新计算”按钮,即可查看线程控制块(TCB)中的信息。其中State域的值为3(Waiting),双向链表项StateListEntry的Next和Prev指针的值都不为0,说明这个线程还处于阻塞状态,并在某个同步对象的等待队列中;StartAddr域的值为IopConsoleDispatchThread,说明这个线程就是控制台派遣线程。 (3)关闭快速监视对话框,激活“调用堆栈”窗口。根据当前的调用堆栈,可以看到是由键盘中断服务程序(KdbIsr)进入的。当按下空格键后,就会发生键盘中断,从而触发键盘中断服务程序。在该服务程序的最后中会唤醒控制台派遣线程,将键盘事件派遣到活动的控制台。 (4)在“调用堆栈”窗口中双击PspWakeThread函数对应的堆栈项。可以看到在此函数中连续调用了PspUnwaitThread函数和PspReadyThread函数,从而使处于阻塞状态的控制台派遣线程进入就绪状态。 (5)在“调用堆栈”窗口中双击PspUnwaitThread函数对应的堆栈项,先来看看此函数是如何改变线程状态的。按F10单步调试直到此函数的最后,然后再从快速监视对

微机课设实验报告

微机课程设计 数字温度计实验报告

一、题目: 上位机:完成界面设计与通讯程序 1、能够显示两个温度值,温度精度0.5度,当超出报警温度阈值时,温度 值后又提示字幕。 2、能够设定报警温度阈值 3、每隔一秒将温度值保存至文件存档。当超出报警温度阈值时,温度值后 面有提示。 4、可以对串口进行设置。 下位机:完成电路设计与控制程序 1、用两个DS18B20测温。 2、通过串口与上位机通信,并传输温度值,接受阈值设置。 3、当超出报警温度阈值时,有相应指示灯提示。 4、将当前温度显示LCD1602液晶屏上,当超出报警温度阈值时,温度值后 有提示。 二、原理 DS18B20是DALLS公司推出的“1—wire”接口的数字温度传感器,可以直接将温度转换为9~12串行信号供单片机处理。由于这种传感器只有一个IO口,是单总线串行接口,单片机可以利用串行通信将数据读出并按照LCD 的协议显示在1602液晶屏上。同时,通过PC机与单片机之间的串行通信,可以用PC机控制温度的警戒值以及记录不同时间测量的温度。 三、原理图 图3.1 LCD、18B20以及串口与单片机最小系统连接图

图3.2电源模块 四、流程图 1、上位机流程图 图4.1.1发送数据流程图图4.1.2 接受数据流程图

2、下位机流程图 图4.2.2读出温度子程序流程图 图4.2.1总流程图 图4.2.4计算温度子程序流程图

图4.2.3 温度转换流程图 图4.2.6温度值显示在LCD1602上 图4.2.5 显示数据刷新子程序 五、源程序 1、上位机程序:见附录1; 2、下位机程序:见附录2; 3、实验结果显示(上位机):见附录3。

课程设计之matlab仿真报告

西安邮电大学 专业课程设计报告书 院系名称:电子工程学院学生姓名:李群学号05113096 专业名称:光信息科学与技术班级:光信1103 实习时间:2014年4月8日至2014年4月 18日

一、课程设计题目: 用matlab 仿真光束的传输特性。 二、任务和要求 1、用matlab 仿真光束通过光学元件的变换。 ① 设透镜材料为k9玻璃,对1064nm 波长的折射率为1.5062,镜片中心厚度为3mm ,凸面曲 率半径,设为100mm ,初始光线距离透镜平面20mm 。用matlab 仿真近轴光线(至少10条)经过平凸透镜的焦距,与理论焦距值进行对比,得出误差大小。 ② 已知透镜的结构参数为101=r ,0.11=n ,51=d ,5163.121==' n n (K9玻璃), 502-=r ,0.12=' n ,物点A 距第一面顶点的距离为100,由A 点计算三条沿光轴夹角分别为10、20、 30的光线的成像。试用Matlab 对以上三条光线光路和近轴光线光路进行仿真,并得出实际光线的球差大小。 ③ 设半径为1mm 的平面波经凸面曲率半径为25mm ,中心厚度3mm 的平凸透镜。用matlab 仿 真平面波在透镜几何焦平面上的聚焦光斑强度分布,计算光斑半径。并与理论光斑半径值进行对比,得出误差大小。(方法:采用波动理论,利用基尔霍夫—菲涅尔衍射积分公式。) 2、用MATLAB 仿真平行光束的衍射强度分布图样。(夫朗和费矩形孔衍射、夫朗和费圆孔衍射、夫朗和费单缝和多缝衍射。) 3、用MATLAB 仿真厄米—高斯光束在真空中的传输过程。(包括三维强度分布和平面的灰度图。) 4、(补充题)查找文献,掌握各类空心光束的表达式,采用费更斯-菲涅尔原理推导各类空心光束在真空中传输的光强表达式。用matlab 对不同传输距离处的光强进行仿真。 三、理论推导部分 第一大题 (1)十条近轴光线透过透镜时,理想情况下光线汇聚透镜的焦点上,焦点到像方主平面的距离为途径的焦距F ,但由于透镜的折射率和厚度会影响光在传输过程中所走的路径(即光程差Δ)。在用MATLAB 仿真以前先计算平行光线的传输路径。,R 为透镜凸面的曲率半径,h 为入射光线的高度,θ1为入射光线与出射面法线的夹角,θ2为出射光线与法线的夹角,n 为透镜材料的折射率。设透镜的中心厚度为d ,则入射光线经过透镜的实际厚度为:L=(R-d) 光线的入射角为:sinq1=h/R 折射角度满足:sinq2=nsinq1 而实际的光束偏折角度为:θ2-θ1。 由此可以看出,当平行光线照射透镜时,在凸面之前光线平行于光轴,在凸面之后发生了偏折,于光轴交汇一点,这一点成为焦点f ,折线的斜率为(-tan(θ2-θ1))。 (2)根据题意可得,本题所讨论的是与光轴夹角不同的三条光线,经过透镜的两次反射后的成像问题。利用转面公式计算。

微机控制技术实验报告

《微机控制技术》课程设计报告 课题:最少拍控制算法研究专业班级:自动化1401 姓名: 学号: 指导老师:朱琳琳 2017年5月21日

目录 1. 实验目的 (3) 2. 控制任务及要求 (3) 3. 控制算法理论分析 (3) 4. 硬件设计 (5) 5. 软件设计 (5) 无纹波 (5) 有纹波 (7) 6. 结果分析 (9) 7. 课程设计体会 (10)

1.实验目的 本次课程设计的目的是让同学们掌握微型计算机控制系统设计的一般步骤,掌握系统总体控制方案的设计方法、控制算法的设计、硬件设计的方法。学习并熟悉最少拍控制器的设计和算法;研究最少拍控制系统输出采样点间纹波的形成;熟悉最少拍无纹波控制系统控制器的设计和实现方法。复习单片机及其他控制器在实际生活中的应用,进一步加深对专业知识的认识和理解,使自己的设计水平、对所学知识的应用能力以及分析问题解决问题的能力得到全面提高。 2.控制任务及要求 1.设计并实现具有一个积分环节的二阶系统的最少拍有纹波控制和无纹波控制。 对象特性G (s )= 采用零阶保持器H 0(s ),采样周期T =,试设计单位阶跃,单位速度输入时的有限拍调节器。 2.用Protel 、Altium Designer 等软件绘制原理图。 3.分别编写有纹波控制的算法程序和无纹波控制的算法程序。 4.绘制最少拍有纹波、无纹波控制时系统输出响应曲线,并分析。 3.控制算法理论分析 在离散控制系统中,通常把一个采样周期称作一拍。最少拍系统,也称为最小调整时间系统或最快响应系统。它是指系统对应于典型的输入具有最快的响应速度,被控量能经过最少采样周期达到设定值,且稳态误差为定值。显然,这样对系统的闭环脉冲传递函数)(z φ提出了较为苛刻的要求,即其极点应位于Z 平面的坐标原点处。 1最少拍控制算法 计算机控制系统的方框图为: 图7-1 最少拍计算机控制原理方框图 根据上述方框图可知,有限拍系统的闭环脉冲传递函数为: ) ()(1)()()()()(z HG z D z HG z D z R z C z +==φ (1) )(1)()(11)()()(1z z HG z D z R z E z e φφ-=+== (2) 由(1) 、(2)解得:

微机汇编语言编程系统实验报告

微机系统实验报告 实验一汇编语言编程实验 一、实验目的 (1)掌握汇编语言的编程方法 (2)掌握DOS功能调用的使用方法 (3)掌握汇编语言程序的调试运行过程 二、实验设备 PC机一台。 三、实验内容 (1)将指定数据区的字符串数据以ASCII码形式显示在屏幕上,并通过DOS功能调用完成必要提示信息的显示。 (2) 在屏幕上显示自己的学号姓名信息。 (3)循环从键盘读入字符并回显在屏幕上,然后显示

出对应字符的ASCII码,直到输入“Q”或“q”时结束。 (4)自主设计输入显示信息,完成编程与调试,演示实验结果。 考核方式:完成实验内容(1)(2)(3)通过, 完成实验内容(4)优秀。 实验中使用的DOS功能调用:INT 21H 表3-1-1 显示实验中可使用DOS功能调用

四、实验步骤 (1)运行QTHPCI软件,根据实验内容编写程序,参考程序流程如图3-1-1所示。 (2)使用“项目”菜单中的“编译”或“编译连接”命令对实验程序进行编译、连接。

(3)“调试”菜单中的“进行调试”命令进入Debug调试,观察调试过程中数据传输指令执行后各寄存器及数据区的内容。按F9连续运行。 (4)更改数据区的数据,考察程序的正确性。 五、实验程序 DATA SEGMENT BUFFER DB '03121370konglingling:',0AH,0DH,'$' BUFFER2 DB 'aAbBcC','$' BUFFER3 DB 0AH,0DH,'$' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX mov ah,09h mov DX,OFFSET BUFFER int 21h MOV SI,OFFSET BUFFER2

微机原理课程设计报告

微型计算机技术课程设计 指导教师: 班级: 姓名: 学号: 班内序号: 课设日期: _________________________

目录 一、课程设计题目................. 错误!未定义书签。 二、设计目的..................... 错误!未定义书签。 三、设计内容..................... 错误!未定义书签。 四、设计所需器材与工具 (3) 五、设计思路..................... 错误!未定义书签。 六、设计步骤(含流程图和代码) ..... 错误!未定义书签。 七、课程设计小结 (36)

一、课程设计题目:点阵显示系统电路及程序设计 利用《汇编语言与微型计算机技术》课程中所学的可编程接口芯片8253、8255A、8259设计一个基于微机控制的点阵显示系统。 二、设计目的 1.通过本设计,使学生综合运用《汇编语言与微型计算机技术》、《数字电子技术》等课程的内容,为今后从事计算机检测与控制工作奠定一定的基础。 2.掌握接口芯片8253、8255A、8259等可编程器件、译码器74LS138、8路同相三态双向总线收发器74LS245、点阵显示器件的使用。 3.学会用汇编语言编写一个较完整的实用程序。 4.掌握微型计算机技术应用开发的全过程,包括需求分析、原理图设计、元器件选用、布线、编程、调试、撰写报告等步骤。 三、设计内容 1.点阵显示系统启动后的初始状态 在计算机显示器上出现菜单: dot matrix display system 1.←left shift display 2.↑up shift display 3.s stop 4.Esc Exit 2.点阵显示系统运行状态 按计算机光标←键,点阵逐列向左移动并显示:“微型计算机技术课程设计,点阵显示系统,计科11302班,陈嘉敏,彭晓”。 按计算机光标↑键,点阵逐行向上移动并显示:“微型计算机技术课程设计,点阵显示系统,计科11302班,陈嘉敏,彭晓”。 按计算机光标s键,点阵停止移动并显示当前字符。 3.结束程序运行状态 按计算机Esc键,结束点阵显示系统运行状态并显示“停”。 四.设计所需器材与工具 1.一块实验面包板(内含时钟信号1MHz或2MHz)。 2.可编程芯片8253、8255、74LS245、74LS138各一片,16×16点阵显示器件一片。

基于Simulink仿真双闭环系统综合课程设计报告书

课程设计 双闭环直流调速系统设计及仿真验证 学院年级:工程学院08级 组长:陈春明学号200830460102 08自动化1班成员一:陈木生学号 200830460103 08自动化1班 指导老师: 日期: 2012-2-28 华南农业大学工程学院

摘要 转速、电流双闭环调速系统是应用最广的直流调速系统,由于其静态性能良好,动态响应快,抗干扰能力强,因而在工程设计中被广泛地采用。现在直流调速理论发展得比较成熟,但要真正设计好一个双闭环调速系统并应用于工程设计却有一定的难度。 Matlab是一高性能的技术计算语言,具有强大的科学数据可视化能力,其中Simulink具有模块组态简单、性能分析直观的优点,方便了系统的动态模型分析。应用Simulink来研究双闭环调速系统,可以清楚地观察每个时刻的响应曲线,所以可以通过调整系统的参数来得出较为满意的波形,即良好的性能指标,这给分析双闭环调速系统的动态模型带来很大的方便。 本研究采用工程设计方法,并利用Matlab协助分析双闭环调速系统,依据自动控制系统快、准、稳的设计要求,重点分析系统的起动过程。 关键词:双闭环直流调速 Simulink 自动控制

目录 1、直流电机双闭环调速系统的结构分析....................... 1.1 双闭环调速系统的组成............................... 1.2 双闭环调速系统的结构.................................... 2 、建立直流电机双闭环调速系统的模型............................ 2.1 小型直流调速系统的指标及参数......................... 2.2 电流环设计............................................... 2.3 转速环设计................................................ 3、直流电动机双闭环调速系统的MATLAB仿真.................... 3.1 系统框图的搭建............................................. 3.2 PI控制器参数的设置...................................... 3.3 仿真结果.................................................... 4、结论与总结....................................................... 5、参考资料.......................................................

微机实验报告(1)

《微机实验》报告 实验名称 KeilC的使用与汇编语言上机操作 指导教师刘小英 专业班级中法1201 姓名肖洋学号 U3 联系电话 一、任务要求 1.掌握KeilC环境的使用 1)字节拆分、合并:调试程序,观察相关寄存器和单元的内容。 2)数据块填充:调试程序,观察相关寄存器和单元的内容。 2. 编写两个十六位数的加法程序。 有两个十六位无符号数,分别存放在从20H和30H开始的数据区中,低八位先存,高八 位在后,和存于R3(高八位)和R4(低八位),进位位存于R2。 二、设计思路 1.字节拆分、合并程序:利用汇编语言中的 XCHD 和 SWAP 两个语句来实现将八位二进制 数拆分为两个四位二进制数并分别存储于不同的存储空间的功能,BCD 码与 30H 相或(加 上 30H)得到 ASCII 码。将两个 ASCII 码和 0FH 相与(高四位清零)得到 BCD 码,利 用 SWAP 语句将高位数放至高四位,将高位数和低位数相或可实现字节的合并。 2.数据块填充程序:将 R0 用作计数器,DPTR 用作片外数据指针,A 作为原始数据来源, 依顺序在片外的存储单元内容填充数据。利用循环语句来减少程序长度,并控制填充单 元个数为片外 100H 个。(通过 R0 的进位控制) 3.两个十六位数加法程序:把第一个十六位无符号数的地八位和高八位分别存于 20H 和 21H 中,把第二个十六位无符号数的地八位和高八位分别存于 30H 和 31H 中,对 20H 和 30H 中的两个低八位进行 ADD 加法操作,结果存于 R4 中;然后对 21H 和 31H 中的两 个高八位进行 ADDC 带进位的加法操作,结果存于 R3 中.然后将累加器 A 清零,并和#00H

华科_计算机系统实验报告

课程实验报告课程名称:计算机系统基础 专业班级: 学号: 姓名: 指导教师: 报告日期:年月日 计算机科学与技术学院

目录 实验1: (1) 实验2: (7) 实验3: (24) 实验总结 (34)

实验1:数据表示 1.1 实验概述 实验目的:更好地熟悉和掌握计算机中整数和浮点数的二进制编码表示。 实验目标:加深对数据二进制编码表示的了解。 实验要求:使用有限类型和数量的运算操作实现一组给定功能的函数。 实验语言:c。 实验环境:linux 1.2 实验内容 需要完成bits.c中下列函数功能,具体分为三大类:位操作、补码运算和浮点数操作。 1)位操作 表1列出了bits.c中一组操作和测试位组的函数。其中,“级别”栏指出各函数的难度等级(对应于该函数的实验分值),“功能”栏给出函数应实现的输出(即功能),“约束条件”栏指出你的函数实现必须满足的编码规则(具体请查看bits.c中相应函数注释),“最多操作符数量”指出你的函数实现中允许使用的操作符的最大数量。 你也可参考tests.c中对应的测试函数来了解所需实现的功能,但是注意这些测试函数并不满足目标函数必须遵循的编码约束条件,只能用做关于目标函数正确行为的参考。 表1 位操作题目列表

2)补码运算 表2列出了bits.c中一组使用整数的补码表示的函数。可参考bits.c中注释说明和tests.c中对应的测试函数了解其更多具体信息。 表2 补码运算题目列表 3)浮点数操作 表3列出了bits.c中一组浮点数二进制表示的操作函数。可参考bits.c中注释说明和tests.c中对应的测试函数了解其更多具体信息。注意float_abs的输入参数和返回结果(以及float_f2i函数的输入参数)均为unsigned int类型,但应作为单精度浮点数解释其32 bit二进制表示对应的值。 表3 浮点数操作题目列表

MATLAB仿真课程设计报告

北华大学 《MATLAB仿真》课程设计 姓名: 班级学号: 实习日期: 辅导教师:

前言 科学技术的发展使的各种系统的建模与仿真变得日益复杂起来。如何快速有效的构建系统并进行系统仿真,已经成为各领域学者急需解决的核心问题。特别是近几十年来随着计算机技术的迅猛发展,数字仿真技术在各个领域都得到了广泛的应用与发展。而MATLAB作为当前国际控制界最流行的面向工程和科学计算的高级语言,能够设计出功能强大、界面优美、稳定可靠的高质量程序,而且编程效率和计算效率极高。MATLAB环境下的Simulink是当前众多仿真软件中功能最强大、最优秀、最容易使用的一个系统建模、仿真和分析的动态仿真环境集成工具箱,并且在各个领域都得到了广泛的应用。 本次课程设计主要是对磁盘驱动读取系统校正部分的设计,运用自动控制理论中的分析方法,利用MATLAB对未校正的系统进行时域和频域的分析,分析各项指标是否符合设计目标,若有不符合的,根据自动控制理论中的校正方法,对系统进行校正,直到校正后系统满足设计目标为止。我组课程设计题目磁盘驱动读取系统的开环传递函数为是设计一个校正装置,使校正后系统的动态过程超调量δ%≤7%,调节时间ts≤1s。 电锅炉的温度控制系统由于存在非线性、滞后性以及时变性等特点,常规的PID控制器很难达到较好的控制效果。考虑到模糊控制能对复杂的非线性、时变系统进行很好的控制, 但无法消除静态误差的特点, 本设计将模糊控制和常规的PI D控制相结合, 提出一种模糊自适应PID控制器的新方法。并对电锅炉温度控制系统进行了抗扰动的仿真试验, 结果表明, 和常规的PI D控制器及模糊PI D复合控制器相比,模糊自适应PI D控制改善了系统的动态性能和鲁棒性, 达到了较好的控制效果。

计算机控制技术实验报告

精品文档

精品文档 实验一过程通道和数据采集处理 为了实现计算机对生产过程或现场对象的控制,需要将对象的各种测量参数按 要求转换成数字信号送入计算机;经计算机运算、处理后,再转换成适合于对生产 过程进行控制的量。所以在微机和生产过程之间,必须设置信息的传递和变换的连 接通道,该通道称为过程通道。它包括模拟量输入通道、模拟量输出通道、数字量 输入通道、数字量输出通道。 模拟量输入通道:主要功能是将随时间连续变化的模拟输入信号变换成数字信 号送入计算机,主要有多路转化器、采样保持器和 A/D 转换器等组成。模拟量输出通道:它将计算机输出的数字信号转换为连续的电压或电流信 号,主要有 D/A 转换器和输出保持器组成。 数字量输入通道:控制系统中,以电平高低和开关通断等两位状态表示的 信号称为数字量,这些数据可以作为设备的状态送往计算机。 数字量输出通道:有的执行机构需要开关量控制信号 ( 如步进电机 ) ,计算机 可以通过 I/O 接口电路或者继电器的断开和闭合来控制。 输入与输出通道 本实验教程主要介绍以 A/D 和 D/A 为主的模拟量输入输出通道, A/D 和D/A的 芯片非常多,这里主要介绍人们最常用的 ADC0809和 TLC7528。 一、实验目的 1.学习 A/D 转换器原理及接口方法,并掌握ADC0809芯片的使用 2.学习 D/A 转换器原理及接口方法,并掌握TLC7528 芯片的使用 二、实验内容 1.编写实验程序,将- 5V ~ +5V 的电压作为 ADC0809的模拟量输入,将 转换所得的 8 位数字量保存于变量中。 2.编写实验程序,实现 D/A 转换产生周期性三角波,并用示波器观察波形。 三、实验设备 + PC 机一台, TD-ACC实验系统一套, i386EX 系统板一块 四、实验原理与步骤 1.A/D 转换实验 ADC0809芯片主要包括多路模拟开关和 A/D 转换器两部分,其主要特点为:单 电源供电、工作时钟 CLOCK最高可达到 1200KHz 、8 位分辨率, 8 +个单端模拟输 入端, TTL 电平兼容等,可以很方便地和微处理器接口。 TD-ACC教学系统中的 ADC0809芯片,其输出八位数据线以及 CLOCK线已连到控制计算机的数据线及系统应用时钟1MCLK(1MHz) 上。其它控制线根据实验要求可另外连接(A 、B、C、STR、/OE、EOC、IN0~ IN7) 。根据实验内容的第一项要求,可以设计出如图 1.1-1 所示 的实验线路图。

华中科技大学计算机操作系统实验报告

实验目的 掌握Linux操作系统的使用方法; 了解Linux系统内核代码结构; 掌握实例操作系统的实现方法。 一、实验要求 1、掌握Linux操作系统的使用方法,包括键盘命令、系统调用;掌握在Linux 下的编程环境。 ●编一个C程序,其内容为实现文件拷贝的功能; ●编一个C程序,其内容为分窗口同时显示三个并发进程的运行结 果。要求用到Linux下的图形库。 2、掌握系统调用的实现过程,通过编译内核方法,增加一个新的系统调用。 另编写一个应用程序,调用新增加的系统调用。 实现的功能是:文件拷贝; 3、掌握增加设备驱动程序的方法。通过模块方法,增加一个新的设备驱动 程序,其功能可以简单。 实现字符设备的驱动; 4、了解和掌握/proc文件系统的特点和使用方法 ●了解/proc文件的特点和使用方法 ●监控系统状态,显示系统中若干部件使用情况 ●用图形界面实现系统监控状态。 5、设计并实现一个模拟的文件系统(选作) 二、实验一 1、编一个C程序,其内容为实现文件拷贝的功能 要实现文件拷贝功能,主要用到的函数是fopen、fputc、fgetc。 主要用到的头文件: #include #include 设计思路:由scanf函数获取2个文件名,根据其文件名和路径分别打开该2个文件,设置一个循环,从源文件复制1个字节到目 的文件,直到源文件指针到文件尾,最后关闭2个文件。 在可能出错的地方需要加上相应的报错代码,并输出错误信息,以方便调试。 理清楚设计思路后,首先搭建linux下编程环境。 安装gcc:sudo apt-get install build-essential 安装codeblocks:sudo apt-get install codeblocks 在集成开发环境Code::Blocks IDE下根据需求写出相应的源代码copy.c,将程序编译并生成exe可执行文件。 然后手动创建一个测试文件test.txt ,运行copy.exe文件,并输入

微机系统课程设计实验报告---交通信号灯自动控制模拟指示系统[13页].docx

微机系统课程设计实验报告

课题:交通信号灯自动控制模拟指示系统 一、课程设计目的 1.掌握CPU与各芯片管脚连接方法,提高借口扩展硬件电路 的连接能力。 2.加深对定时器、计数器和并行借口芯片的工作方式和编程 方法的理解。 3.掌握交通信号灯自动控制系统的设计思路和实现方法。 二、课程设计内容 设计并实现十字路口通信号自动控制模拟指示系统。设该路口由A、B两条通行相交而成,四个路口各设一组红、黄、绿三色信号灯,用两位数码管作倒计时显示。 三、应用系统设计方案 交通信号灯的亮灭时间及数码管显示时间可以通过8253来控制,8253的时钟源采用时钟信号发生器与分频电路提供,通过计算获得计数初值为1000。按照需要设定工作在方式3. 交通信号灯及数码管可以采用系统提供的相应模块,控制可以通过8255可编程并行借口,PA口控制红黄绿交通灯的亮灭,PB口和PC口控制时间显示数码管的段和位。PC0作为OUT1的输入。

四、系统测试结果 1.基本功能实现 (1)以秒为计时单位,两位数码管以十进制递减计数显示通行剩余时间,在递减计数为零瞬间转换。即南 北的绿灯、东西的红灯同时亮30秒,同时南北路口 数码管递减显示绿灯剩余时间;为0时,南北的黄 灯闪烁5秒钟,同时东西的红灯继续亮;南北的红 灯、东西的绿灯同时亮30秒,同时东西路口数码管 递减显示绿灯剩余时间;为0时,南北红灯继续亮, 同时东西的黄灯闪烁5秒;若不结束,则开始循环。 (2)通过键盘可以对红、黄、绿三色信号灯所亮时间再0~99内任意设定。 (3)十字路口的通行气势状态可自行设定,系统启动后自动运行,按“Q”退出。 2、发挥部分实现 (1)增加人工干预模式,在特殊情况下可通过人工干预,手动控制A、B交通灯的切换时间,并可以随时切 换为自动运行模式。 (2)增加夜间控制功能,交通灯在进入夜间模式后,A、B干道上红、绿灯均不亮,黄灯信号灯闪烁。 (3)增加红灯倒计时显示。

仿真课设报告

仿真课程设计报告 题目: 柔性生产线仿真案例 班级:物流 姓名: 学号: 指导教师: 2015年9月23日

目录 一、课程设计目的 (3) 二、课程设计内容 (3) 三、设计步骤 (3) 3.1案例分析 (3) 3.1.1案例说明 (3) 3.1.2建模步骤 (5) 3.1.3主要技术设计 (5) 3.2模型搭建 (6) 3.2.1基础空间总体布局 (6) 3.2.2Track设计 (6) 3.2.3加工设备的设计 (7) 3.2.4工件和AGV的属性设计 (9) 3.2.5表的设计 (10) 3.2.6工件生成器和消灭器的设计 (12) 3.2.7Method和Variable的设计 (12) 3.3仿真实现 (13) 3.3.1工件加工流程及时间设计 (13) 3.3.2任务队列设计 (13) 3.3.3小车的运行规则设计 (14) 3.3.4其它控制方法 (17) 四、仿真分析 (20) 4.1设备利用率 (20) 4.2轨道利用率 (21) 4.3加工总时间 (22) 五、模型优化 (22) 5.1订单投产优化 (22) 5.2小车优化 (23) 5.3其它优化 (26) 六、课设总结 (29)

一、课程设计目的 本课程设计是与物流工程专业教学配套的实践环节之一,结合《现代生产管理》、《设施布置与规划》、《离散系统建模与仿真》等课程的具体教学知识点开展。在完成以上课堂教学的基础上,进行一次全面的实操性锻炼。设计采用企业的实际案例数据,要求完成生产线物流仿真建模和生产线物流优化方案设计两大方面的实际设计内容。 通过本环节的设计锻炼,我们可以加深对本课程理论与方法的掌握,同时具备分析和解决生产运作系统问题的能力,改变传统的理论教学与生产实际脱节的现象。 二、课程设计内容 以某企业柔性制造系统(FMS)为对象,按该企业的生产实际资料为设计依据。对该柔性制造系统进行建模和仿真,通过模拟该制造系统的物流状况,寻找优化的物流方案进行产能平衡,并针对优化后的方案再次进行仿真,对比两个仿真结果在交货期要求,设备利用率等方面的不同,并制定该柔性制造系统生产作业计划。 三、设计步骤 3.1案例分析 3.1.1案例说明 1.柔性制造系统状况: 某企业柔性制造系统共有5台加工中心,定义加工中心名称分别为CNC_1、CNC_2、CNC_3、CNC_4、CNC_5。该制造系统内有一辆AGV小车,运行速度为1米/秒,可控制其实现不同的运送策略。每台设备入口和出口前有容量为4的缓冲,工件在由设备完成加工前后必须经过入口缓冲和出口缓冲,每台设备由一工人负

相关主题
文本预览
相关文档 最新文档