微机原理课程设计报告

设计名称:LED七段数码管数字钟 学院:电子信息学院 班级:电科091

姓名: 张磊 学号:0911002064 姓名: 殷海俊 学号:0911002071 姓名: 华天一 学号:0911002074 姓名: 仝冬冬 学号:0911002017

指导教师: 梁惺彦

提交时间: 20xx年6月15日

一:设计内容

设计的电路功能是实现时钟的24进制计时并显示在数码管上,通过按键可对时钟的时、分、秒的调节并实现暂停/启动、清零功能。 CPU 8086接译码电路对外设进行寻址,并通过总线与外设实现数据传输。8255A并行接口芯片的A端口连接数码管的显示端,显示时间; B端口与数码管的控制端相连,实现动态显示;C端口连接八个按键,实现八个不可屏蔽中断,中断1实现时加、中断2实现时减、中断3实现分加、中断4实现分减、中断5实现秒加、中断6实现秒减、中断7实现暂停/启动、中断8实现清零;D端口与总线相连和CPU进行数据传输。

二: 设计原理及方案

1. 电路原理图

微机原理课程设计报告
微机原理课程设计报告

2. 硬件连接示意图 总电路图:

子电路图:

微机原理课程设计报告
微机原理课程设计报告

译码子电路图:

布局布线图:

微机原理课程设计报告
微机原理课程设计报告

3. 系统功能框图

微机原理课程设计报告
微机原理课程设计报告
微机原理课程设计报告
微机原理课程设计报告
微机原理课程设计报告

设计原理和方案:

使用软延时进行计时,通过不可屏蔽中断对时钟的时、分、秒进行调节,并可进行暂停/启动、清零功能。如果没有中断产生,系统自动对时钟的时进行24进制计时、分进行60进制计时、秒进行60进制计时,并可实现24小时自动循环显示。

微机原理课程设计报告

4. 程序流程图

微机原理课程设计报告
微机原理课程设计报告
微机原理课程设计报告
微机原理课程设计报告
微机原理课程设计报告

三: 汇编源程序代码

DATA SEGMENT ;数据段定义

TAB DB 3FH,06H,5BH,4FH,66H

DB 6DH,7DH,07H,7FH,6FH,48H ;定义段码

H1 DB 0 ;时的高位

H0 DB 0 ;时的低位

M1 DB 0 ;分的高位

M0 DB 0 ;分的低位

S1 DB 0 ;秒的高位

S0 DB 0 ;秒的低位

NUM DB 0 ;暂停/启动次数

SNUM DB 0 ;动态循环次数(程序中动态循环显示一次共调用了8

个延时子程序,每个延时6.25ms,共延时50ms,当此变量为20的时侯,秒自动加1且此变量清零)

DATA ENDS

CODE SEGMENT ‘CODE’ ASSUME CS:CODE,DS:DATA START:

MOV AX,DATA

MOV DS,AX ;数据段初始化 MOV AX,0 MOV ES,AX MOV DI,8

MOV AX,OFFSET INTR_KEY CLD STOSW

MOV AX,SEG INTR_KEY

STOSW ;写入中断向量 MOV AX,DATA MOV ES,AX

MOV AL,89H ;8255A初始化 MOV DX,206H OUT DX,AL LEA BX,TAB

AGAIN: ;开始循环显示 MOV AL,SNUM

CMP AL,20 ;是否循环20次 JNZ SEC0 ;否,继续显示 MOV AL,0 ;是,秒加1继续显示 MOV SNUM,AL INC S0

SEC0: ;显示秒的低位 MOV CL,7FH MOV AL,CL MOV DX,202H OUT DX,AL MOV AL,S0 XLAT

MOV DX,200H OUT DX,AL

CALL DELAY ;延时6.25ms MOV AL,S0 CMP AL,10 ;秒的低位进位判断 JNZ SEC1

