基于51单片机的电子表设计
基于51单片机的电子表设计

1 绪论电子表是20世纪50年代才开始出现的新型计时器。
最早的一款电子表被称做“摆轮游丝电子表”,它诞生于1955年。
这种手表用电磁摆轮代替发条驱动,以摆轮游丝作为振荡器,微型电池为能源,通过电子线路驱动摆轮工作。
它的走时部分与机械手表完全相同,被称为第一代电子手表。
1960年,美国布洛瓦公司最早开始出售“音叉电子手表”。
这种手表以金属音叉作为振荡器,用电子线路输出脉冲电流,使机械音叉振动。
它比摆轮式电子手表结构简单,走时更精确,被称为第二代电子手表。
1969年,日本精工舍公司推出了世界上最早的石英电子表。
石英电子表的出现,立刻成为了钟表界主流产品,它走时精确,结构简单,轻松地将一、二代电子表,甚至机械表淘汰出局。
石英表又称“水晶振动式电子表”,因为它是利用水晶片的“发振现象”来计时的。
当水晶受到外部的加力电压,就会产生变形和伸缩反应;如果压缩水晶,便会使水晶两端产生电力。
这样的性质在很多结晶体上也可见到,称为“压电效果”。
石英表就是利用周期性持续“发振”的水晶,为我们带来准确的时间。
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。
从上世纪80年代,由当时的4位、8为单片机,发展到现在的32位300M的高速单片机。
1.1 单片机的介绍单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。
概括的讲:一块芯片就成了一台计算机。
51单片机实现数码管电子表

