2020按键控制数码管显示数字加减

2020按键控制数码管显示数字加减
2020按键控制数码管显示数字加减

按键控制数码管显示数

字加减

#include

#define uchar unsigned char

#define uint unsigned int

uint num=0,num1=0;

sbit key1=P3^0;

sbit key2=P3^1;

sbit key3=P3^2;

sbit key4=P3^3;

uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void delayms(uint x)

{

uint i,j;

for(i=x;i>0;i--)

for(j=110;j>0;j--);

}

void display(uint num)

{

uint shi,ge;

shi=num/10;

ge=num%10;

P0=table[shi];

P1=0xfd;

delayms(5);

P0=table[ge];

P1=0xfe;

delayms(5);

}

void keyscan()

{

if(key1==0)

{

delayms(10);

if(key1==0)

{num1++;

if(num1==60)

num1=0;

while(!key1)

display(num1);

}

}

if(key2==0)

{

delayms(10);

if(key2==0)

精心整理,用心做精品2

{

if(num1==0)

num1=60;

num1--;

while(!key2)

display(num1);

} }

if(key3==0)

{

delayms(10);

if(key3==0)

{num1=0;

while(!key3)

display(num1);}

}

if(key4==0)

{

delayms(10);

if(key4==0)

{TR0=~TR0;

while(!key4)

display(num1);}

}

}

void main()

{

TMOD=0x01;

TH0=(65536-45872)/256;

TL0=(65536-45872)%256;

EA=1;

ET0=1;

while(1)

{

keyscan();

display(num1);

}

}

void T()interrupt 1

{

TH0=(65536-45872)/256;

TL0=(65536-45872)%256;

num++;

精心整理,用心做精品3

if(num==20)

{num1++;

num=0;

if(num1==60)

num1=0;}

}

精心整理,用心做精品4

单片机 实验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、熟悉Keil uVision2软件的使用; 2、掌握LED数码管显示接口技术; 3、理解单片机定时器、中断技术。 二、实验设备及仪器 Keil μVision2软件;单片机开发板;PC机一台 三、实验原理及内容 1、开发板上使用的LED数码管是四位八段共阴数码管(将公共端COM接地GND),其内部结构原理图,如图4.1所示。 图4.1共阴四位八段LED数码管的原理图 图4.1表明共阴四位八段数码管的“位选端”低电平有效,“段选端”高电平有效,即当数码管的位为低电平,且数码管的段为高电平时,相应的段才会被点亮。 实验开发板中LED数码管模块的电路原理图,如图4.2所示。 a~h SP2 SP1 P0.0~P0.3 P0.4~P0.7图4.2 LED数码管模块电路原理图

图中,当P1.0“段控制”有效时,P0.0~P0.7分别对应到数码管的a~h段。当P1.1“位控制”有效时,P0.0~P0.7分别对应到DIG1~DIG8。 训练内容一:轮流点亮数码管来检测数码管是否正常。参考程序: ORG 00H AJMP MAIN MAIN: SETB P1.2;LED流水灯模块锁存器的控制位 MOV P0,#0FFH;关闭LED灯 CLR P1.2 SETB P1.3 ;点阵模块的行控制锁存器 MOV P0,#0 ;关闭点阵行 CLR P1.3 MOV A,#11111110B;数码管“位选信号”初值,低电平有效 LOOP:SETB P1.1;数码管位控制锁存器有效 MOV P0,A CLR P1.1 RL A ;形成新的“位选信号”,为选择下一位数码管做准备 SETB P1.0;数码管段控制锁存器有效 MOV P0,#0FFH ;数码管的所有段点亮,显示“8” CLR P1.0 CALL DELAY SJMP LOOP DELAY:MOV R5,#0;延时子程序 D1: MOV R6,#0 D2:NOP DJNZ R6,D2

实验五 数码管00~99循环计数

