ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:17.09KB ,
资源ID:14951453      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-14951453.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(实验四LED数码管显示实验报告.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

实验四LED数码管显示实验报告.docx

1、实验四LED数码管显示实验报告微机实验报告 7实验名称 LED数码管显示实验指导教师 曹丹华专业班级 光电122班 姓名 陈敬人 学号联系电话一、任务要求实验目的理解LED七段数码管的显示控制原理,掌握数码管与MCU的接口技术,能够编写数码管显示驱动程序;熟悉接口程序调试方法。实验内容基础部分利用C851F31单片机控制数码管显示器。利用末位数码管循环显示数字-F,显示切换频率为1Hz。提高部分在数码管上显示199计数,计数间隔为.5秒。设计思路基础部分C851F31单片机片上晶振为25MHz,采用8分频后为625MHz ,输入时钟信号为48个机器周期,T1采用定时器工作方式1,单次定时最长可

2、达27s,可以实现1s定时要求。定时采用软件查询工作方式,利用JNB TF, HERE实现。置P.6和P.7端口为,位选信号选定末位数码管。通过MOVC A, A+DPTR指令,利用顺序查表法取出显示段码数据。寄存器R自增1,并赋给A以取出下一个显示段码数据。为减短代码长度,利用CJNE指令实现循环结构。当寄存器R增至FH后,跳转至开头,重新开始下一轮显示。提高部分定时方式及查表方式同基础部分,由于要实现三个数码管同时显示,因此采用动态扫描显示法。三、资源分配基础部分P.6: 位选信号端口P.7 位选信号端口P1 输出段码数据R 存放显示数据DPTR 指向段码数据表首提高部分P.6 位选信号端

3、口P.7 位选信号端口R 存放个位显示数据R5 存放十位显示数据R6 存放百位显示数据P1 输出段码数据DPTR: 指向段码数据表首四、流程图基础部分提高部分五、源代码 (含文件头说明、语句行注释)基础部分;*基础部分源代码*;Filename: test.asm;Decription: 末位数码管循环显示数字-F,显示切换频率为1Hz。;Designed by: 陈敬人;Date: 2119;- Generated Initialization File -;$include (C851F31.inc)ORG HLJMP MAINORG 1HMAIN: LCALL Init_Device ;

4、设备初始化MOV SP, #4H ;合理设置堆栈位置MOV DPTR, #TABLE ;DPTR指向段码数据表首MOV TMOD, #1H ;定时器T工作方式1MOV TH, #6H ;赋计数初值,定时1sMOV TL, #C6HCLR P.6 ;位选信号,选定末位数码管亮CLR P.7START: MOV R, #HMOV A, R ;取显示数据MOVC A, A+DPTR ;查表取段码数据MOV P1, A ;送显示数据SETB TR ;启动定时器HERE: JNB TF, HERE ;等待定时CLR TR ;停止定时CLR TF ;溢出位清零MOV TH, #6H ;重装计数初值MOV

5、TL, #C6HCJNE R, #FH, CHANGE ;判断数据是否显示完毕,未完则跳转至CHANGESJMP START ;显示完毕,重新开始CHANGE: INC RMOV A, R ;取下一个显示数据MOVC A, A+DPTR ;查表取段码数据MOV P1, A ;送输出显示数据SETB TR ;重新启动定时器SJMP HERETABLE: DB FCH, 6H, DAH ;段码数据表DB F2H, 66H, B6HDB BEH, EH, FEH, F6HDB EEH, 3EH, 1AHDB 7AH, 9EH, 8EH; Peripheral specific initializat

6、ion functions,; Called from the Init_Device labelPCA_Init:anl PCAMD, #BFhmov PCAMD, #hretTimer_Init:mov TMOD, #1hmov CKCON, #2hretPort_IO_Init:; P. - Unassigned, Open-Drain, Digital; P.1 - Unassigned, Open-Drain, Digital; P.2 - Unassigned, Open-Drain, Digital; P.3 - Unassigned, Open-Drain, Digital;

7、P.4 - Unassigned, Open-Drain, Digital; P.5 - Unassigned, Open-Drain, Digital; P.6 - Unassigned, Open-Drain, Digital; P.7 - Unassigned, Open-Drain, Digital; P - Unassigned, Open-Drain, Digital; P1 - Unassigned, Open-Drain, Digital; P2 - Unassigned, Open-Drain, Digital; P3 - Unassigned, Open-Drain, Di

8、gital; P4 - Unassigned, Open-Drain, Digital; P5 - Unassigned, Open-Drain, Digital; P6 - Unassigned, Open-Drain, Digital; P7 - Unassigned, Open-Drain, Digital; P - Unassigned, Open-Drain, Digital; P1 - Unassigned, Open-Drain, Digital; P2 - Unassigned, Open-Drain, Digital; P3 - Unassigned, Open-Drain,

9、 Digitalmov XBR1, #4hretInterrupts_Init:mov IT1CF, #21hret; Initialization function for device,; Call Init_Device from your main programInit_Device:lcall PCA_Initlcall Timer_Initlcall Port_IO_Initlcall Interrupts_InitretEND提高部分;*提高部分源代码*;Filename: .asm;Decription: 三位数码管从到199依次显示,间隔.5秒。;Designed by:

10、陈敬人;Date: 2111;- Generated Initialization File -;$include (C851F31.inc)ORG HLJMP MAINORG 1HMAIN:LCALL Init_Device ;调用定义语言MOV SP,#2H ;堆栈赋初值MOV P1,#H ;P1口清零,所有LED管熄灭MOV TMOD,#1H ;设置T为定时工作方式1MOV TH,#85HMOV TL,#EEH ;定时器T赋初值CLR P.6CLR P.7 ;位选位清零START1: MOV R,#H ;R赋初值 (R存放个位数码管显示值)MOV R5,#H ;R5赋初值 (R5存放十位

11、数码管显示值)MOV R6,#H ;R6赋初值 (R6存放百位数码管显示值)SETB TR ;开启定时器SJMP DIS ;跳转扫描输出子程序HERE: JNB TF,DIS ;判断定时是否溢出,未溢出,则执行扫描输出程序CLR TRCLR TFMOV TH,#85HMOV TL,#EEHCJNE R,#9H,CHANGE ;判断R是否达到9SJMP START2CHANGE:INC R ;R加一SETB TR ;开启定时器SJMP DIS ; 跳转扫描输出子程序;个位满9,十位加一START2:MOV R,#H ;R满1归INC R5 ;R5(十位)加一CJNE R5,#AH,START3

12、;判断十位是否可以向百位进位MOV R5,#H ;R5(十位)满1归INC R6 ;R6(百位)加一CJNE R6,#2H,START3 ;判断百位是否到2SJMP START1START3:SETB TRSJMP DIS;扫描输出子程序DIS: MOV 6H,#HMOV 61H,#4HMOV 62H,#8H ;设置位选码(前三个数码管);MOV 63H,#CH ;第四个数码管MOV R1,#6H ;位选码赋R1DISP:MOV P1,#H ;所有LED数码管熄灭LD: MOV A,R1ANL P,#3FHORL P,AMOV DPTR,#TABLE ;将表地址赋数据指针MOV A,RMOVC

13、 A,A+DPTR ;查表MOV P1,A ;数码管显示LCALL DL1MS ;调用1ms延时MOV P1,#H ;所有LED数码管熄灭INC R1 ;指向下一个LED数码管MOV A,R1ANL P,#3FHORL P,ASJMP SELECT ;根据十位变化特性选择不同段码表BACK: MOV A,R5MOVC A,A+DPTRMOV P1,ALCALL DL1MSMOV P1,#HINC R1MOV A,R1ANL P,#3FHORL P,AMOV DPTR,#TABLEMOV A,R6MOVC A,A+DPTRMOV P1,ALCALL DL1MSMOV P1,#HSJMP HERE

14、SELECT:CJNE R6,#1H,ONE ;判断百位是否为1MOV DPTR,#TABLE ;当百位为1时十位应该从开始变化SJMP BACKONE:MOV DPTR,#TABLE ;当百位为时十位应该从1开始变化SJMP BACK;1ms延时程序DL1MS:MOV R4,#4D1:MOV R7,#253NOPDJNZ R7,$DJNZ R4,D1RETTABLE: DB FCH, 6H, DAH,F2H, 66H, B6H,BEH, EH, FEH, F6HTABLE: DB H, 6H, DAH,F2H, 66H, B6H,BEH, EH, FEH, F6H ;段码数据表public

15、Init_DeviceINIT SEGMENT CODErseg INIT; Peripheral specific initialization functions,; Called from the Init_Device labelPCA_Init:anl PCAMD, #BFhmov PCAMD, #hretTimer_Init:mov CKCON, #2hretPort_IO_Init:; P. - Unassigned, Open-Drain, Digital; P.1 - Unassigned, Open-Drain, Digital; P.2 - Unassigned, Ope

16、n-Drain, Digital; P.3 - Unassigned, Open-Drain, Digital; P.4 - Unassigned, Open-Drain, Digital; P.5 - Unassigned, Open-Drain, Digital; P.6 - Unassigned, Push-Pull, Digital; P.7 - Unassigned, Push-Pull, Digital; P - Unassigned, Push-Pull, Digital; P1 - Unassigned, Push-Pull, Digital; P2 - Unassigned,

17、 Push-Pull, Digital; P3 - Unassigned, Push-Pull, Digital; P4 - Unassigned, Push-Pull, Digital; P5 - Unassigned, Push-Pull, Digital; P6 - Unassigned, Push-Pull, Digital; P7 - Unassigned, Push-Pull, Digital; P - Unassigned, Open-Drain, Digital; P1 - Unassigned, Open-Drain, Digital; P2 - Unassigned, Op

18、en-Drain, Digital; P3 - Unassigned, Open-Drain, Digitalmov PMDOUT, #Chmov P1MDOUT, #FFhmov XBR1, #4hret; Initialization function for device,; Call Init_Device from your main programInit_Device:lcall PCA_Initlcall Timer_Initlcall Port_IO_InitretEND六、程序测试方法与结果 基础部分 观察P1端口输出波形(如下图)由图可知,LED数码管切换频率为1HZ,跑完一轮经过16s,满足定时要求。且按要求输出F。基础部分 硬件调试程序在C851F31单片机上按要求运行,即第一位数码管从到F依次显示。硬件调试成功。提高部分通过验收答辩。程序按要求正常运行。本人承诺:本人承诺:本报告内容真实,无伪造数据,无抄袭他人成果。本人完全了解学校相关规定,如若违反,愿意承担其后果。签字年 月 日

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2