项目二数码管显示(单片机)
3.2 单片机控制LED数码管的显示
5.3.2 LED数码管的静态显示与动态显示
2. 动态显示方式
图5-9 4位LED数码管动态显示示意图
5.3.2 LED数码管的静态显示与动态显示
2. 动态显示方式
各位数码管轮流点亮的时间间隔(扫描间隔)应根据实 际情况定。发光二极管从导通到发光有一定的延时,如果点 亮时间太短,发光太弱,人眼无法看清;时间太长,产生闪 烁现象,且此时间越长,占用单片机时间也越多。另外,显 示位数增多,也将占用单片机大量时间,因此动态显示实质 是以执行程序时间来换取I/O端口减少。下面是动态显示实 例。
void main(void)
ห้องสมุดไป่ตู้
{
P0=0xa4;
//将数字"2"的段码送P0口
P1=0xf8;
//将数字"7"的段码送P1口
while(1)
//无限循环
;
}
5.3.2 LED数码管的静态显示与动态显示
2. 动态显示方式
显示位数较多时,静态显示所占的I/O口多,这时常 采用动态显示。为节省I/O口,通常将所有显示器段码 线相应段并联在一起,由一个8位I/O口控制,各显示位 公共端分别由另一单独I/O口线控制。
// 如段码为0x01,表明一个循环显示已结束 } }
5.3.1 LED数码管显示原理
void delayms(uint j) { uchar i; for(;j>0;j--)
{ i=250; while(--i); i=249; while(--i);
} }
// 延时函数
5.3.1 LED数码管显示原理
图5-10 8只数码管分别滚动显示单个数字1~8
5.3.2 LED数码管的静态显示与动态显示
项目二 单片机控制8位发光二极管
项目二单片机控制8位发光二极管简介:发光二极管是一种非常流行的电子元件,它可以将电能转化为光能,发出亮光。
在数码电子产品、时钟、闹钟、计数器等各种应用中,发光二极管都有广泛应用。
本项目使用单片机通过控制8位发光二极管,展示数字、字母和符号,实现了一个简单的显示。
原理:8位发光二极管有8个引脚分别对应8个数码,控制每个数码的发光需要控制对应的引脚输出高电平。
为了简化控制,本项目使用了74HC595串行移位寄存器,将单片机输出转换为8位并行输出,对应控制8个数码引脚。
移位寄存器通过SER输入端口读入单片机输出数据,一次读入8位数据后,通过数据锁存器将数据存储到寄存器中,依次将数据移位输出到输出端口Q0~Q7,控制对应的发光二极管发光。
由于数据在移位输出时是往高位输出,所以需要控制输出的数据是低位对应数码的数据,即从右至左依次控制每个数码的发光。
硬件设计:其中,8个数码阳极引脚通过限流电阻接入12V电源,共阳极电压为12V。
74HC595移位寄存器的VCC接入5V电源,OE、MR、SER、SRCLK、RCLK、Q0~Q7引脚接入单片机的对应引脚,其中:OE引脚为输出使能端,接地时输出有效。
MR引脚为同步复位端,接VCC时清零寄存器中存储的状态。
SER引脚为串行数据输入端,接单片机的输出引脚。
RCLK引脚为并行输出时钟端,连接与SRCLK相同的时钟引脚。
Q0~Q7引脚为并行输出端,连接到数码管对应的阳极引脚。
单片机的控制程序设计如下:duan数组为8位数码对应的7段LED表示值。
num数组为8位数码的控制数据。
延时函数delay()用于调节数字切换速度。
hc595_out()函数将num数组输出到74HC595移位寄存器。
hc595_sendbyte()函数每次将一个字节通过SER口向74HC595移位寄存器输出,并控制SRCLK时钟,将数据移位存储到寄存器中。
结论:通过单片机控制8位发光二极管的设计,可以实现数字、字母和符号的显示。
两位数码管显示
课程设计说明书课程名称:《单片机技术》设计题目:两位数码管显示设计学院:电子信息与电气工程学院学生姓名:学号:专业班级:指导教师:2014年6 月13日课程设计任务书两位数码管显示摘要:两位数码管显示设计是基于AT89S52单片机的两位数码显示系统,通过AT89S52进行控制,利用汇编语言编写两位数码管循环扫描动态显示的专用程序来实现两位数码管动态显示系统。
系统主要由电源模块、复位模块、外部时钟电路模块、数码管显示模块构成。
电源电路通过桥堆2W10和三端稳压器7805将交流电压变为5V的直流电压。
复位电路由电容与按键的并联来实现。
时钟通过外部12M的晶振来控制。
两位数码管显示由两个共阳极的三极管进行驱动。
将汇编语言编写的两位数码管动态显示程序写入单片机,使数码管相应段点亮,同时利用人眼的视觉暂留的特性和数码管的余辉效应,在扫描频率足够高时,人眼无法感觉数码管的变化,从而实现数码管的动态显示。
关键词:AT89S52;两位数码管;7805;2W10;动态显示目录1.设计背景 (1)1.1单片机的应用背景 (1)1.2共阳极数码管的显示方法 (1)1.3共阳极数码管的驱动设计 (1)2.设计方案 (1)2.1方案一:共阳极数码管静态显示 (1)2.2方案二:共阳极数码管动态显示 (2)2.3数码管静态与动态显示的优缺点比较 (3)3.方案实施 (3)3.1电源电路设计 (3)3.2复位及震荡电路 (4)3.3单片机接口 (4)3.4软件设计 (4)3.5调试仿真 (6)4.结果与结论 (7)4.1设计结果 (7)4.2设计结论 (7)5.收获与致谢 (7)6.参考文献 (8)7.附件 (8)1.设计背景1.1单片机的应用背景在信息时代的今天,单片机技术应用越来越广泛,涉及各行各业,几乎很难找到哪个领域没有单片机的踪迹。
如洗衣机、空调、冰箱等的控制系统,就可以用单片机实现。
为了让人们很直观的了解相关设备当前的工作状态,很多时候需要将当前的时间、温度、工作程序等状态通过数码管显示出来,这就涉及到单片机的数码管显示技术。
实验二 数码管动态显示模块设计2
6、单片机中断系统结构及工作原理
标准51单片机的中断系统有五个中断源。分别为:
中断源入口地址优先级别(同级)
外部中断00003H最高
定时器0溢出000BH
外部中断10013H
定时器1溢出001BH
串行口中断0023H最低
使用中断之前,必须对中断允许寄存器IE进行设置,将中断允许标志EA和对应中断位置1,以将中断打开。中断控制结构如图4-10所示。
实验内容
1、在数码管上显示学号的后8位
2、设计一个以学号后两位加10秒的倒计时程序
实验步骤及现象
打开万利仿真机,接好单片机开发板,新建工程,下载安装程序。我们这次实验的程序如下:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
图4-10 MSC51中断结构图
CPU中断的过程为:当有中断源发生中断信号时,首先对IE中对应的中断位判断;如打开,则进行EA判断;如EA=1,将根据中断优先级IP的设置情况进行优先级判别;如该中断优先级较高,在硬件控制下,先将程序计数器PC的内容压入堆栈,同时把被响应的中断服务程序的入口地址装入PC中,以执行中断服务程序。中断服务程序的最后一条指令必须是中断返回指令RETI。CPU执行完这条指令后,将从堆栈中弹出两个字节内容(断点地址)装入PC中,从而执行被中断的程序。
图4-7定时器模式控制字格式
TCON寄存器用于定时器的计数控制和中断标志。如图4-8所示。
图4-8定时控制寄存器数据格式
编写程序控制这两个寄存器就可以控制定时器的运行方式。
单片机内部定时器/计数器的使用,简而概之:(1)如需用中断,则将EA和相关中断控制位置1;(2)根据需要设置工作方式,即对TMOD设置;(3)然后启动计数,即对TR0或TR1置1。(4)如使用中断,则计数溢出后硬件会自动转入中断入口地址;如使用查询,则必须对溢出中断标志位TF0或TF1进行判断。
单片机_两个数码管显示00~99
P0_1=1; //关闭个位显示
}
}
void key_ccan(void)
{
unsigned char ii;
P1=0xff;
ii=P1;
shi=num/10; //取出十位数
ge=num%10; //取出个位数
P0_0=1;P0_1=1; //关闭显示
P2=Tab[shi]; //P2口送出十位数据显示代码
P0_0=0; //打开十位显示
delay(10); //延时
P0_0=1; //关闭显示
P2=Tab[ge]; //P2口送出个位数据显示代码
P0_1=0; //打开个位显示
按键控制加、减显示00-99(P1接8个独立按键,P10按下为加,P11按下为减,P2
接LED数码管的A- -H并加一个560欧的上拉排阻,P0接数码管DS1- -DS8位选)//
#include<reg52.h>
sbit P0_0=P0^0; //个位数字
sbit P0_1=P0^1; //十位数字
void main()
{
P2=Tab[0];P0_0=0;P0_1=0;//显示00
num=0; //被显示的数置0
while(1)
{
key_ccan(); //调用按键扫描程序
for(i=0;i<count;i++) //显示个位、十位count次后显示的数加1
}
{
case 0xfe: num++;if(num==100) num=0; break;
case 0xfd: if(num==0) num=99;else num--;break;
第2讲 单片机控制两个数码管
共阳极代码 6FH 77 H 7CH 39H 5EH 79H 71H 00H
4 5 6 7 8
99H 92H 82H F 8H 80H
66H 6DH 7 DH 07 H 7FH
思考:y、J、L、H的编码?
2
任务2-1 单片机控制两个数码管静态显示 单片机控制两个数码管静态显示00-99 任务
1、两个共阳 极数码管; 2、P2控制十 位,P1控制个 位 3、延时方式: 延迟时间1秒。
第2讲 单片机控制两个数码管 讲
本讲内容: 1、单片机控制两个数码管静态显示00-99 2、单片机控制两个数码管静态显示按钮 次数
1
十六进制数字型代码表
字型 0 1 2 3
共阳极代码 共阴极代码 C0H F 9H A4H B0H 3FH 06H 5BH 4FH
字型 9 A B C D E 1H 86H 84H FFH
3
程序框图
4
second
汇编程序设计
分析: 1, 两个数码管显示:十 位值放在(A),个位值放 在(B),方法:采用 DIV,(20H)/10,商A,余数B 2,将second从00到99循 环附值 3,每个second显示一次, 只要将前面的程序作为子 程序调用。 4,显示间隔:采用延迟 子程序(延迟时间为1秒)
EQU 20H ORG 0000H START: MOV second,#00H LOOP: ACALL SHOW ACALL DELAY1S INC second MOV R0,second CJNE R0,#64H,LOOP SJMP START SHOW: MOV A,20H MOV B,#10 DIV AB SHOW1: MOV DPTR,#TAB MOVC A,@A+DPTR ;十位 MOV P2,A MOV A,B ;个位 MOVC A,@A+DPTR MOV P1,A RET DELY1S: MOV R6,#100 D2: MOV R5,#20 D1: MOV R4,#248 DJNZ R4,$ DJNZ R5,D1 DJNZ R6,D2 RET TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H DB 82H,0F8H,80H,90H
实验二 数码管显示
实验二数码管显示本实验的目的是掌握数码管的工作原理与使用,实现数码管的静、动态显示。
静态数码管我们先看看什么是数码管,上图就是各种长相各种样子的数码管了,肯定很眼熟了吧。
不管将几位数码管连在一起,数码管的显示原理都是一样的,都是靠点亮内部的发光二极管来发光,下面就来我们讲解一个数码管是如何亮起来的。
数码管内部电路如下图所示,从右图可看出,一位数码管的引脚是10个,显示一个8字需要7个小段,另外还有一个小数点,所以其内部一共有8个小的发光二极管,最后还有一个公共端,生产商为了封装统一,单位数码管都封装10个引脚,其中第3和第8引脚是连接在一起的。
而它们的公共端又可分为共阳极和共阴极,中间图为共阴极内部原理图,右图为共阳极内部原理图。
上图展出了常用的两种数码管的引脚排列和内部结构。
总所周知,点亮发光二极管就是要给予它足够大的正向压降。
所以点亮数码管其实也就是给它内部相应的发光二极管正向压降。
如上图左(一共a、b、c、d、e、f、g、DP 八段),如果要显示“1”则要点亮b、c 两段LED;显示“A”则点亮a、b、c、e、f、g 这六段LED;我们还知道,既然LED 加载的是正向压降,它的两端电压必然会有高低之分:如果八段LED 电压高的一端为公共端,我们称之为共阳极数码管(如上图中);如果八段LED 电压低的一段为公共端,则称之为共阴极数码管(上图右)。
所以,要点亮共阳极数码管,则要在公共端给予高于非公共端的电平;反之点亮共阴极数码管,则要在非公共端给予较高电平。
对共阴极数码来说,其8个发光二极管的阴极在数码管内部全部连接在一起,所以称“共阴”,而它们的阳极是独立的,通常在设计电路时一般把阴极接地。
当我们给数码管的任意一个阳极加一个高电平时,对应的这个发光二极管就点亮了。
如果想要显示出一个8字,并且把右下角的小数点也点亮的话,可以给8个阳极全部送高电平,如果想让它显示出一个0字,那么我们可以除了给第“g, dp”这两位送低电平外,其余引脚全部都送高电平,这样它就显示出0字了。
单片机仿真实习报告
一、实习目的本次单片机仿真实习的主要目的是通过使用仿真软件,对单片机的原理和应用进行深入理解。
通过模拟单片机的实际工作过程,掌握单片机的基本编程方法和调试技巧,提高实际操作能力,为后续单片机相关课程的学习和工作打下坚实基础。
二、实习内容1. 仿真软件介绍本次实习采用Proteus软件进行仿真实验,Proteus是一款功能强大的仿真软件,能够模拟单片机的硬件电路,并提供丰富的编程环境。
2. 实验项目一:LED灯闪烁(1)设计目的:掌握单片机基本编程方法,实现LED灯的闪烁。
(2)实验步骤:a. 创建Proteus仿真项目,添加AT89C51单片机、LED灯和电源等元件。
b. 编写程序,设置单片机的工作模式,通过P1端口控制LED灯的亮灭。
c. 在Proteus中运行程序,观察LED灯的闪烁效果。
3. 实验项目二:按键输入(1)设计目的:学习按键输入的原理,实现按键控制LED灯的亮灭。
(2)实验步骤:a. 在Proteus中添加按键元件,并将其与单片机的P1端口连接。
b. 编写程序,检测按键状态,通过P1端口控制LED灯的亮灭。
c. 在Proteus中运行程序,观察按键控制LED灯的效果。
4. 实验项目三:温度传感器(1)设计目的:学习温度传感器的应用,实现温度显示和报警功能。
(2)实验步骤:a. 在Proteus中添加DS18B20温度传感器,并将其与单片机的P1端口连接。
b. 编写程序,读取温度传感器的数据,通过LCD显示屏显示温度值。
c. 设置温度报警阈值,当温度超过阈值时,LED灯闪烁报警。
5. 实验项目四:数码管显示(1)设计目的:学习数码管的应用,实现数字显示功能。
(2)实验步骤:a. 在Proteus中添加数码管元件,并将其与单片机的P1端口连接。
b. 编写程序,将数字数据显示在数码管上。
c. 在Proteus中运行程序,观察数码管显示效果。
三、实习总结1. 通过本次仿真实习,我对单片机的原理和应用有了更深入的理解,掌握了单片机的基本编程方法和调试技巧。
单片机 实验2-外部中断程序设计-中断按键按下次数计数数码管显示-硬件和程序设计参考
硬件电路参考如下:程序参考如下:#pragma sfr#pragma interrupt INTP0 LED_INTP0 /* 定义使用INTP0中断,中断函数名LED_INTP0*/ #pragma di /*禁止使用中断功能声明*/#pragma ei /*允许使用中断功能声明*//*数码管编码数组*/unsigned char LED_light[10]={0x30,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x3F}; unsigned char j=0; /*按键次数变量*/void hdinit() /*硬件初始化*/{PM1=0; /*P1口输出数码管字型码,所以设置为输出*/PU1=0XFF; /*由于P1口直接驱动数码管显示,为增大驱动,设置为内部上拉*/PM12.0=0; /*P12.0口线要作为中断多功能,设置为输出和内部上拉 */PU12.0=1;PIF0=0; /*中断请求标志,没有中断请求*/PMK0=0; /*中断屏蔽标志,允许中断*/PPR0=1; /*中断优先级,低优先级*/EGP.0=1; /*与EGN组合,上升沿有效*/EGN.0=0;}void main (void){DI(); /*首先做准备,禁止中断*/IMS=0XCC;IXS=0X00;hdinit();EI(); /*准备完成,允许中断*/while(1){ /*啥也不干,就等待中断,仅是在这个实验中使用中断,实际不是这样/*}}__interrupt void LED_INTP0() /*中断函数*/{ P1= LED_light[j]; /*P1赋值,数码管显示相应数值*/j++; /*按键次数加一*/if(j==10) /*如果按键次数达到十次,按键计数归0*/{j=0;} }思考: 如果用两位数码管,从0—99循环计数又该怎样设计硬件和软件呢?。
单片机实验两位数码管显示报告
一、实验目的1、在之前单键实验和中断控制数码管“静态”显示实验的基础上,把单键判断、数码管显示和中断结合起来编写中断程序实现单键控制一位数码管;2、在实现控制一位数码管显示的基础上用单键控制两位数码管显示。
二、实验所需器材与软件硬件:电脑、传输线、AT89S52单片机软件:编程软件Keil uVision3;读写软件MePro V5.02三、实验程序的及其分析:1、单键控制一位数码管显示主要设计思路:在中断主程序后加入单键判断键按下情况判断语句,把数码管显示程序放在中断子程序中。
当有键按下且有中断请求时,重新给数码管显示偏移地址赋值,从而改变显示内容。
程序:ORG 0000HAJMP MAIN ;转向主程序ORG 001BH ;中断矢量地址AJMP T_INT ;转向中断服务程序MAIN: ;主程序标号MOV R3,#0 ;表偏移地址MOV DPTR,#TAB ;把表头地址赋值给寄存器DPTRMOV TMOD,#10H ;设定定时器工作于模式1MOV TH1,#0FEH ;定时器赋初值MOV TL1,#0EHSETB ET1 ;开中断SETB EASETB TR1 ;启动定时器LOOP1:JNB P1.4, LOOP4AJMP LOOP1LOOP4:ACALL DELAYJNB P1.4, LOOP_ADD 单键按下判断程序LOOP_ADD:INC R3CJNE R3,#10,LOOP8MOV R3,#0LOOP8: AJMP LOOP1T_INT: MOV TH1,#0FEHMOV TL1,#0EHMOV A,R3 中断程序内嵌的数码管显示程序MOVC A,@A+DPTRMOV P0,AMOV P2,#11111110BRETITAB:DB 0C0H,0F9H,0A4H,0B0H ,99H,92H,82H,0F8H ;表内容DB 80H,90HDELAY:MOV R5,#64HLOOP5:MOV R7,#0FFHLOOP6:NOPNOP 用于单键按下防抖动的延时程序DJNZ R7,LOOP6DJNZ R5,LOOP5RET2、单键控制两位数码管显示设计思路:用两个寄存器分别存放数码管显示的个位和十位,并且在数码管显示程序中用移位指令对数码管的位码进行移位,使每次执行中断程序时显示一位数,循环两次中断程序后“静态”显示两位数字。
单片机数码管动态显示实验报告
单片机数码管动态显示实验报告单片机数码管动态显示实验程序(汇编)单片机数码管动态显示实验程序org 00hajmp headorg 0030hhead:mov sp,#0070hnum equ p0 ;p0口连接数码管reset:mov dptr ,#tabmov r0,#4sh:acall show_tabcall dptr_adddjnz r0,shmov r0 ,#4sjmp resetdptr_add:inc dptrinc dptrinc dptrinc dptrrettab :db0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH;;;;;;;;;;;;;;;;;;;;; 函数的功能是用来动态显示dptr上的四个数据 ;;;;;;;;;;;;;;;;;;;;;; show_tab:clr amov r2,#0mov r3,#148mov p2,#238loop:movc a,@a+dptrmov num ,aacall delay_5msinc r2mov a,r2;调用片选函数前注意A的变化acall select_movcjne r2,#4,loopmov r2,#0clr adjnz R3,loopret;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;select_mov:;p2的初值238push 0e0hmov a,p2rl amov p2,apop 0e0hretdelay_5ms:mov r6,#5signed_5ms:call delay_1msdjnz r6,signed_5msret篇二:单片机动态数码显示设计实验报告微机原理与接口技术实验报告实验题目:指导老师:班级:计算机科学与技术系姓名:动态数码显示设计2014年 12月3日实验十三动态数码显示设计一、实验目的1.掌握动态数码显示技术的设计方法。
两位数码管显示设计
课程设计说明书课程名称:单片机原理及应用设计题目:两位数码管显示设计院系:电子信息与电气工程系学生姓名:学号:专业班级:指导教师:2010年 5 月10 日课程设计任务书两位数码管显示设计摘要:两位数码管的显示设计主要有硬件部分和软件部分组成,硬件部分以单片机为核心,在其周围有电源电路、时钟电路、复位电路、驱动电路和显示电路组成。
软件部分用汇编语言编程,用keil软件编译、调试。
最后用proteus软件仿真,形成以单片机为枢纽,以程序为动力,使两位数码管循环显示00-99。
关键词:AT89C52 数码管 keil proteus 汇编语言动态显示目录1.设计背景 (1)1.1设计课题及目的 (1)1.2相关技术与应用领域 (1)2.设计方案 (2)2.1静态设计 (2)2.2动态显示 (2)2.3硬件电路设计方案 (2)3. 方案实施 (3)3.1方案论证 (3)3.2设计内容 (3)3.3硬件设计 (4)3.4软件设计 (6)4. 结果与结论 (7)4.1 结果 (7)4.2 结论 (7)5. 收获与致谢 (7)5.1 收获与致谢 (7)6. 参考文献 (8)7. 附件 (9)7.1仿真原理图 (9)7.2汇编程序 (10)7.3 LED的段码 (10)7.4元件清单 (11)1.设计背景1.1设计课题及目的本课题是以单片机为核心,通过动态扫面的方式,实现两位数码管的动态显示。
单片机即单片微型计算机,是集CPU,RAM,ROM,定时,计数,和多种接口于一体的微控制器,他体积小,成本低,功能强,广泛应用于智能产品和工业自动化上,AT89C52单片机是各单片机中比较具有代表性的一种。
这次课程设计通过对他的学习,应用,从而达到学习,设计,开发软硬件的能力.1.2相关技术与应用领域单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器的CPU、随机存储器RAM、只读存储器ROM、多种输入输出口和中断系统、定时器∕计数器等功能集成到一个硅片上构成一个小而完善的计算机系统。
51单片机-数码管显示
} void delay(int x) {
int i,j; for(i=0;i<x;i++)
for(j=1;j<120;j++); }
LED字型显示代码表
段符号
十六进制代码
显示 dp
g
f
e
d
c
b
a 共阴极 共阳极
0
0
1
0
2
0
3
0
4
0
5
0
6
0
7
0
8
0
9
0
A0
b
0
C0
d
0
E0
F
0
H0
P0
0
1
1
1
1
1
1
3FH
C0H
0
0
0
0
1
1
0
06H
F9H
1
0
1
1
0
1
1
5BH
A4H
1
0
0
1
1
1
1
4FH
B0H
1
1
0
0
1
Hale Waihona Puke 1066H
99H
1
1
0
1
1
0
1
6DH 92H
1
1
1
1
1
0
1
7DH
1. 静态显示的特点
静态显示就是单片机将所要显示的数据送出去后,数码管始终显示 该数据(不变),到下一次显示时,再传送一次新的显示数据。
单片机控制数码管显示
单片机应用技术
一维数组的初始化
一般格式:
数据类型 数组名[常量表达式]={初值表} 1.定义时赋初值;int score[5]={1,2,3,4,5}; 2.给一部分元素赋值;int score[5]={1,2}; 3.不对数组全部元素赋值,则全部元素被赋值为0; int score[5]; 4.给全部数组元素赋初值时,可以不指定数组长度; int score[]={1,2,3,4,5};
单片机应用技术
一维数组的查表功能
数组的一个非常有用的功能之一就是查表。表可以事 先计算后装入程序存储器中。 如: unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82, 0xf8,0x80,0x90}; //定义数组tab[],并初始化
单片机应用技术
思考:用单片机系统可控制 LED 可实现信 号灯的不同效果显示,那么能不能用单片 机系统控制LED来实现字符显示呢?
单片机应用技术
学习情境2
数码管显示系统设计
单片机应用技术
【教学目标】
1、终极目标:
制作在数码管上显示任意字符的单片机控制系统。
2、促成目标:
(1) 掌握单片机查表程序的设计方法; (2) 掌握单片机的LED显示接口电路工作原理及其应用; (3) 掌单片机LED显示接口的程序设计方法; (4) 初步掌握单片机应用系统分析和软硬件设计的基本方 法,建立单片机系统设计的基本概念;
39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 2 3 4 5 6 7 8 9 19 1
单片机应用实验报告 2键盘、LED 数码管显示实验
}
int main(){init();来自while(1){
judge();
xianshi();
}
return 0;
}
五、实验步骤
六、附录
sbit LED2=P2^6;
int num=0;
unsigned char code dispcode[]=
{0x30,0xfc,0xa2,0xa4,0x6c,
0x25,0x21,0xbc,0x20,0x24};
void init()
{
key0=1;
key1=1;
key2=1;
}
void delayms(int a)
{int b=0;
for(a;a>0;a--)
for(b=110;b>0;b--);
}
int judge()
{
if(key0==0)
{
delayms(100);
if(key0==0)
{
red=0;
yell=1;
gre=1;
num++;
if(num==10)
num=0;
}
}
if(key1==0)
{
delayms(5);
if(key1==0)
{
red=1;
yell=0;
gre=1;
}
}
if(key2==0)
{
delayms(5);
if(key2==0)
{
red=1;
yell=1;
gre=0;
}
}
return 0;
}
void xianshi()
{
两位数码管显示实训报告
一、实验背景随着电子技术的飞速发展,数码管作为一种常见的显示器件,广泛应用于各种电子设备中。
本次实训旨在通过学习数码管的工作原理、编程方法以及电路连接,掌握如何使用单片机控制两位数码管显示数字。
二、实验目的1. 理解数码管的工作原理及显示方式。
2. 掌握单片机与数码管的接口连接方法。
3. 学会使用C语言编程控制数码管显示数字。
4. 培养动手能力和团队合作精神。
三、实验原理数码管是一种由多个发光二极管组成的显示器件,通过控制各个发光二极管的亮灭来显示数字。
根据发光二极管的连接方式,数码管分为共阴极和共阳极两种。
共阴极数码管:当控制某段发光二极管的信号为高电平时,对应的发光二极管点亮,显示相应的数字或符号。
共阳极数码管:当控制某段发光二极管的信号为低电平时,对应的发光二极管点亮,显示相应的数字或符号。
本实训采用共阴极数码管,通过单片机控制其段码端和位选端,实现数字的显示。
四、实验设备1. 单片机开发板(如STC89C52)2. 两位数码管(共阴极)3. 连接线4. 电源5. 编译器(如Keil uVision)6. 调试器(如Proteus)五、实验步骤1. 硬件连接(1)将单片机的P0端口与数码管的段码端相连。
(2)将单片机的P1端口中的P1.0和P1.1作为位选端,分别连接到数码管的位选端。
(3)连接电源,确保单片机和数码管正常供电。
2. 软件编程(1)在Keil uVision中创建一个新的项目,选择单片机型号。
(2)编写程序,实现以下功能:a. 初始化P0和P1端口,将P0端口设置为输出模式,P1端口的前两位设置为输出模式。
b. 编写函数,用于设置数码管的段码,实现数字的显示。
c. 编写主函数,循环调用函数,实现两位数码管动态显示数字。
3. 仿真调试(1)在Proteus中搭建电路,将单片机、数码管和连接线添加到电路中。
(2)将编写的程序烧录到单片机中。
(3)运行仿真程序,观察数码管的显示效果。
两位数码管显示
关键词:AT89C52;一位共阳极数码管;晶振 ;三极管 9015
以at89c52为核心系统一位共阳极数码管作为显示电路晶振提供稳定的时钟周期频率桥堆2w10和7805作为稳定的5v电压电路三极管作为驱动电路发光二极管作为提示电路导通电路实现动态循环显示两位数0099的电路
课程设计说明书
课程名称: 单片机原理及应用 设计题目: 两位数码管显示 院 系: 电子信息与电气工程系 学生姓名: 学 号: 专业班级: 指导教师:
学生应完成的工作: 1.掌握数码管的显示原理及共阳极数码管的驱动电路; 2.掌握电源的设计方法及整流电路和稳压电路在设计电路中应用; 3.掌握 AT89C52 各个端口的原理及理解端口在电路应用中工作原理及作用; 4.掌握用程序通过 AT89C52 控制电路的原理并会编写程序控制一定功能的电路;
5.在此次课程设计中,赵燕完成了硬件图的绘制,李文龙完成程序的编写,李俊杰、姬永磊、刘坤
P3 口是一组带有内部上拉电阻的 8 位双向 I/O 口。P3 口输出缓冲级可驱动(吸
3
收或输出电流)4 个 TTL 逻辑门电路。 RST:复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将
使单片机复位。 XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。 XTAL2:振荡器反相放大器的输出端。
工作计划:
5 月 4 号 查找有关课题资料,得出能够实现课题要求的设计方案;
5 月 5 号 请指导老师确定硬件及软件设计方案,并让指导老师验证方案的可行性;
单片机实验报告二-数码管显示实验
单片机实验报告二-数码管显示实验摘要:本实验使用单片机控制数码管的显示,在实验过程中通过学习单片机的GPIO口的编程,调试程序、调节电路来达到正确的显示效果。
最终按照要求实现了单片机控制数码管的计数器。
关键词:单片机、数码管、GPIO口、计数器一、实验介绍数码管是一种介于机械仪表和液晶显示器之间的电子显示器件,广泛应用于计时器、计数器、仪表等电子产品中。
本实验旨在通过单片机控制数码管的显示来加深对GPIO口的使用和调试程序的理解,同时了解数码管的原理。
本实验主要分为两部分:数码管显示基础实验和数码管控制开关实验。
通过这两部分的实验可以了解数码管的工作原理和单片机的基本控制方式。
二、实验原理2.1 数码管的基本原理数码管显示器将数字显示为一组符号,例如“0”到“9”。
表示不同数字的符号被编码成一个数字码。
七段数码管用一个七段数码字母来表示数字,如下表所示:| 数字 | a | b | c | d | e | f | g || ---- | - | - | - | - | - | - | - || 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 || 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 || 2 | 1 | 1 | 0 | 1 | 1 | 0 | 1 || 3 | 1 | 1 | 1 | 1 | 0 | 0 | 1 || 4 | 0 | 1 | 1 | 0 | 0 | 1 | 1 || 5 | 1 | 0 | 1 | 1 | 0 | 1 | 1 || 6 | 0 | 0 | 1 | 1 | 1 | 1 | 1 || 7 | 1 | 1 | 1 | 0 | 0 | 0 | 0 || 8 | 1 | 1 | 1 | 1 | 1 | 1 | 1 || 9 | 1 | 1 | 1 | 1 | 0 | 1 | 1 |通过控制数码管的七个LED灯的亮灭,可以实现不同符号显示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数码管显示
思维导图
任务
利用数码管静态显示模块显示 “1234”
情境导入
七段数码管在家电 及工业控制中有着很 广泛的应用,例如用来 显示温度、数量、重 量、日期、时间等等, 具有显示醒目、直观 的优点。
任务描述
任务:利用数码管静态显示模块显示“1234”。
知识准备
一、硬件知识: 数码管结构及原理 1.数码管结构
任务处理
do { CLK=0; //准备传输数据 DATA=a0; //将待传数据最低位输出到数据端 CLK=1; //将数据传输到164 ACC=ACC>>1; //将待传数据移位,为下次传输做好准备 } while(--i!=0); //循环传送8次数据 } /**************** 延时程序********************/ void delay(uchar ms) { uchar i; while(ms--) { for (i=0;i<125;i++); } }
知识准备
5. 74LS164芯片资料 74LS164 为 8 位移位寄存器,其主要电特性如下:
当清除端(CLEAR)为低电平时,输出端(QA-QH)均为低电平 。 串行数据输入端(A,B)可控制数据。当 A、B任意一个为 低电 平,则禁止新数据输入,在时钟端(CLOCK)脉冲上升沿作用下Q0 为低电平。当A、B 有一个为高电平,则另一个就允许输入数据,并 在CLOCK 上升沿作用下决定Q0 的状态。
工作原理: 当片选端/CE低电平有效时, DIR=“0”,信号由 B 向 A 传 输;(接收) DIR=“1”,信号由 A 向 B 传 输;(发送) 当CE为高电平时,A、B均 为高阻态。
任务处理
二、软件知识 任务一:利用数码管静态显示模块显示“1234” 1.利用天煌单片机实训台上单片机最小系统模块与 串行静态显示模块,串行静态显示模块如图2-2所示 将单片机最小系统模块的P1.0与显示模块的Din相连, P1.1与CLK相连,当然用户也可以用其他I/O口。 2.打开Keil uVision2仿真软件,首先建立本实 验的项目文件,根据项目要求编写项目源程序, 进行编译,直到编译无误。 3.进行软件设置,生成HEX文件。 图2-2
2. LED数码管分类: 按其内部结构可分为共阴型和共阳型
导通时正向压降一般为1.5~2V,额定电流为10mA,最大电流为40mA。
知识准备
3. 数码管工作原理
共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起。通常 公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。当某段 驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮。根据发光 字段的不同组合可显示出各种数字或字符。
共阴极数码管的8个发光二极管的阴极(二极管负端)连接在一起。通常, 公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端。当某段驱动 电路的输出端为高电平时,则该端所连接的字段导通并点亮,根据发光字段的 不同组合可显示出各种数字或字符。
知识准备
4. 数码管字形编码
显 示 0 1 2 3 4 5 6 7 8 9 A b C d E F H P 段 dp 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 g 0 0 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 f 1 0 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 e 1 0 1 0 0 0 1 0 1 0 1 1 1 1 1 1 1 1 符 d 1 0 1 1 0 1 1 0 1 1 0 1 1 1 1 0 0 0 号 c 1 1 0 1 1 1 1 1 1 1 1 1 0 1 0 0 1 0 b 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 1 1 a 1 0 1 1 0 1 1 1 1 1 1 0 1 0 1 1 0 1 十六进制代码 共阴极 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 77H 7CH 39H 5EH 79H 71H 76H F3H 共阳极 C0H F9H A4H B0H 99H 92H 82H F8H 80H 90H 88H 83H C6H A1H 86H 8EH 89H 8CH
4.利用下载器将程序下载到单片机中,并上电观察程序结果是否正确
任务处理
流程图:
开始
初始化
取段码 段码左移一位 输出一位段码 输出一个移位脉 冲 N 取 段 码 结束 Y N 取段码 结束 Y
任务处理
参考程序: #include <reg51.h> #define uchar unsigned char sbit CLK=P1^1; //用P1^1模拟串口时 钟 sbit DATA=P1^0; //用P1^0模拟串口数 据 sbit a0=ACC^0; unsigned char code dm[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d, 0x7d,0x07,0x7f,0x6f} void out_164(uchar data_buf) { uchar i; //循环次数变量定义 i=8; //循环次数变量赋初值 ACC=data_buf; 将要显示的数据送给寄存 器A
知识准备
引脚功能:
CLOCK :时钟输入端 CLEAR: 同步清除输入端(低电平有效) A,B :串行数据输入端 QA-QH: 输出端
H-高电平 L-低电平 X-任意电平 ↑-低到高电平跳变
QA0,QB0,QH0 -规定的稳态条件建立前的电平 QAn,QGn -时钟最近的↑前的电平
知识准备
6. 74LS245 三态输出的双向八组总线收发器 74LS245是用来驱动LED或者其他的设备,它是8路同相三态双向总线收发器,可双 向传输数据。74LS245还具有双向三态功能,既可以输出,也可以输入数据。
同步训练
1.试着利用数码管静态显示电路显示其他数字。
2.能不能用静态显示电路实现0-99的功能呢?
任务评价
考核评价记录表
过程考核(30%) 职业态度 (10%) 组织纪律 (10%) 团队合作 (10%) 结果考核(70%)
考核评价内容 单片机最小系统
分值比重
教师根据学生表现进行 评价,采用 减分制。
教师考勤
学生学习 小组评价
数码管静态显示 数码管动态显示
The End
Thanks for your attention
谢谢