单片机

合集下载

单片机概述

单片机概述

说明:
不同位数的单片机同时存在,各有市场,适 用于不同场合
第1章 概 述
单片机技术的发展
1、体系结构的变化
SCM
SOC: SCM: MCU:
MCU
SOC
一块单片机芯片就是一个比较完整的小型控制系统 寻求单片形态的嵌入式系统的最佳体系结构 芯片包含完整的硬件系统和嵌入式软件 Philips公司的80C51是MCU的典型代表 MCS-51是SCM的典型代表 C8051F
计算机
高速运算 数据分析与处理 存储器容量
增强控制功能 提高工业环境下的可靠性 灵活方便
通用计算机
单片机
第1章 概 述
微机组成结构框图
第1章 概 述
单片机组成框图
实 时 控 制 器 件
定时器/计数器 中断控制 微型计 ADC、DAC 根据需要 算机 PWM 而定 电压比较器 看门狗、DMA 串行口、传感器等 I2C、SPI等外部串行总线接口
单片机
全称为单片微型计算机(Single Chip Microcomputer)
微控制器(Microcontroller Unit)或嵌入式控制器(Embedded Controller)
将微处理器(CPU)、存储器、I/O接口电路和相应实时控制器件
集成在一块芯片上,称其为单片微型计算机,简称单片机。
第1章 概 述
单片机技术的发展
2、单片机的速度越来越快 采用锁相环技术或内部倍频技术 3、低电压与低功耗 2.7V 2.2V 1.8V
0.9V
双电源供电: I/O口,芯片内部
第1章 概 述
单片机技术的发展
4、低噪声与高可靠性技术 WDT:看门狗 5、OTP与掩膜 OPT:(One Time Programmable) 一次性编程 6、MTP向OTP挑战 MTP:(Multiple Time Programmable) 可多次编程

单片机简单介绍

单片机简单介绍

2.系统结构简单,使用方便,实现模块化
3.单片机可靠性高,可工作到10^6 ~10^7小时无故障
4.处理功能强,速度快 5.低电压,低功耗,便于生产便携式产品 6.控制功能强和环境适应能力强
四、单片机的应用范围
目前单片机渗透到我们生活的各个领域,几乎很难找 到哪个领域没有单片机的踪迹.其典型的应用领域有:
现在单片机种类不下100种,现在主流的 51、STC、PLC、avrmaga等等还有很多很多, 比如:
1、51单片机:是一种比较成熟 的产品,并且资源丰富,使 用简单的机电控制,价格便 宜的优点 2、STC单片机:价格便宜、 公能更多抗干扰能力强、兼 容做的很好,软复位功能是 它的一大特点
51SCM仿真器
重点介绍以下几点:
一、什么是单片机 二、单片机发展历程
三、单片机的特点
四、单片机的应用场合 五、单片机的发展趋势
六、主流的单片机产品
单片机是工业控制 的掌门 !
单片机芯片
一、什么是单片机

单片机是一种集成电路芯片,是采用超大规模集成电 路技术把具有数据处理能力的中央处理器CPU、随机存储 器RAM、只读存储器ROM、多种I/O口和终端系统、定时器/ 计时器等功能集成到一块硅片上构成的一个小而完善的计 算机系统。
单片机芯片一什么是单片机一什么是单片机?单片机是一种集成电路芯片是采用超大规模集成电路技术把具有数据处理能力的中央处理器cpu随机存储器ram只读存储器rom多种io口和终端系统器ram只读存储器rom多种io口和终端系统定时器计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统
制作人:张玉源
二、单片机的发展历程
单片机诞生于1971年,经历了SCM、 MUC、SOC三大阶段

第1章单片机概述

第1章单片机概述

第1章 单片机概述1.1 单片机的概念1.1.1 单片机的定义单片机的全称是单片微型计算机(Single Chip Microcomputer,SCM),也称为微控制器(Micro-Controller Unit,MCU),它是将中央处理单元(Central Processing Unit,CPU)、数据存储器RAM(Random Access Memory,随机读写存储器)、程序存储器ROM(Read Only Memory,只读存储器)以及I/O(Input/Output,输入/输出)接口集成在一块芯片上,构成的一个计算机系统,其组成框图如图1.1所示。

