当前位置:文档之家› 中南大学微机原理课程设计报告

中南大学微机原理课程设计报告

中南大学

微机原理课程设计

实验报告

题目设计电子万年历

学生姓名

学号

指导教师

学院信息科学与工程学院

专业班级通信工程

一、设计目的及要求

(一)设计任务:

通过本次课程设计,使学生巩固和加深微型计算机原理理论知识,通过过实践进一步加强学生独立分析问题和解决问题的能力、综合设计及创新能力的培养,同时注意培养学生实事求是、严肃认真的科学作风和良好的实验习惯,为今后工作打下良好的基础。计算机原理与接口课程课程设计结合教学内容,从应用的角度出发,进行三类课程设计,分别分为:汇编语言程序设计、微机标准接口课程设计和接口技术课程设计。

(1)通过设计电子万年历,掌握中断的使用方法。

(2)掌握基本的显存读写技术。

(3)学会在屏幕上以七段数码管的形式显示本机时间的方法。

(4)学会用汇编语言编写一个完整的程序,提高自己的动手操作能力。

(5)学习程序设计的基本思路和方法,培养分析问题、解决问题的能力。

汇编语言是计算机能够提供给用户使用的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。因而,对程序的空间和时间的要求很高的场合,汇编语言的应用是必不可少的。至于很多需要直接控制硬件的应用场合,则更是非用汇编语言不可了。随着科学技术迅速发展,理工科大学生不仅需要掌握计算机方面的基本理论知识,而且还需要掌握基本的实验技能及一定的科学研究能力。

通过课程设计,使学生巩固和加深微型计算机原理理论知识,通过实践进一步加强学生独立分析问题和解决问题的能力、综合设计及创新能力的培养,同时注意培养学生实事求是、严肃认真的科学作风和良好的实验习惯,为今后工作打下良好的基础。鉴于汇编语言的广泛用途及其在当代计算机界的重要作用,本人利用学的知识,在同学门的帮助下,花费大量时间,完成了关于电子万年历的系统设计。这个系统是应用于电脑中的小应用程序,可是显示电脑中的时间。很多地方都会有个时钟显示,其中大多是应用了类似这样的方法。

关键词:汇编语言微机原理接口技术时钟显示键盘输入

一次性初始化六位

(二)设计功能:

1.电子万年历,具有年、月、日、时、分、秒24小时制的运行,并可以在8位数码管上显示;

2.电子万年历具有启动键、蜂鸣、整点报时、暂停、初始化年、月、日、时、分、秒。

(三)课程设计方式与基本要求:

【1】实验方式:

微机原理与接口技术课程设计共2周,要求学生做出设计方案(硬件线路图、程序框图)并提交指导教师检查确认。然后进行硬件连接、软件调试、得出结果,由指导教师检查是否达到设计要求,最后撰写报告。根据通信工程专业学生的实际情况,课程设计的指导思想是:对于学习成绩好、动手能力强的学生,让他们有充分发挥的余地;对于大多数学生务必完成设计要求;对于少数学习稍差的学生只需完成基本要求。基于这一原则给出了3~5个题目,每一个题目的大小、难易可以伸缩,由学生自选。

【2】基本要求:

电子万年历(三星)

设计任务:1.正常计时并显示,默认状态下用8个7段LED数码管作为显示设备,显示:时——分——秒,每秒刷新显示;

2.通过按键,可以切换显示:年(后两位)——月——日;

3.通过按键,可以调整时间;

4.实习整点定时闹铃功能,整点定时输出为音乐信号或语音信号。

扩展:可通过串口通讯来获取电子万年历的时间。其他功能(创新部分)。(四)设计所用元件

设备是武汉恒科电子教学仪器有限公司的超想—3000TB综合实验/仿真系统。配合PC机构成实验环境。

8253 定时器:用于产生秒脉冲,计数器2的输出信号作为中断请示信号送IRQ3 。以及计数器0作为蜂鸣器的输入脉冲使用。

8279 接口芯片:实现键盘输入和显示输出。

8259 中断控制器:用于产生中断。

8255 并行控制器:触发蜂鸣器扬声。

数码管:八个 LED 用于显示年、月、日,时、分、秒。以格式00-00-00输出值。

蜂鸣器:扬声报时。

二、设计题目及思想

(一)设计原理:

计算机原理与接口技术是通信工程专业的一门专业基础课程,学生需要掌握RAM扩充、8253计数器/定时器、8255并行口、8251串行口、8259中断控制器、D/A数模转换、A/D模数转换、DMA、LED显示等各个器件的性能和使用方法。课程设计的目地是综合这些基础知识,就具体问题让学生做出软、硬件解决方案并付诸实施,以培养解决实际问题的能力。

本程序的主要设计原理是用主程序完成键盘按键的扫描,实现计时结果的数码管显示,实现时分秒与年月日之间的转换。通过判断键盘按键调用相应功能程序段以实现相应功能,即实现了初始化年月日、初始化时分秒、显示年月日、显示时分秒等功能。通过实验板上的键盘实现一次性对年月日的六位数字或者时分秒的六位数字同时进行初始化的手动设置功能,在本次实验的所有班级中只有我们一组是通过这种方式进行的初始化,这也是我们组的特色所在。