实验五数码管00~99循环计数 一、实验目的 1、熟练掌握8255扩展功能的应用。 2、了解七段数码管与单片机接口、应用的方法。 3、掌握七段数码管的动态扫描显示。 4、研究延时程序。 二、实验内容 在七段数码上管实现00~99循环计数。 三、实验说明 七段数码管的显示方式分为静态显示和动态显示。所谓动态显示就是一位一位地轮流点亮显示器的各个位,对于显示器的每一位而言,每隔一段时间点亮一次。 四、实验步骤 (一)由实验指导教师检查、记录预习报告准备情况。 (二)数码管00~99循环计数 1、准备好需要计算的数据。在DVCC软件平台上,参考实验程序,编辑源程序。 2、源程序经检查无误后,通过双龙ISP软件烧写到89S52中。观察实验现象。 3、用七段数码管实现11~88循环计数。 (三)实验内容完成后,报告实验指导教师。经实验指导教师认可并签字后,实验内容完毕。 (四)实验结束后,按顺序关闭电源并值日。 五、实验原理图 见附图 六、实验参考程序 ORG 0000H MAIN:MOV A,#80H MOV DPTR,#0FFFFH MOVX @DPTR,A MOV R3,#100 MOV R0,#00H MOV R1,#10 L1:MOV A,R0 MOV B,#0AH DIV AB MOV R2,#0FEH CALL DISP MOV A,B MOV R2,#0FDH CALL DISP DJNZ R1,L1 INC R0 DJNZ R3,L1 SJMP MAIN

DISP:MOV DPTR,#TABLE MOVC A,@A+DPTR MOV DPTR,#0EFFCH MOVX @DPTR,A MOV A,R2 INC DPTR MOVX @DPTR,A CALL DELAY RET DELAY:MOV R5,#10 L3:MOV R6,#24 DJNZ R6,$ DJNZ R5,L3 RET TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END 七、预习要求 1、认真阅读实验指导书,领会实验要求。 2、阅读并理解本实验的原理图及参考程序。 3、复习9.1.2显示接口技术并写出第二个实验内容的程序。 八、思考题 1、在参考程序中“DISP”的功能是什么? 2、如果去掉“DJNZ R1,L1”或者“DJNZ R3,L1”会出现什么现象? 3、指令“INC DPTR”的功能是什么? 4、本实验板采用的七段数码管是共阳极还是共阴极?如果换成另外一种,那么TABLE中的值应该为多少? 九、实验报告要求 写出思考题答案。 附图2.1

独立按键控制数码管

青岛农业大学海都学院 单片机课程设计实习报告 院系工程系 专业 2014级电气Z1班 学号 201471019 姓名隋永博 实习时间第11周 实习课程单片机应用课程设计 2015年11月6日

按键控制数码管加减显示 目录 一、前言 (3) 二、设计要求 (3) 三、系统硬件设计与说明 (4) 3.1系统组成及总体框图 (4) 3.2 AT89C51 (4) 四、系统软件设计与说明 (5) 4.1 软件部分的程序流程图 (5) 4.2 源程序 (5) 五、仿真过程描述 (7) 六、总结 (8)

一、前言 随着电子科技的飞速发展,电子技术正在逐渐改善着人们的学习、生活、工作,因此开发本系统希望能够给人们多带来一点生活上的乐趣。 基于当前市场上的智能数字市场需求量大,其中数码管显示技术就是一个很好的应用方面。单片机技术使我们可以利用软硬件实现数码管准确显示各种数码。以液晶显示技术的发展为背景,选择了比较常用的T6963C内置控制器型图形LCD(液晶显示嚣)模块,从应用角度介绍了该控制器的特点和基本功能,并描述了单片机控制T6963CLCD模块的显示机理。在此前提下以C51硬件开发语言为基础,给出了8051单片机与T6963C 的接口电路框图,并以字符、图形的具体显示方法为例简要介绍了软件的设计流程及实现。 二、设计要求 名称:K1-K4控制数码管移位显示 说明:按下K1时加1计数并增加显示位, 按下K2时减1计数并减少显示位, 按下K3时清零。

三、系统硬件设计与说明 3.1系统组成及总体框图 图1 系统硬件总图 3.2 AT89C51 该课程设计中我们选用的芯片是AT89C51。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 AT89C51是一个低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的Flash

数电课程设计-数码管显示控制器的设计与实现

