本书针对Atmel公司的AVR系列单片机和ImageCraft公司的ICC AVR开发环境,详细地介绍了AT90LS8535的C语言程序设计。全书共有13章,其内容既涉及到了单片机的结构原理、指令系统、内容资源和外部功能扩展,又包含了单片机的编程工具——ICC AVR C编程器的数据类型、控制流、函数和指针等。本书的特点是:深入浅出,从最基本的概念开始,循序渐进地讲解单片机的应用开发;列举了大量实例,使读者能从实际应用中掌握单片机的开发与应用技术。本书适合作为从事单片机开发人员的参考用书。书中先后讲解了C语言基础、AVR单片机基础,并举了一些简单的实例。本书非常适合初学者。 【目录信息】 第1章 单片机系统概述 1. 1 AVR系列单片机的特点 1. 2 AT90系列单片机简介 第2章 AT90LS8535单片机的基础知识 2. 1 AT90LS8535单片机的总体结构 2. 1. 1 AT90LS8535单片机的中央处理器 2. 1. 2 AT90LS8535单片机的存储器组织 2. 1. 3 AT90LS8535单片机的I/O接口 2. 1. 4 AT90LS8535单片机的内部资源 2. 1. 5 AT90LS8535单片机的时钟电路 2. 1. 6 AT90LS8535单片机的系统复位 2. 1. 7 AT90LS8535单片机的节电方式 2. 1. 8 AT90LS8535单片机的芯片引脚 2. 2 AT90LS8535单片机的指令系统 2. 2. 1 汇编指令格式 2. 2. 2 寻址方式 2. 2. 3 伪指令 2. 2. 4 指令类型及数据操作方式 2. 3 应用程序设计 2. 3. 1 程序设计方法 2. 3. 2 应用程序举例 第3章 AT90LS8535单片机的C编程 3. 1 支持高级语言编程的AVR系列单片机 3. 2 AVR的C编译器 3. 3 ICCAVR介绍 3. 3. 1 安装ICCAVR 3. 3. 2 设置ICCAVR 3. 4 用ICCAVR编写应用程序 3. 5 下载程序文件 第4章 数据类型. 运算符和表达式 4. 1 ICCAVR支持的数据类型 4. 2 常量与变量 4. 2. 1 常量 4. 2. 2 变量 4. 3 AT90LS8535的存储空间 4. 4 算术和赋值运算 4. 4. 1 算术运算符和算术表达式 4. 4. 2 赋值运算符和赋值表达式 4. 5 逻辑运算 4. 6 关系运算 4. 7 位操作 4. 7. 1 位逻辑运算 4. 7. 2 移位运算 4. 8 逗号运算 第5章 控制流 5. 1 C语言的结构化程序设计 5. 1. 1 顺序结构 5. 1. 2 选择结构 5. 1. 3 循环结构 5. 2 选择语句 5. 2. 1 if语句 5. 2. 2 switch分支 5. 2. 3 选择语句的嵌套 5. 3 循环语句 5. 3. 1 while语句 5. 3. 2 do…while语句 5. 3. 3 for语句 5. 3. 4 循环语句嵌套 5. 3. 5 break语句和continue语句 第6章 函数 6. 1 函数的定义 6. 1. 1 函数的定义的一般形式 6. 1. 2 函数的参数 6. 1. 3 函数的值 6. 2 函数的调用 6. 2. 1 函数的一般调用 6. 2. 2 函数的递归调用 6. 2. 3 函数的嵌套调用 6. 3 变量的类型及其存储方式 6. 3. 1 局部变量 6. 3. 2 局部变量的存储方式 6. 3. 3 全局变量 6. 3. 4 全局变量的存储方式 6. 4 内部函数和外部函数 6. 4. 1 内部函数 6. 4. 2 外部函数 第7章 指针 7. 1 指针和指针变量 7. 2 指针变量的定义和引用 7. 2. 1 指针变量的定义 7. 2. 2 指针变量的引用 7. 2. 3 指针变量作为函数参数 7. 3 数组与指针 7. 3. 1 指向数组元素的指针变量 7. 3. 2 数组元素的引用 通过指针 7. 3. 3 数组名作为函数参数 7. 3. 4 指向多维数组的元素的指针变量 7. 4 字符串与指针 7. 4. 1 字符串的表示形式 7. 4. 2 字符串指针变量与字符数组的区别 7. 5 函数与指针 7. 5. 1 函数指针变量 7. 5. 2 指针型函数 7. 6 指向指针的指针 7. 7 有关指针数据类型和运算小结 7. 7. 1 有关指针的数据类型的小结 7. 7. 2 指针运算的小结 第8章 结构体和共用体 8. 1 结构体的定义和引用 8. 1. 1 结构体类型变量的定义 8. 1. 2 结构体类型变量的引用 8. 2 结构类型的说明 8. 3 结构体变量的初始化和赋值 8. 3. 1 结构体变量的初始化 8. 3. 2 结构体变量的赋值 8. 4 结构体数组 8. 4. 1 结构体数组的定义 8. 4. 2 结构体数组的初始化 8. 5 指向结构体类型变量的指针 8. 5. 1 指向结构体变量的指针 8. 5. 2 指向结构体数组的指针 8. 5. 3 指向结构体变量的指针做函数参数 8. 6 共用体 8. 6. 1 共用体的定义 8. 6. 2 共用体变量的引用 第9章 A190LS8535的内部资源 9. 1 I/O 口 9. 1. 1 端口A 9. 1. 2 端口B 9. 1. 3 端口C 9. 1. 4 端口D 9. 1. 5 I/O口的编程 9. 2 中断 9. 2. 1 单片机的中断功能 9. 2. 2 AT90LS8535单片机的中断系统 9. 2. 3 1CCAVRC编译器的中断操作 9. 2. 4 中断的编程 9. 3 串行数据通信 9. 3. 1 数据通信基础 9. 3. 2 AT90LS8535的同步串行接口 9. 3. 3 AT90LS8535的异步串行接口 9. 4 定时/计数器 9. 4. 1 定时/计数器的分频器 9. 4. 2 8位定时/计数器0 9. 4. 3 16位定时/计数器1 9. 4. 4 8位定时/计数器2 9. 5 EEPROM 9. 5. 1 与EEPROM有关的寄存器 9. 5. 2 EEPROM读/写操作 9. 5. 3 EEPROM的应用举例 9. 6 模拟量输入接口 9. 6. 1 模数转换器的结构 9. 6. 2 ADC的使用 9. 6. 3 与模数转换器有关的寄存器 9. 6. 4 ADC的噪声消除 9. 6. 5 ADC的应用举例 9. 7 模拟比较器 9. 7. 1 模拟比较器的结构 9. 7. 2 与模拟比较器有关的寄存器 9. 7. 3 模拟比较器的应用举例 第10章 AT90LS8535的人机接口编程 10. 1 键盘接口 10. 1. 1 非矩阵式键盘 10. 1. 2 矩阵式键盘 10. 2 LED显示输出 10. 2. 1 LED的静态显示 10. 2. 2 LED的动态扫描显示 10. 2. 3 动态扫描显示专用芯片MC14489 10. 3 LCD显示输出 10. 3. 1 字符型LCD 10. 3. 2 点阵型LCD 10. 4 ISD2500系列语音芯片的编程 10. 4. 1 ISD2500的片内结构和引脚 10. 4. 2 ISD2500的操作 10. 4. 3 ISD2500和单片机的接口及编程 10. 5 TP-uP微型打印机 10. 5. 1 TP-uP打印机的接口和逻辑时序 10. 5. 2 P-uP打印机的打印命令和字符代码 10. 5. 3 AT90LS8535与TP-uP系列打印机的接口及编程 10. 6 IC卡 10. 6. 1 IC卡读写装置 10. 6. 2 IC卡软件 第11章 AT90LS8535的外围扩展 11. 1 简单I/O扩展芯片 11. 1. 1 用74LS377扩展数据输出接口 11. 1. 2 数据输入接口 11. 2 模拟量输出 11. 2. 1 D/A转换器简介 11. 2. 2 8位数模转换器DAC0832 11. 2. 3 8位数模转换器与单片机的接口及编程 11. 2. 4 12位数模转换器DACl230 11. 2. 5 12位数模转换器与单片机的接口及编程 11. 3 可编程I/O扩展芯片8255A 11. 3. 1 8255A的引脚和内部结构 11. 3. 2 8255A的工作方式 11. 3. 3 8255A的控制字 11. 3. 4 AT90LS8535和8255A的接口 11. 4 带片内RAM的I/O扩展芯片8155 11. 4. 1 8155的引脚和内部结构. 11. 4. 2 8155的I/O口工作方式 11. 4. 3 8155的定时/计数器 11. 4. 4 8155的命令和状态字 11. 4. 5 AT90LS8535与8155的接口及编程 11. 5 定时/计数器芯片8253 11. 5. 1 8253的信号引脚和逻辑结构 11. 5. 2 8253的工作方式 11. 5. 3 8253的控制字 11. 5. 4 AT90LS8535与8253的接口及编程 11. 6 实时时钟芯片DS1302 11. 6. 1 DS1302的引脚和内部结构 11. 6. 2 DS1302的控制方式 11. 6. 3 AT90LS8535与DS1302的接口与编程 11. 7 数字温度传感器DS18B20 11. 7. 1 DSl8B20的引脚和内部结构 11. 7. 2 DS18B20的温度测量 11. 7. 3 AT90LS8535与DS18B20的接口与编程 第12章 AT90LS8535的通信编程 12. 1 串口通信 12. 1. 1 异步串口UART通信 12. 1. 2 同步串口SPI通信 12. 2 I2C总线 12. 2. 1 I2C总线协议 12. 2. 2 采用AT90LS8535的并行I/O口模拟I2C总线 12. 3 CAN总线 12. 3. 1 CAN总线的特点 12. 3. 2 CAN协议的信息格式 12. 3. 3 CAN控制器SJA1000 12. 3. 4 AT90LS8535与SJA1000的接口及编程 12. 4 AT90LS8535单片机与PC的串行通信 12. 4. 1 基于VC 6. 0的PC串口通信 12. 4. 2 应用实例 第13章 系统设计中的程序处理方法 13. 1 数字滤波处理 13. 1. 1 平滑滤波 13. 1. 2 中值滤波 13. 1. 3 程序判断滤波 13. 2 非线性处理 13. 2. 1 查表法 13. 2. 2 线性插值法
上传时间: 2013-11-04
上传用户:元宵汉堡包
混沌科学得到广泛研究应该得益于20世纪60年代洛伦兹(Lorenz)的“蝴蝶效应”。混沌信号具有初值敏感性、内随机性、遍历性和有界性等特点,近几年得到深入的研究和探索,并开始广泛应用于信号处理、保密通信、生物医学等领域,特别是在医疗器械的应用,有着重大的突破。科学研究表明:生物体是一个高度的非线性系统,而非线性系统的运动通常表现出混沌现象,人体的生理活动呈现众多的混沌现象。所以,研究混沌信号源的产生对生物医学的研究有着极其重要的意义。
上传时间: 2013-11-10
上传用户:xdqm
介绍一种基于C8051F340快速单片机控制的直放站设计;采用GPS同步法,按时隙功率控制,自动增益控制AGC环路,系统的非线性指标良好、抗干扰性强、可靠性高。比以功率检测的同步方法和基于特征窗搜索的同步方法实现简单,应用范围更广,可用于任何无线直放站应用场合,特别适用于干放及无线射频交换场合。
上传时间: 2013-10-15
上传用户:hanhanhan
在冶金、化工,机械等各类工业控制中,电加热炉都得到了广泛的应用。目前国内的电加热炉温度控制器大多还停留在国际60年代水平,仍在使用继电一接触器控制或常规PID控制,自动化程度低,动态控制精度差,满足不了日益发展的工艺技术要求。电加热炉的温度是生产工艺的一项重要指标,温度控制的好坏将直接影响产品的质量。电加热炉由电阻丝加热,温度控制具有非线性、大滞后、大惯性、时变性、升温尊向性等特点。而且,在实际应用和研究中,电加热炉温度控制遇到了很多困难:第一,很难建立精确的数学模型:第二,不能很好地解决非线性、大滞后等问题。以精确数学模型为基础地经典控制理论和现代控制论在解决这些问题时遇到了极大地困难,而以语言规则模型(IF—THEN)为基础的模糊控制理论却是解决上述问题的有效途径和方法。国内现有的一些模糊设计方法大多存在不同缺点,而且真正把理论研究应用到实际系统的也较少。所以,深入研究在电加热炉系统控制中具体模糊控制设计理论是十分必要的。本文针对电加热炉这一控制对象,以Ts.94—1型号的箱形电加热炉为参考对象,分别采用工业控制中普遍使用的PID控制、经常见到的模糊控制策略,如基本模糊控制,对其进行仿真实验,比较,并进行了理论分析。针对上述电加热炉控制中存在的问题,本文设计了双模糊控制器。双模糊控制器在参数自整定模糊控制理论的基础上,对比例因子进行调整,克服原算法复杂丽不实用的特点,根据电加热炉不同的工作状态采用不同的模糊控制器,提高了控制精度,改善了控制效果。本文把模糊控制与神经网络技术相结合,利用神经网络很强的学习能力和自适应能力,建立了自适应神经模糊推理系统。把不依赖精确数学模型的模糊控制系统与有价值的经验数据或参考模型相结合,弥补了模糊控制的不足,使模糊控制系统更能发挥其强大优势,控制效果理想。在实践应用方面,以电加热炉为控制对象,开发了89C51单片机模糊控制器,主要进行了硬件和软件的设计。
上传时间: 2013-10-28
上传用户:yuanwenjiao
摘要:对特殊的环境温度进行测量.不仅要求测量的实时性.而且要求测量的精确度.使测量的温度达到既定的标准。因此作者介绍了一种应用铂电阻进行高精度的温度测量系统.系统中以PT100铂电阻作为测温传感器.采用最小二乘法来消除测温系统的非线性.并应用24位高性能模数转换器AD7714对所输入的模拟信号进行模/数转换。AD转换器AD7714的应用保证了0.001摄氏度的测量分辨率.最小二乘法的非线性优化使系统的测量误差小于0.01%。关键词:温度测量 AD7714 AT89C51 单片机 非线性优化 最小二乘法 铂电阻
上传时间: 2013-11-20
上传用户:dongbaobao
在现代化的工业现场,常用热电偶测试高温,测试结果送至主控机。由于热电偶的热电势与温度呈非线性关系,所以必须对热电偶进行线性化处理以保持测试精度。该系统通过高精度模/数转换器AD7705 对热电偶电动势进行采样、放大,并在单片机内采用一定算法实现对热电偶的线性化处理,再通过数/模转换器AD421 进行数/模转换产生4mA~20mA 电流,送主控中心。
上传时间: 2013-10-29
上传用户:行旅的喵
针对机舱消防应急救援模拟训练系统中训练环境控制的难题,设计了一种以AT89C52单片机为核心的多点温度烟雾测控系统。该系统可实现对模拟系统中消防环境(烟雾,温度)的实时测量和控制。根据训练系统对温度烟雾指标要求严格的特点,引入了基于NCD 与优化函数结合的非线性PID 对PID 参数进行优化整定,实现了实时控制。整个设计简明,清晰。
上传时间: 2013-10-21
上传用户:lunshaomo
电动机转速精密测量系统:从实际出发,利用Cygnal C8051 单片机、8253 和增量式光电编码器实现了电动机瞬时转速的快捷、准确测量,介绍了软件和硬件的设计方法,并通过实验数据对系统的性能和误差做了分析和评估。关键词:电动机; 转速测量; 光电编码器; 单片机 在电动机的闭环调速系统中,电动机转速的及时、准确测量对系统的稳态误差及动态响应性能都是至关重要的。传统的检测仪器,由于受非线性、元件老化等因素的影响很难满足要求。因此,笔者从实际出发,设计了以Cygnal C8051 单片机为核心的高精度、宽量程的测速装置。该装置利用增量式光电编码器作为测速传感器,采用M/ T 测速法实现了转速的适时准确测量,具有精度高、量程宽、抗干扰能力强等特点,使系统在整个范围内都能满足相应的精度及动态要求。系统还带有标准的RS232接口,可方便地和PC 机构成DCS 系统。
上传时间: 2013-11-08
上传用户:kxyw404582151
该文介绍89C51 单片机在直流电机转速控制系统中的应用、实现方法、硬件结构等。本系统采用霍尔元器件测量电动机的转速,用89C51 单片机对直流电机的转速进行控制,用DAC0832 芯片实现输出模拟电压值来控制直流电动机的转速。直流电动机具有良好的起动、制动性能,宜于在大范围内平滑调速,在许多需要调速或快速正反向的电力拖动领域中得到了广泛的应用。从控制的角度来看,直流调速还是交流拖动系统的基础[4]。早期直流电动机的控制均以模拟电路为基础,采用运算放大器、非线性集成电路以及少量的数字电路组成,控制系统的硬件部分非常复杂,功能单一,而且系统非常不灵活、调试困难,阻碍了直流电动机控制技术的发展和应用范围的推广。随着单片机技术的日新月异,使得许多控制功能及算法可以采用软件技术来完成,为直流电动机的控制提供了更大的灵活性,并使系统能达到更高的性能。采用单片机构成控制系统,可以节约人力资源和降低系统成本,从而有效的提高工作效率[1]。
上传时间: 2013-12-29
上传用户:rishian
18-2. D/A转换器基本知识18-3. 光导智能小车硬件实现18-4. ADC0832基本应用方法18-5. 光导智能小车软件实现A/D转换器的主要技术指标分辨率 使输出数字量变化一个相邻数码所需输入模拟电压的变化量。常 用二进制的位数表示。 例如:12位ADC的分辨率就是12位,一个10V满刻度的12位ADC能分辨 输入电压变化最小是: 10V×1/212=2.4mV量化误差 ADC把模拟量变为数字量,用数字量近似表示模拟量,这个过程称为量化。量化误差是ADC的有限位数对模拟量进行量化而引起的误差。A/D转换器的主要技术指标偏移误差 指输入信号为零时,输出信号不为零的值,所以有时又称为零值误差。满刻度误差 满刻度误差又称为增益误差。指满刻度输出数码所对应的实际输入电压与理想输入电压之差。线性度 线性度有时又称为非线性度,指转换器实际的转换特性与理想直线的最大偏差。A/D转换器的主要技术指标绝对精度 在一个转换器中,任何数码所对应的实际模拟量输入与理论模拟输入之差的最大值,称为绝对精度。对于ADC而言,可以在每一个阶梯的水平中点进行测量,它包括了所有的误差。转换速率 指ADC能够重复进行数据转换的速度,即每秒转换的次数。而完成一次A/D转换所需的时间(包括稳定时间),则是转换速率的倒数。
上传时间: 2013-11-25
上传用户:banlangen