文档库 最新最全的文档下载
当前位置:文档库 › 微机课设实验报告

微机课设实验报告

微机课设实验报告
微机课设实验报告

微机课程设计

数字温度计实验报告

一、题目:

上位机:完成界面设计与通讯程序

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。

六、问题与解决

1、电路图绘制

使用Altium Designer绘制电路图,因为是现学绘制,因此对于绘制过程中的单片机等器件的封装问题由于软件数据库的容量,其中并没有提供单片机芯片的封装。因此是询问了同学以及上网下载数据库,对于MAX232则是直接用矩形框绘制。

2、下位机程序编写

下位机的程序主要用keil4编写,出现的问题是遗忘了很多编写注意事项,只能采集温度,而无法正常显示在LCD1602液晶屏上,查找了LCD1602的数据手册以及基础显示程序,可以显示温度。但是,在于上位机的信号传送时又出问题,只能发送数据,无法接收,以至于无法控制阈值温度,后来队友侯棋文解决了。

七、总结

本次课程设计题目是数字温度计,分为上位机程序界面曲线阈值控制以及下位机程序

以及下位机的温度采集显示。上位机程序用C#编写,下位机用keil编写,我主要是下位机程序。从DS18B20的初始化采集温度,到LCD1602的初始化显示温度学到了很多也暴露了很多基础不扎实的问题。串口的通信数据传送还未把握住。不过收获了很多,重新系统的学习了程序的编写及其具体使用,对于主动学习有了跟明显的理解。同事注重问题交流以及询问。

八、工作量说明

侯棋文负责上位机程序的编写(c#)绘制流程图以及指导队友下位机的程序编写;

林天颂负责下位机程序的编写(c)绘制流程图和电路图的绘制。

附录1:

下位机程序

//头文件:

#include "reg51.h"

#include "ds18b20.h" //引入DS18B20头文件

/********宏定义***********************************************************/

#define LCD_Data P0

#define Busy 0x80 //用于检测LCD状态字中的Busy标识

//变量定义:

unsigned char datasend[3];

unsigned char ly_dis[4];//定义显示缓冲区

unsigned char l_posit=0; //显示位置

//引脚定义:

sbit LCD_RS=P1^0;//定义引脚

sbit LCD_RW=P1^1;

sbit LCD_E=P1^2;

/********函数声明*************************************************************/

void WriteDataLCD(unsigned char WDLCD); //写数据

void WriteCommandLCD(unsigned char WCLCD,BuysC); //写命令

unsigned char ReadDataLCD(void); //读数据

unsigned char ReadStatusLCD(void); //读状态

void LCDInit(void); //初始化

void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData); //相应坐标显示字节内容

void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData); //相应坐标开始显示一串内容

void Delay5Ms(void); //延时

void Delay400Ms(void); //延时

//函数声明:

//void display(void);//显示函数,显示缓冲区内容

void delay(void);

void delaysend(int ms)

