- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机实验 余成驹 光电1202班 U201214134
实验名称 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
文档评论(0)