单片机实验报告——led数码管显示实验_第1页
单片机实验报告——led数码管显示实验_第2页
单片机实验报告——led数码管显示实验_第3页
单片机实验报告——led数码管显示实验_第4页
单片机实验报告——led数码管显示实验_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机实验报告 LED 数码管显示实验 指导教师: 专业班级: 姓名 : 学号 : 联系方式 : 一、 任务要求 实验目的:理解 LED 七段数码管的显示控制原理,掌握数码管与 MCU 的接口技术,能 够编写数码管显示驱动程序;熟悉接口程序调试方法。 实验内容:利用 C8051F310 单片机控制数码管显示器 基本要求: 利用末位数码管循环显示数字 0-9,显示切换频率为 1Hz。 提高要求: 在 4 位数码管显示器上依次显示当天时期和时间,显示格式如下: yyyy (年份) mm.dd(月份.日) hh.mm(小时.分钟) 思考题: 数码管采用动态驱动方式时刷新频率应如何选择?为什么? 二、 设计思路 C8051F310 单片机片上晶振为 24.5MHz,采用 8 分频后为 3.0625MHz ,输入时钟信 号采用 48 个机器周期。 0 到 9 对应的断码为:FCH、60H、DAH、F2H、66H、B6H、BEH、E0H、FEH、F6H 基础部分: 由于只需要用末位数码管显示,不需要改变位码,所以只需要采用 LED 的静态显 示。采用查表的方法,通过循环结构,每次循环查找数据表下一地址,循环十次后重 新开始循环。每次循环延时 1s,采用定时器 0 定时方式 1。 提高部分: 四个数码管都要显示,所以采用 LED 的动态显示。由于数码管的位选由 P0.7、P0.6 控制,P0 端口的其他引脚都没用到,所以对 P0 端口初始化赋 00H,每次循环加 40H、 选中下一位,四次后十六进制溢出,P0 端口变又为 00H 回到第一个数码管。 每位数码管显示一个段码后都延时 1ms(否则数码管太亮,刺眼)采用定时器 0 定时方式 1,依然采用查表法改变段码值。通过循环: DJNZ R5,BACK MOV R5,#250 DJNZ R4,BACK MOV R4,#8 来控制每种模式的切换时间,我采用 2s 切换一次(8*250*1ms=2s) 。 切换模式,可以采用改变查表法的偏移量来实现,没切换一次模式,偏移量加 04H,三次后回到初始偏移量,来实现三种模式的循环显示。 三、 资源分配 基础部分: P0.7、P0.6:控制数码管的位选 P1:控制数码管段码的显示 R0:控制段选 提高部分: P0.7、P0.6:控制数码管的位选 P1:控制数码管段码的显示 R0:控制位选 R1:控制段选 R3:用于改变偏移量来切换模式 R4、R5:控制循环次数,控制模式切换时间 四、 流程图 基础部分: R00H P1 1sR0 R0=0AH R00H NY 提高部分 R00H1 P0R0R0R0+40H P1A R004H1ms 2s04H 五、源代码 (含文件头说明、资源使用说明、语句行注释) 基础部分: ;* ;Filename:shumaguan.asm ;Description: 利用末位数码管循环显示数字 0-9,显示切换频率为 1Hz。 ;Designed by:gxy ;Date:2012/11/7 ;* $include (C8051F310.inc) ORG 0000H ;复位入口 AJMP MAIN ORG 000BH ;定时器 0 中断入口 AJMP TIME0 MAIN: ACALL Init_Device ;初始化配置 MOV P0,#00H ;位选中第一个数码管 MOV R0,#00H ;偏移指针初值 CLR PSW.1 ;标志位清零 SETB EA ;允许总中断 SETB ET0 ;允许定时器 0 中断 MOV TMOD,#01H ;定时器 0 选工作方式 1 MOV TH0,#06H MOV TL0,#0C6H ;赋初值,定时 1s LOOP: MOV A,R0 ADD A,#0BH ;加偏移量 MOVC A,A+PC ;查表取,段码 MOV P1,A ;段码给 P1 显示 SETB TR0 ;开定时 LOOP1: JNB PSW.1,LOOP1 ;等待中断 CLR PSW.1 INC R0 ;偏移指针加一 CJNE R0,#0AH,LOOP3 MOV R0,#00H ;偏移指针满 10 清零 AJMP LOOP ;返回 DB 0FCH,60H,0DAH,0F2H,66H ;段码数据表:0、1、2、3、4 DB 0B6H,0BEH,0E0H,0FEH,0F6H; 5、6、7、8、9 ;* ; 定时器 0 中断 ;* TIME0: SETB PSW.1 ;标志位置一 MOV TH0,#06H ;定时器重新赋值 MOV TL0,#0C6H LOOP3: CLR TR0 ;关定时 RETI ;* ;初始化配置 ;* PCA_Init: anl PCA0MD, #0BFh mov PCA0MD, #000h ret Timer_Init: mov TMOD, #001h 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, Open-Drain, Digital ; P1.1 - Unassigned, Open-Drain, Digital ; P1.2 - Unassigned, Open-Drain, Digital ; P1.3 - Unassigned, Open-Drain, Digital ; P1.4 - Unassigned, Open-Drain, Digital ; P1.5 - Unassigned, Open-Drain, Digital ; P1.6 - Unassigned, Open-Drain, Digital ; P1.7 - Unassigned, Open-Drain, Digital ; P2.0 - Unassigned, Open-Drain, Digital ; P2.1 - Unassigned, Open-Drain, Digital ; P2.2 - Unassigned, Open-Drain, Digital ; P2.3 - Unassigned, Open-Drain, Digital mov XBR1, #040h ret Interrupts_Init: mov IE, #002h ret Init_Device: lcall PCA_Init lcall Timer_Init lcall Port_IO_Init lcall Interrupts_Init ret end 提高部分: ;* ;Filename: shumaguan2.asm ;Description:在 4 位数码管显示器上依次显示当天时期和时间,显示格式如下: ; 2012 (年份) ; 12.07(月份.日) ; 12.34(小时.分钟) ;Designed by:gxy ;Date:2012/11/7 ;* $include (C8051F310.inc) ORG 0000H AJMP MAIN ORG 000BH AJMP TIME0 MAIN: ACALL Init_Device MOV R0,#00H ;用于位选 MOV R1,#00H ;用于段选 MOV R2,#22H ;置偏移量,用于控制模式 MOV R4,#8 MOV R5,#250 CLR PSW.1 ;标志位清零 SETB EA ;允许总中断 SETB ET0 ;允许定时器 0 中断 MOV TMOD,#01H ;定时器 0 选工作方式 1 MOV TH0,#0FFH MOV TL0,#0C0H ;定时器赋初值 1ms BACK: MOV P0,R0 ;位选 MOV A,R0 ADD A,#40H ;选下一位 MOV R0,A MOV A,R1 ADD A,R2 ;加偏移量 MOVC A,A+PC ;查表取段码 MOV P1,A ;段码给 P1 显示 LOOP: SETB TR0 ;开定时 HERE: JNB PSW.1,HERE ;等待中断 CLR PSW.1 DJNZ R5,BACK MOV R5,#250 DJNZ R4,BACK MOV R4,#8 ;循环 2000 次(2s) MOV A,R2 ADD A,#04H ;偏移量加 04H,到下一模式段码初值地址 MOV R2,A CJNE R2,#2EH,LOOP2 MOV R2,#22H ;加三次后偏移量回到初值 LOOP2: AJMP BACK ;返回进入下一模式 ;段码数据表: DB 0DAH,60H,0FCH,0DAH ; 2102 DB 0E0H,0FCH,61H,60H ; 701. 1 DB 66H,0F2H,0DBH,60H ; 432. 1 ;* ; 定时器 0 中断 ;* TIME0: MOV TH0,#0FFH MOV TL0,#0C0H CLR TR0 SETB PSW.1 INC R1 ;偏移指针加一 CJNE R1,#04H,LOOP MOV R1,#00H ;偏移指针满 04H 清零 RETI ;* ; 初始化配置 ;* PCA_Init: anl PCA0MD, #0BFh mov PCA0MD, #000h ret Timer_Init: mov TMOD, #001h 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, Open-Drain, Digital ; P1.1 - Unassigned, Open-Drain, Digital ; P1.2 - Unassigned, Open-Drain, Digital ; P1.3 - Unassigned, Open-Drain, Digital ; P1.4 - Unassigned, Open-Drain, Digital ; P1.5 - Unassigned, Open-Drain, Digital ; P1.6 - Unassigned, Open-Drain, Digital ; P1.7 - Unassigned, Open-Drain, Digital ; P2.0 - Unassigned, Open-Drain, Digital ; P2.1 - Unassigned, Open-Drain, Digital ; P2.2 - Unassigned, Open-Drain, Digital ; P2.3 - Unassigned, Open-Drain, Digital mov XBR1, #040h ret Interrupts_Init: mov IE, #002h ret Init_Device: lcall PCA_Init lcall Timer_Init lcall Port_IO_Init lcall Interrupts_Init ret end 六、程序测试方法与结果、软件性能分析 软件调试总体截图: 基础部分: 软件运行时,我们发现 P0 端口为 00H,P1 端口以依次为 FCH、60H、DAH、F2H、66H、B6H、BEH、E0H、FEH、F6H。说明第一个数码管依次显示 0、1、2、3、4、5、6、7、8、9 如图,这是程序运行时的一个截图,P0 端口为 00H,位选第一个数码管,P1 端口为 BEH, 表示第一个数码管显示数字“6” 0 到 9 显示如下: 所以,软件调试时,运行正常。 Program Size: data=8.0 xdata=0 code=112 硬件调试时 C8051F310 单片机开发板上第一个数码管循环显示数字 0-9,显示切换频率为 1Hz。 运行正常,数码管亮度适中,如图: 综上:基础部分代码,无论是在软件上还是硬件上都运行正常,达到了实验的要求。 提高部分: 软件调试时,P0 端口不断在 00H、40H、80H、C0H 中循环跳动,说明每 1ms 换一个位码, 即每 1ms 亮下一个数码管,软件截图如下: P1 端口也不断在 0DAH,60H,0FCH,0DAH(2102 )间跳动 ; 过 2s 后切换到在 0E0H,0FCH,61H,60H(701. 1)间跳动; 在过 2s 在 66H,0F2H,0DBH,60H(432. 1)间跳动; 再过 2s 后又切换到第一种模式 所以,软件调试时,运行正常。 Program Size: data=8.0 xdata=0 code=141 硬件调试时 C8051F310 单片机开发板上 4 位数码管显示器上依次显示年份、月日和时分,亮度适中 每 2s 切换一次,切换正常,截图如下: 分别显示 2012 年、11 月 07 日、12 点 34 分。 综上:提高部分代码,无论是在软件上还是硬件上都运行正常,达到了实验的要求

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论