{

int i;

for (i=0;i

{

;

}

}

//主函数,C语言的入口函数:

void main()

{

float temp;

int canhigh = 0;

int canlow = 0;

unsigned int i=0;

float tt;

int ltemp;

unsigned char ldat;

TMOD=0X20; //设置定时器1为模式2,做为波特率发生器

TL1=0xF3; //2400波特率的初值,板子使用12M晶振,初值=256-12000000/32/12/2400

TH1=0xF3; //

TR1=1; //启动波特率发生

SCON=0x50;

datasend[0] = 0xff;

//lcd开始

Delay400Ms(); //启动等待,等LCD讲入工作状态

LCDInit(); //初始化

Delay5Ms(); //延时片刻(可不要)

while(1){

if(i==0)

tmpchange(); //温度转换

if(i==100){

tt=tmp()*0.0625; //得到真实十进制温度值,因为DS18B20

//可以精确到0.0625度,所以读回数据的最低位代表的是0.0625度。

ltemp=tt*10+0.5; //放大十倍,这样做的目的将小数点后第一位也转换为可显示数字,同时进行一个四舍五入操作。

if(ltemp<0){ //判断第一位显示整数还是负号

ly_dis[0]=0xbf;

ltemp=0-ltemp;

}

else

ly_dis[0]=ltemp/1000;//显示百位值

ltemp=ltemp%1000;

ly_dis[1]=ltemp/100; //显示温度十位值

ltemp=ltemp%100;

ly_dis[2]=ltemp/10; //显示温度个位值

ly_dis[3]=ltemp%10; //显示小数点后一位

datasend[1] = ly_dis[0]*10+ly_dis[1];

datasend[2] = ly_dis[2]*10+ly_dis[3];

SBUF=datasend[0]; //将接收到的数据发送出去

while(!TI); //等待发送完成

TI=0;

delaysend(500);

SBUF=datasend[1]; //将接收到的数据发送出去

while(!TI); //等待发送完成

TI=0;

delaysend(500);

SBUF=datasend[2]; //将接收到的数据发送出去

while(!TI); //等待发送完成

TI=0;

delaysend(500);

}

DisplayOneChar(0,1,(unsigned char)(48+ly_dis[0])); //将数据在LCD1602上显示

DisplayOneChar(1,1,(unsigned char)(48+ly_dis[1]));

DisplayOneChar(2,1,(unsigned char)(48+ly_dis[2]));

DisplayOneChar(3,1,46);

DisplayOneChar(4,1,(unsigned char)(48+ly_dis[3]));

temp = ly_dis[0]*100+ly_dis[1]*10+ly_dis[2]+ly_dis[3]/10.0;

if (temp>32&&canhigh ==0) //如果超过阈值上限显示警告“HIGH”

{

canhigh = 1;

DisplayOneChar(0,0,'H');

DisplayOneChar(1,0,'I');

DisplayOneChar(2,0,'G');

DisplayOneChar(3,0,'H');

}

if (temp<32&& canhigh==1) //如果超过阈值上限,在显示警告同时显示温度值

{

DisplayOneChar(0,0,' ');

DisplayOneChar(1,0,' ');

DisplayOneChar(2,0,' ');

DisplayOneChar(3,0,' ');

canhigh = 0;

}

if (temp<29&&canlow ==0) //如果低于阈值下限显示警告“LOW”

{

canlow = 1;

DisplayOneChar(0,0,'L');

DisplayOneChar(1,0,'O');

DisplayOneChar(2,0,'W');

}

if (temp>29&&canlow ==1) //如果低于阈值上下限,在显示警告同时显示温度值

{

canlow = 0;

DisplayOneChar(0,0,' ');

DisplayOneChar(1,0,' ');

DisplayOneChar(2,0,' ');

// DisplayOneChar(3,0,'H');

}

i++;

if(i==3000)

i=0;

//display(); //调用显示

delay();

}

}

/***********写数据********************************************************/

void WriteDataLCD(unsigned char WDLCD)

{

ReadStatusLCD(); //检测忙

LCD_Data = WDLCD;

LCD_RS = 1;

LCD_RW = 0;

LCD_E = 0; //若晶振速度太高可以在这后加小的延时

LCD_E = 0; //延时

LCD_E = 1;

}

/***********写指令********************************************************/ void WriteCommandLCD(unsigned char WCLCD,BuysC) //BuysC为0时忽略忙检测

{

if (BuysC) ReadStatusLCD(); //根据需要检测忙

LCD_Data = WCLCD;

LCD_RS = 0;

LCD_RW = 0;

LCD_E = 0;

LCD_E = 0;

LCD_E = 1;

}

/***********读数据********************************************************/ unsigned char ReadDataLCD(void)

{

LCD_RS = 1;

LCD_RW = 1;

LCD_E = 0;

LCD_E = 0;

LCD_E = 1;

return(LCD_Data);

}

/***********读状态*******************************************************/ unsigned char ReadStatusLCD(void)

{

LCD_Data = 0xFF;

LCD_RS = 0;

LCD_RW = 1;

LCD_E = 0;

LCD_E = 0;

LCD_E = 1;

while (LCD_Data & Busy); //检测忙信号

return(LCD_Data);

}

/***********初始化********************************************************/ void LCDInit(void)

{

LCD_Data = 0;

WriteCommandLCD(0x38,0); //三次模式设置,不检测忙信号

Delay5Ms();

WriteCommandLCD(0x38,0);

Delay5Ms();

WriteCommandLCD(0x38,0);

Delay5Ms();

WriteCommandLCD(0x38,1); //显示模式设置,开始要求每次检测忙信号

WriteCommandLCD(0x08,1); //关闭显示

WriteCommandLCD(0x01,1); //显示清屏

WriteCommandLCD(0x06,1); //显示光标移动设置

WriteCommandLCD(0x0C,1); //显示开及光标设置

}

/***********按指定位置显示一个字符*******************************************/

void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)

