搜档网
当前位置:搜档网 › 单片机利用中断实现时分秒时钟的简易小程序(附仿真图)

单片机利用中断实现时分秒时钟的简易小程序(附仿真图)

单片机利用中断实现时分秒时钟的简易小程序(附仿真图)
单片机利用中断实现时分秒时钟的简易小程序(附仿真图)

单片机利用中断实现时分秒时钟(附仿真图)

基于89c51单片机

程序:

#include <>

#define uchar unsigned char

code unsigned char ke[]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77}; code unsigned char led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

uchar key(); //声明函数key

void delay(i); //声明函数delay

void main(void)

{ uchar i;

while(1)

{

i=key();

P2=0x02;

P0=led[i%10];

delay(50);

P2=0x01;

P0=led[i/10];

delay(50);

}

}

void delay(i) //延时函数

{ unsigned char j;

for(;i>0;i--)

for(j=0;j<120;j++);

}

uchar key(void) //线反转法

{ uchar h,j,a;

P1=0x0f;

a=P1|0xf0;

if(a==0xff)return(99);

{

delay(10);

P1=0xf0;

h=P1|0x0f;

P1=0xff;

a=a&h;

for(j=0;j<16;j++)

{

if(a==ke[j])

return(j);

}

}

return(99);

}

仿真图:

单片机电子时钟程序

程序开始 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 化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋势。 单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。 单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。 数字钟是采用数字电路实现对时,分,秒数字显示的计时装置,广泛用于个 人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。

单片机电子时钟的设计

单片机电子时钟的设计 ----------- 基于单片机的电子时钟 专业:运算机科学与技术 班级:专升本1班 小组成员:张琴张娜赵慧佩 学号:23 24 25

基于单片机的电子时钟设计 摘要 20世纪末,电子技术获得了飞速的进展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的进展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 现代生活的人们越来越重视起了时刻观念,能够说是时刻和金钱划上了等号。关于那些对时刻把握专门严格和准确的人或事来说,时刻的不准确会带来专门大的苦恼,因此以数码管为显示器的时钟比指针式的时钟表现出了专门大的优势。数码管显示的时刻简单明了而且读 数快、时刻准确显示到秒。而机械式的依靠于晶体震荡器,可能会导致误差。 数字钟是采纳数字电路实现对“时”、“分”、“秒”数字显示的计时装置。数字钟的精度、稳固度远远超过老式机械钟。在这次设计中,我们采纳LED数码管显示时、分、秒,以24 小时计时方式,依照数码管动态显示原理来进行显示,用12MHz的晶振产生振荡脉冲,定时器计数。在此次设计中,电路具有显示时刻的其本功能,还能够实现对时刻的调整。数字钟是其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受宽敞消费的喜爱,因此得到了广泛的使用。 .

目录 第一章绪论 1.1 数字电子钟的背景 (4) 1.2 数字电子钟的意义 (4) 1.3 数字电子钟的应用 (4) 第二章整体设计方案 2.1 单片机的选择 (5) 2.2 单片机的差不多结构 (7) 第三章数字钟的硬件设计 3.1 最小系统设计 (11) 3.2 LED显示电路 (14) 第四章数字钟的软件设计 4.1 系统软件设计流程图 (16) 4.2 数字电子钟的原理图 (19) 第五章系统仿真 5.1 PROTUES软件介绍 (20) 5.2 电子钟系统PROTUES仿真 (21) 第六章调试与功能说明 6.1 硬盘调试 (22) 6.2 系统性能测试与功能说明 (22) 6.3 系统时钟误差分析 (22) 6.4 软件调试问题及解决 (22) 附件:主程序 (23)

单片机中断程序大全