课程设计任务书 学生姓名:专业班级: 指导教师:工作单位: 题目: 数码管显示控制器的设计与实现 初始条件: 555定时器、74LS160计数器、74LS161计数器、74LS153数据选择器、74LS48译码器、74LS04非门与数码管、电阻、电容等相关元件。 要求完成的主要任务: 1、设计任务 根据已知条件,完成对数码管显示控制器的设计、装配与调试。 2、设计要求 (1)、能自动一次显示出数字 0、1、2、3、4、5、6、7、8、9(自然数列),1、 3、5、7、9(奇数列), 0、2、 4、6、8(偶数列),0、1、0、1、2、3、4、 5、6、7(音乐符号序列);然后再从头循环; (2)、打开电源自动复位,从自然数列开始显示。 时间安排: 1、2012 年 6 月 8 日分班集中,布置课程设计任务、选题;讲解课设具体实施计划与课程设计报告格式的要求;课设答疑事项。 2、2012 年 6 月 9 日至 2012 年 7 月 3 日完成资料查阅、设计、制作与调试;完成课程设计报告撰写。 3、2012 年 7 月 4 日提交课程设计报告,进行课程设计验收和答辩。 指导教师签名:年月日 系主任(或责任教师)签名:年月日

目录 摘要 (3) Abstact (4) 引言 (5) 1设计背景 (6) 1.1设计任务 (6) 1.2设计要求 (6) 1.3指导思想 (6) 2方案论证 (7) 2.1方案说明 (7) 2.2方案原理 (7) 3电路的设计与分析 (8) 3.1电路的总体设计 (8) 3.2电路的原理框图 (9) 3.3元电路的设计与分析 (9) 3.3.1多谐振荡电路的设计与分析 (9) 3.3.2计数电路的设计与分析 (11) 3.3.3译码显示电路的设计与分析 (13) 4电路仿真、调试与分析 (16) 4.1脉冲产生电路的仿真 (16) 4.2总电路的仿真 (17) 4.3运行结果分析 (17) 5心得与体会 (18) 附录1元器件清单 (19) 附录2参考文献 (20)

7段数码管显示电路

