导航:首页 > 操作系统 > 单片机绪论

单片机绪论

发布时间:2022-05-04 06:43:56

1. 跪求单片机课程设计 要完全呦

题 目:单片机课程设计报告
目 录
一、设计目的
二、程设计具体要求
三、单片机发展简史
四、8051单片机系统简介
五、8051单片机内部定时器/计数器简介
六、程序电路
七、程序流程
八、程序代码
九实验总结-要求写出完整的论文以及心得体会
十参考资料及小结
原 文 : 一.目的
1. 进一步熟悉和掌握8051单片机的结构及工作原理。
2. 掌握单片机的接口技术及相关外围芯片的外特性,控制方法。
3. 通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解表关电路参数的计算方法。
4. 通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
5. 通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发一单片机应用系统的全过程,为今后从事相应打下基础。
二.课程设计的体要求
a) 原理图设计。
1. 原理图设计要符合项目的工作原理,连线要正确,端了要不得有标号。
2. 图中所使用的元器件要合理选用,电阻,电容等器件的参数要正确标明。
3. 原理图要完整,CPU,外围器件,扩器接口,输入/输出装置要一应俱全。
b) 程序调计
1. 根据要求,将总体项能分解成若干个子功能模块,每个功能模块完成一个特定的功能。
2. 根据总体要求及分解的功能模块,确定各功能模块之间的关系,设直出完整的程序流程图。
c) 程序调试将设计完的程序输入,汇编,排除语法错误,生成*OBJ文件。
1. 按所设计的原理图,在实验平台上连线,检查无误。
2. 将汇编后生成的*OBJ文件传送到实验装置的,执行该程序,检查该程序、是否达到设计要求,若未达到,修改程序,直到达到要求为止,
d) 说明书
1. 原理图设计说明
简要说明设计目的,原理图中所使用的元器件功能及在图中的作用,各器件的工作过程及顺序。
2. 程序设计说明
对程序设计总体功能及结构进行说明,对各子模块的功能以及各子模块之间的关系作较详细的描述。
3. 画出工作原理图,程序流程图并给出程序清单。
目前,单片机已广泛应用到图民经济建设和日常生活的许多领域,成为测控技术现代化必不可少的重要工具。下面介绍一本单片机课程设计的好书,介绍了很多实例有兴趣者可以去买哦,价格不贵【图书目录】 - 8051单片机课程设计实训教材
第1章 绪论
1.1 课程设计所需硬件工具
1.2 专题制作所需软件使用工具
1.3 8051程序开发测试平台
1.4 使用免费汇编编译
1.5 89CXX烧录模拟器操作实例
1.6 自制8051微电脑单板IO51
1.7 IO51操作实例
1.8 以Windows98 工作模式结合DOS模式来执行
第2章 8051单片机课程设计中的基本软硬件设计
2.1 8051各种基本的硬件设计
2.2 工作指示灯LED
2.3 8051延迟时间计算
2.4 基本按键设计
2.5 建立8051通信接口
2.6 简易8051调试界面
2.7 压电喇叭测试
2.8 键盘扫描
2.9 扫描控制七段显示器
2.10 LCD接口控制
2.11 8051定时器模式的工作
2.12 定时器模式0测试
2.13 定时器模式1测试
2.14 定时器模式2测试
2.15 以定时器产生各种频率的声音
2.16 以定时器演奏—段旋律
第3章 带单片机的LCD时钟
第4章 定时闹铃
第5章 定时闹铃LCD
第6章 音乐倒数定时器
第7章 密码锁控制
第8章 可存储式电子琴
第9章 8051八音盒
第10章 红外线遥控器研究
10.1 红外线遥控器动作原理
10.2 如何观察红外线遥控器信号
10.3 红外线遥控器译码功能说明
第11章 红外线家电遥控
第12章 8051伺服机控制
12.1 伺服机工作原理及改装
第1.3章 8051伺服车控制
13.1 功能说明
13.2 伺服车组装及实验
第14章 红外线遥控伺服车
14.1 功能说明
14.2 遥控伺服车组装及实验
14.3 控制电路
14.4 控制程序
第15章 无线电家电遥控
15.1 功能说明
15.2 遥控编码解码控制
第16章 8051声控设计
16.1 声控基本知识介绍
16.2 系统组成
16.3 声控模块介绍
16.4 基本控制电路
16.5 基本控制程序
16.6 声控课题设计

附录H 如何使用KEIL 8051开发系统汇编和编译程序及调试
附录I EPM89 890XX烧录模拟器特性
附录J 1051 8051 10控制板特性
附录K VCMM声控模块特性
附录L IO51控制板完整电路图
附录M 需要从网站下载的相关资料的使用说明
附录N 硬件接口板版权声明及如何订购
附录A 简易稳压电源制作
附录B 本书实验所需软硬件工具及零件
附录C 8051内部控制寄存器介绍
附录D 8051指令集
附录E 如何自制8051单板
附录F 课程设计报告参考内容
附录G IO51控制板窗口版驱动程序使用说明

2. 单片机摘要怎么写

摘 要
LCD液晶显示已经是人机界面的关键技术。本文对基于单片机的LCD液晶显示器控制系统进行了研究。
首先在绪论中介绍了本课题的课题背景、研究意义及完成的功能。本系统是以单片机的基本语言C语言来进行软件设计,51的编程语言常用的有二种,一种是汇编语言,一种是C 语言。汇编语言的机器代码生成效率很高但可读性却并不强,复杂一点的程序就更是难读懂,而C 语言在大多数情况下其机器代码生成效率和汇编语言相当,但可读性和可移植性却远远超过汇编语言,而且C 语言还可以嵌入汇编来解决高时效性的代码编写问题。对于开发周期来说,中大型的软件编写用C 语言的开发周期通常要小于汇编语言很多。综合以上C 语言的优点,我在学习时选择了C 语言指令的执行速度快,节省存储空间。为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了。使硬件在软件的控制下协调运作。正文中首先简单描述系统硬件工作原理,且附以系统硬件设计框图,并介绍了单片机微处理器的发展史,论述了本次毕业设计所应用的各硬件接口技术和各个接口模块的功能及工作过程, 并具体描述了AT89C51 AMPIRE128×64接电路接口的软、硬件调试。其次阐述了程序的流程和实现过程。本文撰写的主导思想是软、硬件相结合,以硬件为基础,来进行各功能模块的编写。
最后对我所开发的用单片机实现LCD液晶显示器控制原理的设计思想和软、硬件调试作了详细的论述。
关键词:单片机,微处理器,LCD,89C51,AMPIRE128×64

