河南理工大学四路定时器程序--王炯

合集下载

作息时间控制器

作息时间控制器

河南理工大学课程设计报告基于单片机的数字钟设计姓名:学号:专业班级:指导老师:张宏伟所在学院:成人教育学院2013年6月日摘要本设计是基于AT89S52单片机的基本功能实现作息时间控制功能,采用了4位七段数码管,扫描键盘,蜂鸣器和相应的电路对当前时间以及定时时间的控制,并在设定的时间进行提醒。

本设计使用单片机内的定时器实现计时功能,利用按键分别控制切换当前时间和定时时间、小时+1、分钟+1以及关闭蜂鸣器。

试验采用了一个七段LED数码管显示时间,采用一个蜂鸣器进行到时提醒,一个发光二极管闪烁计秒。

本设计由2个30p的电容和一个11.0592MHz的晶振构成时钟电路,由一个按键和10uF电容构成上电加按钮复位,单片机、时钟电路和复位电路共同构成单片机最小系统。

数码管采用共阴极接法由P0口输出字形,P2口中的高四位输出段选。

P1.0~1.3接入按键对时间按进行操作,由P1.4连接发光二极管闪烁读秒,9013驱动蜂鸣器并由P1.5进行控制。

通过对硬件电路的设计和PROTEUS的仿真,本设计基本实现了:1. 使用4位七段显示器来显示现在的时间,显示格式为“时分”,由LED闪动作为秒计数表示。

2. 可以设定作息时间,并进行到时提示。

3. 能够根据预先设定好的作息时间表自动启停控制电路,完成对外部设备的实时控制。

4. 可以设置现在的时间及显示定时设置时间。

由于单片机的集成度高、功能强、通用性好、体积小巧、重量轻、能耗低、价格便宜、可靠性高、抗干扰能力强和使用方便,使单片机迅速得到了推广应用,所以学好单片机对我们以后的学习和工作有着至关重要的作用。

摘要 (1)1.概述 (3)1.1单片机的基本概念 (5)1.2设计任务及要求 (5)1.3设计思路 (5)2.系统总体方案及硬件设计 (6)2.1系统的总体设计方案 (6)2.2各模块功能介绍 (6)2.3各部分电路的硬件设计 (7)2.3.1时钟电路 (7)2.3.2复位电路 (8)2.3.3按键控制电路 (8)2.3.4读秒指示电路 (9)2.3.5提醒模块电路 (9)2.3.6显示模块电路 (10)3.软件设计 (10)3.1程序的总流程图 (10)3.2按键功能子程序流程图 (11)3.3参数计算 (11)4.PROTEUS仿真 (12)4.1仿真过程 (12)5.课程设计体会 (14)参考文献 (16)附录一程序 (17)附录二PROTEUS图 (23)1.概述1.1单片机的基本概念单片机是一种特殊的计算机,它是在一块半导体芯片上集成了CPU、存储器RAM、ROM以及输入输出接口电路,这种芯片习惯上被称为单片微型计算机,简称单片机。

基于PLC的自动售货机控制系统设计论文

基于PLC的自动售货机控制系统设计论文

摘要随着科技的不断发展,PLC在工程中的应用大家有目共睹,PLC在各个领域已占得一席之地,并将有更好的发展。

我国人口数量庞大,自动售货机在人们的生活中扮演越来越重要的角色,从长远来看其具有广阔的发展空间。

本次设计的自动售货机为饮料自动售货机,贩卖的商品性质明确,适于放置在短时间人口流动比较大的地方,比如餐厅。

首先通过与单片机和液压等控制的对比,确定采用PLC来控制自动售货机,然后分析自动售货机的结构和工作原理,明白自动售货机的贩卖过程,以便为硬件的选择做准备。

通过自动售货机的功能分析作出硬件框图,根据硬件框图选择所需要的PLC、货币识别器、电动机和接触器。

根据I/O分配表对PLC选型,并画出外部接线图。

根据控制系统流程图编写符合自动售货机功能的程序。

