按键控制1位LED数码管显示0-9
编写LED显示0-9数字的PLC控制程序

《一位LED数码管显示0-9》

成都理工大学工程技术学院单片微机原理及应用课程设计《一位LED数码管显示0-9》学生姓名:学号:专业:班级:指导教师:完成日期:目录一实验目的与任务 (2)二实验要求 (2)三实验内容 (2)四元器件清单 (2)五LED数码管的结构及工作原理 (2)六关于PLC控制LDE介绍 (4)七原理图绘制说明 (5)八流程图绘制以及说明 (9)九电路原理图与仿真 (10)十源程序 (12)十一心得体会 (12)十二参考文献 (13)一、实验与任务结合实际情况,编程设计、布线、程序调试、检查与运行,完成一个与接近实际工程项目的课题,以培养学生的实际操作能力,适应生产一线工作的需要。
做到能检查出错误,熟练解决问题;对设备进行全面维修。
通过实训对PLC的组成、工作原理、现场调试以及基于网络化工作模式的基本配置与应用等有一个一系列的认识和提高。
利用51单片机、1个独立按键及1位7段数码管等器件,设计一个单片机输入显示系统,要求每按一下独立按键数码管显示数据加1(数码管初始值设为0,计到9后再加1 ,则数码管显示0)。
本次设计采用12MHz的晶体振荡器为单片机提供振荡周期,外加独立按键,复位电路和显示电路组成。
二、实验要求1、了解七段LED数码管的结构、分类以及数码管的显示码。
2、学习1位LED数码管静态显示与动态显示的编程方法。
3、掌握可编程序控制器技术应用过程中的一些基本技能。
4、了解可编程控制器的装备、调试的全过程。
三、实验内容1、练习设计、连接、调试控制电路;2、学习PLC程序编程;四、元器件清单从PROTUES库中选择元器件(1)AT89C51;单片机。
(2)RES、RX8;电阻、8排阻。
(3)7SEG-COM-CAT-BLUE;带公共端共阴极七段蓝色数码管。
(4)CAP/CAP-ELEC;电容、电解电容。
(5)CRYSTAL:晶振。
五、LED数码管的结构及工作原理led数码管(LED Segment Displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。
单只数码管循环显示0~9教学文稿

项目一:单只数码管循环显示0~9一、设计要求:用汇编语言编写程序实现51单片机控制1只数码管,循环显示0~9。
并用仿真软件仿真出实验结果。
最后,用51单片机开发板实现一支数码管循环显示0到9。
二、设计原理:数码管显示原理:我们最常用的是七段式和八段式LED数码管,八段比七段多了一个小数点,其他的基本相同。
所谓的八段就是指数码管里有八个小LED发光二极管,通过控制不同的LED的亮灭来显示出不同的字形。
数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个LED的阴极连在一起,让其接地,这样给任何一个LED的另一端高电平,它便能点亮。
而共阳极就是将八个LED的阳极连在一起。
其原理图如下。
其中引脚图的两个COM端连在一起,是公共端,共阴数码管要将其接地,共阳数码管将其接正5伏电源。
数码管的8段,对应一个字节的8位,a对应最低位,dp对应最高位。
所以如果想让数码管显示数字0,那么共阴数码管的字符编码为00111111,即0x3f;共阳数码管的字符编码为11000000,即0xc0。
可以看出两个编码的各位正好相反。
本实验用到的共阳极0到9编码:0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HP0口:P0.0—P0.7: 双向I/O (内置场效应管上拉),寻址外部程序存储器时分时作为双向8位数据口和输出低8位地址复用口;不接外部程序存储器时可作为8位准双向I/O口使用。
PO结构图如下:四、设计仿真图:五、源代码:ORG 0000HSJMP MAINORG 030HMAIN: MOV R1,#00HMOV A,R1D1: ANL A,#0FHMOV DPTR,#TABMOVC A,@A+DPTR ;查表MOV P0,A ;P0口输出,显示数字ACALL DELAYINC R1MOV A,R1 ;A加1CJNE A,#10,D1 ;判断A是否到达10LJMP MAIN ;当A达到10跳回主函数,重新赋值为0 DELAY: MOV R2,#05H ;延时D2: MOV R3,#0FFHD3: MOV R4,#0FFHDJNZ R4,$DJNZ R3,D3DJNZ R2,D2RETTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;数值1到9的共阳极编码END 六、结果:数码管循环显示0、1、2、3、4、5、6、7、8、9。
(整理)编写LED显示0-9数字的PLC控制程序

(1)建设项目概况。Y004
环境总经济价值=环境使用价值+环境非使用价值LED数码管e段
另外,环境影响评价三个层次的意义,环境影响评价的资质管理、分类管理,建设项目环境影响评价的内容,规划环境影响评价文件的内容,环境价值的衡量还可能是将来考试的重点。使LED数码管e段亮
(三)安全预评价程序Y005
66
OUT
Y002
83
OR
M109
100
OUT
Y007
117
67
LD
M104
84
OR
M113
101
LDI
X001
118
68
OR
M109
85
OR
M114
102
FNC
40
119
4、梯形图
5、程序调试
1)打开FX2N-48MR编程元件,新建文件,在打开的软件中输入上述梯形图程序;
2)编辑完成后,单击“转换”,将程序转换为可执行模式;
安全评价可针对一个特定的对象,也可针对一定的区域范围。
三、数码显示控制语句表
0
X000
13
SP
K30
26
LD
M0
39
OR
M112
1
OR
M1
14
27
FNC
35
40
OR
M114
2
15
ANI
T1
28
M100
41
OR
M115
3
OUT
M1
16
OUT
M10
29
M101
42
OR
M116
单只数码管循环显示0~9

