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

下载本文档

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

文档简介

1、微机实验(shyn)报告 LED数码管显示(xinsh)实验 指导(zhdo)教师: 专业班级: 姓名 : 学号 : 联系方式 : 任务(rn wu)要求 实验目的:理解LED七段数码管的显示控制原理,掌握数码管与MCU的接口技术,能够编写数码管显示驱动程序;熟悉(shx)接口程序调试方法。实验内容:利用C8051F310单片机控制(kngzh)数码管显示器基本要求:利用末位数码管循环显示数字0-9,显示切换频率为1Hz。提高要求:在4位数码管显示器上依次显示当天时期和时间,显示格式如下:yyyy (年份)mm.dd(月份.日)hh.mm(小时.分钟)思考题:数码管采用动态驱动方式时刷新频率应

2、如何选择?为什么?设计思路C8051F310单片机片上晶振为24.5MHz,采用8分频后为3.0625MHz ,输入时钟信号采用48个机器周期。0到9对应的断码为:FCH、60H、DAH、F2H、66H、B6H、BEH、E0H、FEH、F6H基础部分: 由于只需要用末位数码管显示,不需要改变位码,所以只需要采用LED的静态显示。采用查表的方法,通过循环结构,每次循环查找数据表下一地址,循环十次后重新开始循环。每次循环延时1s,采用定时器0定时方式1。提高(t go)部分: 四个数码管都要显示,所以采用(ciyng)LED的动态显示。由于数码管的位选由P0.7、P0.6控制,P0端口的其他引脚都

3、没用到,所以对P0端口初始化赋00H,每次循环加40H、选中下一位,四次后十六进制(sh li jn zh)溢出,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

4、.6:控制数码管的位选P1:控制数码管段码的显示R0:控制段选提高部分:P0.7、P0.6:控制数码管的位选P1:控制(kngzh)数码管段码的显示R0:控制(kngzh)位选R1:控制(kngzh)段选R3:用于改变偏移量来切换模式R4、R5:控制循环次数,控制模式切换时间流程图基础部分:提高(t go)部分五、源代码 (含文件头说明(shumng)、资源使用说明、语句行注释)基础(jch)部分: ;*;Filename:shumaguan.asm;Description: 利用末位数码管循环显示(xinsh)数字0-9,显示切换频率为1Hz。;Designed by:gxy;Date:20

5、12/11/7;*$include (C8051F310.inc)ORG 0000H ;复位入口AJMP MAINORG 000BH ;定时器0中断入口AJMP TIME0MAIN: 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 ;赋初值,定时1sLOOP: MOV A,R0 ADD A,#0BH ;

6、加偏移量 MOVC A,A+PC ;查表取,段码 MOV P1,A ;段码给P1显示 SETB TR0 ;开定时LOOP1: JNB PSW.1,LOOP1 ;等待(dngdi)中断 CLR PSW.1 INC R0 ;偏移(pin y)指针加一 CJNE R0,#0AH,LOOP3 MOV R0,#00H ;偏移(pin y)指针满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 ;标

7、志位置一 MOV TH0,#06H ;定时器重新赋值 MOV TL0,#0C6HLOOP3: CLR TR0 ;关定时 RETI;*;初始化配置;*PCA_Init: anl PCA0MD, #0BFh mov PCA0MD, #000h retTimer_Init: mov TMOD, #001h mov CKCON, #002h retPort_IO_Init: ; P0.0 - Unassigned, Open-Drain, Digital ; P0.1 - Unassigned, Open-Drain, Digital ; P0.2 - Unassigned, Open-Drain,

8、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.

9、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 - Unassigne

10、d, Open-Drain, Digital ; P2.2 - Unassigned, Open-Drain, Digital ; P2.3 - Unassigned, Open-Drain, Digital mov XBR1, #040h retInterrupts_Init: mov IE, #002h retInit_Device: lcall PCA_Init lcall Timer_Init lcall Port_IO_Init lcall Interrupts_Init retend提高(t go)部分:;*;Filename: shumaguan2.asm;Description

