文档库 最新最全的文档下载
当前位置:文档库 › 单片机按键时钟动态显示

单片机按键时钟动态显示

单片机按键时钟动态显示
单片机按键时钟动态显示

#include

#define uchar unsigned char

#define uint unsigned int

#define SEG7P P0 //定义P0口为段码驱动

#define SCANP P2 //定义P2口为位选驱动

//#define KEY P3

#define LED P1

sbit k1=P3^0;

sbit k2=P3^1;

sbit k3=P3^2;

sbit k4=P3^3;

uchar key_number,miao,hmiao;

uchar code tab_seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x83,0xf8,0x80,0x98} ;//共阳型数码

管0-9段码

uchar code tab_scan[]={ 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f } ;

void delay1ms(uint );

void keyscan(void);

void smg_xianshi(uchar shuzhi_miao,uchar shuzhi_hmiao);

void qidong();

void zanting();

void jiayi();

//void stop();

void main(void)

{

// IE=0x85;

EA=1;

EX0=1;

EX1=1;

while(1)

{

keyscan();

smg_xianshi(miao,hmiao);

if(key_number==0x01) qidong();

// if(key_number==0x02) zanting();

if(key_number==0x02) jiayi();

/* switch(key_number)

{

case 0x01: qidong(); break;

case 0x02: zanting(); break;

case 0x03: stop(); break;

} */

}

}

void keyscan(void)

{

if(k1==0) {LED=0xfe; key_number=0x01;} //qidong if(k2==0)

{

delay1ms(20);

while(k2==0);

LED=0xfd;

key_number=0x02;

} //zanting

// if(k3==0) {LED=0xfb; key_number=0x03;} //stop

// if(k4==0) {LED=0xf7; key_number=0x04;}

}

void jiayi()

{ key_number=0;

miao++;

if(miao==100) miao=0;

smg_xianshi(miao,hmiao);

}

void qidong()

{ uchar k;

k++;

if(k==5) {k=0;hmiao++;smg_xianshi(miao,hmiao);}

if(hmiao==10) {hmiao=0;miao++;}

if(miao==100) miao=0;

/* for(;miao<100;miao++) //miao ++

{

for(;hmiao<10;hmiao++) //1s

{

for(k=0;k<5;k++) { smg_xianshi(miao,hmiao);} //100ms if(key_number!=0x01) break;

}

if(key_number!=0x01) break;

} */

}

void zanting_INT1() interrupt 2

{

key_number=0x00; LED=0XF7;//smg_xianshi(miao,hmiao);

}

void stop_INT0() interrupt 0

{ key_number=0x00;

miao=0;hmiao=0;LED=0XFB;

//smg_xianshi(miao,hmiao);

}

void smg_xianshi(uchar shuzhi_miao,uchar shuzhi_hmiao)

{

SCANP=tab_scan[0];

SEG7P=tab_seg[shuzhi_hmiao];

delay1ms(5);

SCANP=0xff;

SCANP=tab_scan[1];

SEG7P=0xbf; //

delay1ms(5);

SCANP=0xff;

SCANP=tab_scan[3];

SEG7P=tab_seg[shuzhi_miao%100/10];

delay1ms(5);

SCANP=0xff;

SCANP=tab_scan[2];

SEG7P=tab_seg[shuzhi_miao%10]&0x7f;

// SEG7P= 0x7f;

delay1ms(5);

SCANP=0xff;

keyscan();

}

void delay1ms(uint x)

