惠州学院微机报告讲解
惠州学院微机唐明星老师答辩串行通讯

这是串行通讯实验,首先根据原理图(面向地址总线的有两个引脚,一个是CS一个C/D,这两个引脚决定了具体的端口地址,CS是经过译码输出的引脚,连到译码器的输出端,决定了芯片选中芯片也就是决定了端口地址的起始地址。
C/D是地址引脚,只有一个地址引脚所以只有两个端口,一个数据端口一个控制端口,C/D连到地址总线上的A0,当C/D为0时访问的是数据端口数据类寄存器,当为1时访问控制端口控制类寄存器)连接好线路,将该实验程序通过集成开发环境编译链接生成目标代码,点击运行。
其运行结果为从键盘输入一个字符,将其ASCII码加1后发送出去,再接收回来在屏幕上显示,实现自发自收。
为什么会有这样的结果?因为点击运行后,CPU执行第一条数据传送指令,(按字节对这个变量提供了若干个单元存放的字符串信息,标准的字符串一定有换行回车符,以及24h对应的$符号)将立即数也就是数据段段地址传送给ax寄存器。
Cpu顺序执行数据传送指令,将ax寄存器的数据也就是数据段的段地址传送到ds 寄存器。
Cpu顺序执行数据传送指令,将立即数0283h传送给dx寄存器。
Cpu顺序执行数据传送指令,将立即数16h传送给al寄存器。
CPU顺序执行IO写指令,将立即数16h写到8253控制端口的控制寄存器(相当于模式寄存器)(根据cs提供的端口的起始地址为0280h,该芯片的地址引脚A0A100加上起始地址就是0280h决定了访问计数器0,A0A101加上起始地址就是0281h访问计数器1,A0A110加上起始地址就是0282访问计数器2,A0A111加上起始地址就是0283h访问8253的控制端口),设定控制字,D7D6为00说明对计数器0进行设置,D3D2D1为011对应工作模式为模式3,模式3会产生连续的方波信号。
Cpu顺序执行数据传送指令,将立即数0280h传送给dx寄存器。
Cpu顺序执行数据传送指令,将立即数52传送给al寄存器。
Cpu顺序执行IO写指令,将al寄存器的数据写到端口地址0280h所对应的8253的计数器0的初值寄存器.即把定时计数器0的计数初值设置为52,为什么是52?根据公式~~~。
广工2013微机原理实验3报告