单只数码管循环显示0-9报告设计题目:单只数码管循环显示0~9设计要求:单片机控制1只数码管,循环显示0~9需求分析:本设计要求单只数码管循环显示0~9,这里采用的是共阴极数码管。
让数码管显示数字的步骤为:1)使数码管的公共端接地(共阴极)上。
2)将显示码送到单片机的P0口,向数码管的各个段输出不同的电平,使单个数码管循环显示0-9这10个数字。
复位电路:在上电或复位过程中,控制CPU的复位状态:这段时间让CPU保持复位状态,而不是一上电或刚复位完毕就工作,防止CPU发出错误的指令、执行错误操作,也可以提高电磁兼容性能。
无论用户使用哪种类型的单片机,总要涉及到单片机复位电路的设计。
而单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性。
许多用户在设计完单片机系统,并在实验室调试成功后,在现场却出现了“死机”、“程序走飞”等现象,这主要是单片机的复位电路设计不可靠引起的。
基本的复位方式单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。
89系列单片机的复位信号是从RST引脚输入到芯片的施密特触发器中的。
当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。
设计原理:一、数码管显示原理我们最常用的是七段式和八段式LED数码管,八段比七段多了一个小数点,其他的基本相同。
所谓的八段就是指数码管里有八个小LED发光二极管,通过控制不同的LED的亮灭来显示出不同的字形。
数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个LED的阴极连在一起,让其接地,这样给任何一个LED的另一端高电平,它便能点亮。
而共阳极就是将八个LED的阳极连在一起。
其原理图如下。
其中引脚图的两个COM端连在一起,是公共端,共阴数码管要将其接地,共阳数码管将其接正5伏电源。
一个八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们的段选线(即a,b,c,d,e,f,g,dp)连在一起,而各自的公共端称为位选线。
共阳数码管0~9代码