Abstract
The LCD manifestation has been the key technique of the an-machine interface. This text to basic proceeded the research in Micro Controller Unit liquid crystal display control system. Introced the lesson a background of this lesson and study meaning and finished functions in introction first. This system edits collected materials the language to proceed with single the basic language of a machine the software designs, the instruction carries out the speed quick, save memory. For the sake of easy to expand with the design adoption mold a logic for turning construction, making procere designing relation that change, software more shorter and more easier to understand. Make hardware control in software descended to moderate the operation.
The text inside describes the system hardware work principle in brief first, and attach with the system hardware design frame diagram, combine development history that introced the single a machine microprocessor, discuss this graate design a function for applied each hardware connecting a people the technique connects with each one a mold piece and work processes, combine to describe in a specific way 89C51, and the AMPIRE128×64 circumscribes the electric circuit connects oscular and soft, the hardware adjusts to try. Expatiated the process of the procere the next in order with realizes process. Develop to me finally of use the single a machine realizes the design thought that the liquid crystal display of LCD control principle with soft, the hardware adjusted to try to make the detailed treatise.
Keywords:single chip microcomputer,microprocessor,LCD,89C51,AMPIRE128×64

3. 单片机论文 温度测量 的意义

温度是工业生产中最常见和最基本的工业参数之一,是与人类的生活、工作关系最密切的物理量,也是各学科与工程研究设计中经常遇到和必须精确测量的物理量。从工业炉温、环境气温到人体温度;从空间、海洋到家用电器,各个技术领域都离不开测温,测温技术也是发展最快、范围最广的技术之一,对温度的进行准确的测量和控制也成为工业生产和科学研究中的重要任务之一。因此,温度测试仪作为测量仪器中不能缺少的一种仪器,如何用简单便宜,性能良好,外围电路简单的元器件制造出性能良好的温度采集器便成为了温度采集器的发展方向。随着电子信息技术的不断发展,多点温度检测取得了广泛的运用。数据采集系统的开发在很大意义上提高了生产生活的需要,方便了生产中对温度的控制。本次毕业设计正是为了完成数据采集而设计的,可以说与人们的日常生活是息息相关的,具有很大的现实意义。

4. 80C51单片机原理、开发与应用实例的目录

前言
第1章绪论
1.1单片机的发展
1.280C51单片机分类
1.3单片机应用领域和发展趋势
1.3.1单片机的应用领域
1.3.2单片机的发展趋势
第2章80C51单片机硬件结构和原理
2.180C51的基本结构
2.1.180C51的基本结构框图
2.1.2芯片的内部结构特点
2.280C51的引脚及其功能
2.2.1电源引脚Vcc和Vss
2.2.2时钟电路引脚XTALl和XTAL2
2.2.3控制信号引脚ALE、PSEN、EA和RST
2.2.4输入/输出引脚
2.380C51CPU结构和时序
2.3.1运算器
2.3.2控制器
2.3.380C51时钟系统
2.3.4CPU时序
2.4存储器结构和地址空间分配
2.4.1程序存储器地址空间分配
2.4.2数据存储器地址空间分配
2.580C51工作方式
2.5.1复位方式
2.5.2程序执行方式
2.5.3节电工作方式
2.5.4掉电保护方式
第3章80C51指令系统
3.1指令与汇编语言
3.1.1指令与程序设计语言
3.1.2指令格式及系统中使用的符号意义
3.2寻址方式
3.2.1寻址方式
3.2.2寻址空间
3.3指令系统
3.3.1数据传送指令
3.3.2算术运算指令
3.3.3逻辑运算指令
3.3.4程序控制转移指令
3.3.5位操作(Bool类型)指令
第4章80C51单片机的功能资源
4.1并行I/O接口
4.1.1P0口
4.1.2P1口
4.1.3P2口
4.1.4P3口
4.2定时器/计数器
4.2.1概述
4.2.2定时器T0和T1的结构和功能
4.2.3定时器的工作方式及应用
4.2.4定时器/计数器T2
4.2.5定时器,计数器的编程和使用
4.3串行接口
4.3.1串行口结构和工作模式
4.3.2串行口的编程和举例
4.4中断系统
4.4.1中断基本概念
4.4.2中断响应及处理过程
4.4.3中断程序举例
第5章单片机C51程序设计基础
5.1程序设计语言概述
5.1.1汇编语言
5.1.2C51语言
5.2C51标识符和关键字
5.2.1标识符
5.2.2关键字
5.3C51基本数据类型和运算符
5.3.1基本数据类型
5.3.2运算符
5.4数组
5.4.1一维数组
5.4.2多维数组
5.4.3字符数组
5.5指针
5.5.1指针与地址
5.5.2指针变量的定义
5.5.3指针变量引用
5.5.4数组的指针
5.5.5函数的指针
5.5.6指针数组
5.6结构体和联合体
5.6.1结构体概念和定义
5.6.2结构体的引用
5.6.3联合体概念和定义
5.6.4联合体的引用
5.6.5枚举
5.7型定义和预处理
5.7.1类型定义
5.7.2预处理
5.8语句和程序设计基本结构
5.8.1语句
5.8.2顺序结构
5.8.3选择结构
5.8.4循环结构
5.9函数
5.9.1函数定义
5.9.2函数调用
5.9.3中断服务函数
5.9.4局部变量与全局变量
5.9.5变量的存储种类
第6章典型外围接口设计
6.1键盘与单片机接口设计
6.1.1独立式键盘
6.1.2行列式键盘
6.2显示器接口
6.2.1LED显示器
6.2.2LED显示器接口实例
6.2.3LCD显示器
6.2.4LCD显示器接口实例
6.3显示接口芯片MAX8279
6.3.18279内部结构及基本工作原理
6.3.28279引脚功能
6.3.38279工作方式
6.3.48279命令
6.3.58279状态字
6.3.68279应用举例
6.4D/A/AD芯片与单片机接口设计
6.4.1D/A转换接口电路
6.4.2A/D转换接口电路
第7章80C51单片机系统扩展
7.180C51系统扩展概述
7.1.180C:51最小应用系统
7.1.2片外总线结构
7.1.3片选
7.1.4地址锁存
7.1.5扩展存储器时应考虑的几个问题
7.2外部存储器扩展
7.2.1程序存储器的扩展
7.2.2数据存储器的扩展
7.2.3多片存储器的扩展
7.3并行I/O接口的扩展
7.3.1简单并行I/O接口扩展
7.3.28255A可编程并行I/0接口扩展
7.4串行接口的扩展
7.4.18251串行口扩展芯片
7.4.2825l应用实例
第8章80C51单片机应用系统的抗干扰技术
8.1可靠性与抗干扰技术概述
8.1.1干扰窜入单片机系统的主要途径
8.1.2干扰形成的基本要素
8.1.3干扰的耦合方式
8.2硬件抗干扰技术
8.2.1抑制干扰源
8.2.2切断干扰传播路径
8.2.3提高敏感器件的抗干扰性能
8.2.4其他常用抗干扰措施
8.3软件抗干扰技术
8.3.1指令冗余
8.3.2软件“陷阱”
8.3.3软件“看门狗”技术
8.3.4设置程序运行标志,拦截“跑飞”程序
第9章ProteIDXP电路板设计软件
第10章KeilC51单片机开发软件入门
第11章基于80C51的计量泵流量控制系统设计
第12章80C51单片机在电液位置伺服系统上的应用
附录AMCS-51指令表
附录B
参考文献
……