一.实验目的1.了解INT10H,INT21H各功能块的作用和使用方法2.掌握字符方式下PC机显示机的显示控制二.实验内容编程计算Z=5678H+0666H—14H,并把结果显示在屏幕上三.实验步骤1.计算出结果存于AX中。
2.依次求出AX中数的高位到低位,存于DL中。
3.查表找出对于ASCII码值,存入DL中,显示四.实验的结果及分析。
设计程序如下:DATAS SEGMENTORG 0300HTAB DB "0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"NUM DW 5678H,6666H,1234HDATAS ENDSDATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART:MOV AX,DATASMOV DS,AXLEA SI,NUMMOV AX,[SI[ADC AX,[SI+1]SUB AX,[SI+4]MOV CX,04HSBB:MOV BX,0010HMOV DX,0DIV BXPUSH AXMOV DI,DXMOV BYTE PTR DL,0300H[DI]MOV AH,02HINT 21HPOP AXLOOP BBBMOV AH 02HINT 21HMOV AH 4CHINT 21HCODE ENDS运行结果:AAAAH五.实验中出现的问题、解决方法和心得体会当显示字符是需要分类0-9和A-F两种情况,转换ASCII所需加的数字不同。
注意显示功能块的细节。
惠州学院计算机组成原理实验报告

实验三内存储器部件实验一、实验目的1、通过学习TEC-2000教学计算机的存储器系统,深入理解计算机主存储器的功能和组成;2、学习和理解只读存储器、静态存储器芯片的读写原理,掌握计算机存储器系统的扩展方法。
二、实验说明TEC-2000教学计算机存储器系统由ROM和RAM两个存储区组成。
ROM存储区由2个EEPROM芯片58C65(8192×8)组成,容量为8192×16。
RAM存储区由2个RAM芯片6116(2048×8)组成,容量为2048×16。
TEC-2000教学计算机中还预留了2个存储器芯片插座,可以插上相应存储器芯片进行存储器容量扩展的教学实验。
TEC-2000教学计算机存储器系统组成结构图三、实验内容1、完成存储器容量扩展实验,为扩展存储器选择一个地址,注意读写和/OE等控制信号的正确状态;2、用监控程序的D、E命令对存储器进行读写,比较RAM(6116)、EEPROM(58系列)存储特性的区别以及在读写上的差异;3、用监控程序的A命令编写一段程序,对RAM(6116)进行读写,用D命令查看结果是否正确。
四、实验步骤1、RAM实验RAM(6116)支持随机读写操作,可直接用A、E命令向存储器输入程序或改变存储单元的值。
RAM中的内容在断电后会消失,重新启动教学机后会发现存储单元的值发生了改变。
1)用E命令改变内存单元的值并用D命令观察结果。
⑴在命令行提示符状态下输入:E 2020↙屏幕显示2020 内存单元原值。
按如下形式键入:2222(空格)3333(空格)4444(空格)5555⑵在命令行提示符状态下输入:D 2020↙观察屏幕显示的从2020内存单元开始的值。
⑶断电后重新启动教学实验机,用D命令观察内存单元2020-2023的值。
2)用A命令输入一段程序,执行并观察结果。
⑴在命令行提示符状态下输入:A 2000↙键入如下汇编程序:2000:MVRD R0, AAAA2002:MVRD R1, 55552004:AND R0, R12005:RET2006⑵在命令行提示符状态下输入:U 2000↙观察屏幕显示的内容。
微机原理及应用课程设计报告(LCD显示)

微机原理及应用课程设计报告书电子时钟(LCD显示) Electronic clock (LCD display)姓名班级学号xxxx学院二〇二一年六月目录摘要 (1)1.设计任务 (2)2.设计要求 (2)3.设计电路 (3)4.主要电子元器件工作原理 (6)4.1单片机原理分析 (6)4.2 单片机型号 (6)4.3 LCD显示原理 (10)5.分工任务 (13)6.完整程序代码及关键程序段注释 (22)7.总结 (33)参考文献 (34)摘要随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。
目前,单片机技术的应用产品已经走进了千家万户。
电子万年历的出现给人们的生活带来了诸多方便。
随着微电子技术的高速发展,单片机在国民经济的个人领域得到了广泛的运用。
单片机以体积小、功能全、性价比高等诸多优点,在工业控制、家用电器、通信设备、信息处理、尖端武器等各种测控领域的应用中独占鳌头,单片机开发技术已成为电子信息、电气、通信、自动化、机电一体化等专业技术人员必须掌握的技术。
单片机单芯片的微小体积和低的成本,可广泛地嵌入到如玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通讯产品中,成为现代电子系统中最重要的智能化工具,于是基于单片机的醒目而时尚的电子版万年历顺应而生。
基于单片机的电子万年历结合了时钟和日历的功能,将其二者融为一体,在显示时间的同时还能显示日期和年、月,它主要是通过单片机来读取时钟芯片的时间、日期,然后送给显示设备显示出来。
而电子万年历作为电子类小设计不仅是市场上的宠儿,也是是单片机实验中一个很常用的题目。
因为它的有很好的开放性和可发挥性,因此对作者的要求比较高,不仅考察了对单片机的掌握能力更加强调了对单片机扩展的应用。
而且在操作的设计上要力求简洁,功能上尽量齐全,显示界面也要出色。
数字显示的日历钟已经越来越流行,特别是适合在家庭居室、办公室、大厅、会议室、车站和广场等使用,壁挂式LED数码管显示的日历钟逐渐受到人们的欢迎。
微机技术原理课程设计报告