单片机可用下面的“表达式”来表示:单片机 = MPU+ROM+RAM+I/O+功能部件图1.1 单片机的组成框图1.1.2 单片机的诞生单片机诞生于20世纪70年代末,具有代表性的事件是1976年Intel公司推出了MCS-48单片机系列的第一款产品:8048。

这款单片机在一个芯片内集成了超过17000个晶体管,包含一个CPU,1KB的EPROM(Erasable Programmable Read Only Memory,可擦可编程只读存储器),64字节的RAM,27个I/O端口和一个8位的定时器。

8048很快就成为了控制领域的工业标准,它们起初被广泛用来替代诸如洗衣机或交通灯等产品中的控制部分。

1980年,Intel公司在MCS-48的基础上推出了MCS-51系列的第一款单片机8051,这款单片机的功耗、大小和复杂程度都比8048提高了一个数量级。

8051集成了超过60000个晶体管,拥有4KB的ROM,128B的RAM,32个I/O端口,一个串行通信接口和两个16位的定时器。

经过三十多年的发展,MCS-51系列单片机已经形成了一个规模庞大、功能齐全、资源丰富的产品群。

单片机原理与应用技术·2·1.1.3 单片机的应用领域单片机在我们的日常生活和工作中无处不在、无处不有:家用电器中的微波炉、洗衣机、电饭煲、豆浆机、电子秤;住宅小区的监控系统、电梯智能化控制系统;汽车电子设备中的ABS、GPS、ESP、TPMS;医用设备中的呼吸机,各种分析仪,监护仪,病床呼叫系统;公交汽车、地铁站的IC卡读卡机、滚动显示车次和时间的LED点阵显示屏;电脑的外设,如键盘、鼠标、光驱、打印机、复印机、传真机、调制解调器;计算机网络的通信设备;智能化仪表中的万用表、示波器、逻辑分析仪;工厂流水线的智能化管理系统,成套设备中关键工作点的分布式监控系统;导弹的导航装置,飞机上的各种仪表等。

单片机到底是什么呢

单片机到底是什么呢

单片机到底是什么呢单片机,全称为单片微型计算机,是一种在单个集成电路芯片上集成了处理器、存储器和输入输出接口等各种功能模块的微型计算机系统。

它被广泛应用于电子设备中,如家用电器、汽车电子、工业控制等领域。

本文将从多个角度介绍单片机的定义、特点、应用和发展趋势等内容。

一、单片机的定义与特点单片机是一种集成度非常高的微型计算机系统,其核心部分是一个微型处理器。

相比于传统的计算机系统,单片机具有以下几个特点:1. 高度集成:单片机将处理器、存储器和输入输出接口等功能模块集成在一颗芯片上,大大减小了电路板的体积和重量。

2. 低功耗:由于单片机内部的电路非常简单,功耗较低,适合工作在电池供电的环境。

3. 低成本:由于集成度高,制造工艺成熟,单片机的成本相对较低,可以大规模应用于各个领域。

4. 易编程:单片机采用高级语言编写程序,不需要了解底层电路的细节,开发门槛较低,适合初学者学习和使用。

二、单片机的应用领域单片机在各个领域都得到了广泛的应用,下面将介绍几个典型的应用领域:1. 家用电器:单片机被广泛应用于家用电器中,如空调、洗衣机、冰箱等。

通过单片机的控制,可以实现自动化、智能化的功能,提高用户体验。

2. 汽车电子:单片机在汽车电子领域有着重要的应用,如发动机控制系统、车身控制系统等。

通过单片机的控制,可以提高车辆的安全性、舒适性和燃油效率。

3. 工业控制:单片机在工业控制领域被广泛应用,如自动化生产线、工厂设备等。

通过单片机的控制,可以提高生产效率、降低劳动力成本。

4. 通信设备:单片机在通信设备中起着重要的作用,如手机、路由器等。

通过单片机的控制,可以实现无线通信、数据处理等功能。

三、单片机的发展趋势随着科技的不断发展,单片机也在不断演进和进步。

下面将介绍单片机的几个发展趋势:1. 高性能:随着半导体技术的不断进步,单片机的处理能力越来越强大,可以处理更复杂的任务。

2. 低功耗:随着对节能环保的要求越来越高,单片机的功耗也在不断降低,以满足电池供电等低功耗应用的需求。