如果购物后有剩余金额,则可按退币按钮退币。

梯形图的编写通过GX Developer来完成,完成梯形图后可以在三菱PLC仿真软件 GX Simulator 6c进行调试和仿真。

最后用MCGS作出组态效果。

组态仿真图中自动售货机包括按钮、指示灯、投币口、取物口、退币口等部分。

关键词:自动售货机;PLC;梯形图; MCGSABSTRACTWith the development of science and technology, the application of PLC in engineering everybody be obvious to people, PLC has occupied a space for one person in every field, and will have a better development. Because of the large number of population, the vending machine is playing a more and more important role in people's life, in the long run it has broad space for development. The design of the automatic vending machine for beverage vending machine, the nature of the goods sold in the clear, adapted to be placed in a short time population flow of relatively large areas, such as restaurant. First, by comparing with the single chip microcomputer and hydraulic control, and adopt PLC to control the vending machine, then analyzes the structure and working principle of automatic vending machines selling process, understand the vending machine, to prepare for the selection of hardware. Through vending machine function analysis to make the hardware block diagram, according to the hardware block diagram, select the desired PLC currency recognizer, motor and contactor. According to the I/O distribution list on the PLC selection, and draw the external wiring diagram. According to the flow chart of control system prepared with vending machine program. If the shopping after the remaining amount, then press the coin button coin. Trapezoidal chart compilation done by GX Developer, complete ladder diagram can be debugged and simulated in Mitsubishi PLC simulation software GX Simulator 6c. Finally, MCGS made the configuration effect. Configuration simulation diagram of the vending machine comprises a button, indicator light, the slot, fetching port, a coin refund part.Keywords: vending machine; PLC; ladder diagram; MCGS目录1 绪论51.1 自动售货机的研究背景与意义51.2 研究自动售货机的目的61.3 本设计研究的容62 自动售货机的功能分析72.1 自动售货机主控单元的确定72.1.1 PLC的部分功能72.1.2 确定自动售货机的主控单元为PLC82.2 自动售货机的售货方法92.3 自动售货机的空间结构102.4 自动售货机的功能102.5 自动售货机的购物使用流程123 自动售货机的硬件部分133.1 控制电路硬件组成框图133.2 确定自动售货机使用的PLC类型143.3 货币识别器选型163.3.1 硬币的识别原理173.3.2 纸币的识别原理173.4 自动售货机电机与其它选择184 自动售货机的软件设计204.1 自动售货机的控制系统流程图204.2 自动售货机的程序部分214.2.1 程序中用到的部分指令214.2.2 自动售货机的控制程序224.3 程序的调试部分304.3.1 GX Developer304.3.2 程序调试304.4 基于MCGS组态的自动售货机仿真324.4.1 建立组态画面324.4.2 设置各元件的参数33结论38参考文献39致39附录系统硬件连接图411 绪论1.1 自动售货机的研究背景与意义自动售货机最早出现在20世纪60年代的欧美,当时在美国的地铁系统中。

河南理工大学起重机的plc改造设计

河南理工大学起重机的plc改造设计

1 绪论1.1 传统桥式起重机控制系统存在的问题桥式起重机作为物料搬运机械在整个国民经济中有着十分重要的地位。

经过几十年的发展,我国桥式起重机制造厂和使用部门在设计、制造工艺、设备使用维修、管理方面,不断积累经验,不断改造,推动了桥式起重机的技术进步。

但在实际使用中,结构开裂仍时有发生。

究其原因是频繁的超负荷作业及过大的机械振动冲击所引起的机械疲劳。

因此,除了机械上改进设计外,改善交流电气传动,减少起制动冲击,也是一个很重要的方面。

由于传统桥式起重机的电控系统采用转子回路串接电阻进行有级调速,致使机械冲击频繁,振动剧烈,因此电气控制上应采用平滑的无级调速是解决问题的有效手段。

传统的起重机驱动方案一般采用:(1)直接起动电动机;(2)改变电动机极对数调速;(3)转子串电阻调速;(4)涡流制动器调速;(5)可控硅串级调速:(6) 直流调速。

