简易秒表LED数码管显示接口技术应用

合集下载

制作一个LED数码管显示的秒表

制作一个LED数码管显示的秒表

计算机科学与工程系实验报告实验题目:制作一个LED数码管显示的秒表班级:姓名:学号:日期:一、实验目的掌握单片机使用定时计数器控制LED数码管的设计与软件编程二、实验要求1、用2位数码管显示计时时间,最小计时单位为“百毫秒”,计时范围0.1~9.9s;2、当第1次按下并松开计时功能键时,秒表开始计时并显示时间;3、第2次按下并松开计时功能键时,停止计时,计算两次按下计时功能键的时间,并在数码管上显示;4、第3次按下计时功能键,秒表清0,再按1次计时功能键,重新开始计时。

5、如果计时到9.9s时,将停止计时,按下计时功能键,秒表清零,再按下重新开始计时。

三、实验要求提交的实验报告中应包括:电路原理图、实验设计思路、C51源程序(含注释语句)、运行效果(含运行截图与说明)、实验小结三、硬件电路原理图的设计四、编程思路及C51源程序编程思路:使用外中断服务处理程序处理按键,内部设计一个计数器,记录按键按下的次数,根据按键次数完成相应的功能。

用数码管显示计时时间,根据按键的次数以及其功能来显示数字。

#include<reg51.h> //包含8051单片机寄存器定义的头文件unsigned char code discode1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef} unsigned char code discode2[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};unsigned char timer=0; //记录中断次数unsigned char second; //存储秒数unsigned char key=0; //记录按键次数main() //主函数{TMOD=0x01; //定时器T0方式1定时ET0=1; // 允许定时器T0中断EA=1; // 总中断允许second=0; //设初始值P0=discode1[second/10]; //显示秒位P2=discode2[second%10]; //显示0.1S位while(1) //循环{if((P3&0x80)==0x00) //当按键被按下时{key++; //按键次数加一switch(key) //根据按键次数分三种情况{case 1: //第一次按下为启动秒表表示TH0=0xee; //TL0=0x00; //TR0=1; //break; //case 2: //按下两次暂停秒表TR0=0; //break; //case 3: //按下三次秒表清零key=0; //second=0; //P0=discode1[second/10]; //P2=discode2[second%10]; //break;}while((P3&0x80)==0x00); //如果按键时间过长在此循环}}}}void int_t0() interrupt 1 using 0 //定时器T0中断子程序{TR0=0; //停止计时,执行以下操作(计时出现误差)TH0=0xee; //向TH0写入初值的高8位TL0=0x00; //向TL0写入初值的低8位,定时5mstimer++; //记录中断次数if (timer==20) //中断20次,20*5ms=100ms=0.1s{timer=0; //中断次数清0second++; //加0.1sP0=discode1[second/10]; //根据计时时间,即时显示秒位P2=discode2[second%10]; //根据计时时间,即时显示0.1s位}if(second==99) //当计时到9.9s时{TR0=0; //停止计时second=0; //秒数清0key=2; //按键数置2,当再次按下按键时,key++,即key=3,秒表清0复原}else //计时不到9.9s时{TR0=1; //继续计时}}五、仿真运行效果展示1、第一次按键,秒表开始计时,并计时到9.92、2次按键,停止计时,将计时的时间值送到数码管显示3、第3次按下计时功能键,秒表清零六、实验小结在实验的过程中,出现过几次错误,自己对理论知识了解的还不够透彻,所幸,通过自己思考解决了。

LED显示接口技术应用

LED显示接口技术应用