4.4 显示模块 4.4.1 7段数码管的结构与工作原理 7段数码管一般由8个发光二极管组成,其中由7个细长的发光二极管组成 数字显示,另外一个圆形的发光二极管显示小数点。 当发光二极管导通时,相应的一个点或一个笔画发光。控制相应的二极管导通,就能显示出各种字符,尽管显示的字符形状有些失真,能显示的数符数量也有限,但其控制简单,使有也方便。发光二极管的阳极连在一起的称为共阳极数码管,阴极连在一起的称为共阴极数码管,如图4.9所示。 4.4.2 7段数码管驱动方法 发光二极管(LED 是一种由磷化镓(GaP )等半导体材料制成的,能直接将电能转变成光能的发光显示器件。当其内部有一一电流通过时,它就会发光。 7段数码管每段的驱动电流和其他单个LED 发光二极管一样,一般为5~10mA ;正向电压随发光材料不同表现为1.8~2.5V 不等。 7段数码管的显示方法可分为静态显示与动态显示,下面分别介绍。 (1) 静太显示 所谓静态显示,就是当显示某一字符时,相应段的发光二极管恒定地寻能可截止。这种显示方法为每一们都需要有一个8位输出口控制。对于51单片机,可以在并行口上扩展多片锁存74LS573作为静态显示器接口。 静态显示器的优点是显示稳定,在发光二极管导通电注一定的情况下显示器的亮度高,控制系统在运行过程中,仅仅在需要更新显示内容时,CPU 才执行一次显示更新子程序,这样大大节省了CPU 的时间,提高了CPU 的工作效率;缺点是位数较多时,所需I/O 口太多,硬件开销太大,因此常采用另外一种显示方式——动态显示。

(2)动态显示 所谓动态显示就是一位一位地轮流点亮各位显示器(扫描),对于显示器的每一位而言,每隔一段时间点亮一次。虽然在同一时刻只有一位显示器在工作(点亮),但利用人眼的视觉暂留效应和发光二极管熄 灭时的余辉效应,看到的却是多个字符“同时”显示。显示器亮度既与点亮时的导通电流有关,也与点亮时间和间隔时间的比例有关。调整电流和时间参烽,可实现亮度较高较稳定的显示。若显示器的位数不大于8位,则控制显示器公共极电位只需一个8位I/O 口(称为扫描口或字位口),控制各位LED 显示器所显示的字形也需要一个8位口(称为数据口或字形口)。 动态显示器的优点是节省硬件资源,成本较低,但在控制系统运行过程中,要保证显示器正常显示,CPU 必须每隔一段时间执行一次显示子程序,这占用了CPU 的大量时间,降低了CPU 工作效率,同时显示亮度较静态显示器低。 综合以上考虑,由于温度显示为精确到小数点后两位,故只需4个数码管,又考虑到CPU 工作效率与电源效率,本毕业设计采用静态显示。为共阳极显示。 4.4.3 硬件编码 动74LS47是一款BCD 码转揣为7段输出的集成电路芯片,利用它可以直接驱动共阳 极的7段数码管。它的引脚分部和真值表分别下图。

模拟量按键与数字按键综合控制数码管说明

“模拟按键与数字按键综合控制数码管”说明(一)设计思路与方法 本实验中按键1、2是通过触发0号和1号外部中断来分别控制一个数码管信号显示位置的循环右移和循环左移,模拟量按键3(该键既是模拟按键又是数字按键,这里使用到的是其模拟按键功能)通过AD模拟转换来锁定或者释放数码管信号显示(即通过该按键来控制数码管信号显示位置是否能移动),导航键的上拉和下拉键通过AD模拟转换来控制数码管信号显示内容,期间用0号定时器中断来给按键1、2消抖并且点亮数码管,模拟按键则采用延时消抖,其基本原理与定时器消抖一致。AD模拟转换结果(本实验这里只获取ADC_RES寄存器中的8为转换值)要通过线性右移8位(即只保留高三位)来消除转换误差。(二)电路原理图 1.发光二极管及LED数码管电路(左、右两部分均含) 附LED数码管引脚定义图如下: 2.按键电路

(三)电路工作原理 1.数码管电路工作原理 P0口的8位输出分别控制1个LED数码管的7段和一个小数点;而P2.3经反相器U4C控制74HC138的使能信号E3,结合P2.0、P2.1、P2.2这3个位选控制信号确定8个LED数码管中的哪个被点亮;电阻R15~R22为限流电阻。当段选为高、使能信号有效时,对应的LED管将会发光。 2.数字按键(按键1和2)工作原理 按键1引脚对应触发外部中断0;按键2引脚对应触发外部中断1;按键1、按键2按下去,引脚KEY1、KEY2输出低电平0。在按键1、2触发的外部中断中要对其进行消抖的工作,在定时器中断中判断按键的状态,为0计数加1,连续200次都为0证明按键已经按下,完成消抖;为1,则按键存在抖动,计数清零,重新计数。 3.模拟按键(按键3和导航键)工作原理 从案件电路图中可以看出,导航按键的不同方向以及按键3对应的不同的电压值,通过AD转换器(具体工作方式见STC15F2K60S2数据手册)转换成数字值保存在相应寄存器中,然后通过读取相应的寄存器判断按键执行相应功能(AD 模拟转换结果(本实验这里只获取ADC_RES寄存器中的8为转换值)要通过线性右移8位(即只保留高三位)来消除转换误差)。

51单片机按键控制数码管程序

#define uint unsigned int #define uchar unsigned char uchar c; sbit p10=P1^0; sbit p11=P1^1; sbit p12=P1^2; sbit p13=P1^3; sbit p14=P1^4; sbit p15=P1^5; sbit p16=P1^6; sbit p17=P1^7; void delay(uint z); int b[]={0,1,2,3,4,5,6,7};//设置每一位显示的数字 unsigned char code Tab[]={0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};//共阳极数码管 int a[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; void main() { EA=1; EX0=1; IT0=1; P1=0xff; while(1) { for(c=0;c<8;c++)//数码管扫描显示

P2=a[c]; P0=Tab[b[c]]; delay (1); } } } void delay(uint z) { uint a,b; for(a=z;a>0;a--) for(b=110;b>0;b--); } int_0()interrupt 0 { EA=0; if(p10==0) b[0]=(b[0]+1)%10; if(p11==0) b[1]=(b[1]+1)%10; if(p12==0) b[2]=(b[2]+1)%10; if(p13==0) b[3]=(b[3]+1)%10; if(p14==0) b[4]=(b[4]+1)%10; if(p15==0) b[5]=(b[5]+1)%10; if(p16==0) b[6]=(b[6]+1)%10; if(p17==0) b[7]=(b[7]+1)%10;

8位数码管动态显示电路设计.

电子课程设计 — 8位数码管动态显示电路设计 学院:电子信息工程学院 专业、班级: 姓名: 学号: 指导老师: 2014年12月

目录 一、设计任务与要求 (3) 二、总体框图 (3) 三、选择器件 (3) 四、功能模块 (9) 五、总体设计电路图 (10) 六、心得体会 (12)

8位数码管动态显示电路设计 一、设计任务与要求 1. 设计个8位数码管动态显示电路,动态显示1、2、3、4、5、6、7、8。 2. 要求在某一时刻,仅有一个LED 数码管发光。 3. 该数码管发光一段时间后,下一个LED 发光,这样8只数码管循环发光。 4. 当循环扫描速度足够快时,由于视觉暂留的原因,就会感觉8只数码管是在持续发光。 5、研究循环地址码发生器的时钟频率和显示闪烁的关系。 二、总体框图 设计的总体框图如图2-1所示。 图2-1总体框图 三、选择器件 1、数码管 数码管是一种由发光二极管组成的断码型显示器件,如图1所示。 U13 DCD_HEX 图1 数码管 数码管里有八个小LED 发光二极管,通过控制不同的LED 的亮灭来显示出 不同的字形。数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个 74LS161计数器 74LS138译码 器 数码管

LED的阴极连在一起,让其接地,这样给任何一个LED的另一端高电平,它便能点亮。而共阳极就是将八个LED的阳极连在一起。 2、非门 非门又称为反相器,是实现逻辑非运算的逻辑电路。非门有输入和输出两个端,电路符号如图2所示,其输出端的圆圈代表反相的意思,当其输入端为高电平时输出端为低电平,当其输入端为低电平时输出端为高电平。也就是说,输入端和输出端的电平状态总是反相的。其真值表如表1所示。 图2 非门 表1 真值表 输入输出 A Y 0 1 1 0 3、5V电源 5V VCC电源如图3所示。 图3 5V电源

4位按键控制下的LED、数码管SOPC计数

4位按键控制下的LED、数码管SOPC计数 要求:在Altera公司的FPGA开发板上,利用Nios II CPU软核,实现使用按键进行LED、数码管及在Nios II IDE下Console栏里计数的方法。 实验仪器:SOPC核心板、USB-Blaster下载线、开发实验底板、电源、PC。 //将库函数包含进入 #include"system.h"//SOPC生成的系统库函数 #include //中断库函数 #include"alt_types.h"//类型定义库函数 #include //io端口库函数 #include"altera_avalon_pio_regs.h"//io端口寄存器库函数 #include"altera_avalon_timer_regs.h"//定时器端口寄存器库函数 #include #define TIMER_BASE 0x00011000 #define PIO_KEY_BASE 0x00011020 #define PIO_HIGH_BASE 0x00011030 #define PIO_LOW_BASE 0x00011050 #define PIO_LED_BASE 0x00011040 #define KEY *(alt_u8 *)PIO_KEY_BASE //将按键接口寄存器的按键值取得 //计数函数 static void counter_add(alt_u8 cnt) { IOWR(TIMER_BASE,0,0); if (cnt>= 0x63)//当计数到99 进行清零 cnt= 0x00; else//当没有计数到99 将秒针加1 cnt = cnt+ 1; } //清零函数 static void counter_reset(alt_u8 cnt) {

按键控制数码管加减程序

#include #define dataport P1 #define uchar unsigned char #define uint unsigned int sbit latch1=P2^2; //段锁存 sbit latch2=P2^3; //位锁存 sbit key1=P3^2; sbit key2=P3^3; unsigned int duanma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x7, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79}; unsigned int weima[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char display[8]; void suocun(uchar firstbit,uchar num); void delay(uchar z) //延时程序 { uchar i,j,k; for(i=0;i<50;i++) for(j=0;j<50;j++) for(k=0;k

if(num==0) num=9; } } display[0]=duanma[num%10]; suocun(2,1); } } void suocun(uchar firstbit,uchar num) { uchar i ; for(i=0;i

51单片机控制4个数码管显示

. //使用AT89c51单片机控制四个数码管动态显示0-9999 ,12MHz #include void jiayi();//加1函数 void chufa();//除法函数 void xianshi();//显示函数 void delay();//延时函数 sbit P2_0=P2^0;//个位位码 sbit P2_1=P2^1;//十位位码 sbit P2_2=P2^2;//百位位码 sbit P2_3=P2^3;//千位位码 unsigned char qianwei,baiwei,shiwei,gewei; unsigned int count=0; unsigned char code dis[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共阳极0-9 void main() { while(1) { jiayi(); chufa(); xianshi(); } } void chufa()//将数字的各个位拆开 { qianwei=count/1000;//千位数 baiwei=count%1000/100; //百位数 shiwei=count%100/10; //十位数 gewei=count%10; //个位数 } void jiayi() { count=count+1; if(count==10000) count=0; } void delay()//延时 { unsigned int i,j; for(i=0;i<10;i++) { for(j=0;j<200;j++); } }

四外连体式数码管控制电路设计

中北大学 课程设计说明书 学生姓名:唐三龙学号:0805014150 学院:信息与通信工程学院 专业:电子信息科学与技术 题目:四位连体式数码管控制电路设计 指导教师:程耀瑜职称: 教授 指导教师:李文强职称: 讲师 20011 年 1 月 7 日

中北大学 课程设计任务书 2010/2011学年第一学期 学院:信息与通信工程学院 专业:电子信息科学与技术 学生姓名:唐三龙学号:0805014150 课程设计题目:四位连体式数码管控制电路设计起迄日期:12月26日~1月7日 课程设计地点:中北大学 指导教师:程耀瑜,李文强 系主任:程耀瑜

课程设计任务书

课程设计任务书

目录 1概述……………………………………………………………………………….p1 2系统总体设计…………………………………………………………………….p2 3系统模块图………………………………………………………………………. p2 4系统功能介绍……………………………………………………………………. p2 5电路总体设计…………………………………………………………………….p2 6芯片选择………………………………………………………………………….p3 6.1 74161十六进制译码器…………………………………………………….p3 6.2 7448 7段译码器…………………………………………………………….p4 6.3 138 三八译码器…………………………………………………………….p5 6.4 四位连体式数码管………………………………………………………….p6 7输入端模块选择………………………………………………………………….p7 8数码管显示模块………………………………………………………………….p8 8.1 数码管选择控制电路……………………………………………………….p8 8.2 数码管显示电路控制电路………………………………………………….p8 9 仿真结果……………………………………………………………………….p9 10 protel软件中电路设计图…………………………………………………….p10 11 课程设计感想……………………………………………………………….p11 12 参考文献…………………………………………………………………….p12

数码管显示控制电路

实验六数码管显示控制电路 一、实验目的 1、设计一个逻辑电路,使数字显示译码器依次显示0123403034; 2、掌握74LS00 74LS90芯片的综合应用。 3、熟悉常用中规模计数器的逻辑功能。 4、掌握二进制计数器和十进制计数器的工作原理及使用方法。 5、学会利用计数器进行不规则数列的输出。 6、掌握由真值表作卡诺图并列些函数表达式的方法步骤。 二、实验设备 (1)数字电路实验箱 (2)数字双踪示波器 (3)74LS00,74LS90 (4)导线若干 三、实验原理 首先,我们知道74LS90可以输出8421BCD码和5421BCD码,要使得数字显示所要求的顺序,相对应74LS47的输入可以通过对以上两种码中的一种进行变换得到。由于实验设备的限制,我们只能实现由5421BCD码到8421BCD码的转换。接着,我们列出了8421BCD 码,5421BCD码以及要求序列对应的译码器的输入,进行比较:

根据题目要求,目标显示如下: 四、实验内容 实现0123403034计数 五:实验方法及结果 实验方法: 由实验原理中的三个表格,通过卡诺图化简如下:(1)对F8,由图(2)可知只需接地就可以;(2)对F4,有图(1)可知F4=Q3; (3)对F2,卡若图如下:

可得, 20102F Q Q Q Q ?= (4)1F1Q = 实验结果: 综合上述分析,实现该功能的逻辑电路图如下图: ★ U4按照0123403034的顺序依次进行计数,实验结果与预期结果完全一致。 七.心得体会 这次实验综合性较强,主要考察了我们从实际问题中抽象出逻辑函数的能力。在逻辑函数化简中,利用无关项来简化结果使得逻辑函数更为简单,电路更易搭建。 本次实验,通过对计数器工作过程的探索,基本上了解了计数器的工作原理,以及74LS90的数字特点,让我更进一步掌握了如何做好数字电路实验,也让我认识到自身理论

按键控制1位LED数码管显示0-9

单片机课程设计 姓名:陈素云 班级: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数码管显示器各笔划段名和安排位置是相同的。

单片机课设数码管显示滚动控制

《单片机设计与实训》 设计报告 题目:数码管滚动显示控制姓名:王伟杰 班级:自动化四班 学号: 2014550430 指导老师:张莹 提交日期: 2016年10月29日

目录 一、设计题目与要求 (4) 1.1设计题目 (4) 1.2设计要求 (4) 二、系统方案设计 (4) 2.1硬件电路设计 (5) 1.单片机最小系统简介 (5) 2.数码管显示电路 (7) 2.3硬件选型及说明 (8) 1. ST89C51单片机 (8) 2. 四位一体七段共阴极显示数码管 (10) 三、系统原理图设计与仿真 (11) 3.1系统仿真图 (11) 3.2系统仿真结果 (12) 四、程序设计 (13) 4.1程序设计 (13) 4.2程序流程图 (15) 五、系统调试 (16) 5.1系统硬件调试 (16) 5.2系统软件调试 (16) 六、总结与体会 (17)

附录一 (19) 附录二 (20) 附录三 (34)

一、设计题目与要求 单片机课程设计是一门实践课程,要求学生具有制作调试单片机最小系统及外设的能力,能够掌握单片机内部资源的使用。单片机课程设计内容包括硬件设计、制作及软件编写、调试,学生在熟练掌握焊接技术的基础上,能熟练使用单片机软件开发环境Keil C51编程调试,并使用STC ISP调试工具采用串口下载方式联调制作的单片机最小系统。单片机课程设计题目包含基本部分及扩展部分,基本部分即单片机最小系统部分,扩展部分是对单片机内部资源及外部IO口的功能扩展,使制作的单片机系统具有一定的功能。 1.1设计题目 数码管滚动显示控制 1.2设计要求 自制一个单片机最小系统,包括串口下载、复位电路,采用两个四位一体数码管作为显示器件,通过按钮选择实现四种滚动显示模式,例如从左至右,从右至左,内缩,外扩等,滚动信息可以是数字或有意义的英文字符。 二、系统方案设计

数码管显示控制电路设计

实验五数码管显示控制电路设计 一、设计任务与要求 能自动循环显示数字0、1、2、3、4、1、3、0、2、4 二、实验器材 74LS00 2片74LS10 1片74LS90 1片 74LS48 1片数码管等等 三、实验原理 数码管显示控制电路原理框图如下: 四、实验内容 利用所给器材,设计电路,使其能自动循环显示数字0、1、2、3、4、1、3、0、2、4。 分析可知,可以利用5421BCD码来实现。下面是要用到的真值转换表(左边是5421BCD码,右边是要输出的数字编码): QA QD QC QB D C B A

由真值表可知: D = 0 C = QD B 的卡诺图 A 的卡诺图 由卡诺图可以写出数学表达式: 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 1 0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 1 0 0 0 0 0 X X 1 1 X X 1 1 X X 0 0 0 1 1 X X 1 1 X X 0 0 X X QAQD QCQB 00 01 11 10 QAQD QCQB 00 01 11 10

QC QA QAQB QC QA QAQB B ?=+= QB QA QC QD QA QB QA QC QD QA A ?=+= 根据数学表达式可作出电路连接图如下: 经软件模拟可以实现0、1、2、3、4、1、3、0、2、4的循环显示。

单片机实验四 I O显示控制实验(数码管显示实验)

电子信息工程学系实验报告 课程名称:单片微型计算机与接口技术Array 实验项目名称:实验四 I/O显示控制实验实验时间: 班级: **** 姓名:**** 学号:******** 一、实验目的: 1、熟悉keil仿真软件、proteus仿真软件、软件仿真板的使用。 2、了解并熟悉一位数码管与多位LED数码管的电路结构、与单片机的连接方法及其应用原理。 3、学习proteus构建LED数码管显示电路的方法,掌握C51中单片机控制LED数码管动态显示的原理与编程方法。 二、实验环境: 1、Windows XP系统; 2、Keil uVision2、proteus系列仿真调试软件 三、实验原理: 1、LED数码管的结构和原理 LED显示器是由发光二极管显示字段的显示器件。在单片机应用系统中通常使用的是七段LED,这种显示器有共阴极与共阳极两种。 (a)共阴极LED显示器的发光二极管阴极共地,当某个发光二极管的阳极为高电平时,该发光二极管则点亮; (b)共阳极LED显示器的发光二极管阳极并接。 2、七段显示器与单片机接口:只要将一个8位并行输出口与显示器的发光二极管引脚相连即可。8位并行输出口输出不同的字节数据即可获得不同的数字或字符,如下表所示。通常将控制发光二极管的8位字节数据称为段选码。 八段选码(显示码)的推导(以共阳数码管显示C为例): 要显示C则a、f、e、d四个灯亮2.为是共阳数码管,则a、f、e、d应送0时亮3.dp-a为11000110B 3、多位数码管的显示:电路结构、动态静态两种实现原理: LED显示器有静态显示与动态显示两种方式。 (1) LED静态显示方式 各位LED的位选线连在一起接地或接+5V;每位LED的段选线(a-dp)各与一个八位并行口相连; 在同一时间里每一位显示的字符可以各不相同。

七段数码管循环显示

(封面) 天津理工大学中环信息学院 电子技术课程设计 设计题目:七段数码管循环显示控制电路设计 姓名:诸钦峰学号:11160014 系别:电子信息工程系专业班级:物联网1班 开始日期: 2013年6月24日完成日期2013 年07月01日 指导教师:彭利标成绩评定等级

天津理工大学中环信息学院 课程设计任务书 系别:电子信息工程系班级:物联网1班姓名:诸钦峰学号:11160014 本表附在课程设计说明书的目录之后。

天津理工大学中环信息学院 课程设计成绩评定表 系别:电子信息工程系班级:物联网1班姓名:诸钦峰学号:11160014 本表附在课程设计任务书之后。

目录 一、设计意义 (4) 二、主要任务 (5) 2.设计方案比较 (5) 三、电路组成框图 (8) 1.数列循环电路的设计 (8) 2.序列显示电路的设计 (8) 2.1十进制自然数序列的显示电路 (8) 2.2奇数序列显示电路 (9) 2.3偶数序列显示电路 (9) 2.4音乐序列显示电路 (10) 3.脉冲产生电路的设计 (11) 4.二分频电路的设计 (11) 四、电路原理图 (12) 五、各电路的仿真测试 (14) 1.脉冲产生电路的仿真 (15) 2.二频分电路的仿真 (16) 六、元件清单 (16) 七、总结 (16)

一、设计意义 这次的课程设计主要是用计数器来实现的,这个七段数码管循环显示控制电路设计的实质就是要产生一系列有规律的数列, 然后通过一个七段数码管显示出来。这里使用的只要就是计数器, 计数器在时序电路中应用的很广泛,它不仅可以用于对脉冲进行计数,还可用于分频,定时,产生节拍脉冲以及其他时序信号。运用计数器的不同的功能和不同的接发就可以实现不同的序列输出了。 而这次的内容还包括分电路图的整合,使这个七段数码管能够按照要求那个依次输出自然序列,奇数序列,偶数序列还有音乐序列。为了实现这个循环输出的功能,在设计的时候还用到了一个以为寄存器,可以利用它的输出端来控制四个计数器的工作情况, 可以让四个计数器依次工作,就可以达到要求的依次循环输出数列。 最后还有一个部分就是脉冲的产生基于多谐振荡器可以产生方波,就可以利用它来产生脉冲信号了。而这个多谐振荡器采用的是 555 定时器来完成的。这个设计基本上就是由以上三个部分连接在一起组成的。 1、基本方案框图 计数器输出信号,将信号给译码器和脉冲信号再由脉冲信号和译码器分别编成自然序列,奇数序列,偶数序列和音乐序列,最后由数码管显示出来。 图1 七段数码管显示的基本方框图

按键控制数码管,数字每次加一

最佳答案 #include < reg52.h > // 嵌入51单片机头文件 #define uchar unsigned char // 宏定义,用uchar替代无符号字符型#define uint unsigned int // 宏定义,用uint 替代无符号整数型sbit Key = P2 ^ 7; uchar Count = 0; uchar code DataChar[10] = // 定义数码管的段码'0'~'9'、'-'、' ' 'P' {

0xbf,0x86,0xdb,0xcf, 0xe6,0xed,0xfd,0x87, 0xff,0xef}; //延时N毫秒 void DelayNms( uint N ) // 利用x、y作简单的自减运算,消耗单片机指令周期,达到延时的目的 { uintx,y; for( x=N; x>0; x-- ) for( y=110; y>0; y-- ); } //数码管显示// 显示方式为动态扫描,视觉暂留原理 void Display( ucharNum ) // *p指向Main函数中的数组ShowNum的首地址 { P0 = DataChar[ Num ]; // 向P0赋段码值 DelayNms(2); // 短暂的延时 P0 = 0x00; // 让数码管熄灭,否则会造成数字重叠 }

void main( void ) { while(1) { if( Key == 0 ) { DelayNms(30); if( Key == 0 ) { Count += 1; Count = (Count>9)? 0 : Count; } while( !Key ); } Display( Count ); } }

相关文档
最新文档