一个数码管动态显示仿真显示1-F的仿真图及汇编语言代码

单片机与控制实验(1)——数码管显示
时间: 11:34:50
&&&& 阅读:141
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&一、实验目的和要求
  初步学习和掌握MCS-51的体系结构和汇编语言,了解Keil编程环境和程序下载工具的使用方法。了解数码管输出的原理及编程方式。
二、实验设备
  单片机测控实验系统
  STC-ISP程序下载工具
  Keil开发环境
三、实验内容
  使用MCS-51汇编语言编写程序,完成如下功能:
  1. 使用三个数码管显示十进制数值(001~999,可任意设置);
  2. 每隔1秒,该数值自动减一,直到归零;
  3. 归零后的下一秒,显示一个新的十进制数值(001~999,可任意设置);
  4. 每隔1秒,新数值继续自动减一,直到再次归零;
  5. 重新执行步骤1,循环往复。
  6. 当开关S1按下时,暂停计数;S1松开时,恢复计数。
四、实验步骤
  1. 预习
  参考辅助材料,学习8031汇编语言以及实验原理。阅读七段数码显示器的电路图,重点理解右边的LED显示部分。
  2. 简单程序录入和调试
  MCS51单片机汇编语言的基本格式比较简单,程序中可以使用通用寄存器或者内存单元进行计算。另外,单片机的程序没有退出到操作系统的概念,一般都是死循环程序。
  一个简单程序举例如下:  
ORG 0000H ;复位起始地址
LJMP START ;中间地址保留给中断向量表ORG 0040H ;程序实际起始地址START: 实际程序
MOV 40H, #0H
MOV A, 40H
MOV P0, A ;板上的P0口连接到8个LED,可以监视运行状态
MOV 40H, A
MOV R6, #0FFHL2:MOV R7, #0FFHL1:DJNZ R7, L1
DJNZ R2, L2 ;延迟一段时间
LJMP NEXT END
  参考Keil使用指南,创建工程,设置工程参数,添加ASM文件,并录入上面的简单程序。确保无编译和链接错误。
  3. 程序调试 
  使用Keil环境可以进行仿真调试。进入“调试”菜单,开始调试,可以单步运行,或者先设置断点然后连续运行;可以在调试过程中观察各个寄存器的值。还可以在sys区域观察到当前程序执行的时间。
  4. 编写程序,完成功能
  A、显示
  本开发平台有3个数码管,使用串行方式连接在一起,具体电路参见实验原理。要想输出一个字形码,就需要从高位到低位依次向移位寄存器输出8个比特。移位寄存器的数据线和时钟线分别接到单片机的P4.5和P4.4管脚,可以使用MCS-51里面的位操作指令进行输出。连续输出3个字形,24个bit之后,欲显示的字形将稳定地显示在数码管上,程序可以转而执行其他工作。
  七段字形的编码方式需要通过实验获得。这些编码作为程序中的常数,使用DB命令存放。在程序中,需要将数值转换为相应的字形编码,可以使用MOVC指令来完成。
  B、时间
  本实验要求的按时间显示数值,直接通过软件延时来实现,也就是若干次空循环来完成,不需要使用单片机内部的定时器等硬件资源。由于在后面的实验中也要使用软件的延时子程序,因此这里预先做准备。  本单片机使用12MHz主频的晶振,结合MCS51的体系结构和指令时序,可以计算每条指令的运行时间,也可以通过Keil环境的调试功能来检查程序片段的执行时间。当然,最后可以通过程序执行的总体运行结果来调整时间。希望同学能够通过这个过程,得出一段能够精确到1ms的子程序,重复调用1000次,从而达到定时1s的效果。从而完成实验要求2。
  C、开关
  在本实验板上设置了两个开关S1和S2,分布接入到8031的P3.6和P3.7,开关按下时,输入0,松开时,输入1。利用这个开关完成实验要求3。
  五、实验原理
  本实验采用3个74HC164级联控制三个数码管的显示,具体实验原理如下图所示。其中使用单片机P4.5作为模拟串口数据,使用P4.4模拟串口时钟,CLR端接高电平。使用上一个74HC164的Q7作为下一个74HC164的输入端。
  P4 EQU 0C0H  MOV P4.4, C  SETB P4.4
  74HC164是高速CMOS 器件。74HC164是8位边沿触发式移位寄存器,串行输入数据,然后并行输出。数据通过两个输入端(A或B)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。
  时钟 (CLK) 每次由低变高时,数据右移一位,输入到Q0,Q0 是两个数据输入端(A和B)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。
  主复位(CLR)输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的输出为低电平。
  六、实验代码 &