BEEP=1 ; //关闭蜂鸣器
delayms(100);
}
/**********************************/
// 延时子程序
/****************************************/
}
}
资源:p0口,8路指示灯。p1.4,p1.5亮度控制按键(端口按键)p3.7小喇叭报警 **/
#include<reg51.h>
#include<intrins.h>
sbit K1 =P1^4 ; //PWM值增加键sbit
K2 =P1^5 ; //PWM值减少键
void delay(unsigned char t)
{ while(t--) ;}
void delayms(unsigned char ms)
{ unsigned char i ;
while(ms--)
{
for(i = 0 ; i < 120 ; i++) ;
void Beep()
{
unsigned char i ;
for (i=0 ;i<100 ;i++)
{
delay(100) ;
BEEP=!BEEP ; //Beep取反
{PWM++ ;delayms(10);}
else Beep() ;
}
while(K1==0);
do{
if(PWM!=0x02)
TH1=PWM ;
TR1=1 ;
P0=0x00 ; //启动输出
编写LED显示0-9数字的PLC控制程序

Y004
LED数码管e段
使LED数码管e段亮
Y005
LED数码管f段
使LED数码管f段亮
Y006
LED数码管g段
使LED数码管g段亮
Y007
LED灯h
使LED灯h亮
2、I/O端口接线图
三、数码显示控制语句表
0
X000
13
SP
K30
26
LD
M0
39
OR
M112
1
OR
M1
1427FNC来自102FNC40
119
4、梯形图
5、程序调试
1)打开FX2N-48MR编程元件,新建文件,在打开的软件中输入上述梯形图程序;
2)编辑完成后,单击“转换”,将程序转换为可执行模式;
3)打开PLC主机;
4)按照接线图所示接好所有的线路;
5)单击菜单栏中“PLC”,选择“读出”将文件传送到PLC中;
6)单击菜单栏中“PLC”,选择“遥控运行”
80
OR
M117
97
OR
M118
114
64
OR
M117
81
OUT
Y004
98
OUT
Y006
115
65
OR
M118
82
LD
M106
99
LD
M108
116
66
OUT
Y002
83
OR
M109
100
OUT
Y007
117
67
LD
M104
84
OR
M113
101
LDI
单只数码管循环显示0~9上课讲义

单只数码管循环显示0〜9项目一:单只数码管循环显示 0〜9一、 设计要求:用汇编语言编写程序实现 51单片机控制1只数码管,循 环显示0〜9。
并用仿真软件仿真出实验结果。
最后,用 51单片机开发板 实现一支数码管循环显示0到9。
二、 设计原理:数码管显示原理:我们最常用的是七段式和八段式 LED 数码管,八段比七段多了一个小数点, 其他的基本相同。
所谓的八段就是指数码管里有八个小 LED 发光二极管,通过 控制不同的LED 的亮灭来显示出不同的字形。
数码管又分为共阴极和共阳极两 种类型,其实共阴极就是将八个 LED 的阴极连在一起,让其接地,这样给任何 一个LED 的另一端高电平,它便能点亮。
而共阳极就是将八个LED 的阳极连在一起。
其原理图如下。
其中引脚图的两个COM 端连在一起,是公共端,共阴数码管要将其接地, 共阳数码管将其接正5伏电源。
数码管的8段,对应一个字节的8位,a 对应 最低位,dp 对应最高位。
所以如果想让数码管显示数字 0,那么共阴数码管的 字符编码为00111111,即0x3f ;共阳数码管的字符编码为11000000,即OxcO 。
可以看出两个编码的各位正好相反。
本实验用到的共阳极 0到9编码: 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H弓IJW K -------- 匸c■ d 心GadP0 口:P0.0 —P0.7:双向I/O (内置场效应管上拉),寻址外部程序存储器时分时作为双向8位数据口和输出低8位地址复用口;不接外部程序存储器时可作为8位准双向I/O 口使用。
PO结构图如下:四、设计仿真图:;查表 ;P0 口输出,显示数字;A 加1 ;判断A 是否到达10 ;当A 达到10跳回主函数,重新赋值为0 ;延时 五、源代码:ORG 0000HSJMP MAINORG 030HMAIN: MOV R1,#00HMOV A,R1D1: ANL A,#0FHMOV DPTR,#TABMOVC A,@A+DPTRMOV P0,AACALL DELAYINC R1MOV A,R1CJNE A,#10,D1LJMP MAINDELAY: MOV R2,#05HD2: MOV R3,#0FFHD3: MOV R4,#0FFHDJNZ R4,$DJNZ R3,D3DJNZ R2,D2 RET FUJJTJN.IX1m i«ntriafM-CO PQ 4^*D*OfPS h 峭 I HILI rj-inrnHtigpH-Ea-l+r:TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;数值1 到9 的共阳极编码END六、结果:数码管循环显示0、1、2、3、4、5、6、7、& 9。
共阳七段数码管显示数字0到9

