中南大学
微机原理课程设计
实验报告
题 目
设计电子万年历
专业班级
通信工程
一、设计目的及要求
(1)设计任务:
通过本次课程设计,使学生巩固和加深微型计算机原理理论知识,通过过 实践进一步加强学生独立分析问题和解决问题的能力、综合设计及创新能力的 培养,同时注意培养学生实事求是、严肃认真的科学作风和良好的实验习惯, 为今后工作打下良好的基础。计算机原理与接口课程课程设计结合教学内容, 从应用的角度出发,进行三类课程设计,分别分为:汇编语言程序设计、微机 标准接口课程设计和接口技术课程设计。 (1) 通过设计电子万年历,掌握中断的使用方法。 (2) 掌握基本的显存读写技术。
(3) 学会在屏幕上以七段数码管的形式显示本机时间的方法。
(4) 学会用汇编语言编写一个完整的程序,提高自己的动手操作能力。 (5) 学习程序设计的基本思路和方法,培养分析问题、解决问题的能力。
汇编语言是计算机能够提供给用户使用的最快而又最有效的语言,也是能 够利用计算机所有硬件特性并能直接控制硬件的唯一语言。因而,对程序的空 间和时间的要求很高的场合,汇编语言的应用是必不可少的。至于很多需要直 接控制硬件的应用场合,则更是非用汇编语言不可了。随着科学技术迅速发展, 理工科大学生不仅需要掌握计算机方而的基本理论知识,而且还需要掌握基本 的实验技能及一定的科学研究能力。
通过课程设计,使学生巩固和加深微型计算机原理理论知识,通过实践进 一步加强学生独立分析问题和解决问题的能力、综合设计及创新能力的培养, 同时注意培养学生实事求是、严肃认真的科学作风和良好的实验习惯,为今后 工作打下良好的基础。鉴于汇编语言的广泛用途及其在当代计算机界的重要作 用,本人利用学的知识,在同学门的帮助下,花费大量时间,完成了关于电子 万年历的系统设计。这个系统是应用于电脑中的小应用程序,可是显示电脑中 的时间。很多地方都会有个时钟显示,其中大多是应用了类似这样的方法。
关键词:汇编语言微机原理接口技术时钟显示键盘输入
一次性初始化六位
(二) 设计功能:
1. 电子万年历,具有年、月、日、时、分、秒24小时制的运行,并可以在 8位数码管上显示:
2. 电子万年历具有启动键、蜂鸣、整点报时、暂停、初始化年、月、日、 时、分、秒。
1
(三) 课程设计方式与基本要求:
[1】实验方式:
微机原理与接口技术课程设计共2周,要求学生做出设计方案(硬件线路图、 程序框图)并提交指导教师检査确认。然后进行硬件连接、软件调试、得出结果, 由指导教师检查是否达到设计要求,最后撰写报告。根据通信工程专业学生的 实际情况,课程设计的指导思想是:对于学习成绩好、动手能力强的学生,让 他们有充分发挥的余地:对于大多数学生务必完成设计要求:对于少数学习稍 差的学生只需完成基本要求。基于这一原则给出了 3?5个题目,每一个题目的 大小、难易可以伸缩,由学生自选。
[2】基本要求:
电子万年历(三星)
设计任务:1.正常计时并显示,默认状态下用8个7段LED数码管作为显示 设备,显示:时一
分一秒,每秒刷新显示;
2. 通过按键,可以切换显示:年(后两位)一月——日; 3. 通过按键,可以调整时间:
4. 实习整点定时闹铃功能,整点定时输出为音乐信号或语音信号。 扩展:可通过串口通讯来获取电子万年历的时间。其他功能(创新部分)
(四)设计所用元件
设备是武汉恒科电子教学仪器有限公司的超B—3000TB综合实验/仿真系统。 配合PC机构成实验环境。
8253定时器:用于产生秒脉冲,计数器2的输出信号作为中断请示信号送 IRQ3 o以及计数器0作为蜂鸣器的输入脉冲使用。
2
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为 1MHZO先给8253的初始值0C350H,循环记数。即一次记数完后,自动装入初 始值。输出0UT2作为8259的输入脉冲。8259有两个口地址,本实验为20H和 21H,其中20H用来写ICW1, 21H用来写ICW2、ICW4,本实验中8259为单片, 边沿触发,采用3号中断源,即IR3和8253输出口 0UT2相连,每过1/20秒接 收到一个中断,向8259发出中断请求信号,如果电平信号不符合要求,则自动 转到7号中断,显示\响应后,在中断处理程序中,对中断次数进行 记数,记满20次,把时间缓冲区中的时间加1,并将其输入到显示缓冲区,这
样便实现了产生一秒钟长短的时间间隔,以作为程序的主要时钟。
计数初值的计算:X=lM/2=50000D=0C350H (用1\\【HZ信号产生1/20秒方 波)。
(二)主要模块:
【1】系统总体设计:
本系统设计的电子钟以8088微处理器作为CPU, 8253做宦时计 数器产生一秒钟的
时间间隔用作程序的主要时钟频率,8279做可编程并行 接口显示时钟和键盘电路,8259
做中断控制器产生中断。在此系统中,
8253的功能是定时,接入8253的CLK信号为周期性时钟信号。8253 采用计数器0和计数器2。计数器2:工作于方式3,使8253的OUTO端 输出周期性的负脉冲信号,即每隔20ms, 8253的0UT0端就会输出一个 负脉冲的倍号,此信号接8259的IR2,当中断到50次数后,CPU即处 理,使液晶显示器上的时间发生变化。计数器0 :工作于方式3,使8253 的OUT2作为蜂鸣器的输入倍号,使蜂鸣器产生闹铃。8255的PB0 口与 8253的GATE0相连,8255的PB0受程序里而的函数控制,当需要闹铃的时 候置1,否则置0。程序由以下模块组成:系统共有6个功能模块,分别 为,主控模块,显示模块,定时模块,闹钟模块,中断模块,初始化模块。
4