简易秒表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段控制端,显示相应的数字。

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

简易电子时钟,LED数码管显示

简易电子时钟,LED数码管显示

转】简易电子时钟,LED数码管显示2010-05-14 19:06转载自alexy000最终编辑alexy000/******************************************************************************* ******************************************************************************* ** 描述:* 简易电子时钟,LED数码管显示串口发送命令:* 0x34---时调整* 0x35---分调整** 上电时初始化显示: 12-00-00** * **** **** **** **** ***** * * * * * * * * * ** * * * * * * * * * ** * **** **** * * * * **** * * * ** * * * * * * * * * ** * * * * * * * * * * * ***P0为8位数据位P2为8位数码管选择位,低电平选通8位共阳极7段数码管*******************************************************************************/ #include <reg52.h>#include <intrins.h>#define T2H_RELOAD 0xff //11.0592MHz 9600 baud rate at 12 clock#define T2L_RELOAD 0xdcunsigned char data dis_digit;unsigned char code dis_code[11]={0xc0,0xf9,0xa4,0xb0, // 0, 1, 2, 30x99,0x92,0x82,0xf8,0x80,0x90, 0xff};// 4, 5, 6, 7, 8, 9, offunsigned char data dis_buf[8];unsigned char data dis_index;unsigned char hour,min,sec;unsigned char sec100;void proc_key();void inc_sec();void inc_min();void inc_hour();void display();void delayms(unsigned char ms);void main(void){P0 = 0xff;P2 = 0xff;TMOD = 0x11; // 定时器0, 1工作模式1, 16位定时方式TH1 = 0xdc; //定时10msTL1 = 0;TH0 = 0xFC; // 定时1msTL0 = 0x17;hour = 12;min = 00;sec = 00;sec100 = 0;dis_buf[0] = dis_code[hour / 10]; // 时十位dis_buf[1] = dis_code[hour % 10]; // 时个位dis_buf[3] = dis_code[min / 10]; // 分十位dis_buf[4] = dis_code[min % 10]; // 分个位dis_buf[6] = dis_code[sec / 10]; // 秒十位dis_buf[7] = dis_code[sec % 10]; // 秒个位dis_buf[2] = 0xbf; // 显示"-"dis_buf[5] = 0xbf; // 显示"-"dis_digit = 0x7f;dis_index = 0x00;TCON = 0x01;IE = 0x8a; // 使能timer0,1 中断TR0 = 1;TR1 = 1;SCON=0x50;TH2=T2H_RELOAD; //t2 used for uartRCAP2H=T2H_RELOAD;TL2=T2L_RELOAD;RCAP2L=T2L_RELOAD;T2CON=0x34; //9600bit per secondwhile(1){delayms(10);if(RI){RI=0;proc_key();}}}void proc_key(){EA = 0;if(0x34==SBUF) // K1{inc_hour();}else if(0x35 == SBUF) // K2{min++;if(min > 59){min = 0;}dis_buf[3] = dis_code[min / 10]; // 分十位dis_buf[4] = dis_code[min % 10]; // 分个位}EA = 1;}void timer0() interrupt 1// 定时器0中断服务程序, 用于数码管的动态扫描// dis_index --- 显示索引, 用于标识当前显示的数码管和缓冲区的偏移量// dis_digit --- 位选通值, 传送到P2口用于选通当前数码管的数值, 如等于0xfe时,// 选通P2.0口数码// dis_buf --- 显于缓冲区基地址{TH0 = 0xFC;TL0 = 0x17;P2 = 0xff; // 先关闭所有数码管P0 = dis_buf[dis_index]; // 显示代码传送到P0口P2 = dis_digit; //dis_digit = _cror_(dis_digit,1); // 位选通值左移, 下次中断时选通下一位数码管dis_index++;dis_index &= 0x07; // 8个数码管全部扫描完一遍之后,再回到第一个开始下一次扫描//}void timer1() interrupt 3{TH1 = 0xdc;sec100++;if(sec100 >= 100){sec100 = 0;inc_sec();}}void inc_sec(){sec++;if(sec > 59){sec = 0;inc_min();}dis_buf[6] = dis_code[sec / 10]; // 秒十位dis_buf[7] = dis_code[sec % 10]; // 秒个位}void inc_min(){min++;if(min > 59){min = 0;inc_hour();}dis_buf[3] = dis_code[min / 10]; // 分十位dis_buf[4] = dis_code[min % 10]; // 分个位}void inc_hour(){hour++;if(hour > 23){hour = 0;}if(hour > 9)dis_buf[0] = dis_code[hour / 10]; // 时十位elsedis_buf[0] = 0xff; // 当小时的十位为0时不显示dis_buf[1] = dis_code[hour % 10]; // 时个位}void delayms(unsigned char ms) // 延时子程序{unsigned char i;while(ms--){for(i = 0; i < 120; i++);}}。

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

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