第1章单片机简介

第1章单片机简介
5.1 干簧管原理介绍
玻璃壳
簧片
簧片
触点
N S
惰性气体
N S
ON
OFF
OFF
ON
5.2 干簧管测试原理
N S
N S
匀速旋转
干簧管测试仪单片机系统的面板
单片机
+5V
5.3 干簧管测试仪电路原理图与印制板图
电路原理图(PROTEL绘制)
2.1 单片机的应用特点
● 单片机主要为工业测控而设计,又称微控制器(Microcontroller),具有高集成度、高可靠性、高性价比的特点。 ● 主要应用于工业检测与控制、计算机外设、智能仪器仪表、通讯设备、家用电器等。 特别适合于嵌入式微型机应用系统。
2.3 单片机的发展趋势
★ 程序存储器和数据存储器分开的原因?
① 指令和数据分开存放,分开调取,不会相互混淆; ② 程序存储器和数据存储器使用不同工艺。程序存储器烧录后,运行时内容不改变,要求掉电保持,一般用ROM实现,集成度高,造价低;数据存储器运行时才赋值,一般用RAM实现,造价相对较高; ③ 程序存储器和数据存储器的宽度可以不一致,在CPU字长较短时,可实现单字节指令,提高单片机的可靠性; ④ 程序存储器和数据存储器可使用不同的总线,实现真正的流水作业; ⑤ 单片机面向测控领域,通常情况下,需要较大容量的程序存储器和较少的数据存储器,提高性价比。
印制板图(PROTEL软件绘制)
5.4 编写单片机软件并调试
常用51单片机开发工具软件 Keil uVision
印制板图1 (采用PROTEL软件绘制)
印制板图2 (采用PROTEL软件绘制)
编写单片机软件并调试
常用51单片机开发工具软件 Keil uVision

单片机的简介

单片机的简介

单片机的简介单片机(Microcontroller Unit,简称MCU)是一种集成了微处理器核心、存储器、输入输出接口和定时器等功能于一体的集成电路芯片。

它具有体积小、功耗低、成本低廉等特点,广泛应用于各种电子设备中。

本文将对单片机的基本特点、应用领域以及优缺点进行简要介绍。

一、单片机的基本特点单片机主要由中央处理器(CPU)、存储器、输入输出接口(I/O)和定时器等组成。

其核心部分是CPU,负责执行程序,处理数据。

常见的单片机有8位、16位和32位等不同位数的CPU。

存储器包括程序存储器(ROM)和数据存储器(RAM),用于存储程序和数据。

输入输出接口(I/O)用于与外部设备进行通信,可实现数据输入、输出等功能。

定时器用于产生精确的时间延迟。

单片机具有体积小、功耗低的特点,由于其集成度高,外部元器件少,因此相对于传统的电路设计方案,可以大大减小产品体积和功耗。

此外,单片机具有较高的可编程性,可以根据需求进行程序设计,实现各种功能。

其性价比也较高,适合大规模生产。

二、单片机的应用领域由于单片机具有体积小、功耗低、成本低等特点,因此在各个领域都有广泛的应用。

1. 家电控制:单片机广泛应用于家用电器,如洗衣机、冰箱、电视等。

通过控制单片机,可以实现温度控制、计时器功能等。

2. 工业自动化:单片机在工业设备和自动化领域也有重要应用。

例如,可以通过单片机实现对机器设备的监控和控制,提高生产效率和质量。

3. 交通领域:单片机在交通领域有着广泛的应用,如智能交通信号灯、车辆控制系统等。

通过单片机的智能控制,可以提高交通流量和安全性。

4. 医疗设备:单片机在医疗设备中具有重要地位,如心电图仪、血压计等。

通过单片机的高精度控制和数据处理,可以提高医疗设备的性能和准确性。

5. 智能家居:随着物联网的发展,单片机在智能家居领域有着广泛应用。

通过单片机的控制,可以实现家庭安防、远程控制等功能。

三、单片机的优缺点1. 优点:a. 体积小、功耗低:由于单片机的集成度高,体积相对较小,适合应用于体积有限的电子设备中,并且其功耗低,有助于延长电池寿命。

什么是单片机

什么是单片机

