单片机课程设计例题3-七段LED数码管的控制汇编
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
q unsigned char i; q while (1) q for (i=0; i<=9; i++) q{
n P1=seven_seg[i]; n delay ( ); q} n} n void delay (void) n{ q unsigned int i,j; q for (i=0; i<500; i++) n for (j=0; j<120; j++); n}
n (3)程序说明
n ①字段码是不变的常数,将其存储在程序存储 器中。存储在程序存储器的数据必须在声明的 变量前加上存储类型说明符code。如:
n code seven_seg[10]={0xC0,0xF9,0xA4,0xB0,0x99, 0x92,0x82,0xF8,0x80,0x90};
n ②P1=seven_seg[i]。用变量i作数组元素的下 标,变量i的值就是要显示的数字,而数组元 素seg[i]的值就是要显示数字的段码。语句 P1=seven_seg[i]把要显示的字段码送到P1口。
图414共阴七段LED数码管电路图
4.程序设计
(1)流程图
开始 声明LED段码数组
显示数字0~9 延时
图417 例题3程序流程图
n (2)C语言程序 n #include <regx51.h> n code unsigned char seven_seg[10]={0xC0, 0xF9, 0xA4, n 0xB0, 0x99, 0x92, 0x83, 0xF8, 0x80, 0x98}; n void delay (void); n void main (void) n{
6 P1.5
P3.5/T1 15
7 P1.6
P3.6/WR 16
8 P1.7
P3.7/RD 17
9 RST 18 XTAL1
ALE/PROG 30 PSEN 29 +5V
19 XTAL2
EA/VPP 31
图4-13 七段LED数码管控制电路图
3. 电路元件使用介绍
(1)七段LED数码管简介 七段LED数码管是由发光二极管作为显示字段的数码型显示器件。 共阴极七段LED数码管的发光二极管阴极连接在一起, 通常此公共 阴极接地,当某个发光二极管的阳极为高电平时,发光二极管点亮, 相应的段被显示;当某个发光二极管的阳极为低电平时,发光二极管 熄灭,相应的段不显示。
6.习题
n ①编写程序,使LED数码管依次显示自己的手 机号码。
n ②编写程序,使LED数码管依次显示9~0十个 数字,时间间隔为0.75s。
单片机课程设计
例题3七段LED数码管的控制
4.2.3例题3-七段LED数码管的控制
n P1口输出数码管七段码,数码管循环依次显示0~9 十个数字。
n 1.教学目的: n (1)了解数码管的电路结构,编写段码表。 n (2)使用数组存储数码管字段码表。 n (3)使用延时程序控制数码管的显示停留时间。
P2.4 25
34 P0.5 33 P0.6 32 P0.7
IC1 AT89S51
P2.5 26 P2.6 27 P2.7 28
1 P1.0
P3.0/RXD 10
2 P1.1
P3.1/TXD 11
3 P1.2
ቤተ መጻሕፍቲ ባይዱ
P3.2/INT0 12
4 P1.3 5 P1.4
P3.3/INT1 13 P3.4/T0 14
2.电路图
+5V
gf ab a
f
g
b
e
c
d
R1
DS1 e d c dp
R2
R3
R4
R5
R6
R7
+5V
330 x 8
R8 10K
C2 30p
C1 4.7u
Y1 12MHz
C3 30p
39 P0.0
P2.0 21
38 P0.1
P2.1 22
37 P0.2
P2.2 23
36 P0.3
P2.3 24
35 P0.4
5.程序仿真
n 在Keil集成开发环境中,输入上述源程序并命名 为lm4-3.c,建立名为lm4-3的工程并将lm4-3.c加 入工程中,经编译、链接后进入调试状态,打开 Parallel Port1对话框、watch & call stack windows窗口,单步运行,可观察P1口引脚上的电 平变化及本地变量的变化情况。
n P1=seven_seg[i]; n delay ( ); q} n} n void delay (void) n{ q unsigned int i,j; q for (i=0; i<500; i++) n for (j=0; j<120; j++); n}
n (3)程序说明
n ①字段码是不变的常数,将其存储在程序存储 器中。存储在程序存储器的数据必须在声明的 变量前加上存储类型说明符code。如:
n code seven_seg[10]={0xC0,0xF9,0xA4,0xB0,0x99, 0x92,0x82,0xF8,0x80,0x90};
n ②P1=seven_seg[i]。用变量i作数组元素的下 标,变量i的值就是要显示的数字,而数组元 素seg[i]的值就是要显示数字的段码。语句 P1=seven_seg[i]把要显示的字段码送到P1口。
图414共阴七段LED数码管电路图
4.程序设计
(1)流程图
开始 声明LED段码数组
显示数字0~9 延时
图417 例题3程序流程图
n (2)C语言程序 n #include <regx51.h> n code unsigned char seven_seg[10]={0xC0, 0xF9, 0xA4, n 0xB0, 0x99, 0x92, 0x83, 0xF8, 0x80, 0x98}; n void delay (void); n void main (void) n{
6 P1.5
P3.5/T1 15
7 P1.6
P3.6/WR 16
8 P1.7
P3.7/RD 17
9 RST 18 XTAL1
ALE/PROG 30 PSEN 29 +5V
19 XTAL2
EA/VPP 31
图4-13 七段LED数码管控制电路图
3. 电路元件使用介绍
(1)七段LED数码管简介 七段LED数码管是由发光二极管作为显示字段的数码型显示器件。 共阴极七段LED数码管的发光二极管阴极连接在一起, 通常此公共 阴极接地,当某个发光二极管的阳极为高电平时,发光二极管点亮, 相应的段被显示;当某个发光二极管的阳极为低电平时,发光二极管 熄灭,相应的段不显示。
6.习题
n ①编写程序,使LED数码管依次显示自己的手 机号码。
n ②编写程序,使LED数码管依次显示9~0十个 数字,时间间隔为0.75s。
单片机课程设计
例题3七段LED数码管的控制
4.2.3例题3-七段LED数码管的控制
n P1口输出数码管七段码,数码管循环依次显示0~9 十个数字。
n 1.教学目的: n (1)了解数码管的电路结构,编写段码表。 n (2)使用数组存储数码管字段码表。 n (3)使用延时程序控制数码管的显示停留时间。
P2.4 25
34 P0.5 33 P0.6 32 P0.7
IC1 AT89S51
P2.5 26 P2.6 27 P2.7 28
1 P1.0
P3.0/RXD 10
2 P1.1
P3.1/TXD 11
3 P1.2
ቤተ መጻሕፍቲ ባይዱ
P3.2/INT0 12
4 P1.3 5 P1.4
P3.3/INT1 13 P3.4/T0 14
2.电路图
+5V
gf ab a
f
g
b
e
c
d
R1
DS1 e d c dp
R2
R3
R4
R5
R6
R7
+5V
330 x 8
R8 10K
C2 30p
C1 4.7u
Y1 12MHz
C3 30p
39 P0.0
P2.0 21
38 P0.1
P2.1 22
37 P0.2
P2.2 23
36 P0.3
P2.3 24
35 P0.4
5.程序仿真
n 在Keil集成开发环境中,输入上述源程序并命名 为lm4-3.c,建立名为lm4-3的工程并将lm4-3.c加 入工程中,经编译、链接后进入调试状态,打开 Parallel Port1对话框、watch & call stack windows窗口,单步运行,可观察P1口引脚上的电 平变化及本地变量的变化情况。