图9-4 定时器中断程序
程序清单见课程设计指导书或配套仿真软件
5
9.4 仿真与实验结果
图9-5 按下Stop按键时的仿真结果
6
9.4 仿真与实验结果
图9-6 按下S 用LED数码管显示的秒表设计
9.1 项目任务 9.2 硬件设计 9.3 程序设计 9.4 仿真与实验结果
1
秒表是一个重要的计时工具,可用于比赛计时、实验研究以及生 活计时等。
2
9.1 项目任务
用STC89C52单片机与两位数码管设计并制作一个秒表,实现 电子秒表的基本功能,显示时间为00~59,每秒自动加1,至59 秒后再回到00,继续循环。运用“开始”、“暂停”、“复位” 按键实现对秒表计时控制。
3
9.2 硬件设计
图9-2 LED数码管显示的秒表设计电路原理图 4
9.3 程序设计
开始 定时器初始化 开中断、开始计时
1秒时间到? N
Y 1秒标志位清0,秒加1
秒=60? N
停止键按下? N
继续计时?
Y 秒计数器清零 Y
停止计时 结束
开始 定时器重新置初值 50ms中断次数加1
结束
显示秒
图9-3 主程序流程图

单片机实验——秒表(详细步骤)

单片机实验——秒表(详细步骤)
机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如图5-50所示,抖动时间的长短与开关的机械特性有关,一般为5~10ms。
在触点抖动期间检测按键的通与断状态,可能导致判断出错。即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施,可从硬件、软件两方面予以考虑。本子情境中采用软件去抖。
{
delay(10);//延时去抖动
if(key3==0) //再次检测"复位"按钮是否按下
{
while(!key3); //松手检测
temp=0; //将变量temp的值清零
shi=0; //将十位清零
ge=0; //将个位清零
TR0=0; //关闭定时器
}
}
display(shi,ge); //调用显示子函数
sbit key1=P3^0; //定义"启动"按钮
sbit key2=P3^1; //定义"停止"按钮
sbit key3=P3^2; //定义"复位"按钮
uchar temp,aa,shi,ge;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
TR0=1; //启动定时器开始工作
}
}
if(key2==0) //检测"停止"按钮是否按下
{
delay(10); //延时去抖动
if(key2==0) //再次检测"停止"按钮是否按下
{

用7段数码管显示9秒倒计时

用7段数码管显示9秒倒计时

1 设计内容及目标1.1设计题目用七段LED数码管显示倒计时1.2设计要求(1)用8255控制七段LED数码管。

(2)可选:用8254定时器显示时间。

(3)可选:可通过开关控制暂停计时、继续计时或时间清零。

1.3设计目的通过本学期对微机原理的学习,掌握的知识还停留在理论的上。

但是这是一门实践性较强的课程,让学生在学完该课程之后,进行一次课程设计,使学生将课堂所学的知识和实践有机结合起来,初步掌握计算机应用系统设计的步骤和接口设计的方法,提高分析和解决实际问题的能力。

通过设计实践,培养学生查阅专业资料,工具书或参考书,了解有关工业标准,掌握现代设计手段和软件工具,并能以图纸和说明书表达设计思想和结果的能力。

通过设计,不但要培养和提高学生解决工程具体问题,动脑动手的技术工作能力,而且还要逐步建立科学正确的设计和科研思想,培养良好的设计习惯,牢固树立实事求是和严肃认真的工作态度。

2 设计原理2.1设计思路本次课程设计的题目是用七段LED数码管来显示倒计时。

在这个设计中既要用到8255芯片,又要用到8254芯片对脉冲信号进行记数。

设定初始值,每隔一秒,秒钟数字减一,每过60秒分钟个位减一。

根据需要,需选择的芯片有8255、8259和8254。

2.2设计环境与器材(1)PC微机一台。

用于对程序的编写、编译和测试等,同时还需要对实验设备进行控制,提供整个程序的运行平台,并且收集和释放硬件信号,实现程序功能。

(2)微机原理实验箱一台。

此设备必须能提供8254、8255、8259和数码管等必要芯片,并且能通过接受PC机传来的信息,显示出相应的功能,以支持电子时钟的实现。

(3)导线若干条。

用于电路和芯片之间的连接。

2.3电路原理和主要芯片2.3.1电路工作原理首先利用程序硬性规定分、秒的起始时间为9。

然后通过8254计时器分频,并将以分得的频率接通8259中断控制器,进而通过CPU响应可屏蔽中断达到按秒计时的效果。

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

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

课程设计说明书用LED数码管显示的秒表设计专业新能源科学与工程学生姓名班级学号指导教师完成日期用LED数码管显示的秒表设计摘要:对采用LED数码管显示的秒表进行了设计。

所设计的秒表,可通过两位数码管显示00-59。

每秒自动加一。

在对系统功能分析的基础上,采用AT89C52单片机。

相对而言比较简单,贴近书本,比较熟悉。

对所要实现的功能也能很好地满足,焊接也比较简单。

设计主要采用硬件和软件两部分。

硬件包含数码管按钮模块、单片机控制模块、数码管显示模块、驱动电流放大模块。

按钮模块采用独立式按键,控制模块选用AT89C52单片机,显示模块采用两位数码管,放大模块选用NPN三极管。

软件采用模块化的程序,分为主程序和定时器计时服务子程序。

在多孔板上制作了LED数码管显示的秒表,使用protus完成了系统仿真,对硬件和软件部分分别进行了调试,进行了软硬件联调,最后调试成功样机实物,完成了毕业设计任务书的要求。

关键词:单片机;数码管;秒表A stopwatch design with LED digital tube displayAbstract: For the LED digital tube display of a stopwatch is used for design. The stopwatch, designed by two digital tube display 00 ~ 59. Automatically add a per second.On the basis of the analysis of system function, using the AT89C52 single chip microcomputer. Relatively simple, close to the book, familiar with. To in order to realize the function also can well satisfy, welding is more simple. The design mainly adopts two parts of hardware and software. Hardware consists of digital tube button module, single-chip microcomputer control module, digital tube display module, the drive current amplifier module. Button module USES the independent type key, choose AT89C52 single chip microcomputer control module, using two digital tube display module, amplifier module selects the NPN transistor. Software adopts the modular program, main program and timer timing service subroutine.On the perforated plate made of LED digital tube display a stopwatch, use protus completed system simulation, the hardware and the software part, has carried on the debugging, the software and hardware alignment, the final debugging success physical prototype, completed the graduation design specification requirements.Key Words:Single chip microcomputer; Digital tube; A stopwatch.用LED数码管显示的秒表设计目录1. 概述 (1)1.1 课题研究背景与意义 (1)1.2 课题设计内容 (1)2. 系统设计 (1)2.1 设计方案论证 (1)2.2 系统硬件设计 (2)2.2.1 主控模块 (2)2.2.2 秒表按钮模块 (4)2.2.3 LED数码管显示模块 (5)2.2.4 放大模块 (6)2.3.1 主程序模块 (6)2.3.2 定时器中断程序 (6)3. 系统调试 (8)3.1 硬件调试 (8)3.1.1 静态检查 (8)3.1.2 通电检查 (8)3.2 软件调试及软硬件联调 (8)3.2.1仿真调试 (8)3.2.2 实物调试 (9)3.2.3 实验结果 (9)4. 结束语 (11)附录1:用LED数码管显示的秒表设计原理图图纸 (15)附录2:用LED数码管显示的秒表设计的元器件目录表 (16)附录3:用LED数码管显示的秒表设计程序清单 (17)盐城工学院课程设计说明书( 2015)用LED数码管显示的秒表设计1.概述1.1 课题研究背景与意义随着电子技术的发展,电子技术在各个领域的运用也越来越广泛。

LED数码管的应用

LED数码管的应用
详细描述
LED数码管能够显示文字、数字和简 单的图像,为广告提供了丰富的视觉 效果。它们通常安装在室外,经受风 雨等恶劣环境,持久耐用。
智能家居显示
总结词
智能家居中,LED数码管作为控制中心或状态显示的重要组件,提供直观的视 觉反馈。
详细描述
在智能家居系统中,LED数码管可以显示温度、湿度、电量等家居环境信息, 以及设备的工作状态。它们为家庭自动化提供了方便的监控方式。
交通信号
LED数码管可以用来制作交通信号灯,如红绿灯、 转向灯等。
汽车仪表
LED数码管可以用来显示汽车仪表信息,如车速表、 转速表等。
工业控制
LED数码管可以用来指示工业设备的状态和工作情 况,如传感器、控制器等。
03
LED数码管在显示领域的应用案例
广告牌显示
总结词
LED数码管因其高亮度、低功耗和长 寿命等特点,广泛应用于广告牌显示 。
大屏幕显示
LED数码管可以组成大型 显示屏幕,用于体育场馆、 演唱会、展览会等场合。
照明领域
室内照明
LED数码管可以作为室内照明设备,如装饰灯、台灯、 壁灯等。
室外照明
LED数码管可以作为室外照明设备,如景观灯、道路 灯、隧道灯等。
特种照明
LED数码管可以作为特种照明设备,如水下灯、防爆 灯等。
指示领域
LED数码管的应用
• LED数码管简介 • LED数码管的应用领域 • LED数码管在显示领域的应用案例 • LED数码管在照明领域的应用案例 • LED数码管在指示领域的应用案例 • LED数码管的发展趋势与未来展望
01
LED数码管简介
LED数码管的基本概念
01
LED数码管是一种由多个LED灯珠 组成的显示器件,通过控制每个 LED灯珠的亮灭来显示数字、字 母和符号。

led上显示秒表程序

led上显示秒表程序
ge=0;
shi++;
if(shi==10) {
shi=0;
bai++;
if(bai==10)
{
bai=0;
qian++;
if(qian==10)
qian=0;
}}} }}
void displ() {
unsigned char i,j;
j=0x20;
for(i=0;i<6;i++) { /*display subprogrammer*/
outbit=0;
outseg=ledbuf[i];
outbit=j;
delay(1);
j>>=1;
}
outbit=0;
}
void main()
{
s1=1;
num=0;
TMOD=0x02; /*定时器方式2,自动重装载*/
TH0=0xce;
TL0=0xce; /*计数初值为206,定时时间为100us*/
sbit s1=P1^0; /*开始键与停止键*/
sbit s2=P1^1; /*清零键*/
unsigned char qian,bai,shi,ge; /*分辨率为0.01miao*/
unsigned char num;
unsigned int tt; /*累计100次为0.01秒*/
unsigned char ledbuf[6]; /*display buffer*/
{
TR0=0;
qian=0;
bai=0;
shi=0;
ge=0;
}
ledbuf[0]=0x00;
ledbuf[1]=0x00; /*一直循环*/
  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)内容
如何运用单片机实现计时;
如何显示时间;
如何利用按键实施对秒表的控制。
设计出各模块程序结构流程图。
最后依据流程图编制具体程序。
将整个程序划分为主程序、键盘扫描程序、秒计时程序三大模块。
其中主程序除完成初始化外,主要由动态显示程序构成。
相关文档
最新文档