MOV AL,0 MOV S0,AL INC S1 SEC1: MOV AL,S1 CMP AL,6 ;秒的高位进位判断 JNZ SEC2 MOV AL,0 MOV S1,AL INC M0

SEC2: ;显示秒的高位 ROR CL,1 MOV AL,CL MOV DX,202H OUT DX,AL MOV AL,S1 MOV DX,200H XLAT

OUT DX,AL

CALL DELAY ;延时6.25ms ROR CL,1 ;显示间隔符 MOV AL,CL MOV DX,202H OUT DX,AL MOV AL,10 XLAT

MOV DX,200H OUT DX,AL

CALL DELAY ;延时6.25ms MOV AL,M0 CMP AL,10 ;分的低位进位判断 JNZ MIN1 MOV AL,0 MOV M0,AL INC M1

MIN1: ;显示分的低位 ROR CL,1 MOV AL,CL MOV DX,202H OUT DX,AL

MOV DX,200H MOV AL,M0 XLAT

OUT DX,AL

CALL DELAY ;延时6.25ms MOV AL,M1

CMP AL,6 ;分的高位进位判断 JNZ MIN2 INC H0 MOV AL,0 MOV M1,AL

MIN2: ;显示分的高位 ROR CL,1

MOV DX,202H MOV AL,CL OUT DX,AL MOV DX,200H MOV AL,M1 XLAT

OUT DX,AL

CALL DELAY ;延时6.25ms ROR CL,1 ;显示间隔符 MOV AL,CL MOV DX,202H OUT DX,AL MOV AL,10 XLAT

MOV DX,200H OUT DX,AL

CALL DELAY ;延时6.25ms MOV AL,H1 CMP AL,2 ;时的高位判断(24)JNZ HOUR1 MOV AL,H0 CMP AL,4 ;时的低位判断(24)JNZ HOUR2

MOV AL,0 ;满24小时清零 MOV S0,AL MOV S1,AL MOV M0,AL

MOV M1,AL MOV H0,AL MOV H1,AL MOV SNUM,AL JMP AGAIN HOUR1: MOV AL,H0 CMP AL,10 ;时低位判断(非24) JNZ HOUR2 MOV AL,0 MOV H0,AL INC H1

HOUR2: ;显示时的低位 ROR CL,1 MOV AL,CL MOV DX,202H OUT DX,AL MOV DX,200H MOV AL,H0 XLAT

OUT DX,AL

CALL DELAY ;延时6.25ms ROR CL,1 ;显示时的高位 MOV AL,CL MOV DX,202H OUT DX,AL MOV AL,H1 XLAT

MOV DX,200H OUT DX,AL

CALL DELAY ;延时6.25ms INC SNUM

JMP AGAIN ;跳转继续显示 ;中断子程序定义 INTR_KEY PROC NEAR PUSH AX PUSH BX PUSH DX

MOV DX,204H IN AL,DX

TEST AL,01H ;检测时加 JZ NO1

TEST AL,02H ;检测时减 JZ NO2

TEST AL,04H ;检测分加 JZ NO3

TEST AL,08H ;检测分减 JZ NO4

TEST AL,10H ;检测秒加 JZ NO5

TEST AL,20H ;检测秒减 JZ NO6

TEST AL,40H ;检测暂停/启动 JZ NO7

TEST AL,80H ;检测清零 JZ NO8 JMP EXIT

NO1: ;时加中断 MOV AL,H1

CMP AL,2 ;23停止增加 JNZ HC1 MOV AL,H0 CMP AL,3 JZ EXIT INC H0 JMP EXIT HC1:

MOV AL,H0 CMP AL,9 JZ HC2 INC H0 JMP EXIT HC2:

MOV AL,0 MOV H0,AL INC H1 JMP EXIT

NO2: ;时减中断 MOV AL,H1

CMP AL,0 ;00停止时减

JNZ HC3 MOV AL,H0 CMP AL,0 JZ EXIT DEC H0 JMP EXIT HC3:

MOV AL,H0 CMP AL,0 JZ HC4 DEC H0 JMP EXIT HC4: DEC H1 MOV AL,9 MOV H0,AL JMP EXIT

NO3: ;分加中断 MOV AL,M1

CMP AL,5 ;59停止分加 JNZ MC1 MOV AL,M0 CMP AL,9 JZ EXIT INC M0 JMP EXIT MC1:

MOV AL,M0 CMP AL,9 JNZ MC2 INC M1 MOV AL,0 MOV M0,AL JMP EXIT MC2: INC M0 JMP EXIT

NO4: ;分减中断 MOV AL,M1

CMP AL,0 ;00停止分减

JNZ MC3 MOV AL,M0 CMP AL,0 JZ EXIT DEC M0 JMP EXIT MC3:

MOV AL,M0 CMP AL,0 JZ MC4 DEC M0 JMP EXIT MC4: DEC M1 MOV AL,9 MOV M0,AL JMP EXIT

NO5: ;秒加中断 MOV AL,S1

CMP AL,5 ;59停止秒加 JNZ SC1 MOV AL,S0 CMP AL,9 JZ EXIT INC S0 JMP EXIT SC1:

MOV AL,S0 CMP AL,9 JNZ SC2 INC S1 MOV AL,0 MOV S0,AL JMP EXIT SC2: INC S0 JMP EXIT

NO6: ;秒减中断 MOV AL,S1

CMP AL,0 ;00停止秒减

JNZ SC3 MOV AL,S0 CMP AL,0 JZ EXIT DEC S0 JMP EXIT SC3:

MOV AL,S0 CMP AL,0 JZ SC4 DEC S0 JMP EXIT SC4: DEC S1 MOV AL,9 MOV S0,AL JMP EXIT

NO7: ;暂停/启动中断 INC NUM ;记录次数 NEXT:

MOV AL,NUM

TEST AL,01H ;检测奇、偶次数 JZ EXIT ;偶数次退出暂停 LEA BX,TAB ;奇数次时间暂停 MOV AL,7FH MOV DX,202H OUT DX,AL MOV AL,S0 XLAT

MOV DX,200H OUT DX,AL CALL DELAY MOV AL,0BFH MOV DX,202H OUT DX,AL MOV AL,S1 XLAT

MOV DX,200H OUT DX,AL CALL DELAY

MOV AL,0DFH MOV DX,202H OUT DX,AL MOV AL,10 XLAT

MOV DX,200H OUT DX,AL CALL DELAY MOV AL,0EFH MOV DX,202H OUT DX,AL MOV AL,M0 XLAT

MOV DX,200H OUT DX,AL CALL DELAY MOV AL,0F7H MOV DX,202H OUT DX,AL MOV AL,M1 XLAT

MOV DX,200H OUT DX,AL CALL DELAY MOV AL,0FBH MOV DX,202H OUT DX,AL MOV AL,10 XLAT

MOV DX,200H OUT DX,AL CALL DELAY MOV AL,0FDH MOV DX,202H OUT DX,AL MOV AL,H0 XLAT

MOV DX,200H OUT DX,AL CALL DELAY

MOV AL,0FEH MOV DX,202H OUT DX,AL MOV AL,H1 XLAT

MOV DX,200H OUT DX,AL CALL DELAY JMP NEXT

NO8: ;清零中断 MOV AL,0 MOV S0,AL MOV S1,AL MOV M0,AL MOV M1,AL MOV H0,AL MOV H1,AL MOV SNUM,AL EXIT: POP DX POP BX POP AX

IRET ;退出中断 INTR_KEY ENDP

DELAY PROC ;延时子程序 PUSH CX PUSH BX

MOV BX,26 ;延时6.25ms WAIT1: MOV CX,0FH LOOP $ DEC BX JNZ WAIT1 POP BX POP CX RET

DELAY ENDP CODE ENDS END START

四: 实施结果

五:课程设计体会