{

uint i,j;

for(i=0;i

for(j=0;j<125;j++); }

单片机电子时钟程序

程序开始 ORG 0000H AJMP MAIN ORG 000BH AJMP CLOCK ORG 0100H 主程序开始: MAIN: MOV SP,#70H MOV 6EH,#00H ;显示缓存器初始值设定 MOV 6DH,#00H MOV 6CH,#00H MOV 6BH,#00H MOV 6AH,#00H MOV 69H,#00H MOV 50H,#00H ;秒,分,小时初始值设定 MOV 51H,#00H MOV 52H,#00H MOV DPTR,#0F003H ;8255端口定义,PA,PB为输出 MOV A,#80H MOVX @DPTR,A MOV 4FH,#00H MOV TMOD,#01H ;定时器T0及TL0,TH0初始值设定 MOV TH0,#3CH MOV TL0,#0B0H SETB EA ;开总中断 SETB ET0 ;开定时器中断 SETB TR0 循环程序开始,并显示时间: START: MOV A,50H LCALL BCD MOV 6AH,A ;显示秒十位 MOV 69H,B ;显示秒个位 MOV A,51H LCALL BCD MOV 6CH,A ;显示分十位 MOV 6BH,B ;显示分个位 MOV A,52H LCALL BCD ;调用十六进制至BCD码转换子程序 MOV 6EH,A MOV 6DH,B LCALL DIS ;调用显示子程序 LCALL KEY ;调用键盘子程序 AJMP START ;主程序结束

BCD: MOV B,#0AH ;BCD码转换子程序 DIV AB RET CLOCK: PUSH ACC ;保护现场 PUSH PSW CLR TR0 MOV TH0,#3CH ;定时参数重新设置 MOV TL0,#0B0H SETB TR0 INC 4FH ;100ms单元加1 MOV A,4FH CJNE A,#0AH,D0 ;100ms单元=10,就秒单元加1 MOV 4FH,#00H ;100ms单元内容清0 MOV A,50H ADD A,#01H ;秒单元加1 MOV 50H,A CJNE A,#3CH,D0 ;秒单元内容=60,则秒单元清0 MOV 50H,#00H MOV A,51H ;分,时单元代码 ADD A,#01H MOV 51H,A CJNE A,#3CH,D0 MOV 51H,#00H MOV A,52H ADD A,#01H LCALL RING ;报警子程序 MOV 52H,A CJNE A,#18H,D0 MOV 52H,#00H D0: POP PSW ;出栈,退出中断子程序 POP ACC RETI RING: MOV R3,A CLR P1.0 LCALL DELL50 SETB P1.0 LCALL DELL50 DJNZ R3,RING RET 键盘子程序: KEY: JB P1.7,MSET ;秒设定子程序 LCALL DELL ;防抖动延时 JB P1.7,MSET INC 50H

简单51单片机数字时钟设计

题目:简单51单片机数字时钟设计 院系: 物理与电气工程学院 专业:自动化专业 班级:10级自动化 姓名:苏吉振 学号:2 老师:李艾华

引言 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。 目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS 化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋势。 单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。 单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。 数字钟是采用数字电路实现对时,分,秒数字显示的计时装置,广泛用于个 人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。

单片机的秒表系统设计方案

编号:201834140148 本科毕业设计 基于单片机的秒表系统设计 系 (院>:信息工程学院 姓名: 学号:0835140148 专业:通信工程 年级:2008级 指导教师: 职称:副教授 完成日期:2018年5月

摘要 当今时代,是一个新技术层出不穷的时代。在电子领域,尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。单片机的出现是现代科技发展的一个重要的里程碑。由于单片机的集成度高、功能强,通用性好,特别是它具有体积小、重量轻、能耗低、价格便宜等优点,使单片机迅速得到推广应用,目前已成为测量控制应用系统中的优选机种和新电子产品的关键部件。 本设计是一个利用单片机控制的多功能秒表系统,它是基于51系列的单片机进行的系统设计。它采用AT89C51单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、电源电路、LED数码管以及键盘电路来设计计时器。将软、硬件有机地结合起来,使得系统能够实现四位LED显示,最大显示时间为59.9秒,每毫秒自动加1,一个开始按键、一个暂停按键、一个复位按键,其突出的优点是:体积小、场外作业、功耗最低、宜用电池作为电源、硬件结构紧凑、简单和软件设计灵活。最后通过仿真调试,在proteus环境下建立了仿真模型,仿真结果表明本设计是正确的。 关键词:单片机;秒表;时钟电路;系统设计 Abstract

In the present era, is a new technology emerge in an endless stream time. In the field of electronics, especially the intelligent automatic control field, the traditional discrete components or digital logic circuit of the control system is at an unprecedented pace was replaced by intelligent control system. SCM has the advantages of small volume, strong function, low cost, wide application range and other advantages, can say, intelligent control and automation is the core of scm. SCM is the emergence of modern science and technology development of an important milepost. As the single-chip high integration, strong function, good versatility, especially it has the advantages of small volume, light weight, low energy consumption, low price, the single chip microcomputer rapidly spreading, has now become the measurement control in the application system of optimization models and the new electronic product key parts. This design is the use of a single chip computer controlled multi-function stopwatch system, which is based on the51 series single-chip system design. It uses AT89C51 microcontroller as the center device, use the timer / counter timing and counting principles, combined with display circuit, power supply circuit, LED digital tube and a keyboard circuit to design the timer. The soft, hardware combination, so that the system can achieve four LED display, maximum display time is 59.9 seconds, each MS add 1, a start button, a pause button, a reset button, the utility model has the advantages of small volume, off-site operations:, lowest power consumption, to use the battery as a power, compact hardware structure, simple and flexible software design. Finally through the simulation debugging, in the Proteus environment to establish the simulation model, the simulation results show that the design is correct. Key words: single chip microcomputer。 stopwatch clock circuit。 system design

单片机电子时钟显示

单片机综合实验报告 题目:电子时钟(LCD)显示 班级: 0310405班 学号: 学生姓名:张金龙 指导老师:高林 2013年 6 月 17 日 一、实验内容: 以AT89C51单片机为核心的时钟,在LCD显示器上显示当前的时间: ●使用字符型LCD显示器显示当前时间。 ●显示格式为“时时:分分:秒秒”。 ●用4个功能键操作来设置当前时间,4个功能键接在P1.0~P1.3引脚上。 功能键K1~K4功能如下。 ●K1—进入设置现在的时间。 ●K2—设置小时。 ●K3—设置分钟。 ●K4—确认完成设置。 程序执行后工作指示灯LED闪动,表示程序开始执行,LCD显示“00:00:00”,然后开始计时。 二、实验电路及功能说明 1)单片机主控制模块

以AT89C51单片机为核心进行一系列控制。 2)时钟显示模块 用1602为LCD显示模块,把对应的引脚和最小系统上的引脚相连, 连接后用初始化程序对其进行简单的功能测试。测试成功后即可为实 验所用,如图: 3)时间调整电路 用4个功能键操作来设置当前时间,4个功能键接在P1.0~P1.3引脚 上。功能键K1~K4功能如下。K1—进入设置现在的时间。K2—设 置小时。K3—设置分钟。K4—确认完成设置。如图: 三、实验程序流程图: 主程序: 时钟主程序流程 子程序:

保护现场 设置计数初值 1S到? (40H)=10? 0 (40H)(40H)+1 (40H)(41H)+1 (41H) (46H)=4? 0 (46H) (0)(47H) 恢复现场 返回 N N 中断服务流程图 (41H)=5? 0 (41H) (43H)=10? 0 (43H)(43H)+1 (43H)(44H)+1 (44H) (44H)=5? 0 (44H) (46H)+1 (46H) (47H)=2? (46H)+1 (46H) N N (46H)=10? 0 (46H) (47)+1 (47) N N 四、实验结果分析

单片机电子时钟汇编语言程序

51单片机架构下时钟控制程序 ;KEY A A键功能程序开启/关闭定时器 ;KEYB B键功能程序时值加1 ;KEYC C键功能程序分值加1 ;KEYD D键功能程序秒值加1 ;KEYE E键功能程序12/24时值转换 ;BEEP_BL整点报时 ;P0 显示接口 ;系统初始化程序**************************************************** KEY A EQU P3.0 ;单片机控制设置 KEYB EQU P3.1 ;单片机控制设置 KEYC EQU P3.2 ;单片机控制设置 KEYD EQU P3.3 ;单片机控制设置 KEYE EQU P3.4 ;单片机控制设置 BEEP EQU P3.7 ;单片机控制设置 ORG 0000H AJMP MAIN ;转到系统初始化程序 ORG 000BH AJMP PITO ;转到定时器0中断服务程序 ORG 0100H MAIN: MOV SP, #60H ;确立堆栈区 MOV TMOD, #01H ;设定定时器0为工作方式1 MOV TL0, #0DCH ;装计数器初值 MOV TH0, #0BH CLR 21H.0 CLR TR0 ; TR0置"0",定时关闭 SETB EA ; EA置"1",中断总允许 SETB ET0 ; ET0置"1",定时器0中断 ; 允许 MOV 30H, #10H ; 循环次数 MOV 7EH, #0AH ; P.点显示初始化 MOV R0, #79H MOV R1, #05H PP: MOV @R0, #0BH INC R0 DJNZ R1, PP MOV R0, #31H ; 时、分、秒值存储单元清零