5. 单片机直流电机调速系统设计

论文题目:直流电动机调速器硬件设计
专业:自动化
本科生:刘小煜 (签名)____
指导教师:胡晓东 (签名)____

直流电动机调速器硬件设计
摘 要

直流电动机广泛应用于各种场合,为使机械设备以合理速度进行工作则需要对直流电机进行调速。该实验中搭建了基于C8051F020单片机的转速单闭环调速系统,利用PWM信号改变电动机电枢电压,并由软件完成转速单闭环PI控制,旨在实现直流电动机的平滑调速,并对PI控制原理及其参数的确定进行更深的理解。实验结果显示,控制8位PWM信号输出可平滑改变电动机电枢电压,实现电动机升速、降速及反转等功能。实验中使用霍尔元件进行电动机转速的检测、反馈。期望转速则可通过功能按键给定。当选择比例参数为0.08、积分参数为0.01时,电机转速可以在3秒左右达到稳定。由实验结果知,该单闭环调速系统可对直流电机进行调速,达到预期效果。

关键字:直流电机, C8051F020,PWM,调速,数字式

Subject: Hardware Design of Speed Regulator for DC motor
Major: Automation
Name: Xiao yu Liu (Signature)____
Instructor:Xiao dong Hu (Signature) ____

Hardware Design of Speed Regulator for DC motor
Abstract

The dc motor is a widely used machine in various occasions.The speed regulaiting systerm is used to satisfy the requirement that the speed of dc motor be controlled over a range in some applications. In this experiment,the digital Close-loop control systerm is based on C8051F020 SCM.It used PI regulator and PWM to regulate the speed of dc motor. The method of speed regulating of dc motor is discussed in this paper and, make a deep understanding about PI regulator.According to experiment ,the armature voltage can be controlled linearnized with regulating the 8 bit PWM.So the dc motor can accelerate or decelerate or reverse.In experiment, hall component is used as a detector and feed back the speed .The expecting speed can be given by key-press.With using the PI regulator,the dc motor will have a stable speed in ten seconds when choose P value as 0.8 and I value as 0.01. At last,the experiment shows that the speed regulating systerm can work as expected.

Key words: dc motor,C8051F020,PWM,speed regulating,digital

目录

第一章 绪论 1
1.1直流调速系统发展概况 1
1.2 国内外发展概况 2
1.2.1 国内发展概况 2
1.2.2 国外发展概况 3
1.2.3 总结 4
1.3 本课题研究目的及意义 4
1.4 论文主要研究内容 4
第二章 直流电动机调速器工作原理 6
2.1 直流电机调速方法及原理 6
2.2直流电机PWM(脉宽调制)调速工作原理 7
2.3 转速负反馈单闭环直流调速系统原理 11
2.3.1 单闭环直流调速系统的组成 11
2.3.2速度负反馈单闭环系统的静特性 12
2.3.3转速负反馈单闭环系统的基本特征 13
2.3.4转速负反馈单闭环系统的局限性 14
2.4 采用PI调节器的单闭环无静差调速系统 15
2.5 数字式转速负反馈单闭环系统原理 17
2.5.1原理框图 17
2.5.2 数字式PI调节器设计原理 18
第三章 直流电动机调速器硬件设计 20
3.1 系统硬件设计总体方案及框图 20
3.1.1系统硬件设计总体方案 20
3.1.2 总体框图 20
3.2 系统硬件设计 20
3.2.1 C8051F020单片机 20
3.2.1.1 单片机简介 20
3.2.1.2 使用可编程定时器/计数器阵列获得8位PWM信号 23
3.2.1.3 单片机端口配置 23
3.2.2主电路 25
3.2.3 LED显示电路 26
3.2.4 按键控制电路 27
3.2.5 转速检测、反馈电路 28
3.2.6 12V电源电路 30
3.3硬件设计总结 31
第四章 实验运行结果及讨论 32
4.1 实验条件及运行结果 32
4.1.1 开环系统运行结果 32
4.1.2 单闭环系统运行结果 32
4.2 结果分析及讨论 32
4.3 实验中遇到的问题及讨论 33
结论 34
致谢 35
参考文献 36
论文小结 38
附录1 直流电动机调速器硬件设计电路图 39
附录2 直流电动机控制系统程序清单 42
附录3 硬件实物图 57