ORG 0000HLJMP STARTORG 0050H START:
;初始化P4 EQU 0C0H申明P4地址P4SW EQU 0BBH申明P4SW地址CLK EQU P4.4DAT EQU P4.5KEY EQU P3.6MOV DPTR,#TABMOV P4SW,#70HSTC单片机P4.4、P4.5、P4.6有第二功能定义,
通过P4SW寄存器设置这三口的工作方式,当为1时,是通用I/O
此处设置P4.4、P4.5、P4.6为通用I/O
AGAIN:死循环
;显示设置MOV R6,#3个位设置MOV R5,#4十位设置MOV R4,#5百位设置
;显示各位MOV A,R6MOV DPTR,#TAB
MOVC A,@A+DPTR
LCALL DISPLAY调用显示函数
MOV A,R5MOV DPTR,#TABMOVC A,@A+DPTRLCALL DISPLAY
MOV A,R4MOV DPTR,#TABMOVC A,@A+DPTRLCALL DISPALY LCALL DELAY调用延迟函数
;按下key时的暂停操作PAUSE:NOPJNB KEY,PAUSE
;数字调整,减一操作;个位调整DEC R6每次计数减一CJNE R6,#0FFH,LOOPR6!=-1时跳转到LOOP,否则,顺序执行MOV R6,#9
;十位调整DEC R5CJNE R5,#0FFH,LOOPMOV R5,#9
;百位调整DEC R4CJNE R4,#0FFH,LOOP;MOV R4,#9
LJMP AGAIN
;显示子程序DISPLAY:
MOV R0,#8COUNT:CLR CLKP1.0输出低电平RLC A将存放在A中欲显示的字符码右移一位(最低位存入C)MOV DAT,CSETB CLKP1.0输出高电平DJNZ R0,COUNTR0减1不为0转到SLP 继续输出字形码 RET
;延时子程序DELAY:MOV R1,#0FFHSTOP:MOV R2,#1FHDEL:MOV R3,#0FFH DJNZ R3,$DJNZ R2,DELDJNZ R1,STOP
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HEND
实验电路原理图:/files/liujw2114/%E7%94%B5%E8%B7%AF%E5%8E%9F%E7%90%86%E5%9B%BE.pdf
&标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文:/liujw2114/p/5962900.html
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
数码管显示程序(汇编语言).doc 4页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
需要金币:150 &&
数码管显示程序(汇编语言)
你可能关注的文档:
··········
··········
一、实验目的
了解LED数码管动态显示的工作原理及编程方法。
二、实验内容
编制程序,使数码管显示“DJ--88”字样。
三、实验程序框图
四、实验步骤 ?
联机模式:
  (1)在PC机和实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开598K8ASM文件夹,点击S6.ASM文件,单击“确定”即可装入源文件,再单击工具栏中编译装载,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或工具图标运行,即开始运行程序。
  (2)数码管显示“DJ--88”字样。
脱机模式:
1、在P.态下,按SCAL键,输入2DF0,按EXEC键。
2、数码管显示“DJ--88”字样。
五、实验程序清单
SEGMENTS6.ASM display &DJ--88&
JMP START0
EQU 0FF20H字位口
EQU 0FF21H字形口
EQU 0FF22H键入口
BUF DB ?,?,?,?,?,?
db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h
db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH,0F0H
START0: CALL BUF1
MOV AL,0FFH
MOV CL,0DFH
;显示子程序 ,5ms
MOV BX,OFFSET BUF
MOV AL,[BX]
MOV AH,00H
MOV BX,OFFSET DATA1
MOV AL,[BX]
MOV CX,00A0H
CMP CL,0FEH
MOV AL,0FFH
MOV AL,0FFH
MOV BUF,0DH
MOV BUF+1,19H
MOV BUF+2,17H
MOV BUF+3,17H
MOV BUF+4,08H
MOV BUF+5,08H
正在加载中,请稍后...怎么用汇编语言在数码管上显示字母L_百度知道
怎么用汇编语言在数码管上显示字母L
我有更好的答案
这要先画仿真图,才能写程序?还是在实物开发板上实现你是想仿真呢。或者说明数码管的接法,再写程序
仿真, 要有源程序
采纳率:90%
来自团队:
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。单片机数码管显示汇编语言_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
单片机数码管显示汇编语言
&&伟福试验箱专用数码管显示,精简 汇编语言
你可能喜欢查看: 1622|回复: 4
求 汇编语言,按一下按键,数码管加一求助啊
汇编语言,按一下按键,数码管加一求助啊
本帖最后由 zl2168 于
19:46 编辑
给你3个参考案例,都是按一下按键,数码管加一。
都是汇编的。
先Proteus仿真一下,确认有效。1.出租车行驶里程计数出租车行驶里程计数,无锁按键每按一次代表车轮运转一圈,计数器加一,数码管显示加一。
(51.24 KB, 下载次数: 20)
14:29 上传
点击文件名下载附件
出租车行驶里程计数.jpg (162.61 KB, 下载次数: 25)
14:32 上传
以上摘自张志良编著《单片机原理与控制技术——双解汇编和C51》第3版&&P.137,例6-1ISBN 978-7-111-42393-5机械工业出版社书中电路和程序设计有详细说明,程序语句条条有注解。
本帖最后由 zl2168 于
14:43 编辑
2. 统计T0引脚上10分钟内的脉冲数
先Proteus仿真一下,确认有效。计数脉冲从80C51 T0引脚输入,按一下按键,表示有一个脉冲输入,数码管加一
(52.96 KB, 下载次数: 9)
14:39 上传
点击文件名下载附件
统计脉冲数.jpg (150.6 KB, 下载次数: 24)
14:39 上传
以上摘自张志良编著《单片机学习指导及习题解答——双解汇编和C51》第2版&&P.104 习题6.16ISBN 978-7-111-42431-4机械工业出版社
书中电路和程序设计有详细说明,程序语句条条有注解。
本帖最后由 zl2168 于
15:04 编辑
3.&&统计某展览会参展人数
试统计某展览会参展人数。已知展览会有4个入口,且均已安装检测探头,每进入一人,能产生一个负脉冲,分别输入P3.2、P3.3、P3.4、P3.5。估计参展人数多于10万,少于1000万,试编程,将累计参展人数存32H、31H、30H。
先Proteus仿真一下,确认有效。
(49.25 KB, 下载次数: 21)
15:03 上传
点击文件名下载附件
统计某展览会参展人数.jpg (127.29 KB, 下载次数: 27)
15:04 上传
以上摘自张志良编著《单片机学习指导及习题解答——双解汇编和C51》第2版ISBN 978-7-111-42431-4机械工业出版社
书中电路和程序设计有详细说明,程序语句条条有注解。
你需一个译码数码管对应的驱动程序,
Powered by

我要回帖

更多关于 单片机数码管仿真 的文章

 

随机推荐