基于单片机的数字钟设计-(1)

基于单片机的数字时钟摘要 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。 本课题主要研究的是基于单片机的数字钟设计,采用AT89C51单片机作为系统的主控芯片,外接LED显示电路,按键电路,晶振电路,复位电路模块构成一个简单的数字钟。通过按键电路能对时、分、秒分别进行设置和实时调整,并将结果显示在数码管上。 关键词:数字钟,单片机,数码管

Abstract Author:cheng dong Tutor:wang xin Electronic technology has been developed rapidly in the 20 century,with its modern electronic products, pushed by almost permeated every area of society has vigorously promoted social productive forces development and improvement of social informatization level, also make modern electronic product performance further improved, and the rhythm of upgrade its products is becoming more and more quickly. The most common SCM module is a digital clock, a digital clock is a kind of digital circuit technology implementation, minutes and seconds, the timing device with mechanical clock compared with higher accuracy and intuitive and no mechanical device, has more longer service life, so it has been widely used. This topic research is the digital clock design based on SCM, AT89C51 SCM as the main control chip system, external LED display circuit, key circuits, crystals circuit, reset circuit module constitute a simple digital clock. Through the key circuits can respectively the diffculties, minutes and seconds setting and real-time adjustment, and the result showed that in the digital tube. Key words:digital clock SCM ; digital

单片机课程设计 秒表计时器(DOC)

课程设计名称:单片机原理及接口技术 题目:基于单片机的秒表计时器设计 学期:2014-2015学年第一学期 专业:电气技术 班级: 姓名: 学号: 指导教师:

辽宁工程技术大学 课程设计成绩评定表

课程设计任务书 一、设计题目 秒表计时器 二、设计任务 本课题以单片机为核心,设计和制作一个秒表计时器。 三、设计计划 课程设计一周 第1天:查找资料,方案论证。 第2天:各部分方案设计。 第3天:各部分方案设计。 第4天:撰写设计说明书。 第5天:校订修改,上交说明书。 四、设计要求 1、绘制软件流程图并利用汇编语言编写软件程序; 2、绘制系统硬件原理图; 3、形成设计报告。 指导教师: 教研室主任: 2014年5月26 日

本设计利用89C51单片机设计秒表计时器,通过LED显示秒十位和个位,在设计过程中用一个存储单元作为秒计数单元,当一秒到来时,就让秒计数单元加一,通过控制使单片机秒表计时,暂停,归零。设计任务包括控制系统硬件设计和应用程序设计。 关键词:51单片机;74HC573;LED数码管

综述 (1) 1 程序方案 (2) 1.1方案论证 (2) 1.2总体方案 (2) 2部分设计 (3) 2.1 89C51单片机 (3) 2.2晶体振荡电路 (4) 2.3硬件复位电路 (5) 2.4显示电路 (6) 2.5整体电路图 (7) 3程序设计 (8) 3.1程序流程框图 (8) 3.2显示程序流程图 (9) 3.3汇编源程序 (10) 4调试说明 (13) 4.1概述 (13) 4.2电路原理图 (13) 心得体会 (15) 参考文献 (16)

单片机时钟程序

单片机时钟程序 #include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 sbit KEY_ADD=P3^3; //定义按键输入端口 sbit KEY_DEC=P3^4; #define DataPort P0 //定义数据端口程序中遇到DataPort 则用P0 替换 sbit LATCH1=P2^2;//定义锁存使能端口段锁存 sbit LATCH2=P2^3;// 位锁存 unsigned char code dofly_DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值0~9 unsigned char code dofly_WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分别对应相应的数码管点亮,即位码 unsigned char TempData[8]; //存储显示值的全局变量 unsigned char h,m,s; void DelayUs2x(unsigned char t);//函数声明 void DelayMs(unsigned char t); void Display(unsigned char FirstBit,unsigned char Num); void Init_Timer0(void); /*------------------------------------------------ 主函数 ------------------------------------------------*/