第一章 绪论
1.1直流调速系统发展概况
在现代工业中,电动机作为电能转换的传动装置被广泛应用于机械、冶金、石油化学、国防等工业部门中,随着对生产工艺、产品质量的要求不断提高和产量的增长,越来越多的生产机械要求能实现自动调速。
在可调速传动系统中,按照传动电动机的类型来分,可分为两大类:直流调速系统和交流调速系统。交流电动机直流具有结构简单、价格低廉、维修简便、转动惯量小等优点,但主要缺点为调速较为困难。相比之下,直流电动机虽然存在结构复杂、价格较高、维修麻烦等缺点,但由于具有较大的起动转矩和良好的起、制动性能以及易于在宽范围内实现平滑调速,因此直流调速系统至今仍是自动调速系统的主要形式。
直流调速系统的发展得力于微电子技术、电力电子技术、传感器技术、永磁材料技术、自动控制技术和微机应用技术的最新发展成就。正是这些技术的进步使直流调速系统发生翻天覆地的变化。其中电机的控制部分已经由模拟控制逐渐让位于以单片机为主的微处理器控制,形成数字与模拟的混合控制系统和纯数字控制系统,并正向全数字控制方向快速发展。电动机的驱动部分所用的功率器件亦经历了几次更新换代。目前开关速度更快、控制更容易的全控型功率器件MOSFET和IGBT成为主流。功率器件控制条件的变化和微电子技术的使用也使新型的电动机控制方法能够得到实现。脉宽调制控制方法在直流调速中获得了广泛的应用。
1964年A.Schonung和H.stemmler首先提出把PWM技术应用到电机传动中从此为电机传动的推广应用开辟了新的局面。进入70年代以来,体积小、耗电少、成本低、速度快、功能强、可靠性高的大规模集成电路微处理器已经商品化,把电机控制推上了一个崭新的阶段,以微处理器为核心的数字控制(简称微机数字控制)成为现代电气传动系统控制器的主要形式。PWM常取代数模转换器(DAC)用于功率输出控制,其中,直流电机的速度控制是最常见的应用。通常PWM配合桥式驱动电路实现直流电机调速,非常简单,且调速范围大。在直流电动机的控制中,主要使用定频调宽法。
目前,电机调速控制模块主要有以下三种:
(1)、采用电阻网络或数字电位器调整直流电机的分压,从而达到调速的目的;
(2)、采用继电器对直流电机的开或关进行控制,通过开关的切换对电机的速度进行调整;
(3)、采用由IGBT管组成的H型PWM电路。用单片机控制IGBT管使之工作在占空比可调的开关状态,精确调整电动机转速。
1.2 国内外发展概况
1.2.1 国内发展概况
我国从六十年代初试制成功第一只硅晶闸管以来,晶闸管直流调速系统开始得到迅速的发展和广泛的应用。用于中、小功率的 0.4~200KW晶闸管直流调速装置已作为标准化、系列化通用产品批量生产。
目前,全国各大专院校、科研单位和厂家都在进行数字式直流调速系统的开发,提出了许多关于直流调速系统的控制算法
(1)、直流电动机及直流调速系统的参数辩识的方法。该方法据系统或环节的输入输出特性,应用最小二乘法,即可获得系统环节的内部参数。所获得的参数具有较高的精度,方法简便易行。
(2)、直流电动机调速系统的内模控制方法。该方法依据内模控制原理,针对双闭环直流电动机调速系统设计了一种内模控制器,取代常规的PI调节器,成功解决了转速超调问题,能使系统获得优良的动态和静态性能,而且设计方法简单,控制器容易实现。
(3)、单神经元自适应智能控制的方法。该方法针对直流传动系统的特点,提出了单神经元自适应智能控制策略。这种单神经元自适应智能控制系统不仅具有良好的静、动态性能,而且还具有令人满意的鲁棒性与自适应性。
(4)、模糊控制方法。该方法对模糊控制理论在小惯性系统上对其应用进行了尝试。经1.5kw电机实验证明,模糊控制理论可以用于直流并励电动机的限流起动和恒速运行控制,并能获得理想的控制曲线。
上诉的控制方法仅是直流电机调速系统应用和研究的一个侧面,国内外还有许多学者对此进行了不同程度的研究。
1.2.2 国外发展概况
随着各种微处理器的出现和发展,国外对直流电机的数字控制调速系统的研究也在不断发展和完善,尤其80年代在这方面的研究达到空前的繁荣。大型直流电机的调速系统一般采用晶闸管整流来实现,为了提高调速系统的性能,研究工作者对晶闸管触发脉冲的控制算法作了大量研究,提出了内模控制算法、I-P控制器取代PI调节器的方法、自适应和模糊PID算法等等。
目前,国外主要的电气公司,如瑞典ABB公司,德国西门子公司、AEG公司,日本三菱公司、东芝公司、美国GE公司等,均已开发出数字式直流调装置,有成熟的系列化、标准化、模版化的应用产品供选用。如西门子公司生产的SIMOREG-K 6RA24 系列整流装置为三相交流电源直接供电的全数字控制装置,其结构紧凑,用于直流电机电枢和励磁供电,完成调速任务。设计电流范围为15A至1200A,并可通过并联SITOR可控硅单元进行扩展。根据不同的应用场合,可选择单象限或四象限运行的装置,装置本身带有参数设定单元,不需要其它任何附加设备便可以完成参数设定。所有控制调节监控及附加功能都由微处理器来实现,可选择给定值和反馈值为数字量或模拟量。
1.2.3 总结
随着生产技术的发展,对直流电气传动在起制动、正反转以及调速精度、调速范围、静态特性、动态响应等方面都提出了更高的要求,这就要求大量使用直流调速系统。因此人们对直流调速系统的研究将会更深一步。
1.3 本课题研究目的及意义
直流电动机是最早出现的电动机,也是最早实现调速的电动机。长期以来,直流电动机一直占据着调速控制的统治地位。由于它具有良好的线性调速特性,简单的控制性能,高效率,优异的动态特性,现在仍是大多数调速控制电动机的最优选择。因此研究直流电机的速度控制,有着非常重要的意义。
随着单片机的发展,数字化直流PWM调速系统在工业上得到了广泛的应用,控制方法也日益成熟。它对单片机的要求是:具有足够快的速度;有PWM口,用于自动产生PWM波;有捕捉功能,用于测频;有A/D转换器、用来对电动机的输出转速、输出电压和电流的模拟量进行模/数转换;有各种同步串行接口、足够的内部ROM和RAM,以减小控制系统的无力尺寸;有看门狗、电源管理功能等。因此该实验中选用Cygnal公司的单片机C8051F020。
通过设计基于C8051F020单片机的直流PWM调速系统并调试得出结论,在掌握C8051F020的同时进一步加深对直流电动机调速方法、PI控制器的理解,对运动控制的相关知识进行巩固。
1.4 论文主要研究内容
本课题的研究对象为直流电动机,对其转速进行控制。基本思想是利用C8051F020自带的PWM口,通过调整PWM的占空比,控制电机的电枢电压,进而控制转速。
系统硬件设计为:以C8051F020为核心,由转速环、显示、按键控制等电路组成。
具体内容如下:
(1)、介绍直流电动机工作原理及PWM调速方法。
(2)、完成以C8051F020为控制核心的直流电机数字控制系统硬件设计。
(3)、以该系统的特点为基础进行分析,使用PWM控制电机调速,并由实验得到合适的PI控制及相关参数。
(4)、对该数字式直流电动机调速系统的性能做出总结。