{

Y &= 0x1;

X &= 0xF; //限制X不能大于15,Y不能大于1

if (Y) X |= 0x40; //当要显示第二行时地址码+0x40;

X |= 0x80; //算出指令码

WriteCommandLCD(X, 0); //这里不检测忙信号,发送地址码

WriteDataLCD(DData);

}

/***********按指定位置显示一串字符*****************************************/ void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData)

{

unsigned char ListLength;

ListLength = 0;

Y &= 0x1;

X &= 0xF; //限制X不能大于15,Y不能大于1

while (DData[ListLength]>=0x20){ //若到达字串尾则退出

if (X <= 0xF){ //X坐标应小于0xF

DisplayOneChar(X, Y, DData[ListLength]); //显示单个字符

ListLength++;

X++;

}

}

}

/***********短延时********************************************************/ void Delay5Ms(void)

{

unsigned int TempCyc = 5552;

while(TempCyc--);

}

/***********长延时********************************************************/ void Delay400Ms(void)

{

unsigned char TempCycA = 5;

unsigned int TempCycB;

while(TempCycA--){

TempCycB=7269;

while(TempCycB--);

}

}

//延时子函数,短暂延时

void delay(void){

unsigned char i=10;

while(i--);

}

附录2:

上位机程序

附录3:

实验结果上位机界面截图:

微机系统实验报告

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