11、:在4位数码管显示器上依次显示当天时期和时间,显示格式(g shi)如下:; 2012 (年份(ninfn); 12.07(月份.日); 12.34(小时.分钟);Designed by:gxy;Date:2012/11/7;*$include (C8051F310.inc)ORG 0000HAJMP MAINORG 000BHAJMP TIME0MAIN: ACALL Init_Device MOV R0,#00H ;用于位选 MOV R1,#00H ;用于段选 MOV R2,#22H ;置偏移量,用于控制模式 MOV R4,#8 MOV R5,#250 CLR PSW.1 ;标志(bioz

12、h)位清零SETB EA ;允许(ynx)总中断 SETB ET0 ;允许(ynx)定时器0中断 MOV TMOD,#01H ;定时器0选工作方式1 MOV TH0,#0FFH MOV TL0,#0C0H ;定时器赋初值1msBACK: 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

13、 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 ;加三次(sn c)后偏移量回到初值LOOP2: AJMP BACK ;返回进入(jnr)下一模式;段码数据表: DB 0DAH,60H,0FCH,0DAH ; 2102 DB 0E0H,0FCH,61H,60H; 701. 1 DB 66H,0F2H,0DBH,60H; 432. 1;*; 定时器0中断(zhngdun);*TIME0: MOV

14、TH0,#0FFH MOV TL0,#0C0H CLR TR0SETB PSW.1 INC R1 ;偏移指针加一 CJNE R1,#04H,LOOP MOV R1,#00H ;偏移指针满04H清零RETI;*; 初始化配置;*PCA_Init: anl PCA0MD, #0BFh mov PCA0MD, #000h retTimer_Init: mov TMOD, #001h mov CKCON, #002h retPort_IO_Init: ; P0.0 - Unassigned, Open-Drain, Digital ; P0.1 - Unassigned, Open-Drain, Di

15、gital ; 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

16、- 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,

17、 Open-Drain, Digital ; P2.1 - Unassigned, Open-Drain, Digital ; P2.2 - Unassigned, Open-Drain, Digital ; P2.3 - Unassigned, Open-Drain, Digital mov XBR1, #040h retInterrupts_Init: mov IE, #002h retInit_Device: lcall PCA_Init lcall Timer_Init lcall Port_IO_Init lcall Interrupts_Init retend六、程序测试方法与结果

18、(ji gu)、软件性能分析 软件(run jin)调试总体截图:基础(jch)部分:软件(run jin)运行时,我们发现P0端口为00H,P1端口以依次为FCH、60H、DAH、F2H、66H、B6H、BEH、E0H、FEH、F6H。说明第一个数码管依次显示0、1、2、3、4、5、6、7、8、9 如图,这是程序运行时的一个(y )截图,P0端口为00H,位选第一个数码管,P1端口为BEH,表示第一个数码管显示(xinsh)数字“6” 0到9显示如下: 所以(suy),软件(run jin)调试时,运行正常。Program Size: data=8.0 xdata=0 code=112硬件(

19、yn jin)调试时C8051F310单片机开发板上第一个数码管循环显示数字0-9,显示切换频率为1Hz。运行正常,数码管亮度适中,如图:综上:基础部分代码,无论是在软件上还是(hi shi)硬件上都运行正常,达到了实验的要求。提高(t go)部分:软件(run jin)调试时,P0端口不断在00H、40H、80H、C0H中循环跳动,说明每1ms换一个位码,即每1ms亮下一个数码管,软件截图如下:P1端口也不断(bdun)在0DAH,60H,0FCH,0DAH(2102 )间跳动(tiodng) ;过2s后切换(qi hun)到在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分。综上:提高部分代码,无论是在软件上还是(hi shi)硬件上都运行正常,达到了实验的要求。七、思考题

温馨提示

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

评论

0/150

提交评论