第二章 直流电动机调速器工作原理
2.1 直流电机调速方法及原理
直流电动机的转速和各参量的关系可用下式表示:

由上式可以看出,要想改变直流电机的转速,即调速,可有三种不同的方式:调节电枢供电电压U,改变电枢回路电阻R,调节励磁磁通Φ。
3种调速方式的比较表2-1所示.
表2-1 3种电动机调速方式对比
调速方式和方法 控制装置 调速范围 转速变化率 平滑性 动态性能 恒转矩或恒功 率 效率
改变电枢电阻 串电枢电阻 变阻器或接触器、电阻器 2:1 低速时大 用变阻器较好
用接触器、电阻器较差 无自动调节能力 恒转矩 低
改变电枢电压 电动机-发电机组 发电机组或电机扩大机(磁放大器) 10:1~20:1 小 好 较好 恒转矩 60%~70%
静止变流器 晶闸管变流器 50:1~100:1 小 好 好 恒转矩 80%~90%
直流脉冲调宽 晶体管或晶闸管直流开关电路 50:1~100:1 小 好 好 恒转矩 80%~90%
改变磁通 串联电阻或可变直流电源 直流电源变阻器 3:1

5:1 较大 差 差 恒功率 80%~90%
电机扩大机或磁放大器 好 较好
晶闸管变流器 好

由表2-1知,对于要求在一定范围内无级平滑调速的系统来说,以调节电枢供电电压的方式为最佳,而变电枢电压调速方法亦是应用最广的调速方法。
2.2直流电机PWM(脉宽调制)调速工作原理
在直流调速系统中,开关放大器提供驱动电机所需要的电压和电流,通过改变加在电动机上的电压的平均值来控制电机的运转。在开关放大器中,常采用晶体管作为开关器件,晶体管如同开关一样,总是处在接通和断开的状态。在晶体管处在接通时,其上的压降可以略去;当晶体管处在断开时,其上的压降很大,但是电流为零,所以不论晶体管导通还是关断,输出晶体管中的功耗都是很小的。一种比较简单的开关放大器是按照一个固定的频率去接通和断开放大器,并根据需要改变一个周期内“接通”和“断开”的相位宽窄,这样的放大器被称为脉冲调制放大器。
PWM脉冲宽度调制技术就是通过对一系列脉冲的宽度进行调制,来等效地获得获得所需要波形(含形状和幅值)的技术。
根据PWM控制技术的特点,到目前为止主要有八类方法:相电压控制PWM、线电压控制PWM、电流控制PWM、非线性控制PWM,谐振软开关PWM、矢量控制PWM、直接转矩控制PWM、空间电压矢量控制PWM。
利用开关管对直流电动机进行PWM调速控制原理图及输入输出电压波形如图2-1、图2-2所示。当开关管MOSFET的栅极输入高电平时,开关管导通,直流电动机电枢绕组两端由电压。秒后,栅极输入变为低电平,开关管截止,电动机电枢两端电压为0。秒后,栅极输入重新变为高电平,开关管的动作重复前面的过程。这样,对应着输入的电平高低,直流电动机电枢绕组两端的电压波形如图2-2所示。电动机的电枢绕组两端的电压平均值为:

式2-1

式中 ——占空比,
占空比表示了在一个周期里,开关管导通的时间与周期的比值。的变化范围为0≤≤1。由式2-1可知,当电源电压不变的情况下,电枢的端电压的平均值取决于占空比的大小,改变值就可以改变端电压的平均值,从而达到调速的目的,这就是PWM调速原理。
在PWM调速时,占空比是一个重要参数。以下是三种可改变占空比的方法:
(1)、定宽调频法:保持不变,改变,从而改变周期(或频率)。
(2)、调宽调频法:保持不变,改变,从而改变周期(或频率)。
(3)、定频调宽法:保持周期(或频率)不变,同时改变、。
前2种方法由于在调速时改变了控制脉冲的周期(或频率),当控制脉冲的频率与系统的固有频率接近时,将会引起振荡,因此应用较少。目前,在直流电动机的控制中,主要使用第3种方法。

图2-1 PWM调速控制原理