微机系统技术是当前社会中信息产业所必不可少的关键技术,也是现代人生活和生产所必需的条件。此次课程设计,我们小组经过讨论选定了LED七段数码管数字钟作为设计题目进行设计。

数字时钟在现代生活中的应用越来越广泛。一方面,它能直观的显示时间,耗能低;另一方面,它可以实现比机械时钟更多更强大的功能,方便人们的生产和生活。

我们小组采用软件延时的方法进行计时,通过中断系统对数字时钟进行调节,可以实现对时、分、秒的调整以及实现暂停/启动、清零等功能。

由于对微机原理课程的学习,使我们了解了基本的微机系统8086微机系统,基本掌握了8086微机系统的工作原理,熟悉了8086微机系统中各常用的可编程芯片的工作原理,可以设计一些基本的基于8086微机系统的数字电路。

通过本次课程设计,让我们更加深入的了解了8086微机系统的工作原理,同时让我们对proteus仿真平台应用的更加娴熟,这些都对今后的学习和生活有更积极的影响。

作为一名电子信息专业的当代大学生,我们更应该努力学好有关微机系统的相关知识。一方面,它可以作为一门专业技能方便我们将来的学习和就业;

微机原理课程设计报告

更重要的是在信息时代它可以让我们更好的服务人

民,服务社会,服务国家。

六:产考文献

微机原理与接口技术

基于8086和proteus仿真

顾 晖 梁惺彦 等编著

电子工业出版社

第二篇:微机原理课程设计报告—抢答器的设计 7400字

《微机原理及接口技术》

课程设计报告

题目:竞赛抢答器的设计

1、设计目的

1)了解竞赛抢答器的设计原理和方法。

2)掌握定时/计数器、并行接口芯片和中断控制的工作原理与使用方法。

2、所用元器件

1)80X86系列微机一台。

2)定时、计数器、并行接口芯片。

3)基本TTL电路芯片,七段数码管。

3、设计内容及步骤

1)设计要求

(1)可供4组同时抢答,由按钮控制。

(2)能显示出最先抢答的组号,而对其他组的抢答不予理睬。

(3)对主持人未曾按启动扭之前就按抢答按钮的犯规组,亮红灯警告。

(4)对抢答后的回答时间进行计时控制,如回答超时,则以音响报警。

2) 撰写设计报告

(1)各个硬件模块设计和原理图

(2)各个软件模块设计和流程图

4、硬件设计

1)总体设计

由于本次实验要用到数码显示、中断控制、倒计时等功能,故初步分析,需要8255、8253等芯片。

经过小组成员讨论,认为本实验的关键是准确判断出最先抢答者的信号并锁存,而同时不理睬其他抢答者的信号。为此,可将4个抢答按钮信号通过一个4位并行输入口接至微机中。当主持人启动抢答过程后,微机通过该并行输入口循环对4路抢答信号进行采样。当采样到那一组的抢答信号已经发出,则立即停止采样,并记录下该组的组号,每路抢答按钮电路可以参考下图进行设计。

微机原理课程设计报告抢答器的设计

图1 路抢答按钮电路 由图可知,当4组均未按下抢答按钮时,送入到并行接口的4位抢答状态都是0,而当微机采样到这4位数据不为0时,则表示有一组获得了抢答机会,然后通过逐位口查询个位口状态,即可判断出哪一组抢答成功,最后利用并行输出接口将抢答成功的组号现实出来.在实验中,可以仅用一位7段数码管来显示抢答选手的组号.

为了对抢答后的回答时间进行计时控制,可以利用一个可编程定时计时器,先置计数初值,再计时,当计时时间到后,由并行接口输出一个响铃信号提示抢答选手的回答时间已到。

由于本系统要求对犯规的组亮红灯警告,所以要设置一个启动按键,在主持人按下启动按键之前,如果有抢答钮被按下,则该抢答选手犯规,可以通过并行接口输出一个信号使该组的红色发光二级管点亮以示该组选手犯规。

