微机原理实验四 LED数码管显示实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验名称 LED数码管显示实验

指导教师

专业班级

姓名

学号

联系方式

一实验要求:

实验四 LED数码管显示实验

实验目的:理解LED七段数码管的显示控制原理,掌握数码管与MCU的接口技术,能够编写数码管显示驱动程序;熟悉接口程序调试方法。

实验内容:利用C8051F310单片机控制数码管显示器

基本要求:

利用末位数码管循环显示数字0-F,显示切换频率为1Hz。

提高要求:

在数码管上显示0→199计数,计数间隔为0.5秒。

二、设计思路

1 基本要求:

对F310信号频率进行8分频,再对定时器进行48分频,以使在一次定时时间范围内实现1s定时。采用查询方式进行定时。P0.6,P0.7作为位选信号来一直选择末位数码管输出信号。再利用R0作为相对寻址来储存数据并赋值给A。通过MOVC A, @A+DPTR指令,利用顺序查表法取出显示段码数据。寄存器R0自增1,并赋给A以取出下一个显示段码数据。

2 提高要求:

依然对信号频率八分频,对定时器进行48分频,通过P0,6,P0.7进行位控选择数码管输出,定时器定时0.5s,当溢出时进入中断,并通过中断程序将段位控制按序加一,R3,R6,R7分别储存第一第二第三位数码管段位码,利用A 为中间变量,通过P1输出储存的值,查表输出数码管值,达到119时结束。

三、资源分配

1 基本要求:

P0.6: 位选信号端口

P0.7:位选信号端口

P1:输出段码数据

R0:存放显示数据

DPTR:指向段码数据表首

2 提高要求:

P0.6: 位选信号端口

P0.7:位选信号端口

P1:输出段码数据

DPTR:指向段码数据表首

R3,R6,R7:分别储存第三第二第一位数码管数据

四、流程图

1 基本要求

2 提高要求:

主程序

延时程序

接--2 提高要求:

动态扫描程序中断程序

五、源代码(含文件头说明、语句行注释)

1 基本要求:

ORG 0000H

LJMP MAIN

ORG 0100H

MAIN:

LCALL Init_Device

MOV SP,#40H

MOV DPTR,#TAB ;将DPTR地址指向表头

MOV TMOD,#01H ;定时器采用T0定时方式一MOV TH0,#06H ;定时器赋予初值

MOV TL0,#0C6H

CLR P0.6 ;选择末位数码管

CLR P0.7

START:

MOV R0,#00H ;赋初值0

CLR A

MOVC A,@A+DPTR ;查表输出

MOV P1,A

SETB TR0 ;定时器开始工作

HERE:

JNB TF0,HERE ;等待溢出

CLR TR0

CLR TF0

MOV TH0,#06H ;重新赋予初值

MOV TL0,#0C6H

CJNE R0,#0FH,NEXT ;等待末位数码管到F

SJMP START

NEXT:

INC R0 ; R0加一

MOV A,R0

MOVC A,@A+DPTR

MOV P1,A ;P1输出

SETB TR0

SJMP HERE ;踏步

org 1000h

TAB:DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H DB 0FEH,0E6H,0EEH,3EH,1AH,7AH,9EH,8EH

;------------------------------------

;- Generated Initialization File --

;------------------------------------

$include (C8051F310.inc)

public Init_Device

INIT SEGMENT CODE

rseg INIT

; Peripheral specific initialization functions, ; Called from the Init_Device label

PCA_Init:

anl PCA0MD, #0BFh

mov PCA0MD, #000h

ret

Timer_Init:

mov CKCON, #002h

ret

Port_IO_Init:

; P0.0 - Unassigned, Open-Drain, Digital ; P0.1 - Unassigned, Open-Drain, Digital ; P0.2 - Unassigned, Open-Drain, Digital ; P0.3 - Unassigned, Open-Drain, Digital ; P0.4 - Unassigned, Open-Drain, Digital ; P0.5 - Unassigned, Open-Drain, Digital ; P0.6 - Unassigned, Open-Drain, Digital ; P0.7 - Unassigned, Open-Drain, Digital

; P1.0 - Unassigned, Push-Pull, Digital ; P1.1 - Unassigned, Push-Pull, Digital ; P1.2 - Unassigned, Push-Pull, Digital ; P1.3 - Unassigned, Push-Pull, Digital ; P1.4 - Unassigned, Push-Pull, Digital ; P1.5 - Unassigned, Push-Pull, Digital ; P1.6 - Unassigned, Push-Pull, Digital ; P1.7 - Unassigned, Push-Pull, Digital ; P2.0 - Unassigned, Open-Drain, Digital

相关文档
最新文档