利用8253的定时器功能。8253的四个端口地址为48H,49H,4AH,4BH,本实验采用8253的计数器2,工作在方式3(方波发生器方式)输入CLK2为1MHZ。先给8253的初始值0C350H,循环记数。即一次记数完后,自动装入初始值。输出OUT2作为8259的输入脉冲。8259有两个口地址,本实验为20H和21H,其中20H用来写ICW1,21H用来写ICW2、ICW4,本实验中8259为单片,边沿触发,采用3号中断源,即IR3和8253输出口OUT2相连,每过1/20秒接收到一个中断,向8259发出中断请求信号,如果电平信号不符合要求,则自动转到7号中断,显示"ERR",CPU响应后,在中断处理程序中,对中断次数进行记数,记满20次,把时间缓冲区中的时间加1,并将其输入到显示缓冲区,这样便实现了产生一秒钟长短的时间间隔,以作为程序的主要时钟。

计数初值的计算:X=1M/2=50000D=0C350H(用1MHZ信号产生1/20秒方波)。

(二)主要模块:

【1】系统总体设计:

本系统设计的电子钟以 8088 微处理器作为 CPU, 8253 做定时计数器产生一秒钟的时间间隔用作程序的主要时钟频率,8279 做可编程并行接口显示时钟和键盘电路,8259 做中断控制器产生中断。在此系统中,8253 的功能是定时,接入 8253 的 CLK 信号为周期性时钟信号。 8253 采用计数器 0和计数器2。计数器2:工作于方式 3,使 8253 的 OUT0 端输出周期性的负脉冲信号,即每隔 20ms,8253 的 OUT0 端就会输出一个负脉冲的信号,此信号接 8259 的 IR2,当中断到 50 次数后,CPU 即处理,使液晶显示器上的时间发生变化。计数器0 :工作于方式3,使 8253 的 OUT2 作为蜂鸣器的输入信号,使蜂鸣器产生闹铃。 8255的PB0口与8253的GATE0相连,8255的PB0受程序里面的函数控制,当需要闹铃的时候置1,否则置0。程序由以下模块组成:系统共有 6 个功能模块,分别为,主控模块,显示模块,定时模块,闹钟模块,中断模块,初始化模块。

【2】主控模块:

主控模块是系的核心模块,对 8253、8255、8279 进行初始化,设置中断向量,主要由软件实现。再由主控模块进入程序菜单,程序菜单的主要功能是调用其它模块对系统工作进行协调,它的主要功能是读小键盘输入键值并执行要做的工作,每当进入菜单就会先调用显示模块SHOW1,显示58-58-58,表示成功进入了菜单。接下来读键值选择相应的功能,如果键值为 F 则初始化年月日并置入相应的内存,成功后返回主控模块。如果键值为 D则初始化时分秒并置入相应的内存,成功后返回主控模块。如果键值为 B 则显示年月日内存中的值,成功后等待下次有键输入后返回主控程序。如果健值为 9 则显示时分秒内存中的值,成功后等待下次有键输入后返回主控程序。并调用显示模块显示。

【3】定时模块:

定时模块是为 8259 提供中断请求信号的。由一片 8253 实现,选用定时器0#,工作在方式 3,由于时钟应该 1 秒走动一次,所以输出值应为 1S,其输出信号可作为 8259 的中断请求信号。

【4】中断处理模块:

中断模块实现动态显示的,硬件为一片 8259,由于中断请求信号为每秒一次,中断程序该为时间按秒增加,并显示,只要开中断,便可实现每秒显示时间增加一秒,从而达到动态显示的效果。

【5】并行模块:

并行模块是8255是数据在多根传输线上一次以8位为单位进行传输。8255由数据总线缓冲器,读/写控制逻辑、A组和B 组控制电路以及3个数据端口(A 口、B 口和C口)等组成。

【6】显示模块:

显示模块是将显示缓冲区的数值送到 LED 显示的功能模块,显示缓冲区是由六个字节构成,分别保存小时的高位和低位,分钟的高位和低位,秒钟的高位和低位。硬件上由六个 LED 构成,软件上由扫描显示的方法实现。

(三)芯片初始化:

【1】8253A定时/计数:

8253 A既可作定时器又可作计数器:

(1) 计数:计数器装入初值后,当GATE为高电平时,可用外部事件作为CLK 脉冲对计数值进行减1 计数,每来一个脉冲减1,当计数值减至0时,由OUT 端输出一个标志信号。

(2) 定时:计数器装入初值后,当GATE为高电平时,由CLK 脉冲触发开始自动计数,当计数到零时,发计数结束定时信号。

除上述典型应用外,8253A还可作频率发生器、分频器、实时钟、单脉冲发生器等。

8253A控制字

7 6 5 4 3 2 1 0

00 选计数器0 数制控制:0 = 二进制,1= BCD

01 选计数器1

10 选计数器2 工作方式选择:000 方式0

11 非法001 方式1

×10 方式2

00 计数器锁存命令×11 方式3

01 只读/写低8位,高8位自动置0 100 方式4

10 只读/写高8位,低8位自动置0 101 方式5

11 先写低8位,后写高8位

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