前四种方案均属有级调速,调速范围小,无法高速运行,只能在额定速度以下调速:起动电流大,对电网冲击大;常在额定速度下进行机械制动,对起重机的机构冲击大,制动闸瓦磨损严重;功率因数低,在空载或轻载时低于0.2—0.4,即使满载也低于0.75,线路损耗大。

可控硅串级调速虽各服了上述缺点,实现了额定速度以下的无级调速,提高了功率因数,减少了起制动冲击,价格较低,但目前串级调速产品的控制技术仍停留在模拟阶段,尚未实现控制系统具有很好的调速性能和起制动性能,很好的保护功能及系统监控功能,所以有时采用直流电动机,而直流电动机制造工艺复杂,使用维护要求高,故障率高。

1.2 桥式起重机电气传动技术的国内外发展概况电气调速控制的方法很多,对直流驱动来讲60年代采用发电机一电机系统。

从控制电阻分级控制,到交磁放大控制,到可控硅SCR 激磁控制,到主回路可控硅即晶闸管整流供电系统。

随着电子技术的飞速发展,集成模块出现,计算机、微处理器应用,因此控制从分立组成模拟量控制发展至今天的数字量控制。

河南理工大学plc教程课件 第5章2

河南理工大学plc教程课件 第5章2

通用加计数器:C0~C99(100点);
设定值区间为K1~K32767

停电保持加计数器:C100~C199);
设定区间为K1~K32767
特点:停电保Biblioteka 计数器在外界停电后能保持当前计数值不变,恢复来电时能累计计 数。
通用加计数器工作原理
计数信号每接通一次(上升沿到来),加计数器 的当前值加1,当前值达到设定值时,计数器触点 动作;复位信号接通时计数器复位。 计数器处于复位状态时,当前值清0,触点复位, 且不计数。
③特殊辅助继电器
M8000~M8255(256点)
系统规定了专门用途,使用时查阅产品说明书 即可。 线圈由PLC自行驱动,用户可直接利用触点。
如:M8000(运行监控),M8002(初始脉 冲),M8013(1s时钟脉冲)等
用户驱动线圈后,PLC作特定的动作。
如:M8033指PLC停止时输出保持,M8034指 PLC禁止全部输出
知识准备2
FX系列PLC的计数器
1. 功能:

对内部元件X、Y、M、S、T、C的信号进行 计数。
2. 结构:
线圈、内部触点、设定值寄存器(字)、当前值 寄存器(字) 。
3.设定值

等于计数脉冲的个数。用常数K设定 字母C+(十进制)地址编号 C0 ~ C255
4. 定时器地址编号
16位低速计数器
主控触点指令的使用
梯 形 图
实训子项目4 液体搅拌器控制系统的整体汇总设计
【项目分析】
本项目的整个工作过程是自动控制,因而只有一个输入设 备,就是整个系统的自动控制起动按钮。输出设备比较多, 需要理清思路,正确选择,然后绘制整个系统的I/O接线 图; 本项目有许多指示信号灯,可以把他们作为输入输出设备 分配I/O地址,也可以不分配单独的地址,把他们与相应 的输入输出设备并联处理; 本项目的电磁阀比较多,要注意起动的先后顺序和时间要 求。

四路抢答器设计报告

四路抢答器设计报告

四路抢答器设计报告专业:物理学班级:09物理学2班姓名:xxx 学号:1226姓名:xxx 学号:1251姓名:xxx 学号:1225姓名:xxx 学号:1208姓名:xxx 学号:1231指导老师: xx日期:2012年6月12日摘要抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。

本设计是以四路抢答为基本理念,考虑到依需要设定限时和记数的原理,利用AT89C52单片机以及外围接口实现的抢答系统,利用单片机的定时器/ 计数器定时和记数的原理,将软件、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。

用开关做键盘输出,蜂鸣器给出声响提示。

同时系统能够实现:抢答开始后,若有选手先按动抢答按钮,该选手编号就会在显示器上显示同时蜂鸣器会发出音响,而且禁止其他选手抢答。