综上所述,本实验的硬件电路可参考下图3示的硬件结构示意图进行设计。

图2 硬件结构示意图

其中8255与8086连接图如下图4

微机原理课程设计报告抢答器的设计
微机原理课程设计报告抢答器的设计

图3 8086与8255连接图

实验原理图见附录一。

2)芯片介绍

(1)8255芯片

8255A内部有3个相互独立的8位数据端口,即端口A﹑端口B﹑端口C。设计人员可以用程序是他们分别作为输入端口或输出端口。不过,每个端口有着各自的特点。

端口A对应1个8位数据输入锁存器/缓冲器和1个8位数据输出锁存器/缓存器。所以,用端口A作为输入或输出时,数据均可以受到锁存。

端口B对应1个8位数据输入锁存器/缓冲器和1个8位数据输出锁存器/缓存器。

端口C对应1个8位数据输入锁存器/缓冲器和1个8位数据输出锁存器/

缓存器。这样,当端口C作为输入端口时,对数据不作锁存,而作为输出端口时,对数据进行锁存。

在使用中,端口A﹑端口B和端口C可以相互独立,分别作为输入或者输出端口,也可以由端口C配合端口A﹑端口B作输入端口或者输出端口,此时,端口A和端口B作为独立的输入端口或输出端口,而端口C则配合端口A和端口B工作。具体得讲,端口C常常通过控制命令被分成两个4位端口,每个4位端口包含1个4位的输入缓冲器和1个4位的输出锁存器/缓冲器,他们分别用来位端口A和端口B提供控制信号和状态信号。 方式选择控制字

微机原理课程设计报告抢答器的设计
微机原理课程设计报告抢答器的设计

(2)8253芯片

8253的主要性能:8253可编程定时/计数器芯片时Intel公司生产的微型计算机通用外围芯片之一。采用24个引脚,双列直插式封装,其主要特性如下:采用NMOS工艺,用单一的+5V电源供电。片内有3个独立的16位减法计数器(或计数通道),每个计数器又可分为两个8位的计数器。计数频率为0~5MHz。两种计数方式,即二进制和BCD方式计数。6种工作方式,即可对系统时钟脉冲计数实现定时,又可对外部事件进行计数。可由软件或硬件控制开始计数或停止计数。

图4 8253引脚图

5、软件设计

1)主程序设计

实验的软件设计可以分为主程序﹑启动中断服务程序和定时中断服务程序三部分。

启动中断服务程序完成的任务较单一,只需要对启动标志进行记录。例如,可以在主程序中设置一个启动标志并清0,当启动按钮被按下后,系统进入中断服务程序。这时,只需要在中断服务程序中将启动标志置1即可,系统在返回主程序后将查询该标志,以确定抢答是否开始。

在主程序中,当判断有抢答钮被按下时,需要判断启动标志是否为1,如果系统还没有启动,则抢答结果为无效,且判断该抢答组犯规。此时,将通过并行接口送出点亮该组红色发光二极管的信号,提示有犯规行为。另外在主程序中,还要对抢答回答时间进行初始化赋值,当回答开始后,如果回答超时,则要通过并行接口送出响铃警报信息以提示超时。

在定时中断服务程序中,主要是完成对回答问题时间的计时操作时间计数器,当定时器每发一次定时中断时,时间计数器加1。

图5 主程序流程图

微机原理课程设计报告抢答器的设计

2)主程序

显示最先抢答组号及是否犯规程序

AAA:MOV AL,85H ;8255A的方式控制字,A口输出,B口输入

MOV DX,04A6H ;控制口的地址送DX

OUT DX,AL ;初始化8255A

AA:MOV DX,04A2H

IN AH,DX ;读PC3是否为0

AND AH,40H ;如果为零,说明抢答开始

CMP AH,00H ;

JZ AA0 ;PB

JNZ AA6

AA0:MOV DX,04A2H ;