第0章绪论1.什么是单片机?其主要特点有那些?解:单片微型计算机(Single-Chip Microcomputer),简称单片机。

就是将微处理器(CPU)、存储器(存放程序或数据的ROM和RAM)、总线、定时器/计数器、输入/输出接口(I/O口)和其他多种功能器件集成在一块芯片上的微型计算机。

单片机的主要特点有:(1)可靠性高(2)便于扩展(3)控制功能强(4)低电压、低功耗(5)片内存储容量较小,除此之外,单片机还具有集成度高、体积小、性价比高、应用广泛、易于产品化等特点2.当前单片机的主要产品有那些?各有何特点?举出你生活中应用单片机的例子。

解:当前单片机的主要产品有:Intel的8051系列、Motorola的M68HC系列、Philips(飞利浦)的80C51系列、台湾义隆公司(EMC)EM78系列单片机、美国Microchip公司的PIC 单片机系列、Atmel公司的A T90系列单片机Ubicom公司的Scenix单片机、日本爱普生科技公司的Epson单片机、Zilog公司的Z86系列、美国国家半导体公司NSCOP8单片机、台湾Winbond(华邦)的W78系列等。

MCS-51为主流产品。

MSP430的功能较强。

是一种特低功耗的Flash微控制器。

主要用于三表及超低功耗场合。

EM78系列单片机采用高速CMOS工艺制造,低功耗设计为低功耗产品,价格较低。

具有三个中断源、R-OPTION功能、I/O唤醒功能、多功能I/O口等。

具有优越的数据处理性能,采用RISC结构设计。

Microship单片机是市场份额增长较快的单片机。

它的主要产品是PIC系列8位单片机。

CPU采用RISC结构,运行速度快,价格低适于用量大、档次低、价格敏感的产品。

Motorola是世界上最大的单片机生产厂家之一,品种全、选择余地大、新产品多。

其特点是噪声低,抗干扰能力强,比较适合于工控领域及恶劣的环境。

A VR是增强RISC内载Flash的单片机,单片机内部32个寄存器全部与ALU直接连接,突破瓶颈限制,每1MHz可实现1MIPS的处理能力,为高速、低功耗产品。

1.1 单片机概述

1.1 单片机概述

第1章 单片机基础知识概述
随着单片机从早期的4位发展到8位、16位直至32位,单片 机的功能在不断增强,嵌入式应用能力也在不断提高。
然而,由于复杂系统的功能大都可以通过简单嵌入式系统 组合实现,而8位单片机以其价格低廉性能适中的特点, 已可满足简单嵌入式系统的要求。这表明,嵌入式应用领 域中大量需要的仍是8位单片机,在当前及以后的相当一 段时间内8位单片机仍将占据单片机应用的主导地位。
第1章 单片机基础知识概述
第二阶段:MCU(Micro Controller Unit)即微控制器阶段 ,其主要的技术发展方向是,不断推进在嵌入式系统中集 成各种外围电路与接口电路的能力,以满足智能化控制的 需求。在此阶段中,Philips公司以其在嵌入式应用方面的 强大实力,推出了基于MCS-51内核的微控制器系列产品 ,使单片机进入MCU阶段。
第1章 单片机基础知识概述
③ 低功耗。目前,市场上有一半以上的单片机产品已 CHMOS化,这类单片机具有功耗小的优点,许多单片机 已可以在2.2V电压下运行,有的能在1.2V或0.9V低电压 下工作,功耗为μW级。
④ 高性价比。随着单片机的应用越来越广泛,各单片 机厂家会进一步改进单片机的性能,从而增强产品的竞 争力。同时,价格也是各厂家竞争的一个重要方面。所 以,更高性价比的单片机会逐渐进入市场。
第1章 单片机基础知识概述
④ 汽车电子与航空航天电子系统。通常这些系统中的集中 显示系统、动力监测控制系统、自动驾驭系统、通信系统 及运行监视器(黑匣子)等,都是将单片机嵌入其中实现 系统功能。
第1章 单片机基础知识概述
⑤ 家用电器。单片机应用到消费类产品之中,能大大提高 它们的性价比,提高产品在市场上的竞争力。目前家用电 器几乎都是单片机控制的产品,例如,空调、冰箱、洗衣 机、微波炉、彩电、音响、家庭报警器及电子玩具等。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