优先抢答的选手的编号一直保持到主持人将系统清零为止。

抢答器同时具有限时抢答功能。

当主持人按下按钮后,定时器开始倒计时,并显示倒计时时间(15s)。

如果时间已到,无人抢答,则本次抢答无效。

本次实验巧妙运用单片机技术,大大的减少了电路的复杂性。

关键词:AT89C52 数码管抢答器计时目录一、设计任务和要求 (4)二、方案的选择的论证 (5)三、原理图 (7)四、电路图及工作原理 (9)五、组装与调试 (10)六、电路的特点 (12)七、元器件列表 (13)八、参考文献 (13)九、感想和体会 (13)十、附录 (17)一、设计任务及要求1、设计任务设计一台可供4名选手参加比赛的智力竞赛抢答器。

由主持人控制抢答开始开关和系统清零开关,用数码管抢答倒计时间,由“15”倒计到“00”时,无人抢答,蜂鸣器给出响声提示。

选手抢答时,数码管上显示选手组号,同时蜂鸣器给出响声提示,倒计时停止。

2、设计要求1)抢答器同时供4名选手,用1、2、3、4表示4名选手,选手各用一个抢答按钮,按键的编号与选手的编号相对应。

2)主持人控制两个按钮,作用是整个系统的清零以及抢答的开始。

HB40TA-52W 四路智能时间控制器 使用说明

HB40TA-52W 四路智能时间控制器 使用说明

HB40TA-52W四路智能时间控制器使用说明一、用途与性能积20年时控器生产经验、经20年的更新换代。

最新推出的HB40XX高级系列程控器采用进口最新型的单片低功耗、高性能专用微电脑时控芯片,经精心设计、选用优质进口元件制造,具有极高的可靠性。

专用于学校、机关、厂矿实现自动打铃及自动开关电灯、电器、广播等设备◆四独立控制,每路每天最多可存入108次打铃或开、关信息,掉电100年不丢失。

◆打铃或开、关控制点在24小时内的任意设定,最短间隔1分钟。

日循环/周循环任设。

◆第1路可设为打铃或开/关,打铃可输出16S连响和8秒间响两种铃声以区别预备与上课铃。

◆程序自动检查、修改功能(快速显示所设定的时间点、随意增补、删除或修改设定)。

◆交直两用、自动转换(1路为有电控制响铃,停电后自动按作息时间响音乐,声音宏亮)。

◆内置可充电池,自动充电,程序、时间不受停电影响。

◆使用寿命:15年以上。

◆ABS机壳、PVC 面板,永不生锈。

◆数码显示、发光指示、按键操作。

◆走时、控制精度每日小于0。

5秒。

◆控制功率:1KW(大于1KW时可配接交流接触器)。

机内装有可充电池及自动充电电路,第一次使用或闲置30天以上再用时,电池已无电,需先将控制器插上电源24小时以上充电。

充足电的电池可保证在连续停电30天时、时间及程序不变。

二、安装试验●安装说明注:不正确的安装有可能导致控制器被烧毁。

请认真分析并弄懂外线安装图。

当第1路设为控制打铃时,交直两用,请按如下步骤安装:1. 供电正常的学校:请使用学校原有普通交流电铃(或到当地县市交电商店购置)。

2. 长期无电的学校:请使用普通号筒式高音喇叭(以5-10W 8Ω较佳)。

喇叭采用8-10节1号电池(节数多,音量大)或12V蓄电池供电,切忌用其它电源。

喇叭电池盒自购或自制。

喇叭外线采用优质铜芯线,长度最好不超过10米(过长声音小)。

3. 供电异常的学校:请同时安装喇叭和电铃。

有电响铃,停电响喇叭,全自动转换。

基于AT89S52的四路抢答器设计文档

摘要随着现代娱乐节目及其它游戏环节的需要,也为了完善节目的紧张气氛和观众的互动,就出现了多路抢答器。

很多人都抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。