IN AL,DX

CMP AL,FFH ;

JZ AA0 ;

CMP AH,FEH ;1

JZ AA1

CMP AH,FDH ;2

JZ AA2

CMP AH,FDH ;3

JZ AA3

CMP AH,F7H ;4

JZ AA4

AA1:MOV DX,04A0H

MOV AL,79H ;

JMP AA5

AA2:MOV DX,04A0H

MOV AL,24H ;

JMP AA5

AA3:MOV DX,04A0H

MOV AL,30H ;

JMP AA5

AA4:MOV DX,04A0H

MOV AL,19H ;

JMP AA5

AA5:MOV DX,04A6H

IN AH,DX ;

OR AH,DFH ;

CMP AH,FFH ;

JZ AAA

JNZ AA5

AA6: MOV DX,04A2H ;

IN AL,DX 转到读PB口的程序 口低电平有效 读B口的数据 读PB口值是否为FFH 如果是,表示没人抢答,继续等 号抢答成功 号抢答成功 号抢答成功 号抢答成功 显示1 显示2 显示3 显示4 读PC3是否为1 如果为1说明已复位 转到初始状态,否者等待 读B口的数据

CMP AL,FFH ;读PB口值是否为FFH

JZ AA ;如果是,表示没人抢答犯规,继续等 CMP AH,FEH ;1号抢答犯规

MOV DX,04A6H

MOV AL,09H ;LED1亮

CMP AH,FDH ;2号抢答犯规

MOV DX,04A6H

MOV AL,0AH ;LED2亮

CMP AH,FDH ;3号抢答犯规

MOV DX,04A6H

MOV AL,0DH ;LED3亮

CMP AH,F7H ;4号抢答犯规

MOV DX,04A6H

MOV AL,0FH ;LED4亮

8253初始化程序

AA7:MOV AL,15H ;写方式控制字(设计数器0工作于方式2)

MOV DX,04B6H ;控制口地址

OUT DX,AL ;控制字送8253控制寄存器

MOV DX,04B0H ;计数器0端口地址

MOV AL,60 ;将计数初值N=60写入计数器0

OUT DX,AH

6、心得体会

在这一周的微机原理课程设计里,我们小组完成了竞赛抢答器的设计,基本实现所有功能,通过这短短一周的实践,我们锻炼了自己动手设计软硬件的能力,大家分工明确,合作愉快,虽然我们每个人的分工很细致,但是在编写程序以及调试过程中还是遇到了很多问题,在同组同学和其他同学以及老师的帮助下,我们发现问题的所在,并进行修改,按时完成设计内容。

通过这次课程设计,我们了解到,即使书本上的知识掌握的更好,在将它付诸实践时,还是会遇到各种各样的问题。这次课程设计就是一次对自己所学知识的总结和综合应用,使我们对微机原理这门课程有了更深的了解。

7、参考文献

[1]李顺增,《微机原理及接口技术》,机械工业出版社,20xx年第一版

[2] 冯博琴,《微型计算机原理及接口技术》,清华大学出版社

[3]王远,《模拟电子技术》,机械工业出版社

附录

微机原理课程设计报告抢答器的设计

程序2

;程序名字:抢答器

;功能:用户键(即抢答者):p32,p33;主持人键:p34,

;用法:1.主持人按开启键,以示开始;2.用户抢答,若到了10秒还没有按键就退出;3.显示用户号 ;4.等待主持人清除显示;5.清除后蜂鸣,以示庆祝

xsdat bit p1.4 ;定义驱动74164的数据脚为p1.4

xsclk bit p1.5 ;74164的时钟

gw bit p1.0 ;个位显示控制脚

sw bit p1.1 ;十位

;#############################################

org 00h

ajmp main

org 0bh

ajmp t0rup ;定时10秒钟,预防主持人已经按了开启键后无用户按键而死机

org 1bh

ajmp t1rup ;用于喇叭响0.5秒钟

org 30h