图2-2 输入输出电压波形
产生PWM控制信号的方法有4种,分别为:
(1)、分立电子元件组成的PWM信号发生器
这种方法是用分立的逻辑电子元件组成PWM信号电路。它是最早期的方式,现在已经被淘汰了。
(2)、软件模拟法
利用单片机的一个I/O引脚,通过软件对该引脚不断地输出高低电平来实现PWM信号输出。这种方法要占用CPU大量时间,需要很高的单片机性能,易于实现,目前也逐渐被淘汰。
(3)、专用PWM集成电路
从PWM控制技术出现之日起,就有芯片制造商生产专用的PWM集成电路芯片,现在市场上已有许多种。这些芯片除了由PWM信号发生功能外,还有“死区”调节功能、保护功能等。在单片机控制直流电动机系统中,使用专用PWM集成电路可以减轻单片机负担,工作也更可靠。
(4)、单片机PWM口
新一代的单片机增加了许多功能,其中包括PWM功能。单片机通过初始化设置,使其能自动地发出PWM脉冲波,只能在改变占空比时CPU才进行干预。
其中常用后两中方法获得PWM信号。实验中使用方法(4)获得PWM信号。
2.3 转速负反馈单闭环直流调速系统原理
2.3.1 单闭环直流调速系统的组成
只通过改变触发或驱动电路的控制电压来改变功率变换电路的输出平均电压,达到调节电动机转速的目的,称为开环调速系统。但开环直流调速系统具有局限性:
(1)、通过控制可调直流电源的输入信号,可以连续调节直流电动机的电枢电压,实现直流电动机的平滑无极调速,但是,在启动或大范围阶跃升速时,电枢电流可能远远超过电机额定电流,可能会损坏电动机,也会使直流可调电源因过流而烧毁。因此必须设法限制电枢动态电流的幅值。
(2)、开环系统的额定速降一般都比较大,使得开环系统的调速范围D都很小,对于大部分需要调速的生产机械都无法满足要求。因此必须采用闭环反馈控制的方法减小额定动态速降,以增大调速范围。
(3)、开环系统对于负载扰动是有静差的。必须采用闭环反馈控制消除扰动静差
为克服其缺点,提高系统的控制质量,必须采用带有负反馈的闭环系统,方框图如图2-3所示。在闭环系统中,把系统输出量通过检测装置(传感器)引向系统的输入端,与系统的输入量进行比较,从而得到反馈量与输入量之间的偏差信号。利用此偏差信号通过控制器(调节器)产生控制作用,自动纠正偏差。因此,带输出量负反馈的闭环控制系统能提高系统抗扰性,改善控制精度的性能,广泛用于各类自动调节系统中。

6. 单片机的毕业论文怎么写

一、毕业设计题目及要求 (2个) 1、基于单片机控制的电动机Y-△启动的设计 要求:1)控制器为单片机,电动机为三相异步电动机;2)启动时间为3秒;3)由按键设置电动机Y-△运行、停止。 2、基于单片机控制的可调直流稳压电源的设计 要求:1)控制器为单片机,电压输出范围为0-10V,电压精度为0.1V;2)通过数码管显示电压值;3)由按键设置电压值。 二、毕业设计用到的主要软件(及功能) 毕业设计用到的主要软件(及功能):Keil 51(源程序编译),Proteus(电路仿真),AutoCAD(绘图), Visio(绘流程图), Protel 99SE(原理图电路设计,PCB板制作) 三、单片机方面毕业设计要求 1、学会编写程序(用C语言或汇编语言),用Keil 51软件对源程序进行编译。 2、学会用Proteus电路仿真软件对所设计的硬件电路进行仿真。 3、在写毕业论文时,学会用Word、AutoCAD, Visio,Protel 99SE等软件对程序流程图、电路原理图等进行绘制。 相关答案 ↓位朋友,以51单片机为例。51现在很多都是用仿真器来进行在线调试的,而每个公司的仿真器都会有自带的编程软件,当然,跟keil是差不了多少的。 步骤大体如下: 1.新建,进行程序的编写 2.连上仿真器或烧写器,这一步有可能要对仿真器或烧写器进行设置,具体可看它们的使用说明 3.对程序进行编译,这一步会自动检测你的程序有没错,如果有错,是不能进入下一步的.如果你用的是仿真器,这一步编译成功后就可以直接运行进行在线调试了。 4.如果用的是烧写器,那就进行烧写 各个软件和调试方法会有些不同,但大体就是这样,一些调试工具的说明书也有很详细的说明。 学参数测量技术涉及范围广,特别是微电压、微电流、高电压以及待测信号强弱相差极大的情况下,既要保证弱信号的测量精度又要兼顾强信号的测量范围,在技术上有一定的难度。传统的低成本仪表在测量电压、电阻时都采用手动选择档位的方法来转换量程。在使用中,当忘记转换档位时,会造成仪表测量精度下降或损坏。 现代电子测量对系统的精度要求越来越高且智能化程度也越来越高。全量程无档自动量程转换电压表和电阻表是在保证测量精度不下降的前提条件下省去手动转换量程的工作,得到了广泛应用。 本文介绍了一种基于AT89S52 单片机 的智能多用表。该表能在单片机的控制下完成直流电压、电阻和直流电流的测量。测量电流部分采用了简单的I/V转换电路完成测试;测量电压部分结合模拟开关CD4051和运算放大器OP07构成程控放大器,实现了自动量程转换;测量电阻部分也由模拟开关CD4051和运算放大器OP07相结合,在单片机控制下完成了自动量程转换。电流、电压和电阻的最终测量信号都在单片机的控制下由12位A/D转换器TLC2543进行采集,采集的信号经单片机数据处理后通过LCD(12864)显示出来,测量结果还可以由带有串行EEPROM的CPU存储器和监控器的X25045进行多个数据保存。 关键词:TLC2543 自动量程转换 程控增益放大器 电压 电阻 电流 目录 摘要1 Abstract 2 第一章 绪论 5 1. 1 概述 5 1. 2 智能仪器/仪表国内外发展概况 5 1. 3 课题研究目的及意义 6 第二章 系统结构及功能介绍 8 2. 1 系统功能和性能指标 8 2. 1. 1 仪表功能 8 2. 1. 2 性能指标 8 2. 1. 3 本机特色 8 2. 1. 4 系统使用说明 9 2. 2 系统工作原理概述 9 第三章 方案设计与论证 11 3. 1 量程选择的设计与论证 11

7. 懂80C51单片机的进~

贴上两个自己用过的LCD1602驱动(总线、IO口的都有,肯定派得上用场)
再贴上ADC0809总线上的驱动,只是不知道楼主的具体要求如何显示在LCD上,只能保存在数组里面
硬件连接在代码中已经基本补齐了,其他的应该不用再多说了吧?!^_^
*********************************************************************
/*===========================================================================

KS0070(44780) 16x2 字符液晶屏驱动演示程序总线方式 晓奇
=============================================================================
连接线图: LCM-------51 LCM-------51 LCM--------51
DB0-----P0.0 DB4-----P0.4 RW-------P2.0
DB1-----P0.1 DB5-----P0.5 RC-------P2.1
DB2-----P0.2 DB6-----P0.6 E--------P2.7 =>74ls00+wr+rd
DB3-----P0.3 DB7-----P0.7 VLCD接1K2电阻到GND

[注]:AT89C51的晶振频率为12MHz
============================================================================*/
//#pragma src // 产生汇编文件
#include <reg51.h>
#include<intrins.h>