微机技术原理课程设计报告设计背景和目的:微机技术原理课程设计的主要目的是培养学生的计算机系统综合能力,通过设计和实现一个完整的微机系统,来加深学生对微机技术原理的理解,提高他们的动手能力和解决问题的能力。
本次课程设计的主题是设计一个简单的计算器程序,要求能够实现基本的四则运算功能以及其它一些扩展功能。
设计方案和流程:1. 确定系统需求:根据题目要求,确定计算器的基本功能为加减乘除四则运算,同时考虑到用户体验,还要加入其他一些功能,如开平方、取余等。
2. 确定系统架构:根据需求,确定使用的软件开发平台和工具,如C++编程语言和Visual Studio集成开发环境(IDE)。
3. 分解系统模块:根据计算器的功能,将系统分解为多个模块,如界面模块、算法模块和控制模块等。
4. 设计界面模块:根据用户交互需求,设计并实现计算器的用户界面,包括数字按钮、运算符按钮和结果显示区域等。
5. 设计算法模块:根据需求,设计并实现计算器的算法模块,包括加、减、乘除等基本运算算法,以及开平方、取余等扩展算法。
6. 设计控制模块:根据系统架构,设计并实现计算器的控制模块,用于协调界面模块和算法模块之间的交互,处理用户输入和计算结果的显示。
7. 调试和测试:在开发过程中,及时调试和测试各个模块的功能,确保各模块之间的协调正常,并对程序进行全面测试,保证程序的正确性和稳定性。
实施计划和进度安排:本次课程设计将分为多个阶段进行,每个阶段都有具体的任务和时间安排。
以下是整个设计的大致计划和进度安排:1. 第一周:确定系统需求,设计系统架构,完成界面模块的设计和实现。
2. 第二周:完成算法模块的设计和实现,完成控制模块的设计和实现。
3. 第三周:进行系统的集成测试和调试,解决存在的问题和bug。
4. 第四周:进行功能测试和性能测试,优化程序,准备最终的系统交付。
设计结果和实施效果:经过设计和实施,计算器程序可以实现基本的四则运算功能,并且还加入了一些扩展功能,如开平方、取余等。
微机课程设计报告

微机课程设计报告
微机课程设计报告是计算机科学类学生必修的一门课程。
本次课
程设计报告的主题是设计并实现一个简单的计算器程序。
本次设计的
计算器程序能够完成加、减、乘、除等基本计算操作。
在本次设计的过程中,我使用了c++语言进行编程。
我首先根据
计算器的功能需求,设计了程序的基本框架。
在程序的框架中,我定
义了若干个变量并赋初值。
这些变量用于存储程序中的输入和输出数据。
接着,我使用了if语句完成了基本的运算操作。
在if语句中,
我根据用户选择的运算符,判断出相应的输入数据和输出数据,并输
出相应的结果。
在程序执行过程中,我对输入和输出数据进行了适当
的验证和处理,以确保用户输入和程序输出的数据有效和正确。
最终,我完成了该计算器程序的测试和调试工作。
通过测试和调试,程序能够正确地显示输入和输出数据,并能够正确地计算加、减、乘、除等基本运算操作。
该程序具有简单、易用、高效等特点,适用
于各种场合和用户群体的需求。
总的来说,本次微机课程设计报告让我从实践中学习到了计算机
编程的基本原理和方法,并锻炼了我编程实践和创新的能力。
我相信,在今后的学习和工作中,我一定能够更好地运用所学知识,为我们的
社会和国家做出贡献。
微机课程设计报告