单片机时钟程序

首先要掌握lcd1602编程,红外遥控原理,当然,单片机基本的要懂得 此程序是用stc89c52单片机,所用的IO口程序有说明。 #include #define uchar unsigned char #define uint unsigned int #define tt 46080 //设置时间间隔,对应11.0592MHZ的晶振 sbit en=P3^4; sbit rs=P3^5; //用于控制1602 sbit rw=P3^6; sbit dula=P2^6; sbit wela=P2^7; //用于控制晶体管 sbit IRIN=P3^2; //红外接收器数据线IO口 bit L=1; uchar t,key=0,hh=0,mm=0,ss=0; uchar IRCOM[4]=0; //定义数组IRCOM,分别装解码后得到的数据 //IRCOM[0] 低8位地址码 //IRCOM[1] 高8位地址码 //IRCOM[2] 8位数据码 //IRCOM[3] 8位数据码的反码 uchar code table[]="Input password"; uchar code table1[]="Welcome to use!"; uchar code table2[]="Password error!"; uchar code wish[]="Happy every day!"; uchar code time[]="00:00:00"; uchar code loading[]="Loading..."; ///////////////////////////////////////////////////// void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=112;y>0;y--); //大约是1ms,因为单片机的时钟周期为11.0592mhz。} void write_com(uchar com) { rs=0; //指令 P0=com; //写指令函数

基于单片机数字时钟设计

基于单片机数字时钟设计

单片机数字时钟课程设计

基于单片机数字时钟设计 一、设计目的:本文介绍是基于单片机的多功能数字时钟,在传统的时钟基础上它具有走时准确、显示直观、无机械传动装置等优点。随着电子产业的发展,时钟的数字化、多功能化已经成为现在时钟生产研究的主导设计方向。其实巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力。培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力。最后通过对课题设计方案的分析、选择、比较、熟悉单片机应用系统开发、研制的过程,软硬件设计的方法,内容及步骤。 多功能数字时钟的用途十分广泛,只要有计时的存在,便要用到数字时钟的原理及结构;同时在日期中,它以其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费者的喜爱。随着人类科技文明的发展,人们对于时钟的要求在不断提高。时钟已不仅仅被看出一种用来显示时间的工具,在很多实际应用中它还需要能够实现更多其它的功能。高精度、多功能、小体积、低功耗,是现代时钟发展的趋势。在这种趋势下,时钟的数字化、多功能化已经成为现在时钟生产研究的主导设计方向。 二、设计要求:本次课程设计的电子时钟电路由AT89C51时钟 电路动态数码管显示电路组成,运用汇编语言控制单片机AT89C51来实现动态数码管显示。

利用AT89C51单片机P0口控制数码的位显示,P2口控制数码管的段显示,p1口与按键相连,用于时间的校正。 实现24小时制电子钟,6位数码管显示,显示时分秒。 显示格式:23-59-59。有调时,调分,调秒按钮。 三、AT89C51管脚说明 VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写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位地址外部数据存储器进行存

单片机秒表设计..

郑州科技学院 单片机课程设计 题目 学生姓名 专业班级 学号 院(系) 指导教师 完成时间 2015年1月9日

郑州科技学院 单片机课程设计任务书 专业11电科班级 1班学号 201131006 姓名李军 一、设计题目电子秒表 二、设计任务与要求 基本功能: 1.使用A T89C51单片机的定时器/计数器定时和记数的原理,使秒表其能精确计时。 2.能够稳定显示并能准确计时,计时精度达到0.01秒,最大计时59-59-99。 3.能够实现开始、暂停、清零、保存、读取的功能 三、主要参考文献 [1] 艾运阶.单片机项目教程.北京:北京理工大学出版社,2011 [2] 李泉溪.单片机原理与实例仿真.北京:北京航空航天大学出版社,2009 [3] 江世明.基于Protues的单片机应用技术.北京:电子工业出版社,2009 [4] 李朝青.单片机原理及接口技术(第3版).北京:北京航空航天大学出版社,2006 [5] 孙育才.MCS-51 系列单片微型计算机及其应用.广东:东南大学出版社,2009 四、设计时间 2014 年12 月29日至2015 年1月9 日 指导教师签名: 年月日

