中南大学微机原理课程设计报告Word文档格式.docx
《中南大学微机原理课程设计报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《中南大学微机原理课程设计报告Word文档格式.docx(34页珍藏版)》请在冰豆网上搜索。
因而,对程序的空间和时间的要求很高的场合,汇编语言的应用是必不可少的。
至于很多需要直
接控制硬件的应用场合,则更是非用汇编语言不可了。
随着科学技术迅速发展,理工科大学生不仅需要掌握计算机方面的基本理论知识,而且还需要掌握基本
的实验技能及一定的科学研究能力。
通过课程设计,使学生巩固和加深微型计算机原理理论知识,通过实践进一步加强学生独立分析问题和解决问题的能力、综合设计及创新能力的培养,同时注意培养学生实事求是、严肃认真的科学作风和良好的实验习惯,为今后工作打下良好的基础。
鉴于汇编语言的广泛用途及其在当代计算机界的重要作用,本人利用学的知识,在同学门的帮助下,花费大量时间,完成了关于电子万年历的系统设计。
这个系统是应用于电脑中的小应用程序,可是显示电脑中的时间。
很多地方都会有个时钟显示,其中大多是应用了类似这样的方法。
关键词:
汇编语言 微机原理 接口技术 时钟显示 键盘输入一次性初始化六位
7
(二)设计功能:
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定时/计数:
8253A既可作定时器又可作计数器:
(1)计数:
计数器装入初值后,当GATE为高电平时,可用外部事件作为
CLK脉冲对计数值进行减1计数,每来一个脉冲减1,当计数值减至0时,由
OUT端输出一个标志信号。
(2)定时:
计数器装入初值后,当GATE为高电平时,由CLK脉冲触发开始自动计数,当计数到零时,发计数结束定时信号。
除上述典型应用外,8253A还可作频率发生器、分频器、实时钟、单脉冲发生器等。
8253A控制字
6
5
4
3
2
1
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位
(3)以上为8253计数器2的初始化过程,计数器0的初始化过程类似,只是计数初值不再为053C而改为02,表示把输入的时钟频率二分频,以达到可以使蜂鸣器报警的效果。
【2】8259单级中断控制:
8259A编程及初始化写初始化命令字
写初始化命令字ICW1(A0=0),以确定中断请求信号类型,清除中断屏蔽寄存器,中断优先级排队和确定系统用单片还是多片。
中断优先级排队和确定系统用单片还是多片。
A7
A6
A5
7 6 5 4 3 2 1 0
下为0)
0=不需写ICW4;
1=需要写ICW4
0=多片8259级连;
1=只一片8259
0=中断向量地址间距8;
1=地址间距4(8088模式
0=上升沿触发;
1=高电平触发
为1,ICW1标志位 8
【3】8279显示接口:
8279A的控制命令
(1)键盘显示器方式设置命令
*RESET后,设定为该种方式。
(2)扫描频率控制命令
【4】8255并行: