课程设计---夜班防睡控制和记录器报告.doc_第1页
课程设计---夜班防睡控制和记录器报告.doc_第2页
课程设计---夜班防睡控制和记录器报告.doc_第3页
课程设计---夜班防睡控制和记录器报告.doc_第4页
课程设计---夜班防睡控制和记录器报告.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机接口技术课程设计报告设计题目:夜班防睡控制和记录器目录目录2前 言3一系统概述4(1)系统设计思想4(2)可行性论证7二. 单元电路设计与分析8(1) 8255引脚功能8(2) 8254 可编程计数定时器9三、软件编程与调试11四、结束语11附 录13附录1 元器件明细表13附录2 电路原理图13附录3 源程序清单14参考文献20夜班防睡控制和记录器前 言此实验要求设计一个夜班防睡控制和记录器,每10min用较柔和的声音提醒一次值班者,值班者按某一键后复位,计时重新开始;若计到11min时无人按复位键,则以较急促的声音报警,黄灯闪烁以示报警;当到60min时无人按复位键,则红灯闪烁,并以尖锐的声音持续报警,并记录下这个时刻,以便管理者查看。显示格式:时、分、秒。在课程设计之前,我们首先对设计题目进行了小组内部讨论,按照题目要求行了系统需求分析。然后学习了唐都实验箱的结构和各模块的相关功能,并搜集了相关讲解微机接口技术的资料和书目,然后学习了本课程设计所需的8255并行接口芯片、8254定时器/计数器芯片的知识,之后确定了总体设计方案,再将任务划分好模块(计时模块、判断模块、报警模块、显示模块)后具体分配到小组成员,由小组成员分别进行相应模块的硬件设计和软件设计。小组成员设计、调试完各模块后,最后将各模块设计好的硬件模块和软件模块集中、整合在一起,进行统一的统筹和调试工作,以达到设计要求,最后按照要求进行适当的功能扩展,并撰写了此课程设计报告。 一系统概述(1)系统设计思想本实验是利用微机原理试验箱、8255芯片、8254芯片、pc机等硬件设备设计夜班防睡控制和记录器。首先利用了编程程序,编辑了8255芯片控制字, 对其进行初始化,使其工作在方式0即基本输入输出状态,将8255的b端口设置为输出,其中pb0和pb1接led灯,pb2接8254芯片的gate2信号端;c端口做为输入端口,其中pc0用做复位输入,pc1用做负脉冲输入(为1秒计时)。将8254的计数器0设置在工作方式2下,用来产生计数负脉冲。其中clk0接1khz,out0接8255的pc1端口,当8255的pc1端口检测到低电平时调用计时子程序。当每次计时后需要判断所计时间是否达到设计要求,若达到要求则调相应的报警子程序。在报警子程序中利用8254的计数器2来产生响铃脉冲,所以计数器2应工作在方式3下,gate2端接8255的pb2用来实现计数器2以软件启动方式启动,clk2接100hz作为定时脉冲。out2接扬声器。模块执行顺序计时模块报警模块判断模块显示模块主程序流程图如下:开始程序初始化初始化8255的b端口和8254的计数器0pc1为低电平ypc0 为低电平nn计时子程序y判断模块报警子程序结束y n判断模块:是否为60min开始是否为11min是否为10minnnn报警3子程序报警2子程序报警1子程序yyy结束(2)可行性论证硬件可行性通过向8254定时器/计数器芯片的计数器0送计数初值,即确定了1秒。通过8255的c端口来控制程序的启动和复位操作。软件可行性对于8254芯片,先将控制字写入控制端口,然后通过计时器0确定1秒;通过定时器2产生响铃脉冲。对于8255,先写控制字,然后通过编程实现计数、判断等即可。操作可行性实验程序在pc机理的tdpit软件里运行,控制唐都实验箱里的硬件设备。二. 单元电路设计与分析(1) 8255引脚功能reset:复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有i/o口均被置成输入方式。cs:片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许8255与cpu进行通讯。rd:读信号线,当这个输入引脚为低电平时,允许8255通过数据总线向cpu发送数据或状态信息,即cpu从8255读取信息或数据。wr:写入信号,当这个输入引脚为低电平时,允许cpu将数据或控制字写入8255。d0d7:三态双向数据总线,8255与cpu数据传送的通道,当cpu 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。pa0pa7:端口a输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。pb0pb7:端口b输入输出线,一个8位的i/o锁存器, 一个8位的输入输出缓冲器。pc0pc7:端口c输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口c可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口a和端口b配合使用,可作为控制信号输出或状态信号输入端口。a1、a0:端口地址总线,8255中有端口a、b、c和一个内部控制字寄存器,共4个端口,由a0、a1输入地址信号来寻址。 图 1. 8255的控制字格式(2) 8254 可编程计数定时器芯片完成对外部脉冲信号的各种处理。8254芯片内部具有三个独立的16位计数器,它可用程序设置成多种工作方式,按十进制计数或二进制计数,最高计数速率可达10mhz。8254的全部功能是由cpu编程设定的。cpu通过输出指令给8254装入控制字,从而设定其功能。8254控制字格式如下:d7d6d5d4d3d2d1d0c1c0l1l0210cd 各位的功能见表1表4: 表1 sc1、sc0 计数器选择sc1 sc0选择计数器0 0选择0#0 1选择1#1 0选择2#1 1使用方法参见8254使用说明 表2 rl1、rl0cpu读写操作rl1 rl0操作类型0 0计数器封锁操作0 1读写计数器低8位1 0读写计数器高8位1 1先读写低8位,后读写高8位 表3 bcd计数方式选择bcd数 码 形 式0十六位二进制计数1四位十进制 ( bcd ) 码计数 表4 m2、m1、m0 工作方式选择m2 m1 m0 计 数 工 作 方 式0 0 0方 式 00 0 1方 式 1x 1 0方 式 2x 1 1方 式 31 0 0方 式 41 0 1方 式 5三、软件编程与调试调试问题汇总问题1: 无法通过数码管显示出时间原因分析: 需要对数码管进行扫描显示,导致子程序无法退出解决措施: 改为用pc机屏幕显示时间四、结束语通过对这一课程设计的制作,使我们对汇编语言的基本知识的使用更加熟练,同时也增加了我们对汇编语言的一些认识,在作业完成过程中通过和同学的交流,也增加了合作的技巧。通过查询资料也学到了一些课本上没有的东西,扩宽了我们的知识面,增加了学好汇编语言的信心。这不是第一次用汇编语言来设计一个小程序,平时做了很多实验,写了很多的小程序。但这次是一个综合的程序,平时的很多程序都用到了,例如在程序中用到了不少的子程序,这些子程序的设计都是固定的,因此可以直接调用,大多只需要修改几个参数就可以了,这大大方便了我们的设计,为我们节省了很多时间。汇编语言是一门较难的计算机内容,开始学习的时候较为困难,但是平时的课堂的学习和这一次的集中的课程设计,使我不但能够较好的了解并掌握了一些汇编语言的知识和技能,相信在以后的社会生活中也可以得到应用。在最后的提交查收前,我对几天来在对几个程序的编排和改进上所遇到的问题又进行了认真的总结,使我对整个程序都有了很深的了解,而且可以熟练的操作和应用到程序中去,也顺利的通过了查收。作为一名电子信息科学与技术专业的大三学生,能做类似的课程设计不管对于巩固我们所学的理论知识还是提高我们的动手操作和应用能力都是十分有意义的,也是十分必要的。在微机接口技术课程的理论学习过程中,我们只是简单是学习了关于8255和8254芯片的理论知识,只能简单的对其进行单独设计简单程序,但是本次课程设计是对这两种芯片一起运用的综合性设计,要根据设计要求进行整体构思。在已度过的大学时间里我们大多数接触的是专业基础课。我们在课堂上掌握的仅仅是专业基础课的理论面,如何去锻炼我们的实践面?如何把我们所学到的专业基础理论知识用到实践中去呢?做类似的课程设计就为我们提供了良好的实践和锻炼平台。在做本次课程设计的过程中,我们感触最深的当数查阅大量的设计手册了。为了让我们的设计更加完善,更加符合题目要求,一次次的翻阅相关微机接口设计的书目。微机接口技术本身就是我们专业的一门很重要的专业必修课,而微机接口技术的课程设计也是我们专业实现对所学课程理论知识进行综合应用的重要实践训练平台,是我们锻炼运用能力、动手能力的一个必不可少的过程。“千里之行始于足下”,通过这次课程设计,我们深深体会到这句千古名言的真正含义。我们今天认真的进行课程设计,学会脚踏实地迈开这一步,为的就是明天能稳健地在社会大潮中奔跑打下坚实的基础。在这次课程设计中,我们真正体会到了合作的重要性,遇到很多问题时,当我们看书查资料时,这是去找同学讨论一下,收获很大,可以是很多问题迎刃而解,直到问题最终解决。不可否认,本程序存在不少缺点和不足,但通过这次作业却找出了我们在学习上的不足,对以后的工作也有指导作用。我们相信在以后的学习中会克服这些不足,达到熟练掌握汇编语言的目的!附 录附录1 元器件明细表符号名称型号 参数数量备注82558255并行接口芯片182548254定时器/计数器芯片1附录2 电路原理图8086 pb0 pb1 pb28255 pc0 pc1led灯 clk0 out0 gate08254 clk2 out2 gate2开关1khz+5v100hz扬声器附录3 源程序清单my8255_a equ 9860h ;8255端口地址my8255_b equ 9861hmy8255_c equ 9862hmy8255_mode equ 9863hmy8254_0 equ 9840h ;8254端口地址my8254_1 equ 9841hmy8254_2 equ 9842hmy8254_mode equ 9843hdata segment counts db 0 countm db 0 counth db 0 dtable db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fhdata endscode segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov dx,my8254_mode mov al,35h out dx,al ;计数器0 十进制计数 16位 模式2 mov al,0b7h out dx,al ;计数器2 十进制计数 16位 模式3 mov dx,my8255_mode mov al,81h ;初始化8255 a口、b口输出,方式0;c口低输入,高输出,方式0 out dx,al a1: mov dx,my8255_b mov al,03h out dx,al ;初始化8255 b端口 初值0bh pb0、pb1接led pb3为计数器2的gate信号 mov counts,0 mov countm,0 mov counth,0 mov dx,my8254_0 ;初始化计数器0 初值1000 mov ax,1000h out dx,al ;低8位 mov al,ah out dx,al ;高8位 a2: call break mov dx,my8255_c in al,dx ;读端口c的值 test al,01 ;检测pc0端口是否为高电平 pc0表示启动/复位 jz a1 ;低电平则复位 test al,02h ;检测pc1端口是否为低电平 pc1表示计;数脉冲 即1s jnz a2 ;高电平 跳转a2 call count ;调count 计数子程序 mov al,counth cmp al,1 ;判断时 是否为1即60min jb a3 mov al,countm ;判断是否为0分0秒 cmp al,0 jnz a2 mov al,counts cmp al,0 jnz a2 call baojing3 jmp a2 a3: mov al,countm ;判断是否为11分 cmp al,11 jnz a4 mov al,counts ;判断是否为0秒 cmp al,0 jnz a2 call baojing2 jmp a2 a4: mov al,countm ;判断是否为10分 cmp al,10 jnz a2 mov al,counts ;判断是否为0秒 cmp al,0 jnz a2 call baojing1 jmp a2count proc near inc counts mov al,counts cmp al,59 jnz a5 mov counts,0 inc countm mov al,countm cmp al,59 jnz a5 mov counts,0 mov countm,0 inc counth mov al,counth cmp al,23 jnz a5 mov counts,0 mov countm,0 mov counth,0 a5: retcount endpbaojing1 proc near mov dx,my8255_b mov al,07h ;置计数器2的gate为高电平 out dx,al mov dx,my8254_2 ;置计数器2初值 是扬声器发声 mov ax,6000h ;初值6000 out dx,al mov al,ah out dx,al retbaojing1 endp baojing2 proc near mov dx,my8255_b mov al,05h ;置计数器2的gate为高电平 led0亮 out dx,al mov dx,my8254_2 ;置计数器2初值 是扬声器发声 mov ax,4000h ;初值4000 out dx,al mov al,ah out dx,al ret baojing2 endpbaojing3 proc near mov dx,my8255_b mov al,06h ;置计数器2的gate为高电平 led1亮 out dx,al mov dx,my8254_2 ;置计数器2初值 是扬声器发声 mov ax,2000h ;初值2000 out dx,al mov al,ah out dx,al call show retbaojing3 endpshow proc near mov ah,06h mov al,1 ;al=0为清屏 ;否则 为上卷的行数 mov ch,0 ;左上角的行号 mov cl,0 ;左上角的列号 mov dh,30 ;右下角的行号 mov dl,30 ;右下角的列号 int 10h mov ah,02h mov dh,30 ; 行号 mov dl,10 ; 列号 mov bh,0 ; 页号 int 10h ; 光标定位在(30,10) mov al,counth ;显示序号 add al,30h mov dl,al mov ah,02h int 21h mov dl,: mov ah,02h int 21h mov al,counth ;显示时 mov ah,00 mov cl,10 div cl mov cx,ax add al,30h mov dl,al mov ah,02h int 21h add ch,30h mov dl,ch mov ah,02h i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论