单片机中断程序大全公司内部编号:(GOOD-TMMT-MMUT-UUPTY-UUYY-DTTI-

//实例42:用定时器T0查询方式P2口8位控制L E D闪烁#include // 包含51单片机寄存器定义的头文件void main(void) { // EA=1; //开总中断 // ET0=1; //定时器T0中断允许 TMOD=0x01; //使用定时器T0的模式1 TH0=(65536-46083)/256; //定时器T0的高8位赋初值 TL0=(65536-46083)%256; //定时器T0的高8位赋初值 TR0=1; //启动定时器T0 TF0=0; P2=0xff; while(1)//无限循环等待查询 { while(TF0==0) ; TF0=0; P2=~P2; TH0=(65536-46083)/256; //定时器T0的高8位赋初值 TL0=(65536-46083)%256; //定时器T0的高8位赋初值 //实例43:用定时器T1查询方式控制单片机发出1KHz音频

#include // 包含51单片机寄存器定义的头文件sbit sound=P3^7; //将sound位定义为P3.7引脚 void main(void) {// EA=1; //开总中断 // ET0=1; //定时器T0中断允许 TMOD=0x10; //使用定时器T1的模式1 TH1=(65536-921)/256; //定时器T1的高8位赋初值 TL1=(65536-921)%256; //定时器T1的高8位赋初值 TR1=1; //启动定时器T1 TF1=0; while(1)//无限循环等待查询 { while(TF1==0); TF1=0; sound=~sound; //将P3.7引脚输出电平取反 TH1=(65536-921)/256; //定时器T0的高8位赋初值 TL1=(65536-921)%256; //定时器T0的高8位赋初值 } } //实例44:将计数器T0计数的结果送P1口8位LED显示 #include // 包含51单片机寄存器定义的头文件sbit S=P3^4; //将S位定义为P3.4引脚

单片机电子时钟显示

单片机综合实验报告 题目:电子时钟(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 四、实验结果分析

基于单片机的数字钟设计-(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

单片机简易时钟课程设计

目录 1.概论 (1) 2.整体设计思路 (2) 2.1硬件各部分所能完成的功能 (3) 2.2系统工作原理 (4) 2.3时钟各功能分析及图解 (4) 2.4.1电路各功能图解分析 (4) 2.4.2电路功能使用说明 (7) 3. 软件设计思路 (8) 3.1 主程序模块 (8) 3.2 数码管动态扫描模块 (9) 3.3 当前时间计时模块 (9) 3.4 闹钟输入输出模块 (10) 3.5 当前时间调整模块 (12) 3.6复位模块 (13) 4.系统的调试和性能分析 (14) 4.1系统的调试方法 (14) 4.1.1输入按键的调试 (14) 4.1.2复位电路的调试 (14) 4.1.3显示电路的调试 (14) 4.1.4整个系统的联调 (14) 4.2心得体会 (15) 参考文献 (15) 附录 (16) 附录A 系统原理图 (16) 附录B 程序源代码 (17) 电气信息学院课程设计评分表 (28)

1.概论 单片机系统作为一种典型的嵌入式系统,其系统设计包括硬件电路设计和软件编程设计两个方面,其调试过程一般分为软件调试、硬件测试、系统调试3个过程。如果采用单片机系统的虚拟仿真软件——Proteus,则不用制作具体的电路板也能够完成以上工作。数字钟是采用数字电路实现对时,分,秒,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表的报时功能。数字钟已成为人们日常生活中的必需品,广泛应用于家庭、车站、码头、剧院、办公室等场所,给人们的生活、学习、工作带来极大的方便[4]。不仅如此,在现代化的进程中,也离不开电子钟的相关功能和原理,比如机械手的控制、家务的自动化、定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。而且是控制的核心部分。因此,研究数字钟及扩大其应用,有着非常现实的意义。 电子钟在工业控制和日常生活中是很重要的,它不仅可以用于计时、提醒又可用于对机器的控制,在自动化的过程中必然有电子钟的参与,因此电子钟的应用会越来越广泛。而且向着精确、低功耗、多功能发展。基于单片机设计的数字钟精确度较高,因为在程序的执行过程中,任何指令都不影响定时器的正常计数,即便程序很长也不会影响中断的时间。从而,使数字钟的精度仅仅取决于单片机的产生机器周期电路和定时器硬件电路的精确度。另外,程序较为简洁,具有可靠性和较好的可读性。如果我们想将它应用于实时控制之中,只要对上述程序和硬件电路稍加修改,便可以得到实时控制的实用系统,从而应用到实际工作与生产中去。 数字电子钟的设计方法有多种,例如,可用中小规模集成电路组成电子钟,也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟还可以利用单片机来实现电子钟等等。这些方法都各有特点,其中,利用单片机实现的电子钟具有编程灵活,便于功能扩充,精确度高等特点。

51单片机独立按键程序查询法和外部中断两种

//以下程序都是在VC++6.0 上调试运行过的程序,没有错误,没有警告。 //单片机是STC89C52RC,但是在所有的51 52单片机上都是通用的。51只是一个学习的基础平台,你懂得。 //程序在关键的位置添加了注释。 //用//11111111111111111代表第一个程序。//2222222222222222222222222代表第二个程序,以此类推 //1111111111111111111111111111111111111111111111111111111111111111111 //1111111111111111111111111111111111111111111111111111111111111111111 /****************************************************************************** * * 实验名: 左右流水灯实验 * 使用的IO : LED使用P2,键盘使用P3.1 * 实验效果: 按下K1键, * 注意: ******************************************************************************* / #include #include #define GPIO_LED P2 sbit K1=P3^1; void Delay10ms( ); //延时10ms /****************************************************************************** * * 函数名: main * 函数功能: 主函数 * 输入: 无 * 输出: 无 ******************************************************************************* / void main(void) { unsigned int i,j; j=0xfe; //1111_1110 while(1) { GPIO_LED=j; if(K1==0) //检测按键K1是否按下 { Delay10ms(); //消除抖动 if(K1==0) {

单片机时钟程序

单片机时钟程序 #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); /*------------------------------------------------ 主函数 ------------------------------------------------*/

基于单片机数字时钟设计

基于单片机数字时钟设计

单片机数字时钟课程设计

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

基于单片机设计简易数字钟

辽东学院信息技术学院 《单片机原理与接口技术》课程设计报告简易数字钟设计 学生姓名: 学号: 0915110606 班级: B1106 专业:电子信息工程 指导教师: 2014年07月

【摘要】 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。 单片机数字时钟是以单片机为核心,在它的基础上设计出来的数字时钟,本设计采用了STC公司生产的AT80C51型单片机设计了一个单片机最小系统,外接LED 显示电路,按键电路,晶振电路,复位电路模块构成了一个简易的数字钟,具有显示、时、分、秒的功能,且时、分、秒每一个参数都可以自行设置,以实现时间的校正,总体来说实现了一个数字时钟的应有功能。 关键词:80C51系列单片机、单片机最小系统、时钟定时器、4位一体数码管显示

【Abstract】 At the end of twentieth Century, electronic technology has obtained the rapid development, under its impetus, the modern electronic products into almost every field of the society, a strong impetus to the development of social productivity and the improvement of social information-based degree, simultaneously also makes the modern electronic products to further improve the performance, product upgrading have become increasingly fast pace. SCM module is the most common digital clock, digital clock is a device for digital circuit technology, minutes, seconds, compared with the mechanical clock has a higher accuracy and intuitive, and no mechanical devices, has a longer service life, so it is widely used. Single chip digital clock is a single-chip microcomputer as the core, the digital clock design based on it, this design uses the AT80C51 microcontroller STC produced the design of a microcomputer system, connected with the LED display circuit, keyboard circuit, crystal circuit, reset circuit module consists of a simple digital clock, with a display, when, minutes and seconds, function, and when, minutes and seconds, all parameters can be set up, to correct the realization of time, generally realize the function of a digital clock. Keywords:80C51 Series MCU, MCU minimum system, clock timer, one of 4 digital tube display

单片机实现时钟的显示

单片机原理及系统课程设计 专业:电气工程及其自动化 班级:电气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所示。

单片机数字时钟带闹钟

计算机硬件综合课程 设计报告 课目: 学院: 班级: 姓名: 指导教师: 目录

1 设计要求 功能需求 设计要求 2 硬件设计及描述 总体描述 系统总体框图 Proteus仿真电路图3 软件设计流程及描述 程序流程图 函数模块及功能 4 心得体会 附:源程序

1设计要求 1.1功能需求 (1)实现数字时钟准确实时的计时与显示功能; (2)实现闹钟功能,即系统时间到达闹钟时间时闹铃响; (3)实现时间和闹钟时间的调时功能; (4)刚启动系统的时候在数码管上滚动显示数字串(学号)。 1.2设计要求 (1)应用MCS-51单片机设计实现数字时钟电路; (2)使用定时器/计数器中断实现计时; (3)选用8个数码管显示时间; (4)使用3个按钮实现调时间和闹钟时间的功能。按钮1:更换模式(模式0:正常显示时间;模式1:调当前时间的小时;模式 2;调当前时间的分钟;模式3:调闹钟时间的小时;模式4: 调闹钟时间的分钟);按钮2:在非模式0下给需要调节的时 间数加一,但不溢出;按钮3:在非模式0下给需要调节的时 间数减一,但不小于零; (5)在非0模式下,给正在调节的时间闪烁提示; (6)使用扬声器实现闹钟功能; (7)采用C语言编写程序并调试。

2 硬件设计及描述 2.1总体描述 (1)单片机采用AT89C51型; (2)时间显示电路:采用8个共阴极数码管,P1口驱动显示数字,P2口作为扫描信号; (3)时间设置电路:、、分别连接3个按键,实现调模式,时间加和时间减; (4)闹钟:口接扬声器。 2.2系统总体框图 2.3Proteus仿真电路图

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单片机定时中断C语言的写法步骤

51单片机定时中断C语言的写法步骤 程序说明:51单片机定时器0工作于方式一,定时50ms中断一次 晶振为12M #include void main { TOMD = 0X01;//配置定时器0工作于方式一 TH1 = (65536-50000)/256; //高八位装入初值 TL1 = (65536-50000)%256; //低八位装入初值 ET0 = 1; //开定时器0中断 EA = 1; //开总中断 TR0 = 1; //启动定时器0 while(1) { ; } } void Timer0_int() interrupt 1 { //重新装初值 TH1 = (65536-50000)/256; //高八位装入初值 TL1 = (65536-50000)%256; //低八位装入初值 } /****************************************************************************** *********************************/ 上面是比较好理解的。如果实在要求简洁的话,看下面的,跟上面功能一样 #include void main { TOMD = 0X01;//配置定时器0工作于方式一 TH1 = 0x3c; //高八位装入初值 TL1 = 0xb0; //低八位装入初值 IE = 0x82;//开总中断并开定时器0中断 TR0 = 1; //启动定时器0 while(1) { ; } }

void Timer0_int() interrupt 1 { //重新装初值 TH1 = 0x3c; //高八位装入初值TL1 = 0xb0; //低八位装入初值}

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()

单片机课程设计(数字时钟)

单片机课程设计报告 课题名称:数字时钟 一、设计目的: 随着半导体技术的不断发展,各种微处理芯片的性价比越来越高,在各个领域的应用也越来越广泛,其中MCU在工业控制、航天航空、民用家电、医疗设备等方面占有十分重要的地位。我们在之前所学习的MCS-51系统单片机就是MCU中的一员,作为低端的8位MCU它具有价格低、适配器件成熟种类多等优势,因此尽管现在32位、16位MCU不断发展,但8位的MCU仍占有大约50%的市场份额,同时它也是我们学习MCU的必要的入门途径,本次实习就是应用我们所学习的MCS-51单片机进行一次实际制作,要经过从硬件设计、软件设计、实验电路调试、软件调试直至最后作品焊接成型,这对以前我们所学习的理论知识进行进一步的巩固和深化,更重要的是学习以MCU为控制核心的应用的实际设计流程及基本的实践动手能力。 二、设计内容 应用AT89S51及相关器件制做一个LED数码显示电子时钟。所需使用的软件及硬件具体内容如下: 1.使用软件及器件 1)软件:Keil uVision2(IDE集成开发环境)、ELITE-IV单片机开发系统、protel99se 2)器材清单:

三、实习步骤 1.根据实习内容及所提供元器件,设计硬件电路,提供的参考电路见图1,也可自行设计 1)复位及晶振电路是单片机最小系统必备部分 2)三个按钮接在P3.0、P3.1、P3.2上用于调整时、分、秒 3)P2口送LED数码显示的段码 4)P1.0至P1.5送数码显示控制的位码 2.根据设计的硬件电路,在面包板上搭接实验电路 3.在硬件基础在keil上上进行软件设计,调试 4.调试通过后,向A T89S51烧写程序 5.将烧写好的A T89S51插接到实验电路中,验证是否正常,如果正常说明软、硬件正确可进行电子时钟焊接制做。 6.焊接好电子时钟后,再次上电调试,验证通过,实习圆满完成。 注意的问题: ●单片机在锁紧座的正确放法:单片机缺口朝上。 ●在面包板上接好电路后,先用万用表测量一下电源及地是否会短路。 ●接电源调试时不能带电插拔元件 四、元件参数 1.9012 9012是一种最常用的普通三极管。 它是一种低电压,大电流,小信号的PNP型硅三极管 集电极电流Ic:Max -500mA 集电极-基极电压Vcbo:-40V 工作温度:-55℃to +150℃ 主要用途:开关应用、射频放大

相关主题