共阳七段数码管是一种常用的数码管显示器件,具有显示数字0到9的功能。
本文将从结构、工作原理、应用场景等方面详细介绍共阳七段数码管。
一、结构共阳七段数码管由七个发光二极管(LED)组成,每个LED对应显示数字的一部分。
将它们按照数字的显示形状组合在一起,就可以显示出任意数字。
共阳七段数码管还包括一个共阳极,用于控制LED的亮暗状态。
二、工作原理共阳七段数码管的工作原理是通过外部电路向共阳极加电压,控制七个LED的亮暗状态。
共阳极接通时,显示的数字为0;当接通其他七段数码管的阳极时,根据所加电压的不同,可以显示出数字1至9。
三、电路连接连接共阳七段数码管的典型电路由驱动芯片、限流电阻和共阳极组成。
其中驱动芯片用于控制LED的亮暗,限流电阻用于限制LED的电流,避免过流损坏。
共阳极则是整个电路的控制中心,通过对其加电压来控制LED的状态。
四、显示原理共阳七段数码管通过将不同的发光二极管组合在一起,可以显示出任意数字。
比如数字1由bc两段显示,数字2由abged显示,数字3由abgcd显示,以此类推。
通过控制每个LED的亮灭状态,便可以实现数字的显示。
五、应用场景共阳七段数码管广泛应用于各种计时器、电子秤、仪器仪表以及工业控制系统中。
它具有结构简单、稳定可靠、功耗低等优点,是目前常见的数字显示器件之一。
在日常生活中,我们可以看到共阳七段数码管在各种电子设备中的身影,如微波炉、电子闹钟等。
六、优缺点共阳七段数码管的优点是结构简单、使用方便,适用于对数字显示精度要求不高的场景。
它的功耗较低,可以长时间稳定工作。
但是,共阳七段数码管只能显示有限的数字,且对字体显示有一定限制,不能显示复杂的字符或图形。
七、结语共阳七段数码管作为一种常见的数字显示器件,在各种电子设备中都有着重要的应用。
通过控制七个LED的亮暗状态,它可以显示出数字0到9,适用于各种计时计数等场景。
随着科技的不断进步,相信共阳七段数码管在未来会有更广泛的应用。
定义控制数码管位选端的位码表1到十

定义控制数码管位选端的位码表1到十一、数码管位选端的定义数码管是一种常见的显示器件,用于显示数字和一些特定字符。
在数码管中,位选端(也称为段选端)用于选择要显示的数字或字符。
每个位选端对应一个特定的位码,通过控制位选端的电平状态,可以选择显示不同的数字或字符。
二、数码管位码表数码管位码表是一种记录了每个数字或字符对应的位选端电平状态的表格。
根据不同的数码管类型,位码表可能会有所不同。
下面是一种常见的数码管位码表,列出了1到十的位选端位码。
1. 数字1的位码为:000001102. 数字2的位码为:010110113. 数字3的位码为:010011114. 数字4的位码为:011001105. 数字5的位码为:011011016. 数字6的位码为:011111017. 数字7的位码为:000001118. 数字8的位码为:011111119. 数字9的位码为:0110111110. 数字10的位码为:01110111三、数码管位选端的工作原理数码管通常由多个发光二极管(LED)组成,每个LED对应一个位选端。
通过控制位选端的电平状态,可以选择点亮或熄灭对应的LED,从而显示不同的数字或字符。
在位码表中,每一位的位码表示了对应的LED的状态。
位码中的1表示对应的LED点亮,0表示对应的LED熄灭。
通过依次控制不同位选端的电平状态,就可以选择显示不同的数字或字符。
例如,如果要显示数字5,可以依次将各个位选端的电平状态设置为位码表中数字5对应的位码。
这样,数码管中对应的LED就会点亮,显示出数字5的形状。
四、数码管位选端的应用数码管广泛应用于各种计数和显示设备中。
常见的应用包括计时器、温度计、电子秤、电子钟等。
以计时器为例,计时器通常需要显示从0到9的数字。
通过控制数码管的位选端,可以依次选择显示0到9的数字,实现计时器的功能。
当计时器到达最大值时,可以通过递增位选端的数量,实现显示更多位数的数字。
在温度计中,数码管可以显示当前的温度值。
51单片机按键控制数码管闪烁位置