电路的接法决定了必须采用逐位扫描显示方式。 即从段选口送出某位LED的字型码,然后选通该位LED, 即从段选口送出某位LED的字型码,然后选通该位LED, 并保持一段延时时间。然后选通下一位,直到所有位扫 描完。
选中第一个LED (P0.0为1,其他为0) 送“1”的字型码
简 单 的 程 序 流 程
P0.7
MOV SJMP 静态连接
LED数码管和单片机的连接2
P2.0 a b c d e f g dp
P2.7
单片机
P0.0 P0.1 P0.2 P0.3
想一想:和静态连接的区别在哪里?
怎样实现显示呢?
P2.0 a b c d e f g dp
P2.7
单片机
P0.0 P0.1 P0.2 P0.3
设置初始值
NEXT-BYTE
用 循 环 的 程 序 流 程
P0选中LED的一位 (BYTE) 送该位的字型码(P2) 延时 位左移 指向下一位 WORD加1 指向下一位的字型码 N 4位显示完? Y
NEXT-BYTE: MOV A,BYTE MOV P0,A MOV MOVC MOV LCALL MOV RL MOV INC DJNZ LJMP A,WORD A,@A+DPTR P2,A DELAY10MS A,BYTE A BYTE,A WORD R7,NEXT-BYTE MAIN
动手做 :点亮六个不同的数字
注意字型表的建立。 待显示的数字以十六进制的方式写入内存的 显示缓冲区。
静态、动态显示方式总结
静态显示连接
所有LED的位选均共同连接到+VCC或GND,每个LED的8根段选 线分别连接一个8位并行I/O口。 原理简单;显示无闪烁;占用I/O资源较多。

用LED数码管显示的秒表设计

用LED数码管显示的秒表设计

单片机课程设计说明书用LED 数码管显示的秒表设计专业 电气工程及其自动化学生姓名 刘宁班级 B 电气081学号 **********指导教师 张兰红完成日期2011年 6月 26 日目录1、概述 (2)2、课题方案设计 (2)2.1系统总体设计要求 (2)2.2系统模块结构论证 (2)3、系统硬件设计 (3)3.1总体设计 (3)3.2单片机运行的最小系统 (4)3.2.1 52单片机最小系统电路介绍 (4)3.2.2单片机的振荡电路与复位电路 (7)3.3数码管介绍 (8)3.4驱动电路 (9)4、软硬件联调及调试结果 (10)4.1软硬件调试中出现的问题及解决措施 (10)4.2实物图 (11)4.3调试结果 (13)5、结束语 (13)参考文献 (14)附录 (14)附录1:基于单片机的秒表设计原理图 (14)附录2:基于单片机的秒表设计PCB图 (15)附录3:PROTEUS仿真图 (16)附录4:基于单片机的秒表设计C语言程序清单 (17)附录5:基于单片机的秒表设计元器件目录表 (19)1、概述21世纪是一个电子技术和电子元件有更大发展的世纪。

回顾百年来电子技术和电子工业发展的成就,举世瞩目。

作为一个电气专业的大学生,我们不但要有扎实的基础知识、课本知识,还应该有较强的动手能力。

现实也要求我们既精通电子技术理论,更要掌握电子电路设计、实验研究和调试技术。

课程设计就是一个理论联系实际的机会。

本次设计主要完成具备基本功能的电子秒表的理论设计,电子秒表是重要的记时工具,广泛运用于各行各业中。

作为一种测量工具,电子秒表相对其它一般的记时工具具有便捷、准确、可比性高等优点,不仅可以提高精确度,而且可以大大减轻操作人员的负担,降低错误率。

在设计中应用到数码管,数码管主要用于楼体墙面,广告招牌、高档的DISCO、酒吧、夜总会、会所的门头广告牌等。

特别适合应用于广告牌背景、立交桥、河、湖护栏、建筑物轮廓等大型动感光带之中,可产生彩虹般绚丽的效果。

LED数码管使用详解

LED数码管使用详解

LED数码管使用详解LED数码管是一种常见的显示设备,它由七个发光二极管组成,可以显示数字、字母和一些特殊字符。

LED数码管广泛应用于计时器、计数器、电子钟表和计算器等电子设备中。

本文将详细介绍LED数码管的原理、工作方式和常见的使用场景。

一、LED数码管的原理七段数码管是将七个LED灯组成的,分别用a、b、c、d、e、f、g七个字母来表示。

每个字母对应一个段,不同的段可以通过控制对应的引脚(PIN)的高低电平来点亮或关闭。

通过控制这些引脚的电平,可以显示出不同的数字、字母和部分特殊字符。