//========= 变量类型标识的宏定义,大家都喜欢这么做 ==============
#define Uchar unsigned char
#define Uint unsigned int

// ================= LCM1602A端口地址定义 =======================
char xdata Lcd1602CmdPort _at_ 0x7cff; //E=1 RS=0 RW=0
char xdata Lcd1602WdataPort _at_ 0x7eff; //E =1 RS=1 RW=0
char xdata Lcd1602StatusPort _at_ 0x7dff; //CS=1 RS=0 RW=1

#define Busy 0x80 // 忙判别位

code char exampl[]="For an example. - By xiaoqi\n";

void Delay400Ms(void);
void Delay5Ms(void);
void LcdWriteData( char dataW );
void LcdWriteCommand( Uchar CMD,Uchar AttribC );
void LcdReset( void );
void Display( Uchar dd );
void DispOneChar(Uchar x,Uchar y,Uchar Wdata);
void ePutstr(Uchar x,Uchar y, Uchar code *ptr);

//================ 随便写几句测试主程序 ================
void main(void)
{
Uchar temp;

Delay400Ms(); // 启动时必须的延时,等待lcm进入工作状态

LcdReset(); // 这也是必需的....初始化
temp = 32;
ePutstr(0,0,exampl); // 上面一行显示一个预定字符串

Delay400Ms(); // 保留显示内容
Delay400Ms();
Delay400Ms();
Delay400Ms();
Delay400Ms();
Delay400Ms();
Delay400Ms();
Delay400Ms();

while(1)
{
temp &= 0x7f; // 只显示ASCII字符

if (temp<32)temp=32; // 屏蔽控制字符,不予显示
Display( temp++ );

Delay400Ms();
}
}

/*=======================================================
显示字符串
=======================================================*/
void ePutstr(Uchar x,Uchar y, Uchar code *ptr) {
Uchar i,l=0;
while (ptr[l] >31){l++;};
for (i=0;i<l;i++) {
DispOneChar(x++,y,ptr[i]);
if ( x == 16 ){
x = 0; y ^= 1;
}
}
}

/*=======================================================
演示一行连续字符串,配合上位程序演示移动字串
=======================================================*/
void Display( Uchar dd ) {

Uchar i;

for (i=0;i<16;i++) {

DispOneChar(i,1,dd++);

dd &= 0x7f;
if (dd<32) dd=32;
}
}

/*=======================================================
显示光标定位
=======================================================*/
void LocateXY( char posx,char posy) {

Uchar temp;

temp = posx & 0xf;
posy &= 0x1;
if ( posy )temp |= 0x40;
temp |= 0x80;
LcdWriteCommand(temp,0);
}

/*=======================================================
按指定位置显示数出一个字符
=======================================================*/
void DispOneChar(Uchar x,Uchar y,Uchar Wdata) {

LocateXY( x, y ); // 定位显示地址
LcdWriteData( Wdata ); // 写字符
}

/*=======================================================
初始化程序, 必须按照产品资料介绍的初始化过程进行
=======================================================*/
void LcdReset( void ) {

LcdWriteCommand( 0x38, 0); // 显示模式设置(不检测忙信号)
Delay5Ms();
LcdWriteCommand( 0x38, 0); // 共三次
Delay5Ms();
LcdWriteCommand( 0x38, 0);
Delay5Ms();

LcdWriteCommand( 0x38, 1); // 显示模式设置(以后均检测忙信号)
LcdWriteCommand( 0x08, 1); // 显示关闭
LcdWriteCommand( 0x01, 1); // 显示清屏
LcdWriteCommand( 0x06, 1); // 显示光标移动设置
LcdWriteCommand( 0x0c, 1); // 显示开及光标设置
}

/*=======================================================
写控制字符子程序: E=1 RS=0 RW=0
=======================================================*/
void LcdWriteCommand( Uchar CMD,Uchar AttribC ) {

if (AttribC) while( Lcd1602StatusPort & Busy ); // 检测忙信号?
Lcd1602CmdPort = CMD;
}

/*=======================================================
当前位置写字符子程序: E =1 RS=1 RW=0
=======================================================*/
void LcdWriteData( char dataW ) {

while( Lcd1602StatusPort & Busy ); // 检测忙信号
Lcd1602WdataPort = dataW;
}

// 短延时
void Delay5Ms(void)
{
Uint i = 5552;
while(i--);
}

//长延时
void Delay400Ms(void)
{
Uchar i = 5;
Uint j;
while(i--)
{
j=7269;
while(j--);
};
}

*********************************************************************
/*===================================================================

KS0070(44780) 16x2 字符液晶屏驱动演示程序 晓奇
=====================================================================
连接线图: LCM-------51 LCM-------51 LCM--------51
DB0-----P0.0 DB4-----P0.4 RS-------P2.5
DB1-----P0.1 DB5-----P0.5 RW-------P2.6
DB2-----P0.2 DB6-----P0.6 E--------P2.7
DB3-----P0.3 DB7-----P0.7 VLCD接1K2电阻到GND

[注]:AT89C51的晶振频率为12MHz
====================================================================*/

#include <reg51.h>
#include<intrins.h>

//变量类型标识的宏定义,大家都喜欢这么做
#define Uchar unsigned char
#define Uint unsigned int

// 控制引脚定义,不同的连接必须修改的部分
sbit RS = P2^5;
sbit RW = P2^6;
sbit Elcm = P2^7;
#define DataPort P0 // 数据端口,必须上拉电阻

#define Busy 0x80

code char exampl[]="For an example. - By xiaoqi\n";

void Delay400Ms(void);
void Delay5Ms(void);
void WaitForEnable( void );
void LcdWriteData( char dataW );
void LcdWriteCommand( Uchar CMD,Uchar AttribC );
void LcdReset( void );
void Display( Uchar dd );
void DispOneChar(Uchar x,Uchar y,Uchar Wdata);
void ePutstr(Uchar x,Uchar y, Uchar code *ptr);

