MCS-51单片机可调数字电子钟设计
- 格式:doc
- 大小:107.78 KB
- 文档页数:15
单片机技术课程设计数字电子钟学院:班级:姓名:学号:教师:摘要电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。
所以设计一个简易数字电子钟很有必要。
本电子钟采用AT89C52单片机为核心,使用12MHz 晶振与单片机AT89C52 相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。
该电子钟设有四个按键KEY1、KEY2、KEY3、KEY4和KEY5键,进行相应的操作就可实现校时、定时、复位功能。
具有时间显示、整点报时、校正等功能。
走时准确、显示直观、运行稳定等优点。
具有极高的推广应用价值。
关键词:电子钟 AT89C52 硬件设计软件设计目录一、数字电子钟设计任务、功能要求说明及方案介绍 (4)1.1 设计课题设计任务 (4)1.2 设计课题的功能要求说明 (4)1.3 设计课的设计总体方案介绍及工作原理说明 (4)二、设计课题的硬件系统的设计 (5)2.1硬件系统各模块功能简要介绍 (5)2.1.1 AT89C52简介 (5)2.1.2 按键电路 (6)三、设计课题的软件系统的设计 (6)3.1 使用单片机资源的情况 (6)3.2 软件系统个模块功能简要介绍 (7)3.3 软件系统程序流程框图 (7)3.4 软件系统程序清单 (7)四、设计课题的设计结论、仿真结果、误差分析 (9)4.1 设计结论及使用说明 (9)4.2 仿真结果 (10)结束语 (12)参考文献 (12)附录 (13)附录A:程序清单 (13)一、数字电子钟设计任务、功能要求说明及方案介绍1.1 设计课题设计任务设计一个具有特定功能的电子钟。
具有时间显示,并有时间设定,时间调整功能。
1.2 设计课题的功能要求说明设计一个具有特定功能的电子钟。
该电子钟上电或按键复位后能自动显示系统提示符“d.1004-22”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从12时59分0秒开始运行,进入时钟运行状态;按电子钟S5键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按S5键再次进入时钟运行状态。
课程名称:单片机原理与接口技术实践设计课题:基于MCS 51单片机实现电子闹钟功能的设计学院:电子与信息工程学院专业:通信工程小组成员:电子闹钟在科学技术高度发展的今天,千家万户都少不了它,所以很多家庭个人都需要有一个电子闹钟,为人们提供报时方便,但普通电子闹钟不够方便实用。
本文给出了一种基于MCS51单片机实现电子闹钟功能的设计方法,从而给人们带来更为方便的工作与生活。
一.电子闹钟简介我们设计的电子闹钟是以MCS 51单片机中的计时器作为时钟,用8位数码管显示当前时间,并且可以设置闹钟时间,并在设置的时间点发出闹铃。
简易闹钟具有以下功能:1.时钟能准确地走时,并可以通过数码管进行显示2.复位后可以进行当前时间的设置3.可以随意设置闹钟时间,闹钟会在设置时间响铃整个系统的任务要求:1)输入数字按键的功能。
保证数字的输入。
2)复位电路的功能。
所有时间回到初始化状态,用于启动设定时间参数(调时或设定闹钟时间);3)显示电路的功能。
当输入数字时显示24小时时间功能。
4)闹铃功能设置闹铃的时间后.能按设置好的时间准时闹铃。
二.系统方案的设计要求根据以上各模块并结合显示屏的功能及元器件材料的情况,决定采用AT89C51为内核显示设计方案。
先进行系统的整体规划确定整个系统的功能,然后按照每个功能的具体要求,进行各个模块的实物设计并逐个调试,待全部通过后,进行整个系统的联调,最终实现一个完整的系统。
整个系统的设计步骤如下:在单片机最小系统的基础上,完成按键电路和复位电路的设计。
完成显示电路、数字按键、单片机时钟电路。
Ⅰ硬件设计系统硬件的设计可以根据系统的各个功能,把整个系统划分成若干个模块,分别对这些模块来进行设计,然后在通过单片机程序来实现对各个硬件模块功能的调度。
本系统涉及到的硬件模块有:按键电路、数码管显示电路、单片机时钟电路、蜂鸣器电路。
各部分实现功能如下:按键电路:提供按键信号。
单片机时钟电路、复位电路:提供内部时钟。
基于51单片机的多功能电子钟设计1. 本文概述随着现代科技的发展,电子时钟已成为日常生活中不可或缺的一部分。
本文旨在介绍一种基于51单片机的多功能电子钟的设计与实现。
51单片机因其结构简单、成本低廉、易于编程等特点,在工业控制和教学实验中得到了广泛应用。
本文将重点阐述如何利用51单片机的这些特性来设计和实现一个具有基本时间显示、闹钟设定、温度显示等功能的电子钟。
本文的结构安排如下:将详细介绍51单片机的基本原理和特点,为后续的设计提供理论基础。
接着,将分析电子钟的功能需求,包括时间显示、闹钟设定、温度显示等,并基于这些需求进行系统设计。
将详细讨论电子钟的硬件设计,包括51单片机的选型、时钟电路、显示电路、温度传感器电路等。
软件设计部分将介绍如何通过编程实现电子钟的各项功能,包括时间管理、闹钟控制、温度读取等。
本文将通过实验验证所设计的电子钟的功能和性能,并对实验结果进行分析讨论。
通过本文的研究,旨在为电子钟的设计提供一种实用、经济、可靠的方法,同时也为51单片机的应用提供一个新的实践案例。
2. 51单片机概述51单片机,作为一种经典的微控制器,因其高性能、低功耗和易编程的特性而被广泛应用于工业控制、智能仪器和家用电器等领域。
它基于Intel 8051微处理器的架构,具备基本的算术逻辑单元(ALU)、程序计数器(PC)、累加器(ACC)和寄存器组等核心部件。
51单片机的核心是其8位CPU,能够处理8位数据和执行相应的指令集。
51单片机的内部结构主要包括中央处理单元(CPU)、存储器、定时器计数器、并行IO口、串行通信口等。
其存储器分为程序存储器(ROM)和数据存储器(RAM)。
程序存储器通常用于存放程序代码,而数据存储器则用于存放运行中的数据和临时变量。
51单片机还包含特殊功能寄存器(SFR),用于控制IO端口、定时器计数器和串行通信等。
51单片机的工作原理基于冯诺伊曼体系结构,即程序指令和数据存储在同一块存储器中,通过总线系统进行传输。
简易数字钟系统设计完成一个简易数字时钟系统设计。
要求:用3个独立按键调整时间。
一个按键控制启动运行。
在调整结束后按运行键后开始运行。
1,开机时,显示00:00:00时间从零开始调整。
2,P10控制秒的调整,每按一次加1s。
3,p11控制分的调整,每按一次加1min。
4,p12控制时的调整,每按一次加1h。
5,p13控制运行和停止。
程序:#include<reg52.h>sbit key1=P3^4;sbit key2=P3^5;sbit key3=P3^6;sbit key4=P3^7;#define uchar unsigned char#define uint unsigned intuchar shi,ge,aa,num,num1,num2,tt;uint n;uchar q1,q2,b1,b2;sbit dula=P2^6;sbit wela=P2^7;void keyscan();void delay(uint);void display();uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void keyscan(){if(key1==0){ num2++;if(num2==24)num2=0;while(!key1);if(key2==0){num1++;if(num1==60)num1=0;while(!key2);}if(key3==0){num++;if(num==60)num=0;while(!key3);}if(key4==0){ TR0=~TR0;while(!key4);}}void main(){TMOD=0x00;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;while(1){ k eyscan();display();}}void time0()interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;tt++;if(tt==100){ tt=0;num++;if(num==60){ num=0;num1++;if(num1==60){ num1=0;num2++;if(num2==24)num2=0;}}}}void display(){q1=num2/10;q2=num2%10;b1=num1/10;b2=num1%10;shi=num/10;ge=num%10;wela=1;P0=0xfe;wela=0;P0=0xff;P0=table[q1]; dula=0; delay(1);wela=1;P0=0xfd; wela=0;P0=0xff; dula=1;P0=table[q2]; dula=0; delay(1);wela=1;P0=0xfb; wela=0;P0=0xff; dula=1;P0=table[b1]; dula=0; delay(1);wela=1;P0=0xf7; wela=0;P0=0xff; dula=1;P0=table[b2]; dula=0; delay(1);wela=1;P0=0xef; wela=0;P0=0xff; dula=1;P0=table[shi]; dula=0; delay(1);wela=1;P0=0xdf;P0=0xff;dula=1;P0=table[ge];dula=0;delay(1);}void delay(uint x){uint i,j;for(i=x;i>0;i--)for(j=110;j>0;j--); }。
安阳师范学院单片机技术课程实践基于89C51 单片机可调数字钟的仿真设计班级:姓名:学号:辅导老师:设计时间:1. 设计目的1.1 设计目的(1)掌握51系列内部定时/计数器的原理和基本应用;(2)掌握使用单片机处理复杂逻辑的方法;(3)掌握多位数码管动态显示的方法;(4)掌握独立式(和矩阵)键盘的编程方法;(5)掌握利用汇编语言编写单片机系统的应用软件的方法;(6)巩固,加深和扩大单片机应用的知识面, 提高综合及灵活运用所学知识解决工业控制的能力;(7)培养针对课题需要, 选择和查阅有关手册, 图表及文献资料的自学能力, 提高组成系统,编程, 调试的动手能力;(8)熟悉单片机用系统开发, 研制的过程, 软硬件设计方法, 内容及步骤.(9)了解数字钟的组成及工作原理.1.2 设计性能(1)用51 单片机的定时/计数器TMR0 产生一秒的定时时间,作为秒计数时间;(2)当一秒产生时,秒计数加1;(3)开机时,显示00.00.00,并开始连续计时;(4)计时满23.29.59 时,返回00.00.00 重新开始计时;(5)在以上设计基础上,在单片机的I/O 口上分别接入四个按键:K0—控制“秒”的调整,每按一次加1秒;K1 —控制“分”的调整,每按一次加1分;K2 —控制“时”的调整,每按一次加1小时;K3—时间复位按键。
2.系统电路的方案2.1实现时钟计时的基本方法用AT89C51单片机的定时/计数器TO产生一秒的定时时间,作为秒计数时间,当一秒产生时,秒计数加1开机时。
显示00-00-00的时间,开始计时;计时满23-59-59时,返回00-00-00重新计时AT89C51单片机的内部16位定时/计数器是一个可编程定时/计数器,它既可以工作在13位定时方式,也可以工作在16位定时方式和8位定时方式。
只要通过设置特殊功能寄存器TMOD即可完成。
定时/计数器何时工作也是通过TCON 特殊功能寄存器来设置的。
快乐的节日作文(通用15篇)快乐的节日作文1啪,啪,啪啪最令我期待的春节又到了,我终于能和小朋友们一起痛快地玩耍喽!说到春节,当然少不了烟花啦!我们都会挑一天来放烟花,有时候,我们放着放着就来了一些用烟花打战的人,于是我们就放下手中的烟花和爆竹去观战了。
这个游戏可好玩了,首先双方准备好一些爆竹,接着在场地中间画一条分界线,然后同时点燃爆竹,点完赶紧躲到一边,看谁的爆竹放到界线以外,谁就算赢。
过春节最不可少的是年夜饭,当然,我们最期待的也是年夜饭,因为年夜饭是一年中最丰盛的一餐,桌上挤满了各种好吃的菜,年夜饭的主角,当然还是火锅啦,里面有鱼啊,青菜啊,丸子呀等。
吃完火锅,我、弟弟和妹妹那六只眼睛都齐刷刷地盯着爸爸,心里想爸爸,我们吃完了,果汁什么时候上场啊,一年中也只有今天才能让我们喝个痛快啊!每到春节能做的事儿多得数也数不清,能吃的东西也比平时多了许多,就像放完爆竹,落下多少片碎片,又飞走了多少片,多得连爆竹自已也没有一个概念快乐的节日作文2今天,我们迎来了盼望已久的六一儿童节,也是我们班同学最喜欢的节日。
早上,我怀着紧张而又激动心情走进教室,看到教室里焕然一新,黑板上写着“六一快乐”,上面画着美丽的图画,小鸟在天空飞翔,小羊在草地上玩耍……天花板上挂着美丽的气球和拉花。
同学们三五成群的在一起说话,都很开心。
节目开始了,同学们各自把精心准备的节目表演给大家,我最喜欢侯承博表演的魔术,因为我喜欢魔术,而且他表演的也很成功,简直和刘谦一样。
轮到我表演了,我是用笛子给大家吹一首曲子,吹的是“凤阳花鼓”,曲子不是很长,而且我在家也练了好多遍,但是吹的时候还是很紧张,生怕吹错了,不过我还是非常流利的吹了下来。
今天,六一儿童节过的真开心!快乐的节日作文3国庆长假爸爸、妈妈带我去美丽的长岛旅游。
我们先是乘海船吹海风、和海鸥对话、出海打渔、在海滩上捡美丽的贝壳和光滑的卵石、看海潮潮涨潮落过足了海瘾然后又去海鲜城吃海鲜。
基于51单片机的简易电子钟设计一、设计目的现代社会对于时间的要求越来越精确,电子钟成为家庭和办公场所不可缺少的设备之一、本设计基于51单片机,旨在实现一个简易的电子钟,可以显示当前的时间,并且能够通过按键进行时间的调整和设置闹钟。
二、设计原理本设计主要涉及到51单片机的IO口、定时器、中断、LCD显示技术等方面知识。
1.时钟模块时钟模块采用定时器0的中断进行时间的累加和更新。
以1秒为一个时间单位,每当定时器0中断发生,就将时间加1,并判断是否需要更新小时、分钟和秒的显示。
同时,根据用户按键的操作,可以调整时间的设定。
2.显示模块显示模块采用16x2字符LCD显示屏,通过51单片机的IO口与LCD连接。
可以显示当前时间和设置的闹钟时间。
初次上电或者重置后,LCD显示时间为00:00:00,通过定时器中断和键盘操作,实现时间的更新和设定闹钟功能。
3.键盘模块键盘模块采用矩阵键盘连接到51单片机的IO口上,用于用户进行时间的调整和设置闹钟。
通过查询键盘的按键状态,根据按键的不同操作,实现时间的调整和闹钟设定功能。
4.中断模块中断模块采用定时器0的中断,用于1秒的定时更新时间。
同时可以添加外部中断用于响应用户按键操作。
三、主要功能和实现步骤1.系统初始化。
2.设置定时器,每1秒产生一次中断。
3.初始化LCD显示屏,显示初始时间00:00:00。
4.查询键盘状态,判断是否有按键按下。
5.如果按键被按下,根据不同按键的功能进行相应的操作:-功能键:设置、调整、确认。
-数字键:根据键入的数字进行时间的调整和闹钟设定。
6.根据定时器的中断,更新时间的显示。
7.判断当前时间是否与闹钟设定时间相同,如果相同,则触发闹钟,进行提示。
8.循环执行步骤4-7,实现连续的时间显示和按键操作。
四、系统总结和改进使用51单片机设计的简易电子钟可以显示当前时间,并且实现时间的调整和闹钟设定功能。
但是由于硬件资源有限,只能实现基本的功能,不能进行其他高级功能的扩展,例如闹铃的音乐播放、温度、湿度的显示等。
xxxxxx大学课程设计报告课程设计名称:单片机系统综合课程设计课程设计题目:电子时钟院(系):专业:班级:学号:姓名:指导教师:完成日期:xxxxxx大学课程设计报告目录第1章总体设计方案 (1)1.1设计原理 (1)1.2设计思路 (1)1.3实验环境 (2)第2章详细设计方案 (3)2.1硬件电路设计 (3)2.2主程序设计 (3)2.3功能模块的设计与实现 (4)第3章结果测试及分析 (11)3.1结果测试 (11)3.2结果分析 (11)参考文献 (12)附录 A (13)附录 B (21)附录 C (22)第1章总体设计方案1.1 设计原理根据课程设计任务书的内容,要求实现在MCS51单片机上对数字电子钟的基本功能设计,对当前时间正确显示,并可根据需要对时间进行更改,以完成时间的校对和闹钟的设置。
时钟时间以时、分、秒在6位数码管上显示,小时以24小时计时模式,分秒均为60进位。
用6MHz晶振产生振荡脉冲,定时器进行秒计时。
调整设置时间的过程运用可编程键盘上的按键进行控制,共设有5个按键,首先按键A进入校时模式或E进入闹钟模式,再分别按键B对小时或C分钟进行更改,每按键一次数码管计数显示加一,更改结束后按键D退出设置,时钟正常显示。
闹钟时间到时,蜂鸣器鸣响10秒后时钟正常显示。
1.2 设计思路采用C语言程序设计结合硬件电路设计方法,利用Lab6000实验箱来实现数字电子钟的设计。
1)提出方案根据设计要求,可将本次设计分为3个模块进行:1)时钟显示模块:主要用于时间的正确显示。
2)校时模块:此模块用于时钟的校对,以完成用户更改时间的需求。
3)闹钟模块:用于实现闹钟的时间设置和定点闹铃的功能。
2)方案论证时钟显示模块中,利用可编程定时器中断进行秒计时,将时间显示在6位数码管上。
校时模块主要利用键盘上5个键的控制完成各项功能,并在数码管上动态显示改变结果,完成设置后进入时钟显示模块。
闹钟模块的设置过程与校时模块相似,但设置完成进入时间显示模块后则等待闹铃时间,到规定时间后,通过数码管闪烁及蜂鸣器的鸣响来实现定点闹铃提醒功能。
MCS-51单⽚机数字钟设计MCS-51单⽚机数字钟设计⽬录第⼀部分课程设计任务书 (1)⼀、课程设计题⽬ (1)⼆、课程设计时间 (1)三、课程设计提交⽅式 (1)四、设计要求 (1)第⼆部分课程设计报告 (2)⼀、单⽚机发展简史 (2)⼆、MCS-51单⽚机系统简介 (2)三、设计思路 (3)四、硬件设计电路 (4)五、软件设计流程 (4)六、程序源代码 (5)七、结束语 (21)⼋、参考⽂献 (22)第⼀部分课程设计任务书⼀、课程设计题⽬MCS-51单⽚机数字钟设计⼆、课程设计时间6⽉24⽇⾄6⽉30⽇三、课程设计提交⽅式提交打印课程设计报告四、设计要求1)⾃动计时,显⽰24⼩时制时间,由6位LED显⽰器显⽰时、分、秒。
2)起始时间为:00:00:00。
3)具备校准功能,可以直接由按键设置当前时间。
4)具有整点报时功能5) 具有设置闹钟,闹钟时间到,蜂鸣器响。
第⼆部分课程设计报告⼀、单⽚机发展概况单⽚机也被称为微控制器(Microcontroller Unit),常⽤英⽂字母的缩写MCU 表⽰单⽚机,它最早是被⽤在⼯业控制领域。
单⽚机由芯⽚内仅有CPU的专⽤处理器发展⽽来。
最早的设计理念是通过将⼤量外围设备和CPU集成在⼀个芯⽚中,使计算发展出了MCS51系列单⽚机系统。
基于这⼀系统的单⽚机系统直到现在还在⼴泛使⽤。
随着⼯业控制领域要求的提⾼,开始出现了16位单⽚机,但因为性价⽐不理想并未得到很⼴泛的应⽤。
90年代后随着消费电⼦产品⼤发展,单⽚机技术得到了巨⼤提⾼。
随着INTEL i960系列特别是后来的ARM系列的⼴泛应⽤,32位单⽚机迅速取代16位单⽚机的⾼端地位,并且进⼊主流市场。
⽽传统的8位单⽚机的性能也得到了飞速提⾼,处理能⼒⽐起80年代提⾼了数百倍。
⼆、MCS-51单⽚机系统简介MCS-51系列单⽚机产品有8051,8031,8751,80C51,80C31等型号(前三种为CMOS芯⽚,后两种为CHMOS芯⽚)。
51单片机的电子时钟设计一、引言随着科技的发展和人们对时间的准确度的要求日益提高,电子时钟成为了人们生活中不可缺少的一部分。
本文将介绍一种基于51单片机的电子时钟设计。
二、硬件设计1.主控部分本设计使用了51单片机作为主控芯片,51单片机具有丰富的接口资源和强大的处理能力,非常适合用于电子时钟的设计。
2.显示部分采用了数码管显示屏作为显示部分。
为了提高显示的清晰度,我们选用了共阳数码管。
使用4位数码管即可显示时、分和秒。
3.时钟部分时钟部分由振荡器和RTC电路构成。
振荡器提供时钟脉冲信号,RTC 电路实现对时钟的准确计时。
4.按键部分按键部分采用矩阵按键,以实现对时间的设置和调整。
三、软件设计1.系统初始化在系统初始化阶段,需要对硬件进行初始化设置。
包括对I/O口的配置,定时器的初始化等。
2.时间设置用户可以通过按键设置当前的时间。
通过矩阵按键扫描,检测到用户按下了设置键后,进入时间设置模式。
通过按下加减键,可以增加或减少时、分、秒。
通过按下确认键,将设置的时间保存下来。
3.时间显示在正常运行模式下,系统将会不断检测当前的时间,并将其显示在数码管上。
通过对时钟模块的调用,可以获取当前的时、分、秒并将其显示出来。
4.闹钟功能在时间设置模式下,用户还可以设置提醒闹钟的功能。
在设定时间到来时,系统会发出蜂鸣器的声音,提醒用户。
四、测试与验证完成软硬件设计后,进行测试与验证是必不可少的一步。
通过对硬件的连线接触检查和软件的功能测试,可以确保整个设计的正确性和可靠性。
五、总结通过本次设计,我对51单片机的使用和原理有了更清晰的认识,同时也对电子时钟的设计和制作有了更深入的了解。
电子时钟作为一种常见的电子产品,在我们的日常生活中发挥了重要的作用。
这次设计过程中,我遇到了许多问题,但通过查阅资料并与同学一起探讨,最终解决了问题。
相信通过不断的学习和实践,我可以在未来的设计中取得更好的成果。
MCS-51单片机可调数字电子钟设计目录第一部分课程设计任务书 (1)一、课程设计题目 (1)二、课程设计时间 (1)三、课程设计提交方式 (1)四、设计要求 (1)第二部分课程设计报告 (2)一、单片机发展简史 (2)二、MCS-51单片机系统简介 (2)三、设计思路 (3)四、硬件设计电路 (3)五、软件设计流程 (4)六、程序源代码 (4)七、结束语 (13)八、参考文献 (14)第一部分课程设计任务书一、课程设计题目可调数字电子钟二、课程设计时间一周三、课程设计提交方式提交电子版课程设计报告四、设计要求1)起始时间为:00:00:00。
2)自动计时,显示24小时制时间,由6位LED显示器显示时、分、秒。
3)具备校准功能,可以直接由按键设置当前时间。
第二部分课程设计报告一、单片机发展概况单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。
从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。
单片机诞生于1971年,经历了SCM、MCU、SoC三大阶段,早期的SCM单片机都是8位或4位的。
其中最成功的是INTEL的8031,此后在8031上发展出了MCS51系列MCU系统。
基于这一系统的单片机系统直到现在还在广泛使用。
随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。
90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。
随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。
而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。
高端的32位Soc单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。
当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。
而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。
二、MCS-51单片机系统简介在HMOS技术大发展的背景下,Intel公司在MCS-48系列的基础上,于1980年推出了8位MCS-51系列单片机。
它与以前的机型相比,功能增强了许多,就其指令和运行速度而言,超过了INTEL8085的CPU和Z80的CPU,成为工业控制系统中较为理想的机种。
较早的MCS-51典型时钟为12MHz,而目前与MCS-51单片机兼容的一些单片机的时钟频率达到40MHz甚至更高,现在已有400MHz的单片机问世。
三、设计思想只需单片机最小应用系统,无需扩展电路,显示器用七段共阳LED显示器,显示小时、分、秒;设计三个按钮开关作为手动校准。
其工作流程如下:1)时间显示:上电后,系统自动进入时钟显示,从00:00:00开始计时。
2)时间校准:按下第一个按钮开关后,系统停止计时,循环进入小时、分钟、秒设定状态,分别按下第二、第三个按钮开关上下设置时间,系统将自动由设定后的时间开始计时显示。
置初始时钟用三个键:K2(P3.4)用于改变显示状态,有四个状态: 1—修改时 2—修改分 3—修改秒 0—显示状态。
K3(P3.5) 用于当修改“时”、“分”、“秒”分别在这三个状态下对时、分、秒内容加1.K4(P3.6) 用于当修改“时”、“分”、“秒”分别在这三个状态下对时、分、秒内容减1.四、硬件电路设计五、软件设计框图⏹可分为以下几个功能模块:1)主程序:初始化与键盘监控。
2)计时:为定时器中断服务子程序,完成刷新计时缓冲区的功能。
3)时间设置:由按键设置当前时间。
4)键盘扫描:判断是否有键按下,并确定键号。
5)显示:完成8位动态显示。
⏹主程序流程图对各单元先初始化,启动定时器,循环调用按键子程序进行判断有无按键按下,若有进行按键处理若无就调用显示子程序。
键盘中断处理流程图按键中断处理部分,判断有无键按下,确定键值用以调整时间;就是首先开中断对按键进行消抖动的处理,确定有键按下之后将被按下的键号存起来,若无按键按下返回继续判断。
六、程序源代码#include<reg51.h>typedef unsigned char uint8;typedef unsigned int uint16;uint8 number[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};int sec,min,hour;sbit key1=P3^4;sbit key2=P3^5;sbit key3=P3^6;sbit led=P3^0;static uint16 i;void delay();void display();int key();void choice();void timerinit();main(){ uint16 count=0;i=0;timerinit();while(1){display();if(TF0==1){TF0=0;TH0=(65536-50000)/256;TL0=(65536-50000)%256;count++;}if(count==20){ count=0;i++;}if(key()!=0)choice();}}/********* 延时程序************/void delay(){ uint16 m,x;for(m=0;m<10;m++)for(x=0;x<50;x++);}/*************** 显示程序*****************/ int j,z;void display(){ //int j,z;P2=0xfe;if(i==60){i=0;j++; }if(j==60){z++;}P0=number[i%10];delay();P2=0xfd;P0=number[i/10];delay();P2=0xfb;P0=number[10];delay();P2=0xf7;P0=number[j%10];delay();P2=0xcf;P0=number[j/10];delay();P2=0xdf;P0=number[10];delay();P2=0xbf;P0=number[z%10];delay();P2=0x7f;P0=number[z/10];delay();sec=i;min=j;hour=z;}/******************按键程序*************/ static int e,f,g;int key(){if(key1==0){ delay();if(key1==0)TR0=0;e++;}if(key2==0){ delay();if(key2==0)f=1;;}if(key3==0){ delay();if(key3==0)g=1;}while ((key1 == 0)||(key2 == 0)||(key3 == 0));return e;}void choice(){ int bt;while(1){ bt=key();if(bt==1){TR0=0;if(hour==23)hour=0;elsehour++;f=0;if(g==1)if(hour==0)hour=23;elsehour--;g=0;}if(bt==2) {TR0=0;if(f==1)if(min==59) min=0;elsemin++;f=0;if(g==1)if(min==0)min=59;elsemin--;g=0;}if(bt==3) {TR0=0;if(sec==59)sec=0;elsesec++;f=0;if(g==1)if(sec==0)sec=59;elsesec--;g=0;}i=sec;j=min;z=hour;display();if(bt==4){ bt=0;e=0;timerinit();break;} }}void timerinit(){ TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;}七、结束语通过单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。
创新,是要我们学会将理论很好地联系实际,并不断地去开动自己的大脑,从为人类造福的意愿出发,做自己力所能及的,别人却没想到的事。
使之不断地战胜别人,超越前人。
同时,更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。
设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。
这个设计过程中,我遇到过许多次失败的考验,就比如,自己对实际生活中的交通秩序的不了解给整个设计带来的困扰,真想要就此罢休,然而,就在想要放弃的那一刻,我明白了,原来结果并不那么重要,我们更应该注重的是这一整个过程。
于是,我坚持了下来。
当然最终,这个设计很成功,主要体现在,这一整个系统,几乎没有参考任何书,程序由自己独立完成,与用8255来制作的交通灯控制系统相比,程序简单易读,结构清楚,最重要的是成本低。
在设计一个系统,除了达到所要求的性能指标以外,成本也是很重要的一个指标。
成本的高低也决定了产品的适用性。
八、参考文献[1] 李朝青.单片机原理及接口技术(简明修订版).杭州:北京航空航天大学出版社,1998[2] 李广弟.单片机基础[M].北京:北京航空航天大学出版社,1994[3] 阎石.数字电子技术基础(第三版). 北京:高等教育出版社,1989[4] 廖常初.现场总线概述[J].电工技术,1999。