实验一汇编语言编程实验 一、实验目的 (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

中南大学微机课程设计报告交通灯课案

微机课程设计报告

目录 一、需求分析 1、系统设计的意义 (3) 2、设计内容 (3) 3、设计目的 (3) 4、设计要求 (3) 5、系统功能 (4) 二、总体设计 1、交通灯工作过程 (4) 三、设计仿真图、设计流程图 1、系统仿真图 (5) 2、流程图 (6) 3、8253、8255A结构及功能 (8) 四、系统程序分析 (10) 五、总结与体会 (13) 六、参考文献 (13)

一、需求分析 1系统设计的意义: 随着社会经济的发展,城市问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市交通数据检测、交通信号灯控制与交通疏通的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。 随着城市机动车量的不断增加,组多大城市如北京、上海、南京等出现了交通超负荷运行的情况,因此,自80年代后期,这些城市纷纷修建城市高速通道,在高速道路建设完成的初期,它们也曾有效地改善了交通状况。然而,随着交通量的快速增长和缺乏对高速道路的系统研究和控制,高速道路没有充分发挥出预期的作用。而城市高速道路在构造上的特点,也决定了城市高速道路的交通状况必然受高速道路与普通道路耦合处交通状况的制约。所以,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速通道,缓解主干道与匝道、城市同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。 十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通灯的控制方式很多,本系统采用可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现本系统的各种功能。同时,本系统实用性强,操作简单。 2、设计内容 采用8255A设计交通灯控制的接口方案,根据设计的方案搭建电路,画出程序流程图,并编写程序进行调试 3、设计目的 综合运用《微机原理与应用》课程知识,利用集成电路设计实现一些中小规模电子电路或者完成一定功能的程序,以复习巩固课堂所学的理论知识,提高程序设计能力及实现系统、绘制系统电路图的能力,为实际应用奠定一定的基础。针对此次课程设计主要是运用本课程的理论知识进行交通灯控制分析及设计,掌握8255A方式0的使用与编程方法,通从而复习巩固了课堂所学的理论知识,提高了对所学知识的综合应用能力。 4、设计要求: (1)、分别用C语言和汇编语言编程完成硬件接口功能设计; (2)、硬件电路基于80x86微机接口;

微机原理课程设计报告

微机原理课程设计报告 课程设计是每一个大学生在大学生涯中都不可或缺的, 它使我们在实践中了巩固了所学的知识、在实践中锻炼自己的动手能力,本文就来分享一篇微机原理课程设计报告,希望对大家能有所帮助! 微机原理课程设计报告(一)以前从没有学过关于 汇编语言的知识,起初学起来感觉很有难度。当知道要做课程设计的时候心里面感觉有些害怕和担心,担心自己不会或者做不好。但是当真的要做的时候也只好进自己作大的努力去做,做到自己最好的。 我们在这个过程中有很多自己的感受,我想很多同学都 会和我有一样的感受,那就是感觉汇编语言真的是很神奇,很有意思。我们从开始的担心和害怕渐渐变成了享受,享受着汇编带给我们的快乐。看着自己做出来的东西,心里面的感觉真的很好。虽然我们做的东西都还很简单,但是毕竟是我们自己亲手,呵呵,应该是自己亲闹做出来的。很有成就感。 我想微机原理课程设计和其他课程设计有共同的地方, 那就是不仅加深和巩固了我们的课本知识,而且增强了我们自己动脑,自己动手的能力。但是我想他也有它的独特指出,那就是让我们进入一个神奇的世界,那就是编程。对于很多学过汇编或者其他的类似程序的同学来说,这不算新奇,但是对于我来说真的新奇,很有趣,也是我有更多的兴趣学习微机原理和其他的汇编。 微机原理与接口技术是一门很有趣的课程,任何一个计 算机系统都是一个复杂的整体,学习计算机原理是要涉及到整体的每一部分。讨论某一部分原理时又要涉及到其它部分的工作原理。这样一来,不仅不能在短时间内较深入理解计算机的工作原理,而且也很难孤立地理解某一部分的工作原理。所以,在循序渐进的课堂教学过程中,我总是处于“学会了一些新知识,弄清了一些原来保留的问题,又出现了些新问题”的循环中,直到课程结束时,才把保留的问题基本搞清楚。 学习该门课程知识时,其思维方法也和其它课程不同,

微机课设实验报告

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

一、题目: 上位机:完成界面设计与通讯程序 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。

微机控制技术实训报告

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

温度采集报警任务书 题目:数字温度计 任务与要求: 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单步调试直到此函数的最后,然后再从快速监视对

微机原理课程设计报告

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

目录 一、课程设计题目................. 错误!未定义书签。 二、设计目的..................... 错误!未定义书签。 三、设计内容..................... 错误!未定义书签。 四、设计所需器材与工具 (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点阵显示器件一片。

微机控制技术实验报告

《微机控制技术》课程设计报告 课题:最少拍控制算法研究专业班级:自动化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

计算机控制技术课程设计报告

《计算机控制技术》课程设计单闭环直流电机调速系统

1 设计目的 计算机控制技术课程是集微机原理、计算机技术、控制理论、电子电路、自动控制系统、工业控制过程等课程基础知识一体的应用性课程,具有很强的实践性,通过这次课程设计进一步加深对计算机控制技术课程的理解,掌握计算机控制系统硬件和软件的设计思路,以及对相关课程理论知识的理解和融会贯通,提高运用已有的专业理论知识分析实际应用问题的能力和解决实际问题的技能,培养独立自主、综合分析与创新性应用的能力。 2 设计任务 2.1 设计题目 单闭环直流电机调速系统 实现一个单闭环直流电机调压调速控制,用键盘实现对直流电机的起/停、正/反转控制,速度调节要求既可用键盘数字量设定也可用电位器连续调节,需要有速度显示电路。扩展要求能够利用串口通信方式在PC上设置和显示速度曲线并且进行数据保存和查看。 2.2 设计要求 2.2.1 基本设计要求 (1)根据系统控制要求设计控制整体方案;包括微处理芯片选用,系统构成框图,确定参数测围等; (2)选用参数检测元件及变送器;系统硬件电路设计,包括输入接口电路、逻辑电路、操作键盘、输出电路、显示电路; (3)建立数学模型,确定控制算法; (4)设计功率驱动电路; (5)制作电路板,搭建系统,调试。 2.2.2 扩展设计要求 (1)在已能正常运行的微计算机控制系统的基础上,通过串口与PC连接; (2)编写人机界面控制和显示程序;编写微机通信程序;实现人机实时交互。

3方案比较 方案一:采用继电器对电动机的开或关进行控制。这个方案的优点是电路较为简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不高。 方案二:采用电阻网络或数字电位器调整电动机的分压,从而达到调速的目的。但是电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要的问题在于一般电动机的电阻很小,但电流很大;分压不仅会降低效率,而且实现很困难。 方案三:采用由电力电子器件组成的H 型PWM 电路。用单片机控制电力电子器件使之工作在占空比可调的开关状态,精确调整电动机转速。这种电路由于工作在电力电子器件的饱和截止模式下,效率非常高;H 型电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也极佳,是一种广泛采用的PWM 调速技术。 兼于方案三调速特性优良、调整平滑、调整围广、过载能力大,因此本设计采用方案三。 4单闭环直流电机调速系统设计 4.1单闭环调速原理 4.1.1 闭环系统框图 4.1.2 调速原理 直流电机转速有: 常数Ke Ka 不变,Ra 比较小。 所以调节Ua 就能调节n 。 n n I K R K U K R I U n d d a e e d ?-=Φ -Φ=-=0φa a a U I U ≈-

微机原理课程设计实验报告DOC

河北科技大学 课程设计报告 学生姓名:学号: 专业班级: 课程名称: 学年学期: 指导教师: 年月

课程设计成绩评定表 学生姓名学号成绩 专业班级起止时间2011.12.24—2012.11.28 设计题目字符串动画显示 指 导 教 师 评 语 指导教师: 年月日

目录 一、课程设计的目的 (1) 二、设计题目 (1) 三、设计内容要求 (2) 四、设计成员及分工 (2) 五、课程设计的主要步骤 (2) 六、课程设计原理及方案 (3) 七、实现方法 (3) 八、实施结果 (8) 九、总结 (8) 十、体会感受 (8)

一、课程设计的目的 课程设计是以自己动手动脑,亲手设计与调试的。它将基本技能训练、基本工艺知识和创新启蒙有机结合,培养我们的实践和创新能力。课程设计的意义,不仅仅是让我们把所学的理论知识与实践相结合起来,提高自己的实际动手能力和独立思考的能力。作为信息时代的大学生,基本的动手能力是一切工作和创造的基础和必要条件。 课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识解决实际工程设计和应用问题的能力的重要教学环节,它具有动手、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一种较好方法。 《微机原理及应用》是一门应用性、综合性、实践性较强的课程,没有实际的有针对性的设计环节,学生就不能很好的理解和掌握所学的技术知识,更缺乏解决实际问题的能力。所以通过有针对性的课程设计,使学生学会系统地综合运用所学的理论知识,提高学生在微机应用方面的开发与设计本领,系统的掌握微机硬软件设计方法。 通过课程设计实践,不仅要培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅专业资料、工具书或参考书,掌握工程设计手段和软件工具,并能以图纸和说明书等表达设计思想和结果的能力。培养学生事实求是和严肃认真的工作态度。 通过设计过程,要求学生熟悉和掌握微机系统的软件设计的方法、设计步骤,使学生得到微机开发应用方面的初步训练。让学生独立或集体讨论设计题目的系统方案论证设计、编程、软件调试、查阅资料、编写说明书等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。通过本次课程设计使学生熟练的熟练掌握微机系统的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的软件调试方法和步骤,熟悉微机系统的软件开发工具的使用方法。 二、设计题目

微机实验报告(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 浮点数操作题目列表

微机原理及应用课程设计报告最终版

《微机原理及应用》课程设计报告 题目LED16*16点阵实验 学院电子信息工程学院 专业电子信息工程 组长姓名和学号 学生姓名和学号 指导教师 2015 年 1 月 22 日

目录 1 选题目的、意义及任务 (1) 1.1 选题目的 (1) 1.2 选题意义 (1) 1.3 设计任务 (1) 2 方案设计 (2) 2.1设计思路......................... . (2) 2.2总体设计 (3) 2.3设计论证 (3) 2.4硬件连接 (3) 3 设计流程 (6) 3.1程序流程图 (6) 4 主程序分析 (7) 4.1程序分析 (7) 4.2功能解释 (9) 5 调试结果 (9) 5.1硬件、软件实现 (9) 5.2结果图 (10) 6 团队构成 (10) 7 问题分析 (11) 8 心得体会 (11) 8 附录 (14)

1 选题目的、意义及任务 1.1 选题目的 本次微机原理及应用课程设计我们组的选题是LED16*16点阵实验。LED点阵通过LED(发光二极管)组成,以灯珠亮灭来显示文字、图片、动画、视频等,LED点阵常常被用来做点阵屏。点阵屏是各部分组件都模块化的显示器件,通常由显示模块、控制系统及电源系统组成。LED点阵显示系统中各模块的显示方式有静态和动态显示两种,静态显示原理简单、控制方便,但硬件接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的脉冲信号,反复循环以上操作,就可以显示各种图形或文字信息。对于我们的课程设计主要目的如下: ①熟悉8155、8255的功能,了解点阵显示的原理及控制方法; ②学会使用LED点阵,通过编程显示不同字符; 1.2选题意义 LED显示屏具有亮度高、工作电压低、功耗小、微型化、易与集成电路匹配、驱动简单、寿命长、耐冲击、性能稳定等特点。广泛应用于车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业企业管理和其它公共场所。因此16*16LED点阵实验的课程设计对实际的生产和生活具有非常重要的指导意义。通过LED16*16点阵实验来让我们更好地理解微机工作的原理,并更深层次的了解各大芯片的用法以及功能。 1.3设计任务 设计一个能显示16X16点阵图文LED显示屏,要求能显示文字,文字应稳定、清晰,文字以卷帘形式向上滚动显示“欢迎使用星研实验仪”。

计算机控制技术实验报告

精品文档

精品文档 实验一过程通道和数据采集处理 为了实现计算机对生产过程或现场对象的控制,需要将对象的各种测量参数按 要求转换成数字信号送入计算机;经计算机运算、处理后,再转换成适合于对生产 过程进行控制的量。所以在微机和生产过程之间,必须设置信息的传递和变换的连 接通道,该通道称为过程通道。它包括模拟量输入通道、模拟量输出通道、数字量 输入通道、数字量输出通道。 模拟量输入通道:主要功能是将随时间连续变化的模拟输入信号变换成数字信 号送入计算机,主要有多路转化器、采样保持器和 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文件,并输入

微机原理课程设计报告--数据采集系统三(中断法)

微机原理课程设计 课设题目:数据采集系统三(中断法) 实验者姓名: 实验者学号: 学院: 数据采集系统三(中断法) 一、实验目的 进一步掌握微机原理知识,了解微机在实时采集过程中的应用,学习、掌握编程和程序调试方法。 二、实验内容 1、用中断法,将ADC 0809通道0外接0 ~ 5V电压,转换成数字量后,在七段LED 数码管上,以小数点后两位(几十毫伏)的精度,显示其模拟电压的十进值;0809通道0的数字量以线性控制方式送DAC0832输出,当通道0的电压为5V时,0832的OUT为0V, 当通道0的电压为0时,0832的OUT为2.5V;此模拟电压再送到ADC 0809通道1,转换后的数字量在CRT上以十六进制显示。 2、ADC 0809 的CLK 脉冲,由定时器8254的OUT0提供;ADC 0809的EOC信号,用作8259中断请求信号。 3、要有较好的人机对话界面;控制程序的运行。 三、总体设计 1 、ADC 0809的IN0采集电位器0 — 5V电压,IN1采集0832输出的模拟量。 2 、DAC 0832将ADC 0809的IN0数字量后重新转换成模拟量输出。 3、8259用于检测ADC 0809转换是否结束和向CPU发送INTR信号 4、 8255为七段LED数码管显示提供显示驱动信息。 5、七段LED数码管显示ADC 0809的IN0的值。 6、8254提供ADC 0809的采样时钟脉冲。 7、有良好的人—机对话界面。系统运行时,显示主菜单,开始数据采集, 在数据采集时, 主键盘有键按下, 退出返回DOD系统。 四、硬件设计 因采用了PC机和微机实验箱, 硬件电路设计相对比较简单, 主要利用微机实验箱上的8255并行口、ADC 0809、DAC 0832、七段LED数码管单元、8254定时/计数器、74LS574输出接口、电位器等单元电路, 就构成了数据采集系统, 硬件电原理框图4-3-1所示。 五、软件设计 本设计通过软件编程,实现模/数转换器0809分别对IN0 0-5V直流电压的采样,和

微机原理课程设计报告

— 微机原理 课程设计报告 ——电子表程序设计 ^ 。

(一)设计任务: 用汇编语言设计一电子表程序,要求: ! (1)实现秒、分、时的计时,并显示于屏幕中央 (2)能够校时 (3)能够半点、整点报时 (二)设计原理 该程序主要由三部分构成:时间设置、延时程序和时钟显示。 (1)时间设置 … ①输入初始时间 先调用DOS操作系统模块2,在显示屏上显示‘:’,再调用DOS操作系统模块10,提示输入初始时间。由键盘输入的时间以字符串形式存放在已定义的存储器缓冲区内,继而调用TRAN1转换子程序和MUL10乘10子程序,将存放在存储器缓冲区内的ASCII字符转换为压缩BCD码,并将时、分、秒的值放置在寄存器CH、DH、DL中。 ②暂停计时 按Pause Break键即可暂停计时,再按下任意键恢复计时 ③重新输入时间 在程序运行时,可按下Esc键重新输入初始时间,此时程序检测到Esc(ASCII码为1BH)被按下,返回①步提示重新输入时间。 以上两步可实现校时的功能。

④半点、整点报时 《 程序运行时,分钟值每次改变都需要与30、60比较,若相等,则调用DOS操作系统模块7使计算机响铃并在时间后显示‘ ------’。同时若分、秒值为60则需进位,时为24时进位,保证时钟程序的正确性。 (2)延时程序 计算机在执行指令时,各种操作都按指令执行,但在像程序控制器那样由计算机发出指令控制外部设备是,由于外部设备所具有的机械惯性或其他原因,需要在计算机发出指令后有规律地延迟或等待一段时间。这类延时,可以用硬件延时来完成,单用软件来实现也是一种方便和常用的方法。 计算机执行每一条指令,虽然很快,但还是需要一段时间的。因此从理论上讲,可在程序中加一些与程序无关的指令去完成,要计算指令执行的时间,又不能过多的为了延时而增加编制程序的工作量。因此,编制延时程序,应尽量采用较少的指令,节约存储器,并且不能对主程序造成影响。 每条指令执行时间的长短,是以计算机的时钟周期为基本单位的。当CPU采用的时钟频率一定时,时钟周期也为定值。因此可根据时钟周期的多少来计算执行指令所需的时间。完成本设计任务使用的计算机采用Intel Pentium 4处理器,主频为,时钟周期约为。 通过时间约1s的长延时累加,并以时、分、秒的形式显示出来,就可以编写出一个时钟程序。 (3)时钟显示 … ①设置光标位置子程序IOSET

计算机组成原理微程序控制单元实验报告

姓名 学号 班级 ******************年级 指导教师 《计算机组成原理》实验报告 实验名称微程序控制单元实验、指令部件模块实验、时序与启停实验 实验室实验日期 实验七微程序控制单元实验 一、实验目的 ⒈ 掌握时序产生器的组成方式。 ⒉ 熟悉微程序控制器的原理。 ⒊ 掌握微程序编制及微指令格式。 二、实验原理 图 7- 7- 1

图 7-7-4 微地址控制原理图 微程序控制单元实验原理就是人为的给出一条微指令的地址,人为的去打开测试开关,观察机器怎么运行,打个比方就是我要你执行我下的某条命令,我先告诉你命令写在哪页纸上, 你找到纸后,分析命令是什么之后再去执行。 观察机器微程序控制器的组成见图7-1-1 ,微地址的打入操作就是由操作者给出一条微指令 的地址(同上面的例子就是仅仅告诉你我让你跑的这条命令写在哪页纸上,而没有告诉你 命令的具体内容),不需要做测试去判断这是什么指令,所以由图7-7-1 ,其中微命令寄存器 32 位,用三片 8D 触发器 (273) 和一片 4D(175) 触发器组成。它们的清零端由CLR来控制微控制器的清零。它们的触发端CK接 T2,不做测试时 T2 发出时钟信号,将微程序的内容 打入微控制寄存器(含下一条微指令地址)。打入了微指令的地址(即告诉你命令在哪页纸上,此时你需要先找到这页纸并判断命令是叫你做什么,然后执行),进行测试,T4 发出时钟信号,转移逻辑满足条件后输出的负脉冲通过置位端将某一触发器输出端置为“1”状态,按图 7-7-4 所示,微地址锁存器的置位端R 受 SE5~SE0控制,当测试信号 SE5~SE0输出负脉冲时,通过锁存器置位端R将某一锁存器的输出端强行置“1”,实现微地址的修改与转移,此时的地址指的是指令的操作码的地址(即你已经知道命令是跑,此时做的是跑的行为)。再由数据开关置入微地址的值,再做测试,再跳到指令的操作码的地址准备开始执行 指令,这就是微程序控制单元实验的原理。

微机系统的组装与配置实验报告

微机系统的组装与配置实验报告

计算机学院综合性实验 实验报告 课程名称微机与外设维护维修技术 实验学期 2015 至 2016 学年第 2 学期 学生所在院系计算机学院 年级 2013 专业班级计 学生姓名学号 2013 任课教师 实验成绩 计算机学院制

一、硬件拆卸部分 1、主板的型号及功能、性能说明: 主板是电脑系统中最大的一块电路板,主板上布满了各种电子元件、插槽、接口等。它为CPU、内存和各种功能(声、图、通信、网络、TV、SCSI等)卡提供安装插座(槽);为各种磁、光存储设备、打印机和扫描仪等I/O设备以及数码相机、摄像头、调制解调器等多媒体和通讯设备提供接口,实际上电脑通过主板将CPU等各种器件和外部设备有机地结合起来形成一套完整的系统。 主板的标准结构是根据主板上各元器件的布局排列方式、主板的尺寸大小及形状、所使用的电源规格等。 目前市场上PC的主板主要有ATX、Micro ATX和BTX等结构。 2、CPU的型号及功能、性能说明: 中央处理器(CPU)是一块超大规模集成电路芯片,它是整个计算机系统的核心。CPU主要包括运算器、控制器和寄存器三个部件。这三个部件相互协调,使他们可以进行分析、判断、运算并控制计算机各部分协调工作。其中运算器主要完成各种算术运算和逻辑运算;而控制器是指挥中心,控制运算器及其他部件工作,它能对指令进行分析,作出相应的控制;寄存器用来暂时存放运算中的中间结果或数据。 CPU的性能指标: 字长或位数; 主频、外频、FSB频率; 高速缓冲存储器; 指令扩展技术; CPU的制造工艺; CPU的核心代号; 超线程技术; 多核心技术; 虚拟化技术; 可信执行技术。 3、硬盘的型号及功能、性能说明: 硬盘主要是有固定面板、控制电路板、磁头组、盘面组、主轴电机、接口、及其附件组成。其中磁头组和盘片组件是构成硬盘的核心,它们被封装在硬盘的净化腔体内,包括浮动磁头组件、磁头驱动机构、盘片组、主轴驱动装置级读写控制电路几个部分。 温切斯特硬盘的特点:磁盘旋转,磁头径向运动,磁头悬浮在磁片上方,用磁存储信息。 磁盘技术: RAID技术(廉价磁盘冗余阵列),使用磁盘驱动器的方法,是将一组磁盘驱动器用某种逻辑方式联系起来,作为逻辑上的一个大容量磁盘驱动器来使用。(RAID0、RAID1、RAID0+1、RAID3、RAID5模式);

相关文档