抢答器的出现给人们带来极大的方便,它能准确无误的从若干名参赛选手中确定出最先抢答者,并且有显示,生效等功能。

本设计是以四路抢答为基本理念。

考虑到依需设定限时回答的功能,利用AT89S52单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和计数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。

关键词:抢答器;AT89S52ABSTRACTWith modern entertainment programs and other game loop,also need in order to improve the program of tension and the audience interaction.Many people are scare-answering device as a tool, has been widely applied in all kinds of intelligence and knowledge competition situation.The emergence of the vies to answer first people brings great convenience .It can accurate from several of participating in the first vies to answer first determine.And have a show,sound effects and other functions.This design is 4 vies for basic ideas. Considering according to need to set limit to answer function, using AT89S52 and periphery interface implementation of scare-answering system, of the microcontroller timer/counter timing and numeration principle, software and hardware organically, and makes the system can correctly to the time, at the same time making digital tube can properly shows the time.Key words:scare-answering device;AT89S52目录1 设计课题任务、功能要求说明及方案介绍 (1)1.1 设计课题任务 (1)1.2 功能要求说明 (1)1.3 设计总体方案介绍及原理说明 (1)2 硬件系统的设计 (3)2.1 硬件系统各模块功能简要介绍 (3)2.2 元器件清单 (3)3 软件系统的设计 (5)3.1 使用单片机资源的情况 (5)3.2 软件系统各模块功能简要介绍 (5)3.3 软件系统程序流程框图 (5)3.4 软件系统程序清单 (9)4 设计结论、实际结果、误差分析、教学建议 (20)4.1 设计结论 (20)4.2 设计实物使用说明 (20)4.3 设计课题的误差分析 (20)4.4 设计体会 (20)4.5 教学建议 (21)结束语 (22)致谢 (23)参考文献 (24)附录 (25)1 设计课题任务、功能要求说明及方案1.1 设计课题任务设计一个具有特定功能的抢答器。

四路无线遥控开关系统的设计与实现文献综述

单位代码01学号分类号密级文献综述四路无线遥控开关系统的设计与实现院(系)名称信息工程学院专业名称学生姓名指导教师201年 3 月25日黄河科技学院毕业论文(文献综述)第 1 页四路无线遥控开关系统的设计与实现摘要介绍一种四路无线电遥控开关的设计方法,详细阐述电路组成结构和工作原理。

该方法采用芯片组PT2262/2272进行编解码,PT2262与无线发射模块HS101连接构成遥控发射系统,PT2272与无线接收模块HS201连接构成接收系统。

该系统通过发射接收无线电波实现开关的无线遥控。

其装置具有体积小、功耗低、成本低,遥控距离可达100 m 以上。

关键词:无线电遥控;编解码芯片组;无线发射接收模块;PT2262/2272黄河科技学院毕业论文(文献综述)第 2 页l 引言由于新型大规模遥控集成电路的不断出现,使遥控技术有了日新月异的发展。

目前在无线遥控领域常用的遥控方式主要有超声波遥控、红外线遥控、无线电遥控等。

由于无线电波是由发射点向四面八方传播,可以穿过阻挡物,而且可以传播到很远的距离,因此他的控制可以在很大区域和空间内实现,成为遥控的主要方式。

选用集成编解码芯片和发射接收模块设计并制作四路无线遥控开关,该设计总体电路简单、易于制作,且工作稳定可靠。

2 无线遥控开关原理无线遥控开关由发射系统和接收系统2大部分组成,系统组成结构框图如图1所示。

开关系统[1]的工作原理是:首先通过按键电路输入所需控制电路的位号,同时启动编码电路产生带有地址编码信息和开关状态信息的编码脉冲信号,再通过无线电发射电路将该信号发射出去。

而无线电接收电路将接收到的编码脉冲信号通过解码电路进行编码地址确认,确认是否为本遥控开关系统地址。

如果是,则解码电路产生相应的输出信号控制继电器电路,开关电路动作;如果不是,则解码电路不解码,继电器电路不响应,开关电路无任何动作。