// 按button1切换时间显示状态, 时:分 <--> 分:秒
// 按button3开关整点报时
void checkButtonTime()
{
if(isButton(0))
{
mode = 0; //调时间
PILOT_LIGHT |= 0xc0; //开启前两个灯
k = 5;
while(k != 0 && (P2 & 0x0f) ==p)
{
k--;
j = 100;
while(j != 0 && (P2 & 0x0f) == p)
{
j--;
if(mode == 0)
displayTime(hour,min,0);
//在进入调时间模式时flag标志是否调过时间
unsigned char flag = 0,tellTime = 1;
//当前时间
unsigned char hour = 5,min = 59,sec = 40;
//起床和熄灯时间
unsigned char getUpH = 6,getUpM = 0,sleepH = 22,sleepM = 30;
PILOT_LIGHT |= 0x0c;
tempP3 = P3;
while(1)
{
displayTime(sleepH,sleepM,0);
if(isButton(0))
{
EA = 1;
mode = 3; //恢复正常走表形式
PILOT_LIGHT &= 0x03;
tempP3 = P3;
基于51单片机的电子表设计

1 绪论电子表是20世纪50年代才开始出现的新型计时器。
最早的一款电子表被称做“摆轮游丝电子表”,它诞生于1955年。
这种手表用电磁摆轮代替发条驱动,以摆轮游丝作为振荡器,微型电池为能源,通过电子线路驱动摆轮工作。
它的走时部分与机械手表完全相同,被称为第一代电子手表。
1960年,美国布洛瓦公司最早开始出售“音叉电子手表”。
这种手表以金属音叉作为振荡器,用电子线路输出脉冲电流,使机械音叉振动。
它比摆轮式电子手表结构简单,走时更精确,被称为第二代电子手表。
1969年,日本精工舍公司推出了世界上最早的石英电子表。
石英电子表的出现,立刻成为了钟表界主流产品,它走时精确,结构简单,轻松地将一、二代电子表,甚至机械表淘汰出局。
石英表又称“水晶振动式电子表”,因为它是利用水晶片的“发振现象”来计时的。
当水晶受到外部的加力电压,就会产生变形和伸缩反应;如果压缩水晶,便会使水晶两端产生电力。
这样的性质在很多结晶体上也可见到,称为“压电效果”。
石英表就是利用周期性持续“发振”的水晶,为我们带来准确的时间。
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。
从上世纪80年代,由当时的4位、8为单片机,发展到现在的32位300M的高速单片机。
1.1 单片机的介绍单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。
概括的讲:一块芯片就成了一台计算机。
基于80C51单片机的智能电表设计

基于80C51单片机的智能电表设计智能电表的推广与使用是一项惠及百姓的民生工程,它大大改善了农村居民用电条件,提高了配电网的自动化水平,对于减少电力能源的消耗具有重大的意义。
采用单片机80C51为核心,同时增加电能计量芯片CS5460A、LCD显示器1602、Wifi通信电路、SD存储卡等芯片,来实现电能的计量与显示、无线通信、数据存储等功能。
用户可以通过电表上的按键来选择是显示用户当前用电量,还是某一时段用电量。
随着计算机技术和通信技术的发展,建筑智能化程度越来越高。
住宅的智能化抄表系统在建筑智能化中是必不可少的。
在我国,对用户的电表仍采用人工抄表的方法。
这种原始的查表方法不仅造成了人力、物力的浪费,打扰居民正常生活,而且其精度差,电量数据需要人为读数不能实时传输。
为了从根本上解决这个问题,因此设计一种基于单片机的智能电表。
电表若以单片机为主体取代传统仪器仪表的常规机械及电子线路,可以容易地将计算技术与测量控制技术结合在一起,形成智能化测量仪表。
这种仪表由计量电路、微处理器、LCD显示器、实时时钟、通信接口及电源等组成,具有电能量计量、信息存储及处理、实时监测、自动控制、信息交互等功能。
1 智能电表的工作原理智能电表的硬件方案框图如图1 所示。
电能表主要由计量、电源管理、存储、显示、按键处理、脉冲输出和通信单元7 个部分组成。
本文的智能电表是以80C51为核心处理器。
除此之外,加入了电能计量芯片CS5460A 和LCD 显示芯片1602,用于用户用电量的计量与显示。
但是,由于CS5460A芯片只能测量瞬时的电量,所以,还需要采用时间芯片DS1302将时间分段,这样电表就可以通过按键,不但可以显示出用户的瞬时用电量,而且还能显示某个时段的用电量。
WiFi通信电路的使用,可以实现智能电表的无线通信,这样查电表的工作人员不用再挨家挨户的登门查询,而是直接接收WiFi信号,就可以了解到用户的用电情况,比较方便、省时。
基于51单片机的电能表的课程设计任务书

基于51单片机的电能表的课程设计本次设计主要是利用单片机和接口技术设计、研制一种新型电能表,可实现峰谷用电量和剩余金额,并用LCD显示。
进一步了解有关单片机、存储电路、IC卡的应用;掌握信号获取、传输、处理及检测的一般方法;综合运用已有的理论和技术,制定设计方案,掌握用电量的测量方法;学会应用存储电路、IC 卡、单片机组建一个实际测量系统,提高设计者的应用能力;通过测量、计算、显示,能运用所学知识并学会查阅有关资料,培养仪器仪表设计的基本技能,为今后的深入学习等奠定基础。
1.1、设计要求参考利用存储电路、IC卡、单片机及其接口技术研制出一种新型电能表,设计内容包括:(1)详细了解所选用的存储电路、IC卡、单片机的工作原理和工作特性;(2)设计合理的计算测量电路;(3)用单片机、IC卡、LCD的显示技术实现测量电路,单片机的指令系统开发相关的应用程序,并对程序作详细的分析和解释。
(4)列出制作该装置的元器件,搭建试验电路,并进行试验验证调试。
(5)撰写详细的设计技术报告。
1.2、方案设计与分析此电能表主要由计量模块、单片机、IC卡模块、LCD显示、EEPROM存储器、实时时钟电路及电源电路等部分组成。
其硬件系统框图如下图1所示。
其中,单片机以AT89C51为电能表的核心控制芯片,它是电能表的“大脑”,外围所有的硬件模块都是在它的控制协调下进行工作的。
单片机通过控制在其中的各种程序,控制着其它硬件模块的工作状态,由它智能化地形成并可靠地提供电能计算、时段判断、费率切换、IC卡读写、电能量控制及负荷控制等功能。
1.3、AT89C51单片机本电能表的硬件设计原则是在低功耗的前提下,实现多功能目的,该芯片功耗低,特别适用于电能表控制线路多、功能全、功耗低的要求。
它能方便地读取IC卡的数据,并控制液晶显示器的工作,同时还可以将电能表的数据存入EEPROM进行永久保存并可通过串口送至表外的数据终端,大大地提高了电能表的智能化功能。
#基于51单片机的简易电子表设计与仿真

智能仪器及使用实验报告项目名称:基于51单片机的简易电子表设计和仿真专业名称:测控技术和仪器班级:测控0901班学生姓名:指导教师:一、任务要求使用Keil uVision编程软件以及ISIS 7 Professional仿真软件制作一个简易电子表,要求具备电子表基本功能(时间显示、时间调整等)。
二、总体设计方案利用AT89C51作为控制以及1602LCD作为显示,通过6个按键实现出入时间设置状态、出入闹铃设置状态、小时位调整、分钟位调整、开关闹铃等功能。
系统的流程图如下:图1-1 系统仿真流程图三、系统硬件1、AT89C51引脚功能说明:AT89C51芯片如图1-2所示图1-2 AT89C51VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏极开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写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位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
单片机电子表设计

目录第1章单片机和数字钟概述 (5)第2章系统总体方案设计 (6)2.1课程设计内容要求 (6)2.2设计思路简要分析 (6)第3章硬件设计 (8)3.1 结构框图 (8)3.2工作原理 (8)3.2主要硬件功能及机构介绍 (10)3.2.1、晶振电路 (10)3.2.2、AT89C51 (10)3.2.3、6位7段共阳显示器 (11)3.2.4、8255芯片 (12)第4章软件设计与调试 (13)4.1 系统软件方案的设计 (13)4.2 系统应用程序设计 (13)4.2.1主程序设计 (13)4.2.2子程序设计 (15)第5章调试和使用说明 (17)第六章总结与体会 (18)参考文献 (20)附录 (34)第1章单片机和数字钟概述单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
我们都知道,设计系统的关键是思路,而系统通常又由各个模块所组成,所以必须先把所要设计系统模块化,再把各个模块组合在一起,实现一个完整的系统。
这就要求我们先要有较扎实的理论知识,特别对芯片的各个管脚功能必须了解,这样才能进行硬件设计。
同时,又必须掌握MCS51的指令功能,通过编程实现其功能,这就能让我们更好地理解《单片机原理及应用》这门课程,也是一种理论在实践中的运用。
如果说我们以前学的都只是些理论,包括c语言,微机原理,c++,微机接口,protel,单片机,那么这次的课程设计就是一个贯穿多学科的综合性实践!单片机自20世纪70年代问世以来,以极其高的性价比受到人们的重视和关注,所以应用很广,发展很快。
单片机的优点是体积小、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。
数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。
数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。
基于51单片机的电子表设计

目录目录 (1)第1章概述 (1) (1)第2章设计思路及框图 (1) (1) (2)第3章系统的硬件设计 (2) (2) (3) (3) (4) (4)第4章电路设计原理图 (4) (4)第5章程序设计 (5) (5) (7)第6章系统的验证及调试 (43) (43) (43) (44)第7章总结 (45)第8章参考文献 (45)第1章概述单片机集成度高、功能强、可靠性高、体积小、功耗地、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,几乎“无处不在,无所不为”。
单片机的应用领域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、PC机外围以及网络通讯等广阔领域。
单片机有两种基本结构形式:一种是在通用微型电脑中广泛采用的,将程序存储器和数据存储器合用一个存储器空间的结构,称为普林斯顿结构。
另一种是将程序存储器和数据存储器截然分开,分别寻址的结构,一般需要较大的程序存储器,目前的单片机以采用程序存储器和数据存储器截然分开的结构为多。
本课题讨论的方波发生器的核心是目前应用极为广泛的 51系列单片机。
利用AT89C51单片机定时器完成计时功能,定时器0计时中断程序每隔0.01s中断一次并当作一个计数,设定定时1秒的中断计数初值为0,每中断一次中断计数初值加1,当加到100时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。
为了将时间在6位LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。
由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了各种显示。
第2章设计思路及框图设计思路针对要实现的功能,采用AT89S51单片机进行设计,AT89S51 单片机是一款低功耗,高性能CMOS8位单片机,第一,熟悉AT89S51单片机,在编程之前必须了解硬件结构尤其是各引脚的用法,以及内部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 绪论电子表是20世纪50年代才开始出现的新型计时器。
最早的一款电子表被称做“摆轮游丝电子表”,它诞生于1955年。
这种手表用电磁摆轮代替发条驱动,以摆轮游丝作为振荡器,微型电池为能源,通过电子线路驱动摆轮工作。
它的走时部分与机械手表完全相同,被称为第一代电子手表。
1960年,美国布洛瓦公司最早开始出售“音叉电子手表”。
这种手表以金属音叉作为振荡器,用电子线路输出脉冲电流,使机械音叉振动。
它比摆轮式电子手表结构简单,走时更精确,被称为第二代电子手表。
1969年,日本精工舍公司推出了世界上最早的石英电子表。
石英电子表的出现,立刻成为了钟表界主流产品,它走时精确,结构简单,轻松地将一、二代电子表,甚至机械表淘汰出局。
石英表又称“水晶振动式电子表”,因为它是利用水晶片的“发振现象”来计时的。
当水晶受到外部的加力电压,就会产生变形和伸缩反应;如果压缩水晶,便会使水晶两端产生电力。
这样的性质在很多结晶体上也可见到,称为“压电效果”。
石英表就是利用周期性持续“发振”的水晶,为我们带来准确的时间。
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。
从上世纪80年代,由当时的4位、8为单片机,发展到现在的32位300M的高速单片机。
1.1 单片机的介绍单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。
概括的讲:一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
它最早是被用在工业控制领域。
1.2单片机应用的特点●控制功能和可靠性高单片机是为了满足工业控制而设计的,所以实时控制功能特别强,其CPU 可以对I/O接口直接进行操作,位操作能力更是其它计算机无法比拟的,另外,由于CPU,存储器,以及I/O接口集成在同一芯片内,各部件之间的连接紧凑,数据在传送时受到干扰小,且不易受环境条件的影响,所以单片机的可靠性非常高。
●体积小,价格低,易于产品化每一片单片机既是一台完整的微型计算机,对于批量的专用场合,一方面可以在众多的单片机品种间进行匹配选择,同时还可以专门进行芯片设计,使芯片功能与应用具有良好和对应关系。
对单片机产品的引脚封装方面,有的单片机引脚已减少到8个或更少,从而使应用系统的印刷板减小,按插件减少,安装简单。
在现代的各种电子器件中,单片机具有良好的性能价格比,这正是单片机得以广泛应用的重要原因。
1.3单片机的应用领域(1)能仪器仪表单片机用于各种仪表,一方面提高了仪表仪器的使用功能和精度,使仪器仪表智能化,同时还简化了仪器仪表的硬件结构,从而可以方便地完成仪器仪表的升级代换。
如各种智能化电气测量仪表,智能传感器等。
(2)机电一体化机电一体化产品是集机械技术,微电子技术,自动化技术和计算机技术于一体,具有智能化特征的各种机电产品。
单片机在机电一体化产品的开发中可以发挥巨大的作用。
典型的产品如:机器人,数控机床,自动包装机,点钞机,医疗设备,打印机,传真机,复印机等。
(3)实时工业控制单片机还可以用于各种物理量的采集与控制。
电流,电压,温度,液位,流量等物理参数的采集和控制均可以利用单片机方便地实现。
在这类系统中,利用单片机作为系统控制器,可以根据被控对象的不同特征采用不同的智能算法,实现期望的控制指标,从而提高生产效率和产品质量。
典型应用如电动机转速控制,温度控制,自动生产线等。
(4)分布系统的前端模式在较复杂的工业系统中,经常要采用分布式控制系统完成大量的分布参数的采集。
在这类系统中,采用单片机作为分布式系统的前端采集模块。
系统具有运行可靠,数据采集方便灵活,成本低廉等一系列有点。
(5)家用电器家用电器是单片机的又一重要应用领域,前景十分广泛如空调,电冰箱,洗衣机、电饭煲,高档洗浴设备,高档玩具。
另外,交通领域中,汽车,火车,飞机,航天等均有单片机的广泛应用。
1.4 51系列单片机51单片机是对目前所有兼容Intel 8031指令系统的单片机的统称。
该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为目前应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。
目前很多公司都有51系列的兼容机型推出,在目前乃至今后很长的一段时间内将占有大量市场。
51单片机是基础入门的一个单片机,还是应用最广泛的一种。
需要注意的是52系列的单片机一般不具备自编程能力。
当前常用的51系列单片机主要产品有:*Intel 的:80C31、80C51、87C51,80C32、80C52、87C52等;*ATMEL的:89C51、89C52、89C2051等;*Philips、华邦、Dallas、Siemens(Infineon)等公司的许多产品。
目前,国产宏晶STC单片机以其低功耗、廉价、稳定性能,占据着国内51单片机较大市场。
1.5 硬件设计当编写自己的程序信手拈来、阅读别人的程序能够发现问题的时候,说明你的单片机编程水平相当不错了。
接下来就应该研究的硬件了。
硬件设计包括电路原理设计和PCB板设计。
学习做硬件要比学习做软件麻烦,成本更高,周期更长。
但是,学习单片机的最终目的是做产品开发----软件和硬件相结合形成完整的控制系统。
所以,做硬件也是学习单片机技术的一个必学内容。
电路原理设计涉及到各种芯片的应用,而这些芯片外围电路的设计、典型应用电路和与单片机的连接等在芯片数据手册(DATASHEET)都能找到答案,前提是要看得懂全英文的数据手册。
否则,照搬别人的设计永远落在别人的后面,你做的产品就没有创意。
电子技术领域的第一手资料(DATASHEET)都是英文,从第一手资料里你所获得的知识可能是在教科书、网络文档和课外读物等所没有的知识。
虽然有些资料也都是在DATASHEET的基础上撰写的,但内容不全面,甚至存在翻译上的遗漏和错误。
当然,阅读DATASHEET需要具备一定的英文阅读能力,这也是阻碍单片机学习者晋级的绊脚石。
良好的英文阅读能力能让你在单片机技术知识的海洋里自由遨游。
做PCB板就比较简单了。
只要懂得使用Protel软件或 AltimDesigner软件就没问题了。
但要想做的板子布局美观、布线合理还得费一番功夫了。
娴熟的单片机C语言编程、会使用Protel软件或 AltimDesigner软件设计PCB板和具备一定的英文阅读能力,你就是一个遇强则强的单片机高手了。
1.6 芯片简介AT89C51单片机引脚图如下:图1.1 AT89C51引脚图MCS-51单片机是标准的40引脚双列直插式集成电路芯片其各引脚功能如下:VCC:+5V电源。
VSS:接地。
RST:复位信号。
当输入的复位信号延续两个机器周期以上的高电平时即为有效,用完成单片机的复位初始化操作。
XTAL1和XTAL2:外接晶体引线端。
当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。
P0口:P0口为一个8位漏极开路双向I/O口,当作输出口使用时,必须接上拉电阻才能有高电平输出;当作输入口使用时,必须先向电路中的锁存器写入“1”,使FET截止,以避免锁存器为“0”状态时对引脚读入的干扰。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口它不再需要多路转接电路MUX;因此它作为输出口使用时,无需再外接上拉电阻,当作为输入口使用时,同样也需先向其锁存器写“1”,使输出驱动电路的FET截止。
P2口:P2口电路比P1口电路多了一个多路转接电路MUX,这又正好与P0口一样。
P2口可以作为通用的I/O口使用,这时多路转接电路开关倒向锁丰存器Q 端。
P3口:P3口特点在于,为适应引脚信号第二功能的需要,增加了第二功能控制逻辑。
当作为I/O口使用时,第二功能信号引线应保持高电平,与非门开通,以维持从锁存器到输出端数据输出通路的畅通。
当输出第二功能信号时,该位应应置“1”,使与非门对第二功能信号的输出是畅通的,从而实现第二功能信号的输出,具体第二功能如表1所示。
2设计方案2.1 主程序设计思路通过单片机内部的计数/定时器,采用软件编程来实现时钟计数,一般称为软时钟,这种方法的硬件线路简单,系统的功能一般与软件设计相关,通常用在对时间精度要求不高的场合。
采用时钟芯片,它的功能强大,功能部件集成在芯片内部,具有自动产生时钟等相关功能,硬件成本相对较高;软件编程简单,通常用在对时钟精度要求较高的场合。
先对显示单元和定时器/计数器初始化,然后重复调用数码管显示模块和按键处理模块,当有按键按下时,则转入相应的功能程序。
2.2 定时器/计数器T0中断服务程序T0用于计时,选中方式一,重复定时,定时时间设为50ms,定时时间到则中断,在中断服务程序中用一个计数器对50ms计数,计20次则对秒单元加一。
秒单元加到60则对分单元加一,同时秒单元清0;分单元加到60则对时单元加一,同时分单元清0;时单元加到24则对时单元清0,标志一天时间计满。
在对各单元计数的同时,把他们的值放到存储器单元的指定位置。
2.3 示意图图2.1 程序示意图2.4 按键处理按键设置为:如果没有按键吗,则时钟正常走时。
当按下K0键时,进入调分状态,时钟停止走动;按K1和K2按键可以进行加一和减一操作;继续按K0键可以分别进行分和小时的调整;最后按K0键启动计时。
3 汇编语言程序ORG 0000HLJMP STARTORG 000BHLJMP INIT0START: MOV R0,#70H ;主程序开始MOV R7,#0CHINIT: MOV @R0,#00HINC R0DJN Z R7,INITMOV 72H,#10 ;对连字符进行装值MOV 75H,#10MOV TMOD,#01H ;选择定时器/计数器T0的方式1MOV TL0,#0B0H ;对低位赋初值MOV TH0,#03CH ;高位赋初值SETB EASETB ET0SETB TR0START1: LCALL SCANLCALL KEYSCANSJMP START1DL1MS: MOV R6,#14H ;延时1子程序DL1: MOV R7,#19HDL2: DJNZ R7,DL2DJNZ R6,DL1RETDL20MS: ACALL SCAN ;延时20ms子程序ACALL SCANACALL SCANRET ;数码管显示程序开始SCAN: MOV A,78HMOV B,#0AHDIV AB ;时间秒的十位送给A,时间秒的个位送BMOV 71H,A ;时间秒要显示的十位MOV 70H,B ;时间秒要显示的个位MOV A,79HMOV B,#0AHDIV AB ;时间分的十位送给A,时间分的个位送BMOV 74H,A ;时间分要显示的十位送地址MOV 73H,B ;时间分要显示的个位送地址MOV A,7AHMOV B,#0AHDIV AB ;时间时的十位送给A,时间时的个位送BMOV 77H,A ;时间时显示的十位送地址MOV 76H,B ;时间时要显示的个位送地址MOV R1,#70HMOV R5,#0FEHMOV R3,#08HSCAN1: MOV A,R5 ;数码管的显示程序MOV P2,AMOV A,@R1MOV DPTR,#TABMOVC A,@A+DPTR ;对字段表取值显示MOV P0,AMOV A,R5LCALL DL1MSINC R1MOV A,R5RL AMOV R5,ADJNZ R3,SCAN1MOV P2,#0FFHMOV P0,#0FFHRET ;"0~9"和"-"的字段表TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH;定时/计数器T0中断程序INIT0: PUSH ACCPUSH PSWCLR ET0CLR TR0MOV TL0,#0B0HMOV TH0,#03CHSETB TR0INC 7BHMOV A,7BHCJNE A,#14H,OUTT0 ;50ms是否到20次,没有到就继续执行50ms的延时MOV 7BH,#00INC 78HCJNE A,#3CH,OUTT0 ;一秒的延时是否计到60次,没有就继续执行MOV 78H,#00INC 79HMOV A,79HCJNE A,#3CH,OUTT0MOV 79H,#00INC 7AHMOV A,7AHCJNE A,#18H,OUTT0 ;60分钟的延时是否计到24次,没有就继续执行程序MOV 7AH,#00OUTT0:SETB ET0 ;启动定时器T0POP PSWPOP ACCRETI;按键处理程序KEYSCAN:CLR EAJNB P1.0,KEYSCAN0 ;P1.0有按键按下则跳转到子程序JNB P1.1,KEYSCAN1 ;P1.1有按键按下则跳转到子程序JNB P1.2,KEYSCAN2 ;P1.2有按键按下则跳转到子程序KEYOUT: SETB EARETKEYSCAN0:LCALL DL20MS ;20ms的延时消抖JB P1.0,KEYOUTWAIT0: JNB P1.0,WAIT0 ;判断按键是否松手,松手就往下执行程序INC 7CHCLR ET0CLR TR0CJNE A,#03H,KEYOUT ;按下第一次和第二次对时、分选定MOV 7CH,#00 ;按下第三次时就启动计时SETB ET0SETB TR0SJMP KEYOUTKEYSCAN1:LCALL DL20MS ;按键加一的程序JB P1.1,KEYOUTWAIT1: JNB P1.1,WAIT1MOV A,7CHCJNE A,#02H,KSCAN11 ;如果功能键按下则对时加一调整INC 79HCJNE A,#3CH,KEYOUT ;如果加到60则清零MOV 79H,#00SJMP KEYOUTKSCAN11:INC 7AH ;如果功能键是按下第二次则对分进行加一调整MOV A,7AHCJNE A,#18H,KEYOUTMOV 7AH,#00SJMP KEYOUTKEYSCAN2:LCALL DL20MS ;延时消抖程序JB P1.2,KEYOUTWAIT2: JNB P1.2,WAIT2 ;判断是否放开按键MOV A,7CHCJNE A,#02H,KSCAN21 ;如果功能键是按下第一次对时进行减一MOV A,79HCJNE A,#0FFH,KEYOUTMOV 79H,#3BHSJMP KEYOUTKSCAN21:DEC 7AH ;如果功能键是按下第二次则对分进行减一CJNE A,#0FFH,KEYOUTMOV 7AH,#17HSJMP KEYOUTEND4 硬件系统4.1硬件概况硬件系统包括系统的硬件主要包括单片机芯片,数码管显示,按键开关电路等,其运作方式如下图:图4.1 单片机时钟的基本框图片机系统中的时钟是一切与时间有关过程的运行基础,在实时控制系统中尤其如此。