目录 前言 (1) 1 课程设计的目的及要求 (2) 1.1 课程设计的目的 (2) 1.2 课程设计的任务 (2) 1.3 课程设计的要求 (2) 2 设计的方案及论证 (2) 2.1 方案设计 (2) 2.2 方案选择 (3) 2.3 方案确定 (4) 3 硬件电路设计 (5) 4 软件设计 (5) 4.1 主要模块流程图 (6) 4.2 程序的主要模块 (6) 5 电路仿真 (7) 6 电路的焊接与调试 (8) 6.1 电路的焊接 (8) 6.2 电路的调试 (9)

单片机实现时钟的显示

单片机原理及系统课程设计 专业:电气工程及其自动化 班级:电气091 姓名: 学号: 指导教师: 2012 年 7月1日

1 引言 基于单片机课程的学习,在本次课程设计中利用单片机实现时钟的显示,利用键盘和门电路控制时间的调整,在设计上采用硬件计数与软件计数相结合的方式,并且定时器T0采用了中断方式。 2 系统方案及原理 本次课程设计是用80C51单片机CPU及接口电路设计一个数字时钟,其核心部件是80C51,时钟的显示采用6个共阴极LED显示灯,四个开关方便的对秒、分、时分别调整,保证功能完善,工作可靠。硬件方面:独立式键盘可以消除时间误差的和方便时间的调整;显示电路采用LED动态显示方式,共阴极端由P2口线控制,分为段选线和位选线,利用人的视觉停留达到显示的效果,段选线控制字符选择,位选线控制显示位的亮或暗,从而简化串行口线的连接。软件方面:四个键盘输入与门74LS21,其输出用作中断信号,当四个键盘有一个键按下后就会向CPU申请中断,这样就可以提高CPU 工作效率,达到调整时间的快速性与准确性;定时采用片内定时器定时,提高了电子时钟的准确度。显示电路可以采用点阵液晶显示模块(LED)。一上电,数码管显示的起始时间为0时0分0秒,也就是数码管显示000000,然后每过一秒,秒位加一,到9后10秒位加一,秒位回0.10秒位显示5,秒位显示9后一秒,分钟加一,秒位回0。以此类推,时钟显示的最大值位23小时59分钟59秒。 3 硬件设计 3.1 硬件原理图 根据要求,设计一个时钟。能够显示时间格式为时.分.秒,并且设置键盘,根据按键任意调整时间。利用8051内部定时器0与软件结合来实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将时字节清零。显示部分用共阴极的LED显示等显示。硬件原理图如图一所示。四个开关方便的对秒、分、时分别调整,保证功能完善,工作可靠,定时采用片内定时器定时,提高了电子时钟的准确度。根据题目要求设计的总体框图,如图1所示。

单片机,电子秒表计时器

课程设计说明书 课程名称:《单片机技术》 设计题目:电子秒表计时器 院(部):电子信息与电气工程学院 学生姓名: 学号: 专业班级: 指导教师: 2013年5月17日

课程设计任务书

电子秒表计时器 摘要:本次设计主要完成具备基本功能的电子秒表的理论和实践设计,此计时器系统使用AT89C51单片机为中心器件,由电源电路、时钟电路、复位电路、显示电路组成。其中软件系统采用汇编语言编写程序,包括显示程序,定时中断服务,外部中断服务程序,延时程序等,硬件系统利用PROTEUS软件进行仿真,使得系统能够实现三个8位LED数码管显示,显示时间为0.0~99.9秒,能正确的进行计时,能同时进行五次计时,并能对所记录的时间进行查询,此系统易于仿真、制作简单且使用方便。 关键词:AT89C51、电子秒表、数码管显示、仿真