(a)无线遥控空发射器(b)无线遥控接收器图1无线遥控开关系统框图3 无线发射系统发射系统主要由按键电路、编码电路、无线电发射电路组成。

51单片机4路抢答器的原理及C语言源程序

51单片机4路抢答器的原理及C语言源程序单片机,当然不只是51,51单片机是一种稍通用型的单片机,通过I/O口的定义,可以实现多种控制功能。

抢答器,原理:如果为四路,当其中任一路控下后,其他几路即失效,结果为第一次按下的,可以用数码管或是LED灯来显示,当然这里只是讲原理与编程,具体可以根据抢答器路数及显示方式更改程序即可。

源程序如下:/*用的是AT89S52开发板,独立按键接口如下,就用这四路。

先按下的用LED灯来显示,对应第一个到第四个LED灯,其他再按无效,如果想再次实现,可手动复位单片机*/#include <reg52.h>sbit key1=P3^0; //定义按键,根据需要连接线路,如独立按键(4路)sbit key2=P3^1;sbit key3=P3^2;sbit key4=P3^3;/*void delay(unsigned int cnt) //如果有抖动或是干扰,可以用个小延时去抖{while(--cnt);}*/void main(){bit Flag;while(!Flag){if(!key1){P1=0xFE;Flag=1;} /*LED灯来显示按下的键,第一个灯,我这里是8位LED灯,即:0111 1111,反过来读数为:1111 1110 即:0xFE *,P1口对应LED灯,给P1赋值/else if(!key2){P1=0xFD;Flag=1;} //第二个灯亮else if(!key3){P1=0xFB;Flag=1;} //第三个灯亮else if(!key4){P1=0xF7;Flag=1;} //第四个灯亮,意味着第四路首先按下}while(Flag); //可以再加个I/O,控制Flag,这样初始化,继续抢答,还可以设计按下时的声音}以上程序测试只能测试一次,如再想测试,只能手动复位单片机。

当然,可以根据此原理,设计出功能强大的抢答器。

河南理工大学《供电技术》实验指导书汇总

《供电技术》实验指导书河南理工大学电气工程学院2014年3月3日第三章实验内容及步骤实验一电磁型电流继电器实验一、实验目的熟悉DL型电流继电器的实际结构、工作原理、基本特性;掌握动作电流值及其相关参数的整定方法。

二、预习与思考1、电流继电器的返回系数为什么恒小于1?2、动作电流(压)、返回电流(压)和返回系数的定义是什么?3、实验结果如返回系数不符合要求,你能正确地进行调整吗?4、返回系数在设计继电保护装置中有何重要用途?三、原理说明DL—20c系列电流继电器用于反映发电机、变压器及输电线路短路和过负荷的继电保护装置中。

DL—20c系列继电器的内部接线图见图1一1。

上述继电器是瞬时动作的电磁式继电器,当电磁铁线圈中通过的电流达到或超过整定值时,衔铁克服反作用力矩而动作,且保持在动作状态。

过电流继电器:当电流升高至整定值(或大于整定值)时,继电器立即动作,其常开触点闭合,常闭触点断开。

继电器的铭牌刻度值是按电流继电器两线圈串联,若继电器两线圈分别作并联和串联时,则整定值为指示值的2倍。

转动刻度盘上指针,以改变游丝的作用力矩,从而改变继电器动作值。

图1-1电流继电器内部接线图图1-2电流继电器实验接线图I II III12348765DL-21CDY-21C、26C12348765DL-23CDY-23C、28C12348765DY-22C12348765DY-24C、29C12348765DL-25CDY-25C一、实验设备五、实验步骤和要求实验接线图1-2为电流继电器的实验接线,可根据下述实验要求分别进行。

实验参数电流值可用单相自耦调压器、变流器、变阻器等设备进行调节。

实验中每位学生要注意培养自己的实践操作能力,调节中要注意使参数平滑变化。

1.电流继电器的动作电流和返回电流测试(1)选择ZB11继电器组件中的DL—24C/6型电流继电器,确定动作值并进行初步整定。