微机课程设计报告一、课程目标知识目标:1. 理解微机的基本组成、工作原理及各部件的功能;2. 掌握微机编程的基本语法和常用指令;3. 学会使用微机进行简单的数据采集、处理和输出。
技能目标:1. 能够独立完成微机的基本操作和编程;2. 能够运用所学知识解决实际问题,设计简单的微机控制系统;3. 能够进行团队协作,共同完成微机课程设计项目。
情感态度价值观目标:1. 培养学生对微机技术的兴趣,激发学习热情;2. 培养学生的创新意识和实践能力,提高解决实际问题的信心;3. 培养学生良好的团队协作精神和沟通能力,增强集体荣誉感。
课程性质:本课程为实践性较强的学科,注重理论知识与实际操作的结合。
学生特点:本年级学生具备一定的电子技术基础和编程能力,对新鲜事物充满好奇,喜欢动手实践。
教学要求:结合学生特点,注重启发式教学,引导学生主动探究,提高学生的实践操作能力和创新能力。
将课程目标分解为具体的学习成果,便于教学设计和评估。
在教学过程中,关注学生的学习反馈,及时调整教学策略,确保课程目标的达成。
二、教学内容根据课程目标,本课程教学内容分为以下三个部分:1. 微机基本原理与组成- 教材章节:第一章 微机系统概述- 内容:微机的发展历程、基本组成(CPU、存储器、输入输出接口等)、工作原理及性能指标。
2. 微机编程与控制- 教材章节:第二章 微机编程基础、第三章 微机接口技术- 内容:编程语言(汇编语言、C语言)、常用指令、程序结构、接口技术、中断处理等。
- 实践项目:设计简单的微机控制系统,如温度控制器、交通灯控制系统等。
3. 微机应用案例分析- 教材章节:第四章 微机应用系统- 内容:微机在工业控制、智能家居、物联网等领域的应用案例。
- 实践项目:分析并仿照实际应用案例,设计具有实际意义的微机应用系统。
教学进度安排:- 第1周:微机基本原理与组成- 第2-3周:微机编程与控制- 第4-5周:微机应用案例分析及实践项目设计教学内容确保科学性和系统性,注重理论与实践相结合,引导学生通过实践项目,将所学知识应用于实际问题中,提高学生的综合能力。
惠州学院操作系统实验五