二、LED数码管的工作方式LED数码管的工作方式是通过控制各个LED灯的点亮与否来显示相应的字符。

七段数码管通常由一个共阳极或共阴极的七段式数字表示器组成。

共阳极的意思是所有LED的阳极(长脚)都连接在一起,共用一个电压。

共阴极的意思是所有LED的阴极(短脚)都连接在一起,共用一个地。

当需要显示一些数字时,通过给相应的管脚(a到g)施加适当的高电平或低电平来点亮或关闭对应的LED灯。

例如,如果需要显示数字1,就只需要将a和b两个管脚连接到高电平,其余的管脚连接到低电平。

这样,数码管的a和b段就会点亮,显示出数字1的形状。

三、LED数码管的使用场景1.电子钟表:LED数码管由于其数字显示效果清晰、易读,被广泛应用于电子钟表或数码时钟中。

2.计时器和计数器:在需要进行计时和计数的场景中,如比赛计时、倒计时器等,LED数码管可以方便地显示时间或计数值。

3.温度显示器:LED数码管可以用于温度测量设备中,通过控制不同的管脚电平来显示温度值。

4.电子秤和电子计量器:在商店或实验室中,LED数码管可用于显示测量的重量或数量。

5.电子计算器:LED数码管常用于简单的电子计算器中,用于显示计算结果或输入的数字。

6.电子设备调试:在电子设备的调试过程中,可以使用LED数码管来显示和检查各种信号和状态。

7.数字显示面板:在需要显示数字或字母的面板上,可以使用LED数码管来显示相关信息。

单片机简易秒表正计时时间可设置倒计时时间可查询

单片机简易秒表正计时时间可设置倒计时时间可查询

第一章设计内容和要求1.1设计任务用AT89C52设计一个4位的LED数码作为多功能“秒表”。

1.2设计目的1.学习数码管显示的结构和工作流程,实现数码管分组显示数字组合。

2.学习有关单片机的内容,进一步了解AT89C52芯片的相关功能。

3.复习C语言的相关知识。

4.培养自学能力和探索解决问题的能力。

1.3设计要求显示时间为00分00秒-59分59秒,每1秒自动加1,另外设计一个“开始/暂停”键、一个“记录/查询”键、一个“清零”键、一个“模式切换”键、一个“时间设置”键、一个“复位”键。

秒表要求正计时时,可记录并且查询10组数据,倒计时时,时间用户可设置,并且时间到时蜂鸣器报警。

1.4设计创新在基本设计基础上添加了正向查询10条记录后蜂鸣器同时报警。

1.5设计意义简易秒表具有读取方便,显示直观,功能多样,电路简洁,成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。

本次设计将基于单片机的工作原理,设计简易秒表的基本电路,深入的了解其工作原理,掌握其基本的工作特点。

同时简易秒表在生活中应用广泛,从实际出发,不断创新。

第二章方案设计与选择2.1技术可行性20世纪以来,微电子,IC集成电路行业发展迅速,其中单片机行业发展最引人注目。

单片机利用大规模集成电路技术把中央处理器和数据存储器(RAM),程序存储器(ROM)及其他I/O通信口集成在一块芯片上,构成最小的计算机系统。

如今的单片机发展集成了更多的特殊功能单元,例如A/D,D/A转换器,通信控制,DMA,PWM控制输出单元等。

因此,只要外加一些扩展电路及必要的通道接口就可以构成各种计算机应用系统。

单片机除了具备体积小,价格低,速度快,用途广,可靠性高等特点,在硬件结构和指令设置上还有以下独特之处:1.存储器ROM和RAM是严格分工的。

前者存放程序,常数和数据表格,后者存放临时数据和变量。

2.采用面向控制的指令系统,构成的应用系统有较大的可靠性。

实验5 显示器接口控制

实验5   显示器接口控制

实验五显示器接口控制一、实验目的1、掌握LED数码管动态显示方法。

2、学习和使用硬件实验开发板XL400。

二、实验内容1、在数码管上数码管慢速动态扫描显示数字“1234”。

2、在八位LED数码管上动态显示“01234567”。

3、实现在三位LED数码管动态显示秒表。