湖南科技大学信息与电气工程学院《课程设计报告》题目:多功能数字时钟专业:通信工程班级:一班姓名:徐升炜学号: 1254040128指导教师:尹艳群2015年 6 月 23 日信息与电气工程学院课程设计任务书2014—2015 学年第二学期专业:通信工程班级:一班学号: 1254040128 姓名:徐升炜课程设计名称:单片机课程设计设计题目:多功能数字时钟完成期限:自 2015 年 6 月 8 日至 2015 年 6 月 19 日共 2 周设计依据、要求及主要内容(可另加附页):一、设计依据本方案以STC15F2K60S2单片机作为主控核心,与时钟芯片、LED显示、按键等模块组成硬件系统,通过《单片机原理与应用》这门课的课程设计,学生应能对STC15系列单片机有一个全面的认识,掌握以STC15系列单片机为核心的电子电路的设计方法和应用技术。

二、要求(1)利用STC15F2K60S2单片机作为主控器组成一个电子日历和电子钟。

(2)利用LED分别显示当前时间和日历。

(3)利用尽可能少的开关实现:校正日历和时间(4)定制闹钟(时、分、表)三、设计内容该课程设计是利用STC15F2K60S2单片机内容的定时/计数器、中断系统、以及行列键盘和LED显示器等部件,设计一个单片机电子时钟。

设计的电子时钟通过数码管显示,并通过按键实现时间和暂停、启动控制等。

我们选择的方法是单片机开发设计使用的传统方法,通过本次设计,可以了解整个单片机开发的流程。

文章首先介绍了单片机的基本知识,然后同时给出了框图,流程图等。

论文涵盖了从需求分析,系统设计,编程,原理图等产品开发的基本过程。

近几年,单片机在各个领域得到广泛的应用。

从工业到人们的日常生活,大部分的科技产品都是通过单片机来控制。

在它问世之前,自动控制设备不能被广泛的应用,这是因为控制设备的体积庞大,耗电量大,价格昂贵。

在第一台微处理器成功研制不久,第一个单片机就问世了。

因为其小巧的体积,低功耗,以及高效的性能,单片机受到了大家的欢迎。

指导教师(签字):批准日期:年月日摘要随着科学技术的不断发展,人们对时间计量的精度要求越来越高。

高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟石晶表石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便;另一方面《单片机微机原理与接口技术》是一门实践性很强的的课程,只靠短短的课堂教学,学生只能略懂一些肤浅的表面知识,通过课程设计,学生亲自动手去做,在发现问题和解决问题中,才能够更好的理解《单片机微机原理与接口技术》的理论知识,提干我们的知识运用能力和实验技术,增强实践能力,为我们将来在技术领域的发展奠定了一定的实践基础。

本次电子技术基础课程设计选题是数字钟的设计。

主要原理是由晶体振荡电路产生多谐振荡,经过分频器分频后输出稳定的秒脉冲,作为时间基准。

秒计数器满60向分计数器进位,分计数器满60向小时计数器进位,小时计数器以24为一个周期,并实现小时高位具有零熄灭的功能。

计数器的输出经译码器送到显示器,可在相应位置正确显示时、分、秒。

计时出现误差或者调整时间可以用校时电路进行时、分的调整。

目录1.设计的任务与要求 (5)1.1数字钟的设计目的: (5)1.2数字钟的设计要求 (5)1.3数字电子钟的基本原理 (5)2.电路仿真与设计 (6)2.1系统设计框图 (6)2.2单元模块设计 (7)2.2.1 74LHC595芯片 (7)2.2.2 数码管驱动 (7)2.2.3 行列式按键 (8)2.2.4电子日历主芯片STC15F2K60S2 (9)2.2.5综合框图 (9)3.程序设计 (10)4.课程设计心得体会 (19)5.参考资料 (20)1.设计的任务与要求1.1数字钟的设计目的:(1) 掌握数字电子钟的设计方法和制作过程。

(2)掌握常用数字集成电路的功能和使用。

(3)了解各芯片的逻辑功能、引脚安排和使用方法。

(4)掌握计数器相互级联的方法。

(5)学会用仿真软件对设计的原理图进行仿真。