n--;
if (n > 3)
n = 3;}Βιβλιοθήκη }display();
}
}
void T0_INT() interrupt 1
{
TH0 = 0x3C;
TL0 = 0xB0;
n_50ms++;
n_50ms %= 6; //10对应1Hz
if(!n_50ms)
flag = ~flag;
}
while(1)
{
if (!k_a)
{
display();
if (!k_a)
{
while (!k_a)
display();
num[n]++;
if (num[n] > 9)
num[n] = 0;
}
}
if (!k_s)
{
display();
if (!k_s)
{
while (!k_s)
display();
#include <intrins.h>
sbit k_a = P3^1;
sbit k_s = P3^3;
sbit k_l = P3^5;
sbit k_r = P3^7;
unsignedchar code SEG7[] = { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
for(i = 0; i < 8; i++)
{
P0 = SEG7[DISP_BUFF[i]];
P2 = w;
DelayMS(1);
P2 = 0;
w = _cror_(w, 1);
按键控制1位LED数码管显示0-9

单片机课程设计姓名:陈素云班级:09电力方向2班学号:200920305340设计题目:按键控制1位LED数码管显示0-9设计要求:通过单片的I/O口与LED数码管所构成的单片机系统的软件编程,使学生掌握简单的单片机系统的设计,同时初步学全用汇编语言和C语言两种方式编程的基本方法。
学生必须采用单片机AT89C51为LED显示屏的控制为核心,分别置“1”或“0”,让某些段的LED 发光,其它的熄灭,然后达到显示不同的字符和图符号的目的. 学生根据前期设计的步骤按照设计报告内容的具体要求,选择前期设计的一个典型题目,写出详尽的课程设计报告,重点内容包括方案论证、完整的电路图、软件系统流程图及开发程序、组装调试内容和总结等。
目录第1节引言 (3)1.1 LED数码显示器概述 (3)1.2 设计任务 (5)1.3设计目的 (6)第2节 AT89C51单片机简介 (6)2.1 AT89C51单片机 (6)2.2 单片机管脚图 (7)2.3管脚说明 (7)2.4振荡器特性 (9)第3节设计主程序与硬件电路设计 (9)3.1设计的主程序 (10)3.2系统程序所需硬件 (10)3.2.1所需的硬件 (10)3.2.2所需硬件的结构图 (11)3.3 硬件电路总连接图 (12)第4节程序运行过程 (12)4.1分析步骤 (12)4.2 程序执行过程 (13)第5节程序运行结果 (13)总结参考文献第1节引言还记得我们小时候玩的“火柴棒游戏”吗,几根火柴棒组合起来,能拼成各种各样的图形,LED数码管显示器实际上也是这么一个东西。
在单片机系统中,常常用LED数码数码管显示器来显示各种数字或符号。
LED 数码显示器是单片机嵌入式系统中经常使用的显示器件。
一个“8”字型的显示模块用“a、b、c、d、e、f、g、h” 8 个发光二极管组合而成。
每个发光二极管称为一字段。
LED 数码显示器有共阳极和共阴极两种结构形式。
由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。
数码管动态显示,显示从1到9,每一位显示一个数字(单片机)

数码管动态显⽰,显⽰从1到9,每⼀位显⽰⼀个数字(单⽚机)//object: 动态显⽰数码管,从1显⽰到9//writer:mike//time: 2020,11,14#include<reg52.h>sbit wei = P2^7;sbit du = P2^6;//数组的类型指的是每⼀个元素的类型, code则指定存储在代码区,⽽⾮code 指存户在内存中。
unsigned int code data1[10] = {0x3F,//00x06,//10x5B,//20x4F,//30x66,//40x6D,//50x7D,//60x07,//70x7F,//80x6F//9};void delay(unsigned int);void main(){while(1){//⾸先打开位选wei = 1;P0 = 0xfe; //让第⼀位显⽰//关闭位选wei = 0;//打开段选du = 1;//显⽰数字1P0 = data1[1];//关闭段选du = 0;//点亮第⼀位之后,延时⼀段时间delay(1);//针对第⼆位数码管//打开位选wei = 1;//设置位选P0 = 0xfd;//关闭位选wei = 0;//打开段选du = 1;//设置段选P0 = data1[2];//关闭段选du = 0;delay(1);//针对第三位数码管//打开位选wei = 1;//设置位选P0 = 0xfb;//关闭位选wei = 0;//打开段选du = 1;//设置段选P0 = data1[3];//关闭段选du = 0;delay(1);//针对第四位数码管//打开位选wei = 1;wei = 0;//打开段选du = 1;//设置段选P0 = data1[4];//关闭段选du = 0;delay(1);//针对第五位数码管 //打开位选wei = 1;//设置位选P0 = 0xef;//关闭位选wei = 0;//打开段选du = 1;//设置段选P0 = data1[5];//关闭段选du = 0;delay(1);//针对第六位数码管 //打开位选wei = 1;//设置位选P0 = 0xdf;//关闭位选wei = 0;//打开段选du = 1;//设置段选P0 = data1[6];//关闭段选du = 0;delay(1);//针对第七位数码管 //打开位选wei = 1;//设置位选P0 = 0xbf;//关闭位选wei = 0;//打开段选du = 1;//设置段选P0 = data1[7];//关闭段选du = 0;delay(1);//针对第⼋位数码管 //打开位选wei = 1;//设置位选P0 = 0x7f;//关闭位选wei = 0;//打开段选du = 1;//设置段选P0 = data1[8];//关闭段选du = 0;delay(1);/* //针对第九位数码管 //打开位选wei = 1;//设置位选wei = 0xff;//关闭位选wei = 0;du = data1[9];//关闭段选du = 0;*/}}void delay(unsigned int x) {unsigned a, b;for(a=x;a>0;a--){for(b=120;b>0;b--); }}。
数码管显示控制设计—间隔1s依次显示数字0(PLC设计课件)

T5
TON
Time
IN
Q
PT
ET
T6
TON
Time
IN
Q
PT
ET
T7
TON
Time
IN
Q
PT
ET
T8
TON
Time
IN
Q
PT
ET
T9
TON
Time
IN
Q
PT
ET
二、梯形图设计-比较指令
M0.0
T#4S
T1
TON
Time
IN
Q
PT
ET
T1.ET
T1.ET
Q0.0
A灯
T#1S
T#2S
M0.0启动后,T1定时器开始定时,ET值开始发生变化;此时ET值小于2s,
01 01 01 01 01 01 01 01
16#55 T1.Q
16#aa T2.Q
16#ff
T3.Q 16#00
I0.1
T#1S
T1
T2
TON
Time
IN
Q
TON
Time
IN
Q
PT
ET
PT
ET
T#1S
T#1S
T3
TON
Time
IN
Q
PT
ET
项目四:数码管显示控制设计
任务一
间隔1s依次点亮各段
9876543210
9S 8S 7S 6S 5S 4S 3S 2S 1S
开 始
二、梯形图设计-知识回顾
M0.0 T1.Q
Q0.0
T2.Q T4.Q
T5.Q
使用多个定时器实现
定义控制数码管位选端的位码表1到十

定义控制数码管位选端的位码表1到十数码管是一种常见的数字显示器件,通常由多个LED灯组成,用于显示数字、字母或符号。
在控制数码管显示不同数字时,需要通过位选端来选择要显示的数码管。
下面将介绍控制数码管位选端的位码表1到十,以便更好地理解和掌握数码管的工作原理。
1. 位码表一:0000 0001位码表一对应的二进制数为0000 0001,表示选择第一位数码管进行显示。
通过设置位码表一,可以使第一位数码管显示特定的数字、字母或符号。
2. 位码表二:0000 0010位码表二对应的二进制数为0000 0010,表示选择第二位数码管进行显示。
通过设置位码表二,可以使第二位数码管显示特定的数字、字母或符号。
3. 位码表三:0000 0100位码表三对应的二进制数为0000 0100,表示选择第三位数码管进行显示。
通过设置位码表三,可以使第三位数码管显示特定的数字、字母或符号。
4. 位码表四:0000 1000位码表四对应的二进制数为0000 1000,表示选择第四位数码管进行显示。
通过设置位码表四,可以使第四位数码管显示特定的数字、字母或符号。
5. 位码表五:0001 0000位码表五对应的二进制数为0001 0000,表示选择第五位数码管进行显示。
通过设置位码表五,可以使第五位数码管显示特定的数字、字母或符号。
6. 位码表六:0010 0000位码表六对应的二进制数为0010 0000,表示选择第六位数码管进行显示。
通过设置位码表六,可以使第六位数码管显示特定的数字、字母或符号。
7. 位码表七:0100 0000位码表七对应的二进制数为0100 0000,表示选择第七位数码管进行显示。
通过设置位码表七,可以使第七位数码管显示特定的数字、字母或符号。
8. 位码表八:1000 0000位码表八对应的二进制数为1000 0000,表示选择第八位数码管进行显示。
通过设置位码表八,可以使第八位数码管显示特定的数字、字母或符号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机课程设计姓名:陈素云班级:09电力方向2班学号:2设计题目:按键控制1位LED数码管显示0-9 设计要求:通过单片的I/O口与LED数码管所构成的单片机系统的软件编程,使学生掌握简单的单片机系统的设计,同时初步学全用汇编语言和C语言两种方式编程的基本方法。
学生必须采用单片机AT89C51为LED显示屏的控制为核心,分别置“1”或“0”,让某些段的LED 发光,其它的熄灭,然后达到显示不同的字符和图符号的目的. 学生根据前期设计的步骤按照设计报告内容的具体要求,选择前期设计的一个典型题目,写出详尽的课程设计报告,重点内容包括方案论证、完整的电路图、软件系统流程图及开发程序、组装调试内容和总结等。
目录第1节引言 (3)1.1 LED数码显示器概述 (3)1.2 设计任务 (5)1.3设计目的 (6)第2节AT89C51单片机简介 (6)2.1 AT89C51单片机 (6)2.2 单片机管脚图 (7)2.3管脚说明 (7)2.4振荡器特性 (9)第3节设计主程序与硬件电路设计 (9)3.1设计的主程序 (10)3.2系统程序所需硬件 (10)3.2.1所需的硬件 (10)3.2.2所需硬件的结构图 (11)3.3 硬件电路总连接图 (12)第4节程序运行过程 (12)4.1分析步骤 (12)4.2 程序执行过程 (13)第5节程序运行结果 (13)总结参考文献第1节引言还记得我们小时候玩的“火柴棒游戏”吗,几根火柴棒组合起来,能拼成各种各样的图形,LED数码管显示器实际上也是这么一个东西。
在单片机系统中,常常用LED数码数码管显示器来显示各种数字或符号。
LED 数码显示器是单片机嵌入式系统中经常使用的显示器件。
一个“8”字型的显示模块用“a、b、c、d、e、f、g、h” 8 个发光二极管组合而成。
每个发光二极管称为一字段。
LED 数码显示器有共阳极和共阴极两种结构形式。
由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。
1.1 LED数码显示器概述八段LED数码管显示器由8个发光二极管组成。
基中7个长条形的发光管排列成“日”字形,另一个贺点形的发光管在数码管显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。
LED数码管显示器有两种不一样的形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED数码管显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED 数码管显示器。
如下图所示。
`共阴和共阳结构的LED数码管显示器各笔划段名和安排位置是相同的。
当二极管导通时,对应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。
8个笔划段hgfedcba对应于一个字节(8位)的D7 D6 D5 D4 D3 D2 D1 D0,于是用8位二进制码就能表示欲显示字符的字形代码。
例如,对于共阴LED数码管显示器,当公共阴极接地(为零电平),而阳极hgfedcba 各段为0111011时,数码管显示器显示"P"字符,即对于共阴极LED数码管显示器,“P”字符的字形码是73H。
如果是共阳LED数码管显示器,公共阳极接高电平,显示“P”字符的字形代码应为10001100(8CH)。
这里必须注意的是:很多产品为方便接线,常不按规则的办法去对应字段与位的关系,这个时候字形码就必须根据接线来自行设计了,后面我们会给出一个例程。
在单片机应用系统中,数码管显示器显示常用两种办法:静态显示和动态扫描显示。
所谓静态显示,就是每一个数码管显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。
这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种办法单片机中CPU的开销小。
能供给单独锁存的I/O接口电路很多。
1.2 设计任务按键控制1位LED数码管显示0-9,首先在实验室将程序编写完整并使用tkstudy ice检查是否有错误。
观察有无错误果,若无错误,就会生成hex文件,最后利用protel 99 se画好原理图,则将正确编译过的hex文件通过编程器写入mcu片内。
进行全速运行,看能否实现任务要求。
1.3 设计目的通过一个微机应用系统的设计与调试过程,运用《单片机原理及应用》课程所学的知识,在设计中加以实践,达到理解、巩固和发展所学内容的目标。
通过系统构造、流程设计、编程与调试的过程,掌握分析与解决实际问题的方法与手段,提高系统设计、程序编码与调试方面的实际动手能力,让同学们在理论学习的基础上,通过完成一个涉及MCS-51单片机多种资源应用并具有综合功能的小系统目标板的设计与编程应用,使学生不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立进行某些单片机应用系统的开发设计工作打下一定的基础。
第2节AT89C51单片机简介2.1 AT89C51单片机AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
一个单片机芯片的基本组成如下:中央处理器CPU:它是单片机的核心,用于产生各种控制信号,完成对数据的算术逻辑运算和传送。
内部数据存储器RAM:用来存放可以读/写的数据。
内部程序存储器ROM:用来存放程序指令或某些常数表格。
4个8位的并行I/O接口P0、P1、P2和P3,每个口都可以用作输入或者输出。
3个定时/计数器,用来作外部事件计数器,也可以定时。
内部中断系统:具有5个中断源、2个优先级的嵌套中断结构,可实现二级中断服务程序嵌套。
每一个中断源都可以用软件程序规定为高优先级中断或低优先级中断。
一个串行接口电路:可用于异步接收发送器。
内部时钟电路:震荡频率可以高达40MHz,但晶体和微调电容需要外接。
2.2 A T89C51单片机管脚图图2.1AT89C51单片机管脚图2.3 管脚说明VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL 门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:P3口管脚备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:来自反向振荡器的输出。
2.4 振荡器特性XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
第3 节设计主程序与硬件电路设计3.1 设计的主程序程序如下:org 0000hsjmp mainorg 000bhsjmp t0_isrorg 0030hmain:jb p3.0,$acall delay30msjnb p3.0,$loop:clr amov dptr,#tablemovc a,@a+dptrmov p0,amov tmod,#01hmov th0,#0d8hmov tl0,#0efhsetb et0setb easetb tr0pd: jb p3.1,fzacall delay30msjnb p3.1,$stop:sjmp mainfz: cjne r0,#100,$inc dptrclr amovc a,@a+dptrcjne a,#00h,aaamov dptr,#table ;如果花样数据完应重新循环clr amovc a,@a+dptraaa: mov p0,amov r0,#00hsjmp pddelay30ms:mov r6,#150bbb: mov r7,#100djnz r7,$djnz r6,bbbrett0_isr:clr tr0mov th0,#0d8hmov tl0,#0efhinc r0setb tr0retitable:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00hend3.2 系统程序所需硬件3.2.1所需的硬件本系统采用单片机为LED显示屏的控制核心,其主要是用AT89C51的一个I/O 口控制共阴极数码管的8 个段位,分别置“1”或“0”,让某些段的LED 发光,其它的熄灭,就可以显示不同的字符和图符号除了AT89C51 ,本程序还需要用到7SEG-COM-CAT-BLUE , BUTTON , CAP , CRYSTAL , LED-YELLOW , RES ,RESPACK-7 , RESPACK-8 等。