//测试主程序
void main(void)
{
Uchar temp;

Delay400Ms();

LcdReset();
temp = 32;
ePutstr(0,0,exampl); // 上面一行显示一个预定字符串

Delay400Ms();
Delay400Ms();
Delay400Ms();
Delay400Ms();
Delay400Ms();
Delay400Ms();
Delay400Ms();
Delay400Ms();

while(1)
{
temp &= 0x7f; // 只显示ASCII字符
if (temp<32)temp=32; // 屏蔽控制字符,不予显示
Display( temp++ );
Delay400Ms();
}
}

/*=======================================================
显示字符串
=======================================================*/
void ePutstr(Uchar x,Uchar y, Uchar code *ptr) {
Uchar i,l=0;
while (ptr[l] >31){l++;};
for (i=0;i<l;i++) {
DispOneChar(x++,y,ptr[i]);
if ( x == 16 ){
x = 0; y ^= 1;
}
}
}

/*=======================================================
演示一行连续字符串,配合上位程序演示移动字串
=======================================================*/
void Display( Uchar dd ) {

Uchar i;

for (i=0;i<16;i++) {
DispOneChar(i,1,dd++);
dd &= 0x7f;
if (dd<32) dd=32;
}
}

/*=======================================================
显示光标定位
=======================================================*/
void LocateXY( char posx,char posy) {

Uchar temp;

temp = posx & 0xf;
posy &= 0x1;
if ( posy )temp |= 0x40;
temp |= 0x80;
LcdWriteCommand(temp,0);
}

/*=======================================================
按指定位置显示数出一个字符
=======================================================*/
void DispOneChar(Uchar x,Uchar y,Uchar Wdata) {

LocateXY( x, y ); // 定位显示地址
LcdWriteData( Wdata ); // 写字符
}

/*=======================================================
初始化程序, 必须按照产品资料介绍的初始化过程进行
=======================================================*/
void LcdReset( void ) {

LcdWriteCommand( 0x38, 0); // 显示模式设置(不检测忙信号)
Delay5Ms();
LcdWriteCommand( 0x38, 0); // 共三次
Delay5Ms();
LcdWriteCommand( 0x38, 0);
Delay5Ms();

LcdWriteCommand( 0x38, 1); // 显示模式设置(以后均检测忙信号)
LcdWriteCommand( 0x08, 1); // 显示关闭
LcdWriteCommand( 0x01, 1); // 显示清屏
LcdWriteCommand( 0x06, 1); // 显示光标移动设置
LcdWriteCommand( 0x0c, 1); // 显示开及光标设置
}

/*=======================================================
写控制字符子程序: E=1 RS=0 RW=0
=======================================================*/
void LcdWriteCommand( Uchar CMD,Uchar AttribC ) {

if (AttribC) WaitForEnable(); // 检测忙信号?

RS = 0; RW = 0; _nop_();

DataPort = CMD; _nop_(); // 送控制字子程序

Elcm = 1;_nop_();_nop_();Elcm = 0; // 操作允许脉冲信号
}

/*=======================================================
当前位置写字符子程序: E =1 RS=1 RW=0
=======================================================*/
void LcdWriteData( char dataW ) {

WaitForEnable(); // 检测忙信号

RS = 1; RW = 0; _nop_();

DataPort = dataW; _nop_();

Elcm = 1; _nop_(); _nop_(); Elcm = 0; // 操作允许脉冲信号

}

/*=======================================================
正常读写操作之前必须检测LCD控制器状态: CS=1 RS=0 RW=1
DB7: 0 LCD控制器空闲; 1 LCD控制器忙
========================================================*/
void WaitForEnable( void ) {

DataPort = 0xff;

RS =0; RW = 1; _nop_(); Elcm = 1; _nop_(); _nop_();

while( DataPort & Busy );

Elcm = 0;
}

// 短延时
void Delay5Ms(void)
{
Uint i = 5552;
while(i--);
}

//长延时
void Delay400Ms(void)
{
Uchar i = 5;
Uint j;
while(i--)
{
j=7269;
while(j--);
};
}

*********************************************************************
#include<REG51.H>
#include<ABSACC.H>
#define uchar unsigned char
//通道号,根据硬件实际改动
#define IN0 XBYTE[0X0000] //通道0
#define IN1 XBYTE[0X0001]
#define IN2 XBYTE[0X0002]
#define IN3 XBYTE[0X0003]
#define IN4 XBYTE[0X0004]
#define IN5 XBYTE[0X0005]
#define IN6 XBYTE[0X0006]
#define IN7 XBYTE[0X0007]

sbit ad_busy=P3^5;

void AD0809(uchar idata *x);

//调用该程序后应将模拟量转换成数字量存于一数组adcRes[]之中
void AD0809(uchar idata *adcRes)
{
uchar i;
data uchar xdata *ad_adr;
ad_adr=&IN0; // 指向第一个通道
for(i=0;i<8;i++) {
*ad_adr=0; //启动AD转换
ad_busy=0; //调试后发现0才是正确的
while(ad_busy==0); //等待AD转换结束
adcRes[i]=*ad_adr; //保存转换结果
ad_adr++; //下一个通道
}
}

阅读全文

与单片机绪论相关的资料

热点内容
海康威视python通道名 浏览:237
如何用app覆盖全部曲库 浏览:602
变异布林源码 浏览:684
表格加密设置打印区域 浏览:437
卡耐基pdf下载 浏览:922
现在最流行的单片机 浏览:88
机顶盒刷机源码 浏览:985
编码pdf下载 浏览:944
隔壁同学app怎么 浏览:299
c语言宏命令 浏览:542
php卡死源码 浏览:574
time库中的clock函数python 浏览:989
cad视觉移动命令怎么打开 浏览:821
安卓java调用python 浏览:395
java标准时间 浏览:137
华为服务器湖北渠道商云主机 浏览:30
韩式面部护理解压视频 浏览:301
pdf换成jpg图片 浏览:897
dh加密算法 浏览:107
安卓手机如何隐藏微信信息提示 浏览:632