1.2数字钟的设计要求:(1)利用STC15F2K60S2单片机作为主控器组成一个电子日历和电子钟。

(2)利用LED分别显示当前时间和日历。

(3)利用尽可能少的开关实现:校正日历和时间(4)定制闹钟(时、分、表)1.3数字电子钟的基本原理:单片机先通过了STC15F2K60S2主芯片,再通过74LHC595寄存器驱动时钟屏幕,,芯片驱动方式则是并行驱动,这样可以避免每次传送新的显示数据时,都需要从头到尾传送 24 个笔段数据。

目前的传送方式可以只是传送已经变化了的显示数据。

晶体频率使用的是 32768HZ,这种低频率时基,对掉电保护的电池耗电关系极大,STC15F2K60S2单片机具有的实时时钟的功能,大大方便了电路设计。

按照常规,在如此低的频率下,对单片机的指令执行速度会有矛盾,但是,这种单片机却能够让程序运行时使用“内部RC ”振荡频率而仅仅是时钟部分使用 32768HZ频率,这样,就可以选择“内部RC”高达数 MHZ 的指令运行频率而不用理会时钟走时频率,两者依靠这种特有的“RTC”功能获得了很理想的配合。

当进入电池掉电保护的时候,可以令电池耗电维持在仅仅数十 uA 的水平,一只 60mAh的掉电保护电池,就可以让掉电保护时间长达几个月之久!进入掉电保护后,屏幕不显示,所有按钮和控制功能暂时失效,仅仅实时时钟仍然继续走时。

当外部主电源恢复供电后,所有功能自动恢复,实时时钟无需调整。

单片机的 15P是复位引脚,当上电时或者程序运行发生异常时,可以通过此引脚让程序重新运行。

但是,一般地,单片机本身具有“看门狗”自动复位功能,可以快速地自动对程序运行异常进行复位,人们几乎觉察不到它的复位影响。

单片机的 10P 引脚安排为专门检测外部供电是否正常,当外部 5V供电掉电后,单片机将立即进入掉电保护状态,而在电路中电源能量还没有完全消耗尽之前,程序也必须抢先对各个端口进行配置,以便进入低电源消耗状态。

电路图中有两个输出端口,一个是“睡眠”控制输出端口,它只有在开始倒计时的时候才会输出高电平;另一个时“定时”输出端口,它只有在到达定时时间的时候才会输出高电平。

合理地利用这两个输出,就能够安排一些简单的自动控制,例如,可以利用“睡眠”的倒计时功能来给电孵化行业的“自动翻蛋”使用,利用“定时”功能来作为一只“电子闹钟”等等。

电路中,屏幕的公共引脚接有一只 NPN小功率三极管,这主要是在单片机对 74LHC595 传送数据时,临时关闭显示屏幕的供电以免产生“鬼影”,同时,在掉电保护时则可以完全关闭屏幕的供电。

单片机预留了两个端口没有使用,这里可以在将来安排外接电存储器,以便派生例如电子打铃仪或者多次定时数据存储,成为功能更加丰富的时钟品种。

各个按钮的使用说明:(请参考印刷板图)。

各按键在印刷板上的编号与单片机芯片引脚和功能关系,请参考下面表格。

其中,标注“G”的焊盘是电路供电的参考点,即 5V电源的负极,俗称“地线”。

所有按键都是需要与这个“G”接通的时候(需要串入 1K 左右电阻),该按键才算是“被按下”。

当这个“G”引出到按键板时,需要在它上面串接一只 1K左右的电阻,不要直接让其与各按键引脚直接“短接”,以防止芯片内部引脚损坏。

2.电路仿真与设计2.1系统设计框图2.2单元模块设计2.2.1 74LHC595芯片这是由两片74Lhc595连接成的60进制计数器他们都是工作在置数方式,低位是连接成为一个十进制计数器,它的clk端接的是低位的进位脉冲。

高位接成了六进制计数器。

当输出端为0101的时候在下个时钟的上升沿把数据置数成0000 这样就形成了6进制计数器,连个级联就成为了60进制计数器,分别可以作为秒和分记时。

24进制计数器的个位也是用置数法连接成了十进制计数器。

74LHC595的两个输入引脚接到了十位的Q1和个位的Q2 上输出引脚接到了电路板上所有161芯片的Rest端。

