电子时钟,汇编,8253+8255+8259
更新时间:2024-03-16 17:07:01 阅读量: 综合文库 文档下载
- 51单片机电子时钟汇编推荐度:
- 相关推荐
目 录
一、课程设计目的2 二、课程设计任务2
1、内容2 2、要求2
3、设计环境2 4、设计所用设备2 三、设计所用芯片结构3
1、8259A芯片的内部结构及引脚3 2、8254芯片的内部结构及引脚4 3、8255芯片的内部结构及引脚5 四、具体模块设计6
1、概述6
2、主程序模块7 3、小键盘模块7 4、显示模块8 5、定时模块8 五、程序流程图9
主程序流程图:9
键盘扫描程序流程图: 附录一:参考书目13 附录二:部分源代码13 一、课程设计目的和意义 通过本次课程设计要掌握此三种芯片使用的方法,灵活运用课本知识,加深所学的知识,对所学的相关芯片的原理、内部结构、使用方法等有更加深刻的了解,学会利用课本知识联系实际应用及编程。同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。 二、开发环境及设备 ①设计环境 PC机一台、windows XP系统、实验箱、导线若干。 ②设计所用设备 8254定时器:用于产生秒脉冲,其输出信号可作为中断请示信号送IRQ2。 8255并口:用做接口芯片,和小键盘相连。 8259中断控制器:用于产生中断。 LED:六个LED用于显示时:分:秒值。 小键盘:用于控制设置。 三、设计思想与原理 1、设计思想 本系统设计的电子时钟以8088微处理器作为CPU,用8254做定时计数器产生时钟频率,8255做可编程并行接口显示时钟和键盘电路,8259做中断控制器产生中断。在此系统中,8254的功能是定时,接入8254的CLK信号为周期性时钟信号。8254采用计数器0,工作于方式2,使8254的OUT0端输出周期性的负脉冲信号。即每隔20ms,8254的OUT0端就会输出一个负脉冲的信号,此信号接8259的IR2,当中断到50次数后,CPU即处理,使液晶显示器上的时间发生变化。 其中8259只需初始化ICW1,其功能是向8259表明IRx输入是电瓶触发方式还是上升沿触发方式,是单片8259还是多片8259。8259接收到信号后,产生中断信号送CPU处理。 2、设计原理 利用实验台上提供的定时器8254和扩展板上提供的8259以及键盘和数码 显示电路,设计一个电子时钟,由8254中断定时,小键盘控制电子时钟的启停及初始值的预置。电子时钟的显示格式HH:MM:SS由左到右分别为时、分、秒,最大记时59:59:59超过这个时间时分秒位都清零从00:00:00重新开始。 基本工作原理:每百分之一秒对百分之一秒寄存器的内容加一,并依次对秒、分、小时寄存器的内容加一,六个数码管动态显示时、分、秒的当前值。 1、内容 利用实验台上提供的定时器8254和扩展板上提供的8259以及键盘和数码显示电路,设计一个电子时钟,由8254中断定时,小键盘控制电子时钟的启停及初始值的预置。 电子时钟的显示格式HH:MM:SS由左到右分别为时、分、秒,最大记时59:59:59超过这个时间时分秒位都清零从00:00:00重新开始。 2、要求 本实验要求设计一个定时显示装置,用六个数码管显示时间,用小键盘控制计时,设置和显示时间。系统一运行就从00点00分00秒开始计时,并在数码管上显示时、分、秒当前值,而且,可以用键盘设置当前时间。 基本工作原理:每百分之一秒对百分之一秒寄存器的内容加一,并依次对秒、分、小时寄存器的内容加一;六个数码管动态显示时、分、秒的当前值。 C键:置初值,显示00:00:00 G键:显示动态变化<启动表); D键:显示静态不变<表停止); E键:终止程序,返回DOS; P键:设置时:分:秒的值 3、设计环境 PC机一台、windows XP系统、实验箱,导线若干。 4、设计所用设备 8254定时器:用于产生秒脉冲,其输出信号可作为中断请示信号送IRQ2。 8255并口:用做接口芯片,和小键盘相连。 8259中断控制器:用于产生中断。 LED:六个LED用于显示时:分:秒值。 小键盘:用于控制设置。 三、设计所用芯片结构 1、8259A芯片的内部结构及引脚 中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。它将中断源优先排队、辨别中断源以及提供中断矢量的电路集中于一片中。因此无需附加任何电路,只需对8259A编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。在MD微机系统中,8259芯片工作于单片方式。 8259引脚图如图3.3,各引脚功能如下。 D7~D0——八条双向数据线; WR<低电平有效)——写输入信号; RD<低电平有效)——读输入信号; CS<低电平有效)——片选输入信号; A0——地址信号; INT——中断请求信号; INTA<低电平有效)——中断响应信号; CAS0~CAS2——级联信号,形成一条专用8259A总线,以便多片8259A的级联; SP/EN——从编程/允许级联。在缓冲方式中,可用做输出信号以控制总线缓冲器的接收和发送。在非缓冲方式中,作为输入信号用于表示主片还是从片; IR0~IR7——外部中断请求输入线。要求输入的中断请求信号是由低电平到高电平的上升沿<并保持高电平到CPU响应时为止)或者是高电平。 8259中断矢量地址与中断信号之间的关系如表3.1所示: 中断序号 0 功能调用 08H 矢量地址 20H 1 09H 24H 表3.1 8259A中断矢量表 图3.1 8259A引脚图 2 0AH 28H 3 0BH 2CH 4 0CH 30H 5 0DH 34H 6 0EH 38H 7 0FH 3CH ~ 23H 说明 时钟 ~ 27H 键盘 ~ 2BH 可用 ~ 2FH 可用 ~ 33H ~ 37H ~ 3BH 可用 ~ 3FH 可用 串行口 可用 2、8255芯片的内部结构及引脚 8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种工作方式下工作: 方式0—基本输入/输出方式 方式1—选通输入/输出方式 方式2—双向选通输入/输出方式 8255引脚图如图3.2示,各引脚功能如下。 D7~D0——与CPU侧连接的八条双向数据线; WR<低电平有效)——写输入信号; RD<低电平有效)——读输入信号; CS<低电平有效)——片选输入信号; A0、A1——片内寄存器选择输入信号; PA7~PA0——A口外设双向数据线; PB7~PB0——B口外设双向数据线; PC7~PC0——C口外设双向数据线; RESET——复位输入信号 2、8255端口地址 信号线 表3.2 8255端口地址表 图3.2 8255引脚图 寄存器 A口 编址 60H 61H 62H 63H IOY3 B口 C口 控制寄存器 3、8254芯片的内部结构及引脚 8254可编程定时/计数器是Intel公司生产的通用外围芯片之一,有3个独 立的十六位计数器,技术频率范围为0~2MHZ,它所有的技术方式和操作方式都通过编程控制。 8254的功能用途是: (1) (2) (3) (4) (5) (6) (7) 延时中断 可编程频率发生器 事件计数器 二进倍频器 实时时钟 数字单稳 复杂的电机控制器 8254有六种工作方式: (1) (2) (3) (4) (5) 方式0:计数结束中断 方式1:可编程频率发生器 方式2:频率发生器 方式3:方波频率发生器 方式4:软件触发的选通信号 <6)方式5:硬件触发的选通信号 8254引脚图如图3.3示,各引脚功能如下。 D7~D0——八条双向数据线; WR<低电平有效)——写输入信号; RD<低电平有效)——读输入信号; CS<低电平有效)——片选输入信号; A0、A1——片内寄存器地址输入信号; CLK——计数输入,用于输入定时基准脉冲或计数脉冲; OUT——输出信号,以相应的电平指示计数的完成,或输出脉冲波形; GATE——选通输入<门控输入),用于启动或禁止计数器的操作,以使计数器和计测对象同步。 2、8254端口地址 信号线 IOY2 表3.3 8254端口地址表 寄存器 0#计数器 编址 40H 1#计数器 2#计数器 控制寄存器 41H 42H 43H 四、具体模块设计 1、概述 本系统设计的电子钟以8088微处理器作为CPU,用8254做定时计数器产生时钟频率,8255做可编程并行接口显示时钟和键盘电路,8259做中断控制器产生中断。在此系统中,8254的功能是定时,接入8254的CLK信号为周期性时钟信号。8254采用计数器0,工作于方式2,使8254的OUT0端输出周期性的负脉冲信号。即每隔20ms,8254的OUT0端就会输出一个负脉冲的信号,此信号接8259的IR2,当中断到50次数后,CPU即处理,使液晶显示器上的时间发生变化。程序由以下模块组成:系统共有5个功能模块,分别为,主控模块,显示模块,定时模块,中断模块,小键盘模块。 系统框图如下: 显示模块 六个LED 小键盘模块 小键盘 8255A 显示缓冲的值键盘读入的数中断模块 8259 2、主程序模块 主控模块是系的核心模块,对8254、8255A进行初始化,设置中断向量,扫描键盘根据按键值作相应的处理。主要由软件实现。它的主要功能是调用其 主控模块 秒脉冲 定时模块 8254 图一 系统框图 它模块对系统工作进行协调,它的主要功能是读小键盘输入键值并执行要做的工作,如果键值为C则将显示初始值00:00:00置入显示缓冲,并调用显示模块显示。如果键值为G则开中断,<中断程序为秒最低位加一)。如果键值为D则关中断,停止动态显示。如健值为P则连续六次调用小键盘模块,将键值依次存入显示缓冲。并调用显示模块显示。如果健值为E,则终止程序,返回DOS。 3、小键盘模块 小键盘模块送入主控模块的子功能模块。由软件和硬件实现,硬件上由小键盘和8255互连,将小键值由8255送入主控模块。软件上使用行扫描法获得键值并送回主控模块。本课题只考虑去抖动。执行一个约10ms的延时程序后再扫描键盘,若F0=1表示真正有键按下,从而消除了抖动影响。 实现代码如下: key roc near push cx kst: mov al,82h mov dx,p55ctl out dx,al mov al,00h mov dx,pa55 out dx,al mov dx,pb55 in al,dx or al,0f8h cmp al,0ffh jz delay mov cx,0300h dly: loop dly mov cl,08h mov ah,0feh scan1: mov dx,pa55 mov al,ah out dx,al mov dx,pb55 in al,dx or al,0f8h cmp al,0ffh jnz keyn rol ah,1 dec cl jnz scan1 jmp kst keyn: push ax mov dx,pb55 relea: in al,dx or al,0f8h cmp al,0ffh jnz relea pop ax not ax mov si,offset table mov di,offset char mov cx,24 tt: cmp ax,[si] jz nn dec cx jz kst add si,02 inc di jmp tt nn: mov dl,[di] mov [char1],dl mov ah,02h int 21h pop cx jmp yang delay: call disply jmp kst yang: ret key endp 4、显示模块 显示模块是将显示缓冲区的数值送到LED显示的功能模块,显示缓冲区是由六个字节构成,分别保存小时的高位和低位,分钟的高位和低位,秒钟的高位和低位。硬件上由六个LED构成,软件上由扫描显示的方法实现。 实现代码如下: display proc near mov cx,77ffh led52: call disup loop led52 disup: push cx mov di,offset min1 mov cl,01 disup1: mov al,0 mov dx,portbit out dx,al mov al,[di] mov bx,offset led xlat mov dx,portseg out dx,al mov al,cl mov dx,portbit out dx,al mov bx,35h delay1: dec bx jnz delay1 cmp cl,20h jz disup2 inc di shl cl,1 jmp disup1 disup2: pop cx ret display endp 5、定时模块 定时模块是为8259提供中断请求信号的。由一片8254实现,选用定时器0#,工作在方式3,由4时钟应该1秒走动一次,所以输出值应为1S,其输出信号可作为8259的中断请求信号。 6、中断处理模块 中断模块实现动态显示的,硬件为一片8259,因为中断请求信号为每秒一次,中断程序该为时间按秒增加,并显示,只要开中断,便可实现每秒显示时间增加一秒,从而达到动态显示的效果。 7、按如下接线图连接好实验箱上的芯片引脚,主要用到器件有8255,8254,LED,8259,小键盘。8254的片选接地址208-20F,OUT1,OUT0接灯(测试用>,GATE0,GATE1接+5V,CLK1接8259的IRQ2,CLK0接Q12(12分频>。 8255的片选接地址218-21F,实验箱已将其和小键盘相连。 LED的片选接地址210-217。 8259 8254 CLK1 CLK0 IR2 CS OUT1 OUT0 GATE1 GATE0 +5V 8MHz 208-20F 210-217 218-21F A LS393 B CS 6个LED Q4 8 2 5 5 CS PB2 小键盘 。。。。。。PA0 图二 实验接线图 五、程序流程图 主程序流程图: 开始 8254A作为中断源产生20MS脉冲 设置堆栈 显示提示信息 用INT21H35H号功能保存系统中8259A原中断向量 用INT21H35H号功能设置0A中断新的中断向量,指向年,月,日加1的中断处理程序 置8259A的IMR第2位为0,允许IRQ2中断 调用键扫描子程序 开始 置8255A控制字,A口为输出,B口为输入 A口全输出低电平,从B口读入数Y 列线全为高电平吗 N 保存列值,延时取抖置8255控制字,A口为输入,B口为输出 往B口输出保存的列值 从A口读入行值 和键表比较 N 是否找到匹配键 Y 显示输入的字符 置8255A控制字,A口为输出,B口为输入 A口全输出低电平,从B口读N 键释放了吗? Y 返回 中断处理程序流程图: 开始 开中断 Y 秒个位加一 秒个位小于9 N 秒个位清零,秒十位加一 秒十位小于6 N 秒十位清零,分个位加一 Y Y 分个位小于A N 分个位清零,分十位加一 Y 分十位小于6 N 分十位清零,时个位加一 时十位小于2 N Y 时个位小于9 N 时个位清零,时十位加一 时个位小于4 N 时个位清零,时十位清零 Y 发中断结束命令,中断返回 六、心得体会 附录一:参考书目 1、戴梅萼,史嘉权编著.微型计算机技术及应用(第三版>.北京:清华大学出版社,2003 2、周明德编著.微型计算机系统原理及应用(第四版>.北京:清华大学出版社,2002 3、李顺增,吴国东,赵河明等.微机原理及接口技术.北京:机械工业出版社,2006 4、杨立新.微型计算机原理和应用[M].北京:科学技术文献出版社,1986.11 5、李大友.微型计算机原理[M].北京:清华大学出版社,1998.7 6、眭碧霞.微型计算机原理与组成[M].人民邮电出版社,2003.8 附录二:部分源代码
正在阅读:
2017-2018年苏教版小学语文四年级上册练习6优质教案06-03
14财年个人总结15财年工作目标06-21
财务管理09-15
施工组织设计(1)04-20
2009年10月自学考试财政与金融试题06-11
航海及海运专业英语词汇 U组01-14
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 时钟
- 汇编
- 电子
- 8253
- 8255
- 8259
- 秘传八字泄天机
- 2017-2018年教科版(六三制)语文小学四年级上册《警惕大自然的
- 一件难忘的事
- 存货盘点差异的原因和处理意见
- 29 双星问题 卫星变轨
- 创先争优党员承诺践诺情况小结
- 浙江省温州市普通高中2017届高三2月高考模拟考试数学试题
- 剑侠2师门三套的获得 - 图文
- q235和16锰钢焊接
- 2018-2024年中国多工位组合机床行业发展现状分析及前景趋势预测
- 材料模型与状态方程
- (0326)婚姻继承法复习思考题
- 工程项目日常管理工作
- 人教版八年级英语上册教案 Unit 5
- 瓶胚常见缺陷分析及处理方法
- 南长街施工组织设计
- 1、移动通信直放站、室内分布系统 - 图文
- 如何做好小学六年级数学课的复习工作-精品文档
- 中国古代的中央集权制度
- 关于贯彻落实《职业病防治法》认真做好职业卫生监管工作的通知