main: mov sp,#4fh

mov r3,#0 ;用于显示

mov r4,#0 ;用于定时,r2:蜂鸣

mov p0,#0ffh

mov p3,#0ffh

mov ie,#8ah

mov tmod,#11h

mov th0,#3ch

mov tl0,#0b0h ;每50ms中断一次

mov th1,#3ch

mov tl1,#0b0h ;每50ms中断一次

mov a,p3

orl a,#11110011b

cjne a,#0ffh,main ;以免有一或多个用户一直按住键

loop0:jb p3.4,loop0

mov p0,#0 ;主持开启键:p3.4,表示抢答开始

setb tr0 ;定时10秒钟,预防主持人已经按了开启键后无用户按键而死机

loop1:cjne r4,#200,ll;检测用户按键,若定时10s时间到了,即结束本次抢答

ajmp main

ll: mov a,p3

orl a, #11110011b

cjne a,#0ffh,ff

ajmp loop1 ;等待用户按键

ff:clr tr0 ;若有用户按键,就清除定时

rrc a

rrc a

loop4:rrc a

inc r3

jc loop4 ;将对应用户按键转化成用户号

nn: acall display

jb p3.4,nn ;等待主持人清除

acall delay

kk: jnb p3.4,kk ;等待主持人放开,以免主持人开启键与清除键相混淆

acall delay

acall fm ;蜂鸣,以做庆祝,同时将p0口全灭

mov p0,#0ffh

ajmp main

;#############################

fm: ;蜂鸣

setb tr1

clr p3.7

loop2:cjne r5,#20,tt

mov r5,#0 ;清零以备下次使用

setb p3.7 ;关闭扬声器,以免使它处于导通状态而不能发声

;用 cpl 反转驱动三极管的通断来发声要注意, ;在停止发声时一定要关闭三极管,不要让三极管长期处在导通状态!

;否则耗电很大,三极管发热严重,从而引起声音变小或无声。

clr tr1

ret

tt: cpl p3.7

mov r1,#122

djnz r1,$ ; 蜂鸣器都有谐振频率,一般在2kHz左右,不在这个范围声音就很小 ajmp loop2

;#############################

t0rup:mov tl0,#0b0h ;用于防死机定时

mov th0,#3ch

inc r4

reti

;###############################

t1rup: ;用于蜂鸣定时

mov tl1,#0b0h

mov th1,#3ch

inc r5

reti

;#############################

display:

MOV DPTR,#XSTAB

MOV A,r3 ;取得数据

MOVC A,@A+DPTR ;提取字模

ACALL DSOUT ;调用送出子程序 CLR GW

ACALL DS1MS ;调用显示1MS延时程序 SETB GW

MOV A,#0

MOVC A,@A+DPTR ;提取字模

ACALL DSOUT ;送出

CLR SW

ACALL DS1MS ;显示1MS

SETB SW

acall delay

ret

;#############################

delay:

mov r6,#00h

dl1: mov r7,#00h

djnz r7,$

djnz r6,dl1

ret

;—送出循环———-

DSOUT:

MOV R0,#8 ;传送一个字节8位 DSLOOP: RLC A ;左移

MOV XSDAT,C ;送数据到数据口 SETB XSCLK ;送一时钟

CLR XSCLK

DJNZ R0,DSLOOP

RET

;—显示延时———-

DS1MS: MOV R1,#10

DS1LO: MOV R2,#100

DJNZ R2,$

DJNZ R1,DS1LO

RET ;延时返回

;——————————————————— ;显示字表(共阴)

XSTAB: DB 3FH,06H,5BH,4FH ;”0″,”1″,”2″,”3″ DB 66H,6DH,7DH,07H ;”4″,”5″,”6″,”7″ DB 7FH,6FH,77H,7CH ;”8″,”9″,”A”,”B” DB 39H,5EH,79H,71H ;”C”,”D”,”E”,”F”

;******************************************************

end

类似文章