也就是说当十位为0010个位为0100的时候(24)使所有161复位归0。

完成24进制计数。

2.2.2数码管驱动数码管驱动电路时由DPY组成,它能将161输出的标准BCD码变换成驱动七段数码管所需的信号。

上面的200欧电阻是为数码管限流用的,防止由于电流太大损坏主芯片2.2.3行列式按键键盘分编码键盘和非编码键盘,键盘上闭合键的识别由专用的硬件编码器实现,并产生按键编码号或键值的称为编码键盘,如计算机键盘。

而靠软件编程来识别的称为非编码键盘,在单片机组成的各种系统中,用的最多的是非编码键盘,也有用到编码键盘的,我们这里用的就是非编码键盘。

如图2键盘图所示,当按钮按下时;端口会变成低电平,我们设计一段扫描程序来判断那个端口是低电平来判断是否有按键按下。

2.2.4电子日历主芯片STC15F2K60S22.2.5综合框图3.程序设计#define MAIN_Fosc 22118400L#include "STC15Fxxxx.H"#define Timer0_Reload (65536UL -(MAIN_Fosc / 1000))#define DIS_DOT 0x20#define DIS_BLACK 0x10#define DIS_ 0x11u8 code t_display[]={// 0 1 2 3 4 5 6 7 8 9 A B CD E F0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,//black - H J K L N o P U t G Q r M y0x00,0x40,0x76,0x1E,0x70,0x38,0x37,0x5C,0x73,0x3E,0x78,0x3d,0x67,0x50 ,0x37,0x6e,0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF,0x46 };u8 code T_COM[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};sbit P_HC595_SER = P4^0; //pin 14 SER data inputsbit P_HC595_RCLK = P5^4; //pin 12 RCLk store (latch) clock sbit P_HC595_SRCLK = P4^3; //pin 11 SRCLK Shift data clocku8 LED8[8];u8 display_index;bit B_1ms;u8 hour,minute,second;u8 hour1,minute1,second1;u16 year,month,day;u16 msecond;u8 KeyCode;u8 cnt10ms;u8 IO_KeyState, IO_KeyState1, IO_KeyHoldCnt;u8 cnt50ms;u8 m;void IO_KeyScan(void); //50ms callvoid DisplayRTC(void){if(m==0) //{if(hour >= 10) LED8[0] = hour / 10;else LED8[0] = DIS_BLACK;LED8[1] = hour % 10;LED8[2] = DIS_;LED8[3] = minute / 10;LED8[4] = minute % 10;LED8[5] = DIS_;LED8[6] = second / 10;LED8[7] = second % 10;}else if(m==1){LED8[0]=2;LED8[1]=0;LED8[2]=year/10;LED8[3]=year%10;LED8[4]=month/10;LED8[5]=month%10;LED8[6] = day / 10;LED8[7] = day % 10;}else if(m==2){if(hour >= 10) LED8[0] = hour1 / 10;else LED8[0] = DIS_BLACK;LED8[1] = hour1 % 10;LED8[2] = DIS_;LED8[3] = minute1 / 10;LED8[4] = minute1 % 10;LED8[5] = DIS_;LED8[6] = second1 / 10;LED8[7] = second1 % 10;}if(hour==hour1)if(minute==minute1)if(second==second1){P17=P16=P47=P46=0;}}void RTC(void){if(++second >= 60){second = 0;if(++minute >= 60){minute = 0;if(++hour >= 24){hour = 0;day++;if(day>30){day=0;month++;if(month>12){month=0;year++;}}}}}}void main(void){u8 i,k;P0M1 = 0; P0M0 = 0;P1M1 = 0; P1M0 = 0;P2M1 = 0; P2M0 = 0;P3M1 = 0; P3M0 = 0;P4M1 = 0; P4M0 = 0;P5M1 = 0; P5M0 = 0;P6M1 = 0; P6M0 = 0;P7M1 = 0; P7M0 = 0;AUXR = 0x80; //Timer0 set as 1T, 16 bits timer auto-reload, TH0 = (u8)(Timer0_Reload / 256);TL0 = (u8)(Timer0_Reload % 256);ET0 = 1; //Timer0 interrupt enableTR0 = 1; //Tiner0 runEA = 1;display_index = 0;hour = 11;minute = 59;second = 58;hour1 = 11;minute1 = 59;second1 = 58;year = 15;month = 6;day = 19;m=0;RTC();DisplayRTC();// for(i=0; i<8; i++) LED8[i] = DIS_BLACK;for(i=0; i<8; i++) LED8[i] = i;k = 0;KeyCode = 0;cnt10ms = 0;IO_KeyState = 0;IO_KeyState1 = 0;IO_KeyHoldCnt = 0;cnt50ms = 0;while(1){if(B_1ms){B_1ms = 0;if(++msecond >= 1000){msecond = 0;RTC();DisplayRTC();}if(++cnt50ms >= 50){cnt50ms = 0;IO_KeyScan();}if(KeyCode > 0){if(KeyCode == 17) //hour +1{if(m==0){if(++hour >= 24) hour = 0;}else if(m==1){if(++year>=100)year=0;}else if(m==2){if(++hour1 >= 24) hour1 = 0;}DisplayRTC();}if(KeyCode == 18) //hour -1{if(m==0){if(--hour >= 24) hour = 23;}else if(m==1){if(--year>=100)year=99;}else if(m==2){if(--hour1 >= 24) hour1 = 23;}DisplayRTC();}if(KeyCode == 19) //minute +1{if(m==0){second = 0;if(++minute >= 60) minute = 0;}else if(m==1){month++;if(month>=30)month=0;}else if(m==2){if(++minute1 >= 60) minute1 = 0;}DisplayRTC();}if(KeyCode == 20) //minute -1{if(m==0){second = 0;if(--minute >= 60) minute = 59;}else if(m==1){month--;if(month>30)month=29;}else if(m==2){if(--minute1 >= 60) minute1 = 59;}DisplayRTC();}if(KeyCode == 21) //second +1{if(m==0){if(++second >= 60) hour = 0;}else if(m==1){if(++day>=30)day=0;}else if(m==2){if(++second1 >= 60) second1 = 0;}DisplayRTC();}if(KeyCode == 22) //second -1{if(m==0){if(--second >= 60) second = 59;}else if(m==1){if(--day>=30)day=29;}else if(m==2){if(--second1 >= 60) hour1 = 59;}DisplayRTC();}if(KeyCode ==32){m++;if(m>2)m=0;}KeyCode = 0;}}}}/**********************************************/u8 code T_KeyTable[16] = {0,1,2,0,3,0,0,0,4,0,0,0,0,0,0,0};void IO_KeyDelay(void){u8 i;i = 60;while(--i) ;}void IO_KeyScan(void) //50ms call{u8 j;j = IO_KeyState1;P0 = 0xf0;IO_KeyDelay();IO_KeyState1 = P0 & 0xf0;P0 = 0x0f;IO_KeyDelay();IO_KeyState1 |= (P0 & 0x0f);IO_KeyState1 ^= 0xff;if(j == IO_KeyState1){j = IO_KeyState;IO_KeyState = IO_KeyState1;if(IO_KeyState != 0){F0 = 0;if(j == 0) F0 = 1;else if(j == IO_KeyState){if(++IO_KeyHoldCnt >= 20){IO_KeyHoldCnt = 18;F0 = 1;}}if(F0){j = T_KeyTable[IO_KeyState >> 4];if((j != 0) && (T_KeyTable[IO_KeyState& 0x0f] != 0))KeyCode = (j - 1) * 4 + T_KeyTable[IO_KeyState & 0x0f] + 16;}}else IO_KeyHoldCnt = 0;}P0 = 0xff;}void Send_595(u8 dat){u8 i;for(i=0; i<8; i++){dat <<= 1;P_HC595_SER = CY;P_HC595_SRCLK = 1;P_HC595_SRCLK = 0;}}void DisplayScan(void){Send_595(~T_COM[display_index]);Send_595(t_display[LED8[display_index]]);P_HC595_RCLK = 1;P_HC595_RCLK = 0;if(++display_index >= 8) display_index = 0;}void timer0 (void) interrupt TIMER0_VECTOR{DisplayScan();B_1ms = 1;}4.课程设计心得体会通过本次实验,能初步理论联系实际、应用C语言与电路设计、能简单实现程序、并且能通自己的调试进行修改。

相关文档
最新文档