(选做)三、实验步骤说明任务1 在八位LED数码管上动态显示1)硬件参照xl400使用说明书原理简述:实验板XL400的8位数码管(数码管数据P0 数码管位选P2.0-P2.7):0x28,0x7E,0xA2,0x62,0x74,0x61,0x21,0x7A,0x20,0x60,0x30,0x25,0xa9,0x26,0xa1,0xb1,0xff分别为8位数码管0,1,2,3,4,5,6,7,8,9,A,b,C,d,E,F,关显示的字码。

0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe 为8位数码管位选码。

位选:p2.0p2.1p2.2p2.3p2.4p2.5p2.6p2.7,通过j1 控制数码管接入系统与否P0口为字形码,P2口为字选码。

2)程序框架关显示P2 送字选码P0 送字形码延时}任务二:要求在三位数码管采用动态显示的方式显示秒表,定时采用中断定时的方式。

程序框架#includeunsigned char counte;//秒计数uchar duanma[]={ };//段码void delay(unsigned char i)//显示延时函数{显示延时}main(){//定时中断初始化while(1){显示黑屏;显示百位延时清屏显示十位延时清屏显示个位延时}}void time0( ) interrupt{定时1s时间到秒数加1}实验五显示接口实验学院:专业:年级:实验时间:姓名:学号:组:_______ 指导教师:一、实验目的1.掌握数码管的原理。

2. 学习和使用硬件实验开发板XL400。

二、实验内容1、在数码管上数码管慢速动态扫描显示数字“1234”2、在八位LED数码管上动态显示“01234567”3、实现在三位LED数码管动态显示秒表。

LED数码管显示电子秒表设计

LED数码管显示电子秒表设计

设 计 工 作 量
1、汇编或 C51 语言程序设计; 2、在 Proteus 上进行仿真成功; 3、提交一份完整的课程设计说明书,包括封面,中文摘要,目录,正文(正 文主要包括:设计原理、程序设计、程序分析、仿真分析、调试过程,调试 结果等部分) ,参考文献、设计总结等。 起止日期(或时间量) 设计内容(或预期目标) 课题介绍,答疑,收集材料,C51 介绍 设计方案论证,练习编写 C51 程序 程序设计 程序调试、仿真 系统测试并编写设计说明书 备注
《单片机原理及应用》课程设计任务书 1
系(部):电信系 课题名称 1、课题内容: 设 计 内 容 及 要 求 设计一种基于 AT89S52 单片机的电子计时秒表,要求如下: (1) 、能正确显示时间,时钟由八位数码管显示,显示格式为: XX 分 XX 秒XX(十分之一、百分之一)秒。 (2) 、设置一个独立式按键,首次按键计时开始,再次按键暂停,第三 次按键清零。 2、要求: 完成该系统的硬件和软件的设计,在 Proteus 软件上仿真通过,并提 交一篇课程设计说明书。 设 计 工 作 量 1、汇编或 C51 语言程序设计; 2、程序调试; 3、在 Proteus 上进行仿真成功; 4、提交一份完整的课程设计说明书,包括设计原理、程序设计、程序 分析、仿真分析、调试过程,参考文献、设计总结等。 起止日期(或时间量) 第一天 进 度 安 排 第二天 第三天~第六天 第六天~第八天 第九天~第十天 设计内容(或预期目标) 课题介绍,答疑,收集材料,C51 介绍 设计方案论证,练习编写 C51 程序 程序设计 程序调试、仿真 系测试并编写设计说明书 备注 专业:2012 级电子信息工程 LED 数码管显示电子秒表设计
教研室 意见


简易秒表

简易秒表

LED数码管显示的简易秒表设计
班级:电气21191 姓名:冯静序号:19号
1.任务目的
通过对由8个发光二极管显示一位数0~9简易秒表的制作,熟悉单片机与LED 数码管的接口技术,了解LED数码管的结构、工作原理、显示方式和控制方法。

2.任务要求
用单片机实现一位数简易秒表控制,计时范围为0~9s,并将计时时间在一位数码管上显示会出来。

3.电路及元器件
用单片机控制LED数码管显示的简易秒表硬件电路如图1所示。