本实验整定值为2A 及4A的两种工作状态见表1-2。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

附1:源程序代码#include"stc10.h" //定义头文件#define uint unsigned int //宏定义#define uchar unsigned charsbit j1=P3^2; //位定义sbit j2=P3^3;sbit j3=P3^4;sbit j4=P3^5;sbit D8=P2^7;sbit h1=P3^6;sbit h2=P3^7;sbit l1=P0^5;sbit l2=P0^6;sbit l3=P0^7;uchar num,shi,fen,miao,S; //定义参数uchar shi1o,fen1o,miao1o,shi2o,fen2o,miao2o,shi3o,fen3o,miao3o,shi4o,fen4o,miao4o; uchar shi1c,fen1c,miao1c,shi2c,fen2c,miao2c,shi3c,fen3c,miao3c,shi4c,fen4c,miao4c; unsigned int table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned int wei[]={0xf7,0xfb,0xfd,0xfe};void init(void){P1M0=0xff; //强推挽P1M1=0;TMOD=0x11; //设置方式一TH0=(65535-50000)/256; //定义初值TL0=(65535-50000)%256;EA=1; //总中断ET0=1; //定时器中断TR0=1; //开启定时器}void delay(int z) //延时函数{int i,j;for(i=0;i<z;i++)for(j=0;j<600;j++);}void xianshi_2(unsigned int shi,unsigned int fen) //数码管扫描函数{P1=table[fen%10];P0=wei[0];delay(1);P1=table[fen/10];P0=wei[1];delay(1);P1=table[shi%10]|0x80;P0=wei[2];delay(1);P1=table[shi/10];P0=wei[3];delay(1);}key(){ int k=0;h1=0; h2=1;if (l1==0){ delay(1); if (l1==0) k=1; while(!l1); } if (l2==0){ delay(1); if (l2==0) k=2; while(!l2); }if (l3==0){ delay(1); if (l3==0) k=3; while(!l3); }h1=1; h2=0;if (l1==0){ delay(1); if (l1==0) k=4; while(!l1); }if (l2==0){ delay(1); if (l2==0) k=5; while(!l2); }return k;}void main(void){int k;init();while(1){if(S==0) //按键k1按下0次{xianshi_2(shi,fen); //数码管显示}k=key(); //按键扫描if(k==1) //按下一键S++; //按键次数加一if(S!=0) //一键按下次数大于零{TR0=0; //关中断if(S==1) //按键k1按下1次{if(k==2) //小时加1{ shi++;if(shi==24)shi=0;}if(k==3) //小时减1{ shi--;if(shi==-1)shi=23;}if(k==4) //分钟加1{ fen++;if(fen==60)fen=0;}if(k==5) //分钟减1{ fen--;if(fen==-1)fen=59;}P2=0xfe; //D1点亮xianshi_2(shi,fen); //数码管显示}if(S==2) //按键k1按下2次{if(k==2) //小时加1{ shi1o++;if(shi1o==24)shi1o=0;}if(k==3) //小时减1{ shi1o--;if(shi1o==-1)shi1o=23;}if(k==4) //分钟加1{ fen1o++;if(fen1o==60)fen1o=0;}if(k==5) //分钟减1{ fen1o--;if(fen1o==-1)fen1o=59;}P2=0xfd; //D2点亮xianshi_2(shi1o,fen1o); //数码管显示}if(S==3) //按键k1按下3次{if(k==2) //小时加1{ shi1c++;if(shi1c==24)shi1c=0;}if(k==3) //小时减1{ shi1c--;if(shi1c==-1)shi1c=23;}if(k==4) //分钟加1{ fen1c++;if(fen1c==60)fen1c=0;}if(k==5) //分钟减1{ fen1c--;if(fen1c==-1)fen1c=59;}P2=0xff; //D2熄灭xianshi_2(shi1c,fen1c); //数码管显示}if(S==4) //按键k1按下4次{if(k==2) //小时加1{ shi2o++;if(shi2o==24)shi2o=0;}if(k==3) //小时减1{ shi2o--;if(shi2o==-1)shi2o=23;}if(k==4) //分钟加1{ fen2o++;if(fen2o==60)fen2o=0;}if(k==5) //分钟减1{ fen2o--;if(fen2o==-1)fen2o=59;}P2=0xfb; //D3点亮xianshi_2(shi2o,fen2o); //数码管显示}if(S==5) //按键k1按下5次{if(k==2) //小时加1{ shi2c++;if(shi2c==24)shi2c=0;}if(k==3) //小时减1{ shi2c--;if(shi2c==-1)shi2c=23;}if(k==4) //分钟加1{ fen2c++;if(fen2c==60)fen2c=0;}if(k==5) //分钟减1{ fen2c--;if(fen2c==-1)fen2c=59;}P2=0xff; //D3熄灭xianshi_2(shi2c,fen2c); //数码管显示}if(S==6) //按键k1按下6次{if(k==2) //小时加1{ shi3o++;if(shi3o==24)shi3o=0;}if(k==3) //小时减1{ shi3o--;if(shi3o==-1)shi3o=23;}if(k==4) //分钟加1{ fen3o++;if(fen3o==60)fen3o=0;}if(k==5) //分钟减1{ fen3o--;if(fen3o==-1)fen3o=59;}P2=0xf7; //D4点亮xianshi_2(shi3o,fen3o); //数码管显示}if(S==7) //按键k1按下7次{if(k==2) //小时加1{ shi3c++;if(shi3c==24)shi3c=0;}if(k==3) //小时减1{ shi3c--;if(shi3c==-1)shi3c=23;}if(k==4) //分钟加1{ fen3c++;if(fen3c==60)fen3c=0;}if(k==5) //分钟减1{ fen3c--;if(fen3c==-1)fen3c=59;}P2=0xff; //D4熄灭xianshi_2(shi3c,fen3c); //数码管显示}if(S==8) //按键k1按下8次{if(k==2) //小时加1{ shi4o++;if(shi4o==24)shi4o=0;}if(k==3) //小时减1{ shi4o--;if(shi4o==-1)shi4o=23;}if(k==4) //分钟加1{ fen4o++;if(fen4o==60)fen4o=0;}if(k==5) //分钟减1{ fen4o--;if(fen4o==-1)fen4o=59;}P2=0xef; //D5点亮xianshi_2(shi4o,fen4o); //数码管显示}if(S==9) //按键k1按下9次{if(k==2) //小时加1{ shi4c++;if(shi4c==24)shi4c=0;}if(k==3) //小时减1{ shi4c--;if(shi4c==-1)shi4c=23;}if(k==4) //分钟加1{ fen4c++;if(fen4c==60)fen4c=0;}if(k==5) //分钟减1{ fen4c--;if(fen4c==-1)fen4c=59;}P2=0xff; //D5熄灭xianshi_2(shi4c,fen4c); //数码管显示}if(S==10) //按键k1按下10次{S=0;TR0=1;}}if(S==0){if(shi==shi1o&&fen==fen1o) j1=0; //D9点亮if(shi==shi1c&&fen==fen1c) j1=1; //D9熄灭if(shi==shi2o&&fen==fen2o) j2=0; //D10点亮if(shi==shi2c&&fen==fen2c) j2=1; //D10熄灭if(shi==shi3o&&fen==fen3o) j3=0; //D11点亮if(shi==shi3c&&fen==fen3c) j3=1; //D11熄灭if(shi==shi4o&&fen==fen4o) j4=0; //D12点亮if(shi==shi4c&&fen==fen4c) j4=1; //D12熄灭}}}void t0_time(void) interrupt 1 //中断程序{TH0=(65535-50000)/256; //装入初值TL0=(65535-50000)%256;num++;if(num==20){num=0;miao++;D8=~D8; //D8取反if(miao==60){miao=0;fen++;if(fen==60){fen=0;shi++;if(shi==24){shi=0;}}}}}。

相关文档
最新文档