目录 1.设计背景 (1) 1.1单片机简介 (1) 1.2设计目的 (1) 2.设计方案 (1) 2.1方案一 (1) 2.2方案二 (1) 2.3综合比较 (2) 3.方案实施 (2) 3.1整体工作原理 (2) 3.2硬件系统设计 (3) 3.3软件程序设计 (5) 3.4系统仿真 (5) 3.5系统的制作过程 (6) 4.结果与结论 (7) 4.1结果 (7) 4.2结论 (7) 5.收获与致谢 (7) 6.参考文献 (7) 7.附件 (8)

1. 设计背景 1.1单片机简介 AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压、高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 1.2设计目的 电子秒表是重要的记时工具,广泛运用于各行各业中。作为一种测量工具,电子秒表相对其它一般的记时工具具有便捷、准确、可比性高等优点。不仅可以提高精确度,而且可以大大减轻操作人员的负担,降低错误率。因此电子秒表常常用于体育竞赛及各种其他要求有较精确时间的各领域中。其中开启、停止按键的使用方法与传统的机械计时器相同,即按一下开启按键,启动计时器开始计时,按一下停止按键计时终止。而复位按键可以在任何情况下使用,即使在计时过程中,只要按一下复位按键,计时应立即终止,并对计时器清零。 2.设计方案 2.1方案一 静态显示,静态显示方式下的数码管的显示字符一经确定,相应锁存器锁存的断码输出將维持不变,直到送入另一个字符的断码为止。因而此设计中使用的显示位数使用了三个8位并行I/0口。这种方法的优点是占用CPU时间少,显示便于检测和控制。缺点是硬件电路比较复杂,成本较高。 2.2方案二 动态显示,这个显示方式是将所有显示位的段码线的相应段并联在一起,由一个8位I/O口控制,将所有位数码管的段选线并连在一起,由段选线控制哪一位数码管有效。选用数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光的余晖和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些。

51单片机数码管时钟程序

本人初学51,编写简单时钟程序。仅供参考学习 #include #define uint unsigned int #define uchar unsigned char Uchar code table_d[16] = {0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1 }; uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0xef}; void delay(uint); unsigned long i,num,t=1; void main() { TMOD=0X01; TH0=(65536-10000)/256; TL0=(65536-10000)%256; EA=1; ET0=1; TR0=1; while(1) { num=i/20;//i为秒位 if(i==1728000)//一天大概是这个秒吧,,,应该是,呵呵。就是世间到24时就归零。 i=0; //也可用下面这个部分来代替上面的。 /*if(i==20) { i=0; num++; if(num==5184000) num=0; }*/ //num=9; P2=7;//P2口为数码管控制端,我的是38译码器控制,就直接对其赋值来控制时,分,秒的显示; P0=table[i%100%10]; delay(t); P2=6; P0=table[i%100/10]; delay(t); P0=table_d[(num%60)%10]; P2=5; delay(t); P0=table[(num%60)/10]; P2=4;

基于单片机的数字时钟设计

1 引言 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。而时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。除此之外,由于对社会责任的更多承担,人们要求所设计的产品能够产生尽量少的垃圾、能够消耗尽量少的能量。因此人们对时钟的又有了体积小、功耗低的要求。 传统的机械表由于做工的高精细要求,造价的昂贵,材料的限制,时间指示精度的限制,使用寿命方面,以及其它方面的限制,已不能满足人们的需求。另外,近些年随着科技的发展和社会的进步,人们对时钟的要求也越来越高,而使得新型电子钟表成了大势所趋。 现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时,译码代替机械式传动,用LED 显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。 在电子技术高速发展推动下微机开始向社会各个领域渗透同时大规模集成电路获得了高速发展,单片机的应用正在这时不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。 目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS 化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋势。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字

51单片机秒表计时(protues)

51单片机秒表计时器 目录 摘要 (3) 一、实训目的 (3) 二、实训设备与器件 (3) (1)实验设备 (3) (2)实训器件 (3) 三、实训步骤与要求 (4) (1)要求 (4) (2)方法 (4) (3)实训线路分析 (4) (4)软件设计 (4) (5)程序编制 (4) 四、硬件系统设计 (4) 五、软件系统设计 (5) 六、系统调试 (9) 七、实训总结与分析 (10) 八、参考资料: (11) 九、附录 (12)