ﻩdisplayQueue();
ﻩrunPro();
puts("");
addNewPro();
ﻩ}
puts("Bye");
return0;
}
voidcreatePro()
{
ﻩcharname[10];
char stop = 'y';
int needtime, i=0;
if(pcb->next==NULL)
ﻩﻩbreak;
else
ﻩﻩpcb=pcb->next;
ﻩ}
}
void insertRunningQueue()
{
PCB *currentPCB= readyQueue,*lastPCB=readyQueue,*lastOfChosePCB =readyQueue,*chosePCB =readyQueue;
{
char name[10];//进程标识符
floatprin;ﻩﻩ//进程的优先级
ﻩintround;ﻩﻩﻩ//进程轮转的时间片
int needtime;ﻩﻩ//进程还需要当CPU时间
int waittime;ﻩﻩ//进程进入系统后等待当CPU的时间
charstate;ﻩﻩ//进程当状态
structnode*next;ﻩ//链接指针
(5)让运行进程执行足够的服务时间
(6)将运行进程移入完成队列
(7)提示可以输入新的作业,如果有新作业输入,则转向(1),否则转向(2)
(8)如果就绪队列为空,则结束
程序框图如下:
程序源代码如下:
#include <stdio.h>
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
惠州学院计算机科学系课程设计(综合实验)报告( 2015--2016年度第一学期)课程名称:微型计算机技术题目:多功能实时时钟班级:最牛逼班学号:111111222222学生姓名:杰克指导教师:老师设计周数:1周同组人:路飞,鸣人日期:2015年12 月31 日一、课程设计的目的与要求。
1.1设计的目的。
通过本次课程设计要掌握芯片使用的方法,灵活运用课本知识,加深所学的知识,对所学的相关芯片的原理、内部结构、使用方法等有更加深刻的了解,学会利用课本知识联系实际应用及编程。
1.2设计的要求。
(1) 实时时钟由时钟信号产生部分和时间显示部分组成时钟计时器,计算中断时间准确计时、分、秒;(2) 小键盘控制多功能选择采用小键盘输入,通过小键盘LED数码管显示,不同键输入对应不同功能(如时间暂停开始,设置时间等)。
1.3 设计的意义。
通过了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。
二、设计正文。
2.1设计的基本原理。
2.1.1设计所用芯片结构8253的功能用途是:(1)延时中断(2)可编程频率发生器(3)事件计数器(4)二进倍频器(5)实时时钟(6)数字单稳(7)复杂的电机控制器8253有六种工作方式:(1)方式0:计数结束中断(2)方式1:可编程频率发生器(3)方式2:频率发生器(4)方式3:方波频率发生器(5)方式4:软件触发的选通信号(6)方式5:硬件触发的选通信号8253各引脚功能如下。
D7~D0——八条双向数据线;WR(低电平有效)——写输入信号;RD(低电平有效)——读输入信号;CS(低电平有效)——片选输入信号;A0、A1——片内寄存器地址输入信号;CLK——计数输入,用于输入定时基准脉冲或计数脉冲;OUT——输出信号,以相应的电平指示计数的完成,或输出脉冲波形;GATE——选通输入(门控输入),用于启动或禁止计数器的操作,以使计数器和计测对象同步。
2.2 设计方案。
2.2.1 总体方案。
(见附录)2.2.2 硬件原理图。
2.3 具体模块设计。
2.3.1主程序模块:;*******************************;;* 键盘显示控制实验*;;*******************************;inta00 equ 20h ;8259a port,口地址inta01 equ 21h ;8259a port,口地址port0 equ 2b0h ;8279 data port,8279数据口port1 equ 2b1h ;8279 ctrl port,8279控制口time0 equ 280h ;8253 time0 port,8253定时器0口地址time1 equ 281h ;8253 time1 port,8253定时器1口地址timec equ 283h ;8253 ctrl port,8253控制口地址stacks segment stacksta dw 512 dup(?)top equ length stastacks endsdata segmentcsreg dw ?ipreg dw ?irq_times dw 00hbuf db 0 ;count,计数单元sign db 0 ;flage,计数标志sec1 db 0 ;hour hight,秒高位sec2 db 0 ;houp low,秒低位min1 db 0 ;min hight,分高位min2 db 0 ;min low,分低位hour1 db 0 ;sec hight,时高位hour2 db 0 ;sec low,时低位err1 db 0 ;error flage,出错标志hms db 0 ;00 is hour,11 is min,22 is sec,预置时、分、秒标志led db 3fh,06,5bh,4fh,66h,6dh,7dh,07,7fh,6fh,79h,40hmes db 'pleas first create the irq pulse!',0ah,0dh,0ah,0dhdb 'in small keybord:',0ah,0dhdb 'c--clear to zero; g--go ahead',0ah,0dhdb 'd--stop the disply;e--exit',0ah,0dhdb 'p--position the beginning time',0ah,0dh,'$'data endscode segmentmain proc farassume cs:code,ds:data,ss:stacks,es:datastart: climov ax,datamov ds,axmov buf,0mov sign,01mov sec1,0mov sec2,0mov min1,0mov min2,0mov hour1,0mov hour2,0mov err1,0mov dx,timec ;8253初始化mov al,36hout dx,almov dx,time0mov ax,1000out dx,almov al,ahout dx,almov dx,timecmov al, 74hout dx,almov dx,time1 ;定时器1每0.1秒中断一次out dx,almov al,ahout dx,almov ax,stacksmov ss,axmov sp,topmov ax,datamov ds,axmov es,axmov dx,offset mesmov ah,09int 21hmov ax,csmov ds,axmov dx,offset int_procmov ax,250bhint 21hin al,21hand al,0f7hout 21h,almov dx,port1mov al,0d3hout dx,al ;8279 clear,清零mov al,2ahout dx,al ;8279 clock,置时钟命令mov al,40hout dx,al ;read fifo ram command,fifo ram命令mov al,00hout dx,al ;keybord disply mode,置键盘显示模式mov al,80hout dx,al ;write ram command,写ram命令stikey1:call key2 ;call keybord and disply,调键盘显示子命令cmp hour2,0ah ;err flagejz next2next1: cmp al,0ch ;'c' command,'c'命令否jnz lp0next2: mov sign,00hmov hour1,00hmov min2,00hmov min1,00hmov sec2,00hmov sec1,00hlp0: cmp al,0eh ;'e' command,'e'命令退出程序jnz lp1mov sign,00hjmp exitlp1: cmp al,10h ;'g' command,'g'命令否jnz lp2mov sign,01hjmp key1lp2: cmp al,0dh ;'d' command,'d'命令否jnz setimov sign,00hkey3: jmp key1seti: cmp al,12h ;'p' command,'p'命令否jnz key1mov sign,00h ;add 1 flage,'00'为预置时标志mov hms,00h ;hour flagecall high0cmp err1,01hjz key3call low0cmp err1,01hjz key3mov hms,11h ;min flage,'11'为预置分标志call high0cmp err1,01hjz key3call low0cmp err1,01hjz key3mov hms,22h ;sec flage,'22'为预置秒标志call high0cmp err1,01hjz key3call low0jmp key1exit:in al,21h ;关中断IRQ3out 21h,alstimov ax,4c00hint 21hmain endpint_proc proc farclipush axpush bxpush cxpush dxpush sipush dipush dscmp sign,00 ;sign is add 1 flage,是否允许计数jz endt1inc buf ;buf is count,计数单元加1cmp buf,10jl endtmov buf,0inc sec1cmp sec1,10jl endtmov sec1,0inc sec2cmp sec2,6jl endtmov sec2,0inc min1cmp min1,10jl endtmov min1,0inc min2cmp min2,6jl endtmov min2,0inc hour1cmp hour2,2jl hhcmp hour1,4jl endtmov hour1,0mov hour2,0hh: cmp hour1,10jl endtmov hour1,0inc hour2endt:mov al,20h ;send EOImov dx,inta00out dx,almov cx,0ffffhloopx:noploop loopx ;延时pop dspop dipop sipop dxpop cxpop bxpop axmov al,20hout 20h,aliretint_proc endpkey2 proc nearmov dx,port1mov al,0d1hout dx,al ;clear display,清显示wrep: call disp ;调显示子程序mov dx,port1in al,dxand al,07hjz wrepkeyn: mov dx,port0 ;读状态in al,dxmov bl,aland al,07hand bl,38hmov cl,03shr bl,cljnz line1add al,08hjmp quit1line1: cmp bl,01hjnz line2 ;是否第二行键jmp quit1line2: add al,10hquit1: retkey2 endpdisp proc nearpush cxmov ax,datamov ds,axmov dx,port1mov al,90hout dx,almov si,offset sec1mov cx,0006mov bx,offset leddisp1: cldlodsbxlatmov dx,port0out dx,alloop disp1pop cxretdisp endperrs proc nearmov hour2,0ahmov hour1,0bh ;errormov min2,0bh ;disply 'E-----'显示出错标志mov min1,0bhmov sec2,0bhmov sec1,0bhmov err1,01h ;err flage,标记出错reterrs endphigh0 proc nearcall key2mov err1,00cmp hms,00h ;hms is hour min sc flage,预置时、分、秒cmp al,02h ;00 is hour,预置时jg error ;11 is min,预置分mov hour2,al ;22 is sec,预置秒jmp hqut1min0: cmp hms,11hjnz sec0cmp al,05hjg errormov min2,aljmp hqut1sec0:cmp al,05hjg errormov sec2,alhqut1: reterror: call errsrethigh0 endplow0 proc nearcall key2 ;get hour min sec low,预置时、分、秒低位mov err1,00cmp hms,00hjnz min3mov dl,hour2cmp dl,01jg hour3cmp al,09hjg errormov hour1,aljmp lqut1hour3:cmp al,03hjg errormov hour1,aljmp lqut1min3: cmp hms,11hjnz sec3cmp al,09hjg errormov min1,aljmp lqut1sec3:cmp al,09hmov sec1,allqut1: retlow0 endpcode endsend start三、课程设计的结论。