这里将8个发光二极管的P1引脚改接到数码管的8个段控制端。

图1中采用的是共阳数码管。

如果是共阴数码管,则须将COM端接地。

图1 简易秒表硬件电路
图1的电路元器件清单如表1所示。

4.程序设计
下面来编写简易秒表控制程序。

一位数码管显示的简易秒表程序如下:
5.程序运行测试
编译、链接过程参见任务2,将二进制文档ex5_1.hex下载到单片机的程序存储器中。

接通电路板电源,即可观察到一位简易秒表按照0~9的顺序显示。

6.任务小结
本任务采用单片机P1口控制共阳极数码管显示,实现显示0~9的简易秒表。

在程序ex5_1.c中,定义led数组存放数字0~9的显示字型码,采用如下语句:
P1=led[i];
将显示字型码通过P1口送到LED段控制端,显示相应的数字。

将数组元素的下标作为循环控制变量时最常见的数组应用方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
delay(2);
P0=table[m%10];
P2=0x08;
delay(2);
P0=table[s/10];
P2=0x10;
delay(2);
P0=table[s%10];
P2=0x20;
delay(2);
}
timer0() interrupt 1 using //定时中断T0
{
TH0=0x3C;//重置定时初值
8,源程序
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uint s,m,h,n=0;
{
TH1=0xff;//重置计数初置
TL1=0x1f;
s=0;//显示器清零
m=0;
h=0;
}
9,收获及体会
这次课程设计让我受益匪浅,。因为这个简易秒表的设计不仅检验了我们的单片机原理的学习程度,也培养了我们动手和独自思考编写程序的能力。在设计中使用了单片机及其系统,能够理论联系实际的学习,开阔了眼界,提高了单片机知识的理解和水平。焊接电路板时需要足够的耐心,编写源程序刚开始虽然遇到一些问题,但是通过后来的仔细检查和思考最终解决了这些问题,因此也培养了我们独立解决问题的能力。在此还要感谢叶老师上课对我们的细心教导才使得我能够成功做出这个简易秒表。
uint time=0;
sbits3=P3^3;
sbits2=P3^2;
sbits4=P3^5;
void delay(uint z)//延时程序
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void keyscan() //按键扫描
{
if(s3==0); //S3暂停
当按键S3按下时,进入INT0中断服务程序,停止定时器工作,秒表显示内容保持不变;
当按键S4按下时,进入T1中断服务程序,停止定时器工作,秒表显示清零;
最后将各模块联调实现全部功能。
将调试好的程序固化至89C51芯片中,脱机运行。
7改进意见
在编写程序时,运行遇到一些错误,经过仔细修改,最终找出错误并改正。
TR1=1;
IT0=1;//外部中断T0采用下降沿触发
IT1=1;//外部中断T1采用下降沿触发
s=0,m=0,h=0;//显示管设置初值
while(1)
{
keyscan();//调用按键扫描子程序
display();//调用显示程序
}
}
timer1() interrupt 3 using 1 //定时1中断S4清零
利用按键构成键盘实现秒表的启动、停止与复位,
利用LED数码管显示时间。
*进行简单的串行通信。
2,设计思路
(1)硬件
采用P0口输出并联控制两个数码管的8个段选控制端。
用P2.0、P2.1分别控制两个LED数码管的位选控制端。
这是典型的动态显示电路接法,LED采用共阳极数码
三个按键采用独立式键盘接法,
两个按键连接到外部中断INT0、INT1的输人引脚P3.2和P3.3,
delay(2);
P0=table[h%10];
P2=0x02;
delay(2);
P0=table[m/10];
P2=0x04;
delay(2);
P0=table[m%10];
P2=0x08;
delay(2);
P0=table[s/10];
P2=0x10;
delay(2);
P0=table[s%10];
TL0=0xB0;
time++;
if(time==20)//1秒钟到
{
time=0;//重新计数20次
s++ ;//秒钟加1
}
if(s==60)//1分钟到
{
s=0;//秒钟置零
m++;//分钟加1
}
if(m==60)//1分钟到
{
m=0;//分钟置零
h++;//时钟加1
}
if(h==24)//一天到
5软件设计
(1)流程图
主程序流程图
Y
主程序
void main()
{
s2=1;
s3=1;
s4=1;
TMOD=0x41;
TH1=0xff;
TL1=0x1f;
TH0=0x3C;
TL0=0xB0;
EA=1;
ET0=1;
ET1=1;
TR1=1;
IT0=1;
IT1=1;
s=0,m=0,h=0;
while(1)
{
h=0;//时钟清零
}
void main()//主程序
{
s2=1;//按键初始设置为高电平
s3=1;
s4=1;
TMOD=0x41;//定时器T0,T1初始化
TH1=0xff;
TL1=0x1f;
TH0=0x3C;
TL0=0xB0;
EA=1;//打开中端总开关
ET0=1;//定时中端T0允许
ET1=1;//定时中端T1允许
keyscan();
display();
}
}
定时器1中断程序流程图
timer1() interrupt 3 using 1 //定时1中断S4清零
{
TH1=0xff;
TL1=0x1f;
s=0;
m=0;
h=0;
}
定时器0中断程序流程图
N
Y
N
YБайду номын сангаас
N
Y
定时器0中断程序
timer0() interrupt 1 using //定时中断T0
{
P0=table[h/10];//取时针的十位
P2=0x01;//选右边第一的数码管
delay(2);//延时
P0=table[h%10];//取时针的个位
P2=0x02;//选右边第二的数码管
delay(2);//延时
P0=table[m/10];//取分针针的十位
P2=0x04;//选右边第三的数码管
{
delay(10);//延时
if(s3==0)
{
TR0=~TR0;//TR0取反
while(!s3);//松手检测
}
}
if(s2==0) //S2启动
{
delay(10);
if(s2==0)
{
TR0=1;//启动定时器T0
while(!s2);//松手检测
}
}
}
void display() //显示子程序
S4按键接到T1的外部脉冲输入引脚P3.5,以中断方式实现键盘输入状态的扫描。
其中S2为启动按钮,S3为停止按钮,S4清零按钮。
K1为复位键
(2)软件
根据设计的总体要求划分出各功能程序模块,分别确定主程序、子程序及中断服务程序结构。
对各程序模块占用的单片机资源进行统一调配。
对各模块间的逻辑关系进行细化,优化程序结构;
{
TH0=0x3C;
TL0=0xB0;
time++;
if(time==20)
{
time=0;
s++ ;
}
if(s==60)
{
s=0;
m++;
}
if(m==60)
{
m=0;
h++;
}
if(h==24)
h=0;
}
键盘扫描程序流程图
S3
S2
void keyscan() //按键扫描
{
if(s3==0); //S3暂停
{
delay(10);
if(s3==0)
{
TR0=~TR0;
while(!s3);
}
}
if(s2==0) //S2启动
{
delay(10);
if(s2==0)
{
TR0=1;
while(!s2);
}
}显示程序流程图
N Y
void display() //显示
{
P0=table[h/10];
P2=0x01;
P2=0x20;
delay(2);
}
6调试
输人源程序。
先调试主程序,实现基本的显示功能
当无键按下时,将一直显示初值“00”。
再分别调试4个中断服务子程序。当按键S2按下时,程序将会进入对应INT1的中断服务程序,启动各定时器开始计时
若在不同的中断服务程序中设置断点,全速运行程序后将会停在断点处,表明程序运行状态正确;
单片机原理及应用
课程设计
设计题目:简易秒表LED数码管显示接口技术应用
姓名:廖承润
学号:110105011118
专业班级:11级光信1班
指导教师:叶念渝
2014年5月
目 录
简易秒表LED数码管显示接口技术应用
1,内容及要求
(1)内容
如何运用单片机实现计时;
如何显示时间;
如何利用按键实施对秒表的控制。
设计出各模块程序结构流程图。
最后依据流程图编制具体程序。
将整个程序划分为主程序、键盘扫描程序、秒计时程序三大模块。
其中主程序除完成初始化外,主要由动态显示程序构成。
相关文档
最新文档