单片机实验2
单片机实验 二 LED 数码管 动态扫描显示实验 一.实验目的 掌握 LED 数码管动态扫描显示的原理和编程实现方法。
二.实验原理 LED 数码管动态扫描显示即各数码管循环轮流显示,当循环显示频率较高时,利用人眼的暂留特性,看不出闪烁现象,这种显示需要一个接口完成字形码的输出(段码),另一接口完成各数码管的点亮(位选)。
三.实验内容及要求 1.对于显示的字形码数据此实验采用查表的方法来完成。
2.此实验要求是在八个数码管中显示学生的班级号(如 11040601)或日历年月日(如 2014 05 20)。
四.实验电路 图中,SEG1 为八个封装在一起的共阴数码管,RP1 为排阻,其余同实验三,导线 以总线形式完成。
五.实验步骤 1.在 KEIL4 中编写、调试、编译程序。
2.在 PRTUSE 中设计电路,加载 HEX 文件运行。
3.(1)将单片机实验箱通过 USB 口与 PC 机连接;(2)用杜邦线(8 根线)将实验箱上的 JP8 与 J16 连接(去掉原 J15 和 J16 之间的短路跳线帽),JP10 与 J12 连接。
(3)打开实验箱电源开关 POWER;
(4)打开 STC 自动下载器,将步骤 1 中创建的*.HEX 文件下载到单片 机,完成后观测 LED 数码管显示内容。
六.实验参考程序 ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV SP,#60H MOV 70H,#01H MOV 71H,#01H MOV 72H,#00H MOV 73H,#03H MOV 74H,#00H MOV 75H,#01H MOV 76H,#01H MOV 77H,#04H START: MOV R1,#70H;显示缓冲区首址 MOV R3,#0FEH;首位选字送 R3 NEXT: MOV A,@R1;查七段译码表 MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A;段码送 P0 口 MOV P1,R3;P1 位选 LCALL DLY2MS;延时 2MS MOV P0,#00H;关所有数码管 JNB P1.7, START;判断八位显示完? INC R1;指向显示缓冲区下一单元 MOV A,R3 RL A;下一位位选 MOV R3,A AJMP NEXT DLY2MS: MOV R6,#3 DL2: MOV R7,#250 DL1: NOP NOP 党建NZ R7,DL1 党建NZ R6,DL2 RET TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;0123456789 END 七.思考题 1.某同学在实验时数码管闪烁,可能的原因是什么? 2.为节省 I/O 口,可采用 7 段译码器(比如 CD4511,74LS47 等)和 3-8译码器 74LS138,如何连接电路并编程。