摘要: 秒表是由单片机的P0口和P2口分别控制两个数码管,使数码管工作,循环显示从00—59。同时,用一个开关控制数码管的启动与停止,另外加上一个复位电路,使其能正常复位,通常还使用石英晶体振荡器电路构成整个秒表的结构电路。 一、目的 (1)利用单片机定时器中断和定时器计数方式实现秒定时。 (2)通过LED显示程序的调整,熟悉单片机与LED的接口技术,熟悉LED动态显示的控制过程。 (3)通过阅读和调试简易秒表整体程序,学会如何编制含LED动态显示和定时器中断等多种功能的综合程序,初步体会大型程序的编制和调试技巧。(4)进一步学习单片机开发系统的整个流程。 二、元件 (1)实训设备:单片机开发系统、微机、万用表、电烙铁等。 (2)实训器件: 名称数量 7段数码管 2 电阻10k 1 电阻1k 8 键盘开关 1 电容10微法 1 电容30皮法 2 晶振12M 1

89C51 1 万能板 1 导线若干 三、步骤 (1)要求:利用实训电路板,以2位LED右边1位显示个位,左边1位显示十位,实现秒表计时显示。以一个按键开关实现启动、停止、清零等功能。 (2)方法:用单片机定时器T0中断方式,实现1秒定时;利用单片机定时器0方式1计数,实现00--59计数。 (3)实验线路分析:采用实训电路板,其原理图参见附录。两个7段LED 数码管分别由单片机的P0口和P2口控制,使数码管显示从00—59的字样。用一个开关控制数码管的启动与停止,另外加上一个复位电路,使其能正常复位。另外在加上一个晶体振荡电路就够成了整个秒表的电路。 (4)软件设计:软件整体设计思路是主程序进行初始化,以按键开关按下的次数确定定时器的启动与否,LED通过中断的方式进行显示。后二者间的联系是:按键按下,则定时器开始计时,中断后在LED上显示,不断循环;按键第二次按下时,定时器停止计时,LED不显示;按键第三次按下时,返回到初始状态重新开始。秒定时采用定时器T0中断方式进行,60秒计数由定时器0采用方式1完成,中断及计数的开启与关闭受控于按键处理程序。由上述设计思路可设计出软件流程图如图7.1所示。 (5)程序编制:编程时第一次按键为“启动”,第二次按键为“停止”,第三次按键为“清零”,因按键较少,在处理按键值时未采用散转指令“JMP”,而是采用条件转移指令“CJNE”,。2位LED显示的数据由显示缓冲区30H~31H单元中的数据决定。 四、设计 硬件电路的设计应从两个方面予以考虑。一是根据应用系统总体设计的参数范围、测控速度与精度等技术指标要求选择单片机。不同系列单片机或同一系列

8位数码管显示电子时钟c51单片机程序

8位数码管显示电子时钟c51单片机程序 时间:2012-09-10 13:52:26 来源:作者: /* 8位数码管显示时间格式05—50—00 标示05点50分00秒 S1 用于小时加1操作 S2 用于小时减1操作 S3 用于分钟加1操作 S4 用于分钟减1操作 */ #include sbit KEY1=P3^0; //定义端口参数 sbit KEY2=P3^1; sbit KEY3=P3^2; sbit KEY4=P3^3; sbit LED=P1^2; //定义指示灯参数 code unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴极数码管0—9 unsigned char StrTab[8]; //定义缓冲区 unsigned char minute=19,hour=23,second; //定义并初始化为12:30:00 void delay(unsigned intt) { while(--cnt); } /******************************************************************/ /* 显示处理函数 */ /******************************************************************/ void Displaypro(void) { StrTab[0]=tab[hour/10]; //显示小时 StrTab[1]=tab[hour%10]; StrTab[2]=0x40; //显示"-" StrTab[3]=tab[minute/10]; //显示分钟 StrTab[4]=tab[minute%10]; StrTab[5]=0x40; //显示"-" StrTab[6]=tab[second/10]; //显示秒 StrTab[7]=tab[second%10]; } main()

相关文档
相关文档 最新文档