中南大学微机原理课程设计实验报告题目设计电子万年历专业班级通信工程1一、设计目的及要求(1)设计任务:通过本次课程设计,使学生巩固和加深微型计算机原理理论知识,通过过实践进一步加强学生独立分析问题和解决问题的能力、综合设计及创新能力的培养,同时注意培养学生实事求是、严肃认真的科学作风和良好的实验习惯,为今后工作打下良好的基础。计算机原理与接口课程课程设计结合教学内容,从应用的角度出发,进行三类课程设计,分别分为:汇编语言程序设计、微机标准接口课程设计和接口技术课程设计。(1)通过设计电子万年历,掌握中断的使用方法。(2)掌握基本的显存读写技术。(3)学会在屏幕上以七段数码管的形式显示本机时间的方法。(4)学会用汇编语言编写一个完整的程序,提高自己的动手操作能力。(5)学习程序设计的基本思路和方法,培养分析问题、解决问题的能力。汇编语言是计算机能够提供给用户使用的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。因而,对程序的空间和时间的要求很高的场合,汇编语言的应用是必不可少的。至于很多需要直接控制硬件的应用场合,则更是非用汇编语言不可了。随着科学技术迅速发展,理工科大学生不仅需要掌握计算机方而的基本理论知识,而且还需要掌握基本的实验技能及一定的科学研究能力。通过课程设计,使学生巩固和加深微型计算机原理理论知识,通过实践进一步加强学生独立分析问题和解决问题的能力、综合设计及创新能力的培养,同时注意培养学生实事求是、严肃认真的科学作风和良好的实验习惯,为今后工作打下良好的基础。鉴于汇编语言的广泛用途及其在当代计算机界的重要作用,本人利用学的知识,在同学门的帮助下,花费大量时间,完成了关于电子万年历的系统设计。这个系统是应用于电脑中的小应用程序,可是显示电脑中的时间。很多地方都会有个时钟显示,其中大多是应用了类似这样的方法。关键词:汇编语言微机原理接口技术时钟显示键盘输入一次性初始化六位(二)设计功能:1.电子万年历,具有年、月、日、时、分、秒24小时制的运行,并可以在8位数码管上显示:2.电子万年历具有启动键、蜂鸣、整点报时、暂停、初始化年、月、日、时、分、秒。2(三)课程设计方式与基本要求:[1】实验方式:微机原理与接口技术课程设计共2周,要求学生做出设计方案(硬件线路图、程序框图)并提交指导教师检査确认。然后进行硬件连接、软件调试、得出结果,由指导教师检查是否达到设计要求,最后撰写报告。根据通信工程专业学生的实际情况,课程设计的指导思想是:对于学习成绩好、动手能力强的学生,让他们有充分发挥的余地:对于大多数学生务必完成设计要求:对于少数学习稍差的学生只需完成基本要求。基于这一原则给出了3〜5个题目,每一个题目的大小、难易可以伸缩,由学生自选。[2】基本要求:电子万年历(三星)设计任务:1.正常计时并显示,默认状态下用8个7段LED数码管作为显示设备,显示:时一分一秒,每秒刷新显示;2.通过按键,可以切换显示:年(后两位)一月——日;3.通过按键,可以调整时间:4.实习整点定时闹铃功能,整点定时输出为音乐信号或语音信号。扩展:可通过串口通讯来获取电子万年历的时间。其他功能(创新部分)(四)设计所用元件设备是武汉恒科电子教学仪器有限公司的超B—3000TB综合实验/仿真系统。配合PC机构成实验环境。8253定时器:用于产生秒脉冲,计数器2的输出信号作为中断请示信号送IRQ3o以及计数器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为1MHZO先给8253的初始值0C350H,循环记数。即一次记数完后,自动装入初始值。输出0UT2作为8259的输入脉冲。8259有两个口地址,本实验为20H和21H,其中20H用来写ICW1,21H用来写ICW2、ICW4,本实验中8259为单片,边沿触发,采用3号中断源,即IR3和8253输出口0UT2相连,每过1/20秒接收到一个中断,向8259发出中断请求信号,如果电平信号不符合要求,则自动转到7号中断,显示ERR,CPU响应后,在中断处理程序中,对中断次数进行记数,记满20次,把时间缓冲区中的时间加1,并将其输入到显示缓冲区,这4样便实现了产生一秒钟长短的时间间隔,以作为程序的主要时钟。计数初值的计算: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个功能模块,分别为,主控模块,显示模块,定时模块,闹钟模块,中断模块,初始化模块。5Wd-Hv块系统总体框團(2]主控模块:主控模块是系的核心模块,对8253、8255、8279进行初始化,设置中断向量,主要由软件实现。再由主控模块进入程序菜单,程序菜单的主要功能是调用其它模块对系统工作进行协调,它的主要功能是读小键盘输入键值并执行要做的工作,每当进入菜单就会先调用显示模块SH0W1,显示58-58-58,表示成功进入了菜单。接下来读键值选择相应的功能,如果键值为F则初始化年月日并置入相应的内存,成功后返回主控模块。如果键值为D则初始化时分秒并置入相应的内存,成功后返回主控模块。如果键值为B则显示年月日内存中的值,成功后等待下次有键输入后返回主控程序。如果健值为9则显示时分秒内存中的值,成功后等待下次有键输入后返回主控程序。并调用显示模块显示。(3]定时模块:定时模块是为8259提供中断请求信号的。由一片8253实现,选用定时器0#,工作在方式3,由于时钟应该1秒走动一次,所以输岀值应为1S,其输出信号可作为8259的中断请求信号。6AlAO:用来选择计数器和疸制字寄存器方式二:频率发生器方式【4】中断处理模块:中断模块实现动态显示的,硬件为一片8259,由于中断请求信号为每秒一次,中断程序该为时间按秒增加,并显示,只要开中断,便可实现每秒显示时间增加一秒,从而达到动态显示的效果。)§8D7D6D5gD3D2DlmKOJTOrEDND3JVuc23职ZDRKa)cs2]AlSIAO3JCLK213DUT2ISGATE2BJCLK1DO-D7:三态数据钱.和数据总钱相连GATE012:门控输人端.对应相同号计数器CS:片选端.低电平有效.WR:写信号输入端,低电平有效.RD:读信号綸入端,低电平有效.CLKO12:各计数器时钟宿号输入孃.OUT012:相应计数器输岀端•8253井有以下几种工作方式:SGATE1方氏第:计数结束发生中断23DUT1方式一:可编程单次眯冲方式L13T9--IRO19IR1201R221IR322IR423IR52$IR625IR7IOR_____UINTR1厂IHTA2―nJT'H.DODlMmMDSIHSMMWRRDDnQnCASCASCAS01234567ammmmS“EH7【5】并行模块:并行模块是8255是数据在多根传输线上一次以8位为单位进行传输。8255由数据总线缓冲器,读/写控制逻辑、A组和B组控制电路以及3个数据端口(A口、B口和C口)等组成。8口高4位0默A口0输岀口1输入人曲式选择月?10-坊瞬制9熬冬賣位嗖位控制字厅式遠择D7D6D5D4D3D20iro丁J复位1•位[6]显示脱:PA3PA2PA1PA0RD矗久PC7PC6PC5PC4PCOPC1PC2PC3P80PB1P82叭PA5PA6PA7gREmD1D2D3CMD5D6a心P87P8SPBSP84PB3Eg固丙卫国可卫宓师隠何油回5vggN8其控制字窑式如下:D7D6D5D4O3D2D1D0-“十0镐岀C组低4位1舍入0输出I输入9显示模块是将显示缓冲区的数值送到LED显示的功能模块,显示缓冲区是由六个字节构成,分别保存小时的高位和低位,分钟的高位和低位,秒钟的高位和低位。硬件上由六个LED构成,软件上由扫描显示的方法实现。(三)芯片初始化:【1】8263A定时7计数:8253A既可作左时器又可作计数器:(1)计数:计数器装入初值后,当GATE为高电平时,可用外部事件作为CLK脉冲对计数值进行减1计数,每来一个脉冲减1,当计数值减至0时,由OUT端输出一个标志信号。(2)定时:计数器装入初值后,当GATE为高电平时,由CLK脉冲触发开始自动计数,当计数到零时,发计数结束左时信号。10除上述典型应用外,8253A还可作频率发生器、分频器、实时钟、单脉冲发生器等。8253A控制字76543210y7Y(3)以上为8253计数器2的初始化过程,计数器0的初始化过程类似,只是计数初值不再为053C而改为02,表示把输入的时钟频率二分频,以达到可以使蜂鸣器报警的效果。[2]8259单级中斷控制:8259A编程及初始化写初始化命令字写初始化命令字ICWl(A0=0),以确宦中断请求信号类型,清除中断屏蔽寄存器,中断优先级排队和确宦系统用单片还是多片。中断优先级排队和确立系统用单片还是多片。00选计数器001选计数器110选计数器211非法一00计数器锁存命令—01只读/写低8位,高8位口动迓0—10只读/写高8位,低8位口动宜0一11先写低8位,后写高8位数制控制:0=二进制,1=BCD工作方式选择:000方式0001方式IxlO方式2x】】方式3100方式4101方式5A幻【3】8279显示接口:8279A的控制命令(1)键盘显示器方式设置命令76543210I0010IDDKKKXZ---------------------------数据输入及扫描方式-000组码扫描疑盘输入,2礎互锁♦-001译码扫描.键盘侖入.2键互锁-010编咼扌欢鍵盘输入,多键有效-011译玛扫捞讎盘输人,多键有效-100编码扫趙.传感器陈列检测_]01译码扫崔,传越•器陆列检测-liots码扫省港通输入-111译码扫培逛通输入*RESET后,设定为该种方式。(2)扫描频率控制命令设置2〜31,对外部时钟CLK的分频系数,