/*--------- 8051内核特殊功能寄存器 -------------*/ sfr ACC = 0xE0; //累加器 sfr B = 0xF0; //B 寄存器 sfr PSW = 0xD0; //程序状态字寄存器 sbit CY = PSW^7; //进位标志位 sbit AC = PSW^6; //辅助进位标志位 sbit F0 = PSW^5; //用户标志位0 sbit RS1 = PSW^4; //工作寄存器组选择控制位 sbit RS0 = PSW^3; //工作寄存器组选择控制位 sbit OV = PSW^2; //溢出标志位 sbit F1 = PSW^1; //用户标志位1 sbit P = PSW^0; //奇偶标志位 sfr SP = 0x81; //堆栈指针寄存器 sfr DPL = 0x82; //数据指针0低字节 sfr DPH = 0x83; //数据指针0高字节 /*------------ 系统管理特殊功能寄存器 -------------*/ sfr PCON = 0x87; //电源控制寄存器 sfr AUXR = 0x8E; //辅助寄存器 sfr AUXR1 = 0xA2; //辅助寄存器1 sfr WAKE_CLKO = 0x8F; //时钟输出和唤醒控制寄存器 sfr CLK_DIV = 0x97; //时钟分频控制寄存器 sfr BUS_SPEED = 0xA1; //总线速度控制寄存器 /*----------- 中断控制特殊功能寄存器 --------------*/ sfr IE = 0xA8; //中断允许寄存器 sbit EA = IE^7; //总中断允许位 sbit ELVD = IE^6; //低电压检测中断控制位 8051
上传时间: 2013-10-30
上传用户:yxgi5
本书全面、系统地介绍了MCS-51系列单片机应用系统的各种实用接口技术及其配置。 内容包括:MCS-51系列单片机组成原理:应用系统扩展、开发与调试;键盘输入接口的设计及调试;打印机和显示器接口及设计实例;模拟输入通道接口技术;A/D、D/A、接口技术及在控制系统中的应用设计;V/F转换器接口技术、串行通讯接口技术以及其它与应用系统设计有关的实用技术等。 本书是为满足广大科技工作者从事单片机应用系统软件、硬件设计的需要而编写的,具有内容新颖、实用、全面的特色。所有的接口设计都包括详细的设计步骤、硬件线路图及故障分析,并附有测试程序清单。书中大部分接口软、硬件设计实例都是作者多年来从事单片机应用和开发工作的经验总结,实用性和工程性较强,尤其是对应用系统中必备的键盘、显示器、打印机、A/D、D/A通讯接口设计、模拟信号处理及开发系统应用举例甚多,目的是让将要开始和正在从事单片机应用开发的科研人员根据自己的实际需要来选择应用,一书在手即可基本完成单片机应用系统的开发工作。 本书主要面向从事单片机应用开发工作的广大工程技术人员,也可作为大专院校有关专业的教材或教学参考书。 第一章MCS-51系列单片机组成原理 1.1概述 1.1.1单片机主流产品系列 1.1.2单片机芯片技术的发展概况 1.1.3单片机的应用领域 1.2MCS-51单片机硬件结构 1.2.1MCS-51单片机硬件结构的特点 1.2.2MCS-51单片机的引脚描述及片外总线结构 1.2.3MCS-51片内总体结构 1.2.4MCS-51单片机中央处理器及其振荡器、时钟电路和CPU时序 1.2.5MCS-51单片机的复位状态及几种复位电路设计 1.2.6存储器、特殊功能寄存器及位地址空间 1.2.7输入/输出(I/O)口 1.3MCS-51单片机指令系统分析 1.3.1指令系统的寻址方式 1.3.2指令系统的使用要点 1.3.3指令系统分类总结 1.4串行接口与定时/计数器 1.4.1串行接口简介 1.4.2定时器/计数器的结构 1.4.3定时器/计数器的四种工作模式 1.4.4定时器/计数器对输入信号的要求 1.4.5定时器/计数器的编程和应用 1.5中断系统 1.5.1中断请求源 1.5.2中断控制 1.5.3中断的响应过程 1.5.4外部中断的响应时间 1.5.5外部中断方式的选择 第二章MCS-51单片机系统扩展 2.1概述 2.2程序存贮器的扩展 2.2.1外部程序存贮器的扩展原理及时序 2.2.2地址锁存器 2.2.3EPROM扩展电路 2.2.4EEPROM扩展电路 2.3外部数据存贮器的扩展 2.3.1外部数据存贮器的扩展方法及时序 2.3.2静态RAM扩展 2.3.3动态RAM扩展 2.4外部I/O口的扩展 2.4.1I/O口扩展概述 2.4.2I/O口地址译码技术 2.4.38255A可编程并行I/O扩展接口 2.4.48155/8156可编程并行I/O扩展接口 2.4.58243并行I/O扩展接口 2.4.6用TTL芯片扩展I/O接口 2.4.7用串行口扩展I/O接口 2.4.8中断系统扩展 第三章MCS-51单片机应用系统的开发 3.1单片机应用系统的设计 3.1.1设计前的准备工作 3.1.2应用系统的硬件设计 3.1.3应用系统的软件设计 3.1.4应用系统的抗干扰设计 3.2单片机应用系统的开发 3.2.1仿真系统的功能 3.2.2开发手段的选择 3.2.3应用系统的开发过程 3.3SICE—IV型单片机仿真器 3.3.1SICE-IV仿真器系统结构 3.3.2SICE-IV的仿真特性和软件功能 3.3.3SICE-IV与主机和终端的连接使用方法 3.4KHK-ICE-51单片机仿真开发系统 3.4.1KHK—ICE-51仿真器系统结构 3.4.2仿真器系统功能特点 3.4.3KHK-ICE-51仿真系统的安装及其使用 3.5单片机应用系统的调试 3.5.1应用系统联机前的静态调试 3.5.2外部数据存储器RAM的测试 3.5.3程序存储器的调试 3.5.4输出功能模块调试 3.5.5可编程I/O接口芯片的调试 3.5.6外部中断和定时器中断的调试 3.6用户程序的编辑、汇编、调试、固化及运行 3.6.1源程序的编辑 3.6.2源程序的汇编 3.6.3用户程序的调试 3.6.4用户程序的固化 3.6.5用户程序的运行 第四章键盘及其接口技术 4.1键盘输入应解决的问题 4.1.1键盘输入的特点 4.1.2按键的确认 4.1.3消除按键抖动的措施 4.2独立式按键接口设计 4.3矩阵式键盘接口设计 4.3.1矩阵键盘工作原理 4.3.2按键的识别方法 4.3.3键盘的编码 4.3.4键盘工作方式 4.3.5矩阵键盘接口实例及编程要点 4.3.6双功能及多功能键设计 4.3.7键盘处理中的特殊问题一重键和连击 4.48279键盘、显示器接口芯片及应用 4.4.18279的组成和基本工作原理 4.4.28279管脚、引线及功能说明 4.4.38279编程 4.4.48279键盘接口实例 4.5功能开关及拨码盘接口设计 第五章显示器接口设计 5.1LED显示器 5.1.1LED段显示器结构与原理 5.1.2LED显示器及显示方式 5.1.3LED显示器接口实例 5.1.4LED显示器驱动技术 5.2单片机应用系统中典型键盘、显示接口技术 5.2.1用8255和串行口扩展的键盘、显示器电路 5.2.2由锁存器组成的键盘、显示器接口电路 5.2.3由8155构成的键盘、显示器接口电路 5.2.4用8279组成的显示器实例 5.3液晶显示LCD 5.3.1LCD的基本结构及工作原理 5.3.2LCD的驱动方式 5.3.34位LCD静态驱动芯片ICM7211系列简介 5.3.4点阵式液晶显示控制器HD61830介绍 5.3.5点阵式液晶显示模块介绍 5.4荧光管显示 5.5LED大屏幕显示器 第六章打印机接口设计 6.1打印机简介 6.1.1打印机的基本知识 6.1.2打印机的电路构成 6.1.3打印机的接口信号 6.1.4打印机的打印命令 6.2TPμP-40A微打与单片机接口设计 6.2.1TPμP系列微型打印机简介 6.2.2TPμP-40A打印功能及接口信号 6.2.3TPμP-40A工作方式及打印命令 6.2.48031与TPμP-40A的接口 6.2.5打印编程实例 6.3XLF微型打印机与单片机接口设计 6.3.1XLF微打简介 6.3.2XLF微打接口信号及与8031接口设计 6.3.3XLF微打控制命令 6.3.4打印机编程 6.4标准宽行打印机与8031接口设计 6.4.1TH3070接口引脚信号及时序 6.4.2与8031的简单接口 6.4.3通过打印机适配器完成8031与打印机的接口 6.4.4对打印机的编程 第七章模拟输入通道接口技术 7.1传感器 7.1.1传感器的分类 7.1.2温度传感器 7.1.3光电传感器 7.1.4湿度传感器 7.1.5其他传感器 7.2模拟信号放大技术 7.2.1基本放大器电路 7.2.2集成运算放大器 7.2.3常用运算放大器及应用举例 7.2.4测量放大器 7.2.5程控增益放大器 7.2.6隔离放大器 7.3多通道模拟信号输入技术 7.3.1多路开关 7.3.2常用多路开关 7.3.3模拟多路开关 7.3.4常用模拟多路开关 7.3.5多路模拟开关应用举例 7.3.6多路开关的选用 7.4采样/保持电路设计 7.4.1采样/保持原理 7.4.2集成采样/保持器 7.4.3常用集成采样/保持器 7.4.4采样保持器的应用举例 7.5有源滤波器的设计 7.5.1滤波器分类 7.5.2有源滤波器的设计 7.5.3常用有源滤波器设计举例 7.5.4集成有源滤波器 第八章D/A转换器与MCS-51单片机的接口设计与实践 8.1D/A转换器的基本原理及主要技术指标 8.1.1D/A转换器的基本原理与分类 8.1.2D/A转换器的主要技术指标 8.2D/A转换器件选择指南 8.2.1集成D/A转换芯片介绍 8.2.2D/A转换器的选择要点及选择指南表 8.2.3D/A转换器接口设计的几点实用技术 8.38位D/A转换器DAC080/0831/0832与MCS-51单片机的接口设计 8.3.1DAC0830/0831/0832的应用特性与引脚功能 8.3.2DAC0830/0831/0832与8031单片机的接口设计 8.3.3DAC0830/0831/0832的调试说明 8.3.4DAC0830/0831/0832应用举例 8.48位D/A转换器AD558与MCS-51单片机的接口设计 8.4.1AD558的应用特性与引脚功能 8.4.2AD558与8031单片机的接口及调试说明 8.4.38位D/A转换器DAC0800系列与8031单片机的接口 8.510位D/A转换器AD7522与MCS-51的硬件接口设计 8.5.1AD7522的应用特性及引脚功能 8.5.2AD7522与8031单片机的接口设计 8.610位D/A转换器AD7520/7530/7533与MCS一51单片机的接口设计 8.6.1AD7520/7530/7533的应用特性与引脚功能 8.6.2AD7520系列与8031单片机的接口 8.6.3DAC1020/DAC1220/AD7521系列D/A转换器接口设计 8.712位D/A转换器DAC1208/1209/1210与MCS-51单片机的接口设计 8.7.1DAC1208/1209/1210的内部结构与引脚功能 8.7.2DAC1208/1209/1210与8031单片机的接口设计 8.7.312位D/A转换器DAC1230/1231/1232的应用设计说明 8.7.412位D/A转换器AD7542与8031单片机的接口设计 8.812位串行DAC-AD7543与MCS-51单片机的接口设计 8.8.1AD7543的应用特性与引脚功能 8.8.2AD7543与8031单片机的接口设计 8.914位D/A转换器AD75335与MCS-51单片机的接口设计 8.9.1AD8635的内部结构与引脚功能 8.9.2AD7535与8031单片机的接口设计 8.1016位D/A转换器AD1147/1148与MCS-51单片机的接口设计 8.10.1AD1147/AD1148的内部结构及引脚功能 8.10.2AD1147/AD1148与8031单片机的接口设计 8.10.3AD1147/AD1148接口电路的应用调试说明 8.10.416位D/A转换器AD1145与8031单片机的接口设计 第九章A/D转换器与MCS-51单片机的接口设计与实践 9.1A/D转换器的基本原理及主要技术指标 9.1.1A/D转换器的基本原理与分类 9.1.2A/D转换器的主要技术指标 9.2面对课题如何选择A/D转换器件 9.2.1常用A/D转换器简介 9.2.2A/D转换器的选择要点及应用设计的几点实用技术 9.38位D/A转换器ADC0801/0802/0803/0804/0805与MCS-51单片机的接口设计 9.3.1ADC0801~ADC0805芯片的引脚功能及应用特性 9.3.2ADC0801~ADC0805与8031单片机的接口设计 9.48路8位A/D转换器ADC0808/0809与MCS一51单片机的接口设计 9.4.1ADC0808/0809的内部结构及引脚功能 9.4.2ADC0808/0809与8031单片机的接口设计 9.4.3接口电路设计中的几点注意事项 9.4.416路8位A/D转换器ADC0816/0817与MCS-51单片机的接口设计 9.510位A/D转换器AD571与MCS-51单片机的接口设计 9.5.1AD571芯片的引脚功能及应用特性 9.5.2AD571与8031单片机的接口 9.5.38位A/D转换器AD570与8031单片机的硬件接口 9.612位A/D转换器ADC1210/1211与MCS-51单片机的接口设计 9.6.1ADC1210/1211的引脚功能与应用特性 9.6.2ADC1210/1211与8031单片机的硬件接口 9.6.3硬件接口电路的设计要点及几点说明 9.712位A/D转换器AD574A/1374/1674A与MCS-51单片机的接口设计 9.7.1AD574A的内部结构与引脚功能 9.7.2AD574A的应用特性及校准 9.7.3AD574A与8031单片机的硬件接口设计 9.7.4AD574A的应用调试说明 9.7.5AD674A/AD1674与8031单片机的接口设计 9.8高速12位A/D转换器AD578/AD678/AD1678与MCS—51单片机的接口设计 9.8.1AD578的应用特性与引脚功能 9.8.2AD578高速A/D转换器与8031单片机的接口设计 9.8.3AD578高速A/D转换器的应用调试说明 9.8.4AD678/AD1678采样A/D转换器与8031单片机的接口设计 9.914位A/D转换器AD679/1679与MCS-51单片机的接口设计 9.9.1AD679/AD1679的应用特性及引脚功能 9.9.2AD679/1679与8031单片机的接口设计 9.9.3AD679/1679的调试说明 9.1016位ADC-ADC1143与MCS-51单片机的接口设计 9.10.1ADC1143的应用特性及引脚功能 9.10.2ADC1143与8031单片机的接口设计 9.113位半积分A/D转换器5G14433与MCS-51单片机的接口设计 9.11.15G14433的内部结构及引脚功能 9.11.25G14433的外部电路连接与元件参数选择 9.11.35G14433与8031单片机的接口设计 9.11.45G14433的应用举例 9.124位半积分A/D转换器ICL7135与MCS—51单片机的接口设计 9.12.1ICL7135的内部结构及芯片引脚功能 9.12.2ICL7135的外部电路连接与元件参数选择 9.12.3ICL7135与8031单片机的硬件接口设计 9.124ICL7135的应用举例 9.1312位双积分A/D转换器ICL7109与MCS—51单片机的接口设计 9.13.1ICL7109的内部结构与芯片引脚功能 9.13.2ICL7109的外部电路连接与元件参数选择 9.13.3ICL7109与8031单片机的硬件接口设计 9.1416位积分型ADC一ICL7104与MCS-51单片机的接口设计 9.14.1ICL7104的主要应用特性及引脚功能 9.14.2ICL7104与8031单片机的接口设计 9.14.3其它积分型A/D转换器简介 第十章V/F转换器接口技术 10.1V/F转换的特点及应用环境 10.2V/F转换原理及用V/F转换器实现A/D转换的方法 10.2.1V/F转换原理 10.2.2用V/F转换器实现A/D转换的方法 10.3常用V/F转换器简介 10.3.1VFC32 10.3.2LMX31系列V/F转换器 10.3.3AD650 10.3.4AD651 10.4V/F转换应用系统中的通道结构 10.5LM331应用实例 10.5.1线路原理 10.5.2软件设计 10.6AD650应用实例 10.6.1AD650外围电路设计 10.6.2定时/计数器(8253—5简介) 10.6.3线路原理 10.6.4软件设计 第十一章串行通讯接口技术 11.1串行通讯基础 11.1.1异步通讯和同步通讯 11.1.2波特率和接收/发送时钟 11.1.3单工、半双工、全双工通讯方式 11.14信号的调制与解调 11.1.5通讯数据的差错检测和校正 11.1.6串行通讯接口电路UART、USRT和USART 11.2串行通讯总线标准及其接口 11.2.1串行通讯接口 11.2.2RS-232C接口 11.2.3RS-449、RS-422、RS-423及RS485 11.2.420mA电流环路串行接口 11.3MCS-51单片机串行接口 11.3.1串行口的结构 11.3.2串行接口的工作方式 11.3.3串行通讯中波特率设置 11.4MCS-51单片机串行接口通讯技术 11.4.1单片机双机通讯技术 11.4.2单片机多机通讯技术 11.5IBMPC系列机与单片机的通讯技术 11.5.1异步通讯适配器 11.5.2IBM-PC机与8031双机通讯技术 11.5.3IBM—PC机与8031多机通讯技术 11.6MCS-51单片机串行接口的扩展 11.6.1Intel8251A可编程通讯接口 11.6.2扩展多路串行口的硬件设计 11.6.3通讯软件设计 第十二章应用系统设计中的实用技术 12.1MCS-51单片机低功耗系统设计 12.1.1CHMOS型单片机80C31/80C51/87C51的组成与使用要点 12.1.2CHMOS型单片机的空闲、掉电工作方式 12.1.3CHMOS型单片机的I/O接口及应用系统实例 12.1.4HMOS型单片机的节电运行方式 12.2逻辑电平接口技术 12.2.1集电极开路门输出接口 12.2.2TTL、HTL、ECL、CMOS电平转换接口 12.3电压/电流转换 12.3.1电压/0~10mA转换 12.3.2电压1~5V/4~20mA转换 12.3.30~10mA/0~5V转换 12.344~20mA/0~5V转换 12.3.5集成V/I转换电路 12.4开关量输出接口技术 12.4.1输出接口隔离技术 12.4.2低压开关量信号输出技术 12.4.3继电器输出接口技术 12.4.4可控硅(晶闸管)输出接口技术 12.4.5固态继电器输出接口 12.4.6集成功率电子开关输出接口 12.5集成稳压电路 12.5.1电源隔离技术 12.5.2三端集成稳压器 12.5.3高精度电压基准 12.6量程自动转换技术 12.6.1自动转换量程的硬件电路 12.6.2自动转换量程的软件设计 附录AMCS-51单片机指令速查表 附录B常用EPROM固化电压参考表 参考文献
上传时间: 2013-10-15
上传用户:himbly
本书分三部分介绍在美国广泛应用的、高功能的M68HC11系列单片机(8位机 ,Motorola公司)。内容包括M68HC11的结构与其基本原理、开发工具EVB(性能评估板)以及开发和应用技术。本书在介绍单片机硬、软件的基础上,进一步介绍了在美国实验室内,如何应用PC机及EVB来进行开发工作。通过本书的介绍,读者可了解这种单片机的原理并学会开发和应用方法。本书可作为大专院校单片机及其实验的教材(本科、短训班)。亦可供开发、应用单片机的各专业(计算机、机电、化工、纺织、冶金、自控、航空、航海……)有关技术人员参考。 第一部分 M68HC11 结构与原理Motorola单片机 1 Motorla单片机 1.1 概述 1.1.1 Motorola 单片机发展概况(3) 1.1.2 Motorola 单片机结构特点(4) 1.2 M68HC11系列单片机(5) 1.2.1 M68HC11产品系列(5) 1.2.2 MC68HC11E9特性(6) 1.2.3 MC68HC11E9单片机引脚说明(8) 1.3 Motorola 32位单片机(14) 1.3.1中央处理器(CPU32)(15) 1.3.2 定时处理器(TPU)(16) 1.3.3 串行队列模块(QSM)(16) 1.3.4 系统集成模块 (SIM)(16) 1.3.5 RAM(17) 2 系统配置与工作方式 2.1 系统配置(19) 2.1.1 配置寄存器CONFIG(19) 2.1.2 CONFIG寄存器的编程与擦除(20) 2?2 工作方式选择(21) 2.3 M68HC11的工作方式(23) 2.3.1 普通单片工作方式(23) 2.3.2 普通扩展工作方式(23) 2.3.3 特殊自举方式(27) 2.3.4 特殊测试方式(28) 3 中央处理器(CPU)与片上存储器 3.1 CPU寄存器(31) 3?1?1 累加器A、B和双累加器D(32) 3.1.2 变址寄存器X、Y(32) 3.1.3 栈指针SP(32) 3.1.4 程序计数器PC(33) 3.1.5 条件码寄存器CCR(33) 3.2 片上存储器(34) 3.2.1 存储器分布(34) 3.2.2 RAM和INIT寄存器(35) 3.2.3 ROM(37) 3.2.4 EEPROM(37) 3.3 M68HC11 CPU的低功耗方式(39) 3.3.1 WAIT方式(39) 3.3.2 STOP方式(40) 4 复位和中断 4.1 复位(41) 4.1.1 M68HC11的系统初始化条件(41) 4.1.2 复位形式(43) 4.2 中断(48) 4.2.1 条件码寄存器CCR中的中断屏蔽位(48) 4.2.2 中断优先级与中断矢量(49) 4.2.3 非屏蔽中断(52) 4.2.4 实时中断(53) 4.2.5 中断处理过程(56) 5 M68HC11指令系统 5.1 M68HC11寻址方式(59) 5.1.1 立即寻址(IMM)(59) 5.1.2 扩展寻址(EXT)(60) 5.1.3 直接寻址(DIR)(60) 5.1.4 变址寻址(INDX、INDY)(61) 5.1.5 固有寻址(INH)(62) 5.1.6 相对寻址(REL)(62) 5.1.7 前置字节(63) 5.2 M68HC11指令系统(63) 5.2.1 累加器和存储器指令(63) 5.2.2 栈和变址寄存器指令(68) 5.2.3 条件码寄存器指令(69) 5.2.4 程序控制指令(70) 6 输入与输出 6.1 概述(73) 6.2 并行I/O口(74) 6.2.1 并行I/O寄存器(74) 6.2.2 应答I/O子系统(76) 6?3 串行通信接口SCI(82) 6.3.1 基本特性(83) 6.3.2 数据格式(83) 6.3.3 SCI硬件结构(84) 6.3.4 SCI寄存器(86) 6.4 串行外围接口SPI(92) 6.4.1 SPI特性(92) 6.4.2 SPI引脚信号(92) 6.4.3 SPI结构(93) 6.4.4 SPI寄存器(95) 6.4.5 SPI系统与外部设备进行串行数据传输(99) 7 定时器系统与脉冲累加器 7.1 概述(105) 7.2 循环计数器(107) 7.2.1 时钟分频器(107) 7.2.2 计算机正常工作监视功能(110) 7.2.3 定时器标志的清除(110) 7.3 输入捕捉功能(111) 7.3.1 概述(111) 7.3.2 定时器输入捕捉锁存器(TIC1、TIC2、TIC3) 7.3.3 输入信号沿检测逻辑(113) 7.3.4 输入捕捉中断(113) 7.4 输出比较功能(114) 7.4.1 概述(114) 7.4.2 输出比较功能使用的寄存器(116) 7.4.3 输出比较示例(118) 7.5 脉冲累加器(119) 7.5.1 概述(119) 7.5.2 脉冲累加器控制和状态寄存器(121) 8 A/D转换系统 8.1 电荷重新分布技术与逐次逼近算法(125) 8.1.1 基本电路(125) 8.1.2 A/D转换逐次逼近算法原理(130) 8.2 M68HC11中A/D转换的实现方法(131) 8.2.1 逐次逼近A/D转换器(131) 8.2.2 控制寄存器(132) 8.2.3 系统控制逻辑(135)? 9 单片机的内部操作 9.1 用立即> 图书前言 美国Motorola公司从80年代中期开始推出的M68HC11系列单片机是当今功能最强、性能/价格比最好的八位单片微计算机之一。在美国,它已被广泛地应用于教学和各种工业控制系统中。? 该单片机有丰富的I/O功能,完善的系统保护功能和软件控制的节电工作方式 。它的指令系统与早期Motorola单片机MC6801等兼容,同时增加了91条新指令。其中包含16位乘法、除法运算指令等。 为便于用户开发和应用M68HC11单片机,Motorola公司提供了多种开发工具。M68HC11 EVB (Evaluation Board)性能评估板就是一种M68HC11系列单片机的廉价开发工具。它既可用来 调试用户程序,又可在仿真方式下运行。为方便用户,M68HC11 EVB可与IBM?PC连接 ,借助于交叉汇编、通信程序等软件,在IBM?PC上调试程序。? 本书分三部分(共15章)介绍了M68HC11的结构和基本原理、开发工具-EVB及开发应用实例等。第一部分(1~9章),介绍M68HC11的结构和基本原理。包括概述,系统配置与工作方式、CPU和存储器、复位和中断、指令系统、I/O、定时器系统和脉冲累加器、A/D转换系统、单片机的内部操作等。第二部分(10~11章),介绍M68HC11 EVB的原理和技术特性以及EVB的应用。第三部分(12~15章),介绍M68HC11的开发与应用技术。包括基本的编程练习、应用程序设计、接口实验、接口设计及应用等。 读者通过学习本书,不仅可了解M68HC11的硬件、软件,而且可了解使用EVB开发和应用M68HC11单片机的方法。在本书的第三部分专门提供了一部分实验和应用程序。? 本书系作者张宁作为高级访问学者,应邀在美国马萨诸塞州洛厄尔大学(University of Massachusetts Lowell)工作期间完成的。全书由张宁执笔。在编著过程中,美国洛厄尔大学的R·代克曼教授?(Professor Robert J. Dirkman)多次与张宁一起讨论、研究,并提供部分资料及实验数据。参加编写和审校等工作的还有王云霞、孙晓芳、刘安鲁、张籍、来安德、张杨等同志。? 为将M68HC11系列单片机尽快介绍给我国,美国Motorola公司的Terrence M.S.Heng先生曾大力支持本书的编著和出版。在此表示衷心感谢。
上传时间: 2013-10-27
上传用户:rlgl123
PSHLY-B回路电阻测试仪介绍
上传时间: 2013-11-05
上传用户:木子叶1
at91rm9200启动过程教程 系统上电,检测BMS,选择系统的启动方式,如果BMS为高电平,则系统从片内ROM启动。AT91RM9200的ROM上电后被映射到了0x0和0x100000处,在这两个地址处都可以访问到ROM。由于9200的ROM中固化了一个BOOTLOAER程序。所以PC从0X0处开始执行这个BOOTLOAER(准确的说应该是一级BOOTLOADER)。这个BOOTLOER依次完成以下步骤: 1、PLL SETUP,设置PLLB产生48M时钟频率提供给USB DEVICE。同时DEBUG USART也被初始化为48M的时钟频率; 2、相应模式下的堆栈设置; 3、检测主时钟源(Main oscillator); 4、中断控制器(AIC)的设置; 5、C 变量的初始化; 6、跳到主函数。 完成以上步骤后,我们可以认为BOOT过程结束,接下来的就是LOADER的过程,或者也可以认为是装载二级BOOTLOER。AT91RM9200按照DATAFLASH、EEPROM、连接在外部总线上的8位并行FLASH的顺序依次来找合法的BOOT程序。所谓合法的指的是在这些存储设备的开始地址处连续的存放的32个字节,也就是8条指令必须是跳转指令或者装载PC的指令,其实这样规定就是把这8条指令当作是异常向量表来处理。必须注意的是第6条指令要包含将要装载的映像的大小。关于如何计算和写这条指令可以参考用户手册。一旦合法的映像找到之后,则BOOT程序会把找到的映像搬到SRAM中去,所以映像的大小是非常有限的,不能超过16K-3K的大小。当BOOT程序完成了把合法的映像搬到SRAM的任务以后,接下来就进行存储器的REMAP,经过REMAP之后,SRAM从映设前的0X200000地址处被映设到了0X0地址并且程序从0X0处开始执行。而ROM这时只能在0X100000这个地址处看到了。至此9200就算完成了一种形式的启动过程。如果BOOT程序在以上所列的几种存储设备中找到合法的映像,则自动初始化DEBUG USART口和USB DEVICE口以准备从外部载入映像。对DEBUG口的初始化包括设置参数115200 8 N 1以及运行XMODEM协议。对USB DEVICE进行初始化以及运行DFU协议。现在用户可以从外部(假定为PC平台)载入你的映像了。在PC平台下,以WIN2000为例,你可以用超级终端来完成这个功能,但是还是要注意你的映像的大小不能超过13K。一旦正确从外部装载了映像,接下来的过程就是和前面一样重映设然后执行映像了。我们上面讲了BMS为高电平,AT91RM9200选择从片内的ROM启动的一个过程。如果BMS为低电平,则AT91RM9200会从片外的FLASH启动,这时片外的FLASH的起始地址就是0X0了,接下来的过程和片内启动的过程是一样的,只不过这时就需要自己写启动代码了,至于怎么写,大致的内容和ROM的BOOT差不多,不同的硬件设计可能有不一样的地方,但基本的都是一样的。由于片外FLASH可以设计的大,所以这里编写的BOOTLOADER可以一步到位,也就是说不用像片内启动可能需要BOOT好几级了,目前AT91RM9200上使用较多的bootloer是u-boot,这是一个开放源代码的软件,用户可以自由下载并根据自己的应用配置。总的说来,笔者以为AT91RM9200的启动过程比较简单,ATMEL的服务也不错,不但提供了片内启动的功能,还提供了UBOOT可供下载。笔者写了一个BOOTLODER从片外的FLASHA启动,效果还可以。 uboot结构与使用uboot是一个庞大的公开源码的软件。他支持一些系列的arm体系,包含常见的外设的驱动,是一个功能强大的板极支持包。其代码可以 http://sourceforge.net/projects/u-boot下载 在9200上,为了启动uboot,还有两个boot软件包,分别是loader和boot。分别完成从sram和flash中的一级boot。其源码可以从atmel的官方网站下载。 我们知道,当9200系统上电后,如果bms为高电平,则系统从片内rom启动,这时rom中固化的boot程序初始化了debug口并向其发送'c',这时我们打开超级终端会看到ccccc...。这说明系统已经启动,同时xmodem协议已经启动,用户可以通过超级终端下载用户的bootloader。作为第一步,我们下载loader.bin.loader.bin将被下载到片内的sram中。这个loder完成的功能主要是初始化时钟,sdram和xmodem协议,为下载和启动uboot做准备。当下载了loader.bin后,超级终端会继续打印:ccccc....。这时我们就可以下在uboot了。uboot将被下载到sdram中的一个地址后并把pc指针调到此处开始执行uboot。接着我们就可以在终端上看到uboot的shell启动了,提示符uboot>,用户可以uboot>help 看到命令列表和大概的功能。uboot的命令包含了对内存、flash、网络、系统启动等一些命令。 如果系统上电时bms为低电平,则系统从片外的flash启动。为了从片外的flash启动uboot,我们必须把boot.bin放到0x0地址出,使得从flash启动后首先执行boot.bin,而要少些boot.bin,就要先完成上面我们讲的那些步骤,首先开始从片内rom启动uboot。然后再利用uboot的功能完成把boot.bin和uboot.gz烧写到flash中的目的,假如我们已经启动了uboot,可以这样操作: uboot>protect off all uboot>erase all uboot>loadb 20000000 uboot>cp.b 20000000 10000000 5fff uboot>loadb 21000000 uboot>cp.b 210000000 10010000 ffff 然后系统复位,就可以看到系统先启动boot,然后解压缩uboot.gz,然后启动uboot。注意,这里uboot必须压缩成.gz文件,否则会出错。 怎么编译这三个源码包呢,首先要建立一个arm的交叉编译环境,关于如何建立,此处不予说明。建立好了以后,分别解压源码包,然后修改Makefile中的编译器项目,正确填写你的编译器的所在路径。 对loader和boot,直接make。对uboot,第一步:make_at91rm9200dk,第二步:make。这样就会在当前目录下分别生成*.bin文件,对于uboot.bin,我们还要压缩成.gz文件。 也许有的人对loader和boot搞不清楚为什么要两个,有什么区别吗?首先有区别,boot主要完成从flash中启动uboot的功能,他要对uboot的压缩文件进行解压,除此之外,他和loader并无大的区别,你可以把boot理解为在loader的基础上加入了解压缩.gz的功能而已。所以这两个并无多大的本质不同,只是他们的使命不同而已。 特别说名的是这三个软件包都是开放源码的,所以用户可以根据自己的系统的情况修改和配置以及裁减,打造属于自己系统的bootloder。
上传时间: 2013-10-27
上传用户:wsf950131
EZ-USB FX系列单片机USB外围设备设计与应用:PART 1 USB的基本概念第1章 USB的基本特性1.1 USB简介21.2 USB的发展历程31.2.1 USB 1.131.2.2 USB 2.041.2.3 USB与IEEE 1394的比较41.3 USB基本架构与总线架构61.4 USB的总线结构81.5 USB数据流的模式与管线的概念91.6 USB硬件规范101.6.1 USB的硬件特性111.6.2 USB接口的电气特性121.6.3USB的电源管理141.7 USB的编码方式141.8 结论161.9 问题与讨论16第2章 USB通信协议2.1 USB通信协议172.2 USB封包中的数据域类型182.2.1 数据域位的格式182.3 封包格式192.4 USB传输的类型232.4.1 控制传输242.4.2 中断传输292.4.3 批量传输292.4.4 等时传输292.5 USB数据交换格式302.6 USB描述符342.7 USB设备请求422.8 USB设备群组442.9 结论462.10 问题与讨论46第3章 设备列举3.1注册表编辑器473.2设备列举的步骤493.3设备列举步骤的实现--使用CATC分析工具513.4结论613.5问题与讨论61第4章 USB芯片与EZUSB4.1USB芯片的简介624.2USB接口芯片644.2.1Philips接口芯片644.2.2National Semiconductor接口芯片664.3内含USB单元的微处理器684.3.1Motorola694.3.2Microchip694.3.3SIEMENS704.3.4Cypress714.4USB芯片总揽介绍734.5USB芯片的选择与评估744.6问题与讨论80第5章 设备与驱动程序5.1阶层式的驱动程序815.2主机的驱动程序835.3驱动程序的选择865.4结论865.5问题与讨论87第6章 HID群组6.1HID简介886.2HID群组的传输速率886.3HID描述符906.3.1报告描述符936.3.2主要 main 项目类型966.3.3整体 global 项目卷标976.3.4区域 local 项目卷标986.3.5简易的报告描述符996.3.6Descriptor Tool 描述符工具 1006.3.7兼容测试程序1016.4HID设备的基本请求1026.5Windows通信程序1036.6问题与讨论106PART 2 硬件技术篇第7章 EZUSB FX简介7.1简介1097.2EZUSB FX硬件框图1097.3封包与PID码1117.4主机是个主控者1137.4.1从主机接收数据1137.4.2传送数据至主机1137.5USB方向1137.6帧1147.7EZUSB FX传输类型1147.7.1批量传输1147.7.2中断传输1147.7.3等时传输1157.7.4控制传输1157.8设备列举1167.9USB核心1167.10EZUSB FX单片机1177.11重新设备列举1177.12EZUSB FX端点1187.12.1EZUSB FX批量端点1187.12.2EZUSB FX控制端点01187.12.3EZUSB FX中断端点1197.12.4EZUSB FX等时端点1197.13快速传送模式1197.14中断1207.15重置与电源管理1207.16EZUSB 2100系列1207.17FX系列--从FIFO1227.18FX系列--GPIF 通用型可程序化的接口 1227.19AN2122/26各种特性的摘要1227.20修订ID1237.21引脚描述123第8章 EZUSB FX CPU8.1简介1308.28051增强模式1308.3EZUSB FX所增强的部分1318.4EZUSB FX寄存器接口1318.5EZUSB FX内部RAM1318.6I/O端口1328.7中断1328.8电源控制1338.9特殊功能寄存器 SFR 1348.10内部总线1358.11重置136第9章 EZUSB FX内存9.1简介1379.28051内存1389.3扩充的EZUSB FX内存1399.4CS#与OE#信号1409.5EZUSB FX ROM版本141第10章 EZUSB FX输入/输出端口10.1简介14310.2I/O端口14310.3EZUSB输入/输出端口寄存器14610.3.1端口配置寄存器14710.3.2I/O端口寄存器14710.4EZUSB FX输入/输出端口寄存器14910.5EZUSB FX端口配置表15110.6I2C控制器15610.78051 I2C控制器15610.8控制位15810.8.1START位15810.8.2STOP位15810.8.3LASTRD位15810.9状态位15910.9.1DONE位15910.9.2ACK位15910.9.3BERR位15910.9.4ID1, ID015910.10送出 WRITE I2C数据16010.11接收 READ I2C数据16010.12I2C激活加载器16010.13SFR寻址 FX 16210.14端口A~E的SFR控制165第11章 EZUSB FX设备列举与重新设备列举11.1简介16711.2预设的USB设备16911.3USB核心对于EP0设备请求的响应17011.4固件下载17111.5设备列举模式17211.6没有存在EEPROM17311.7存在着EEPROM, 第一个字节是0xB0 0xB4, FX系列11.8存在着EEPROM, 第一个字节是0xB2 0xB6, FX系列11.9配置字节0,FX系列17711.10重新设备列举 ReNumerationTM 17811.11多重重新设备列举 ReNumerationTM 17911.12预设描述符179第12章 EZUSB FX批量传输12.1简介18812.2批量输入传输18912.3中断传输19112.4EZUSB FX批量IN的例子19112.5批量OUT传输19212.6端点对19412.7IN端点对的状态19412.8OUT端点对的状态19512.9使用批量缓冲区内存19512.10Data Toggle控制19612.11轮询的批量传输的范例19712.12设备列举说明19912.13批量端点中断19912.14中断批量传输的范例20112.15设备列举说明20512.16自动指针器205第13章 EZUSB控制端点013.1简介20913.2控制端点EP021013.3USB请求21213.3.1取得状态 Get_Status 21413.3.2设置特性(Set_Feature)21713.3.3清除特性(Clear_Feature)21813.3.4取得描述符(Get_Descriptor)21913.3.5设置描述符(Set Descriptor)22313.3.6设置配置(Set_Configuration)22513.3.7取得配置(Get_Configuration)22513.3.8设置接口(Set_Interface)22513.3.9取得接口(Get_Interface)22613.3.10设置地址(Set_Address)22713.3.11同步帧22713.3.12固件加载228第14章 EZUSB FX等时传输14.1简介22914.2等时IN传输23014.2.1初始化设置23014.2.2IN数据传输23014.3等时OUT传输23114.3.1初始化设置23114.3.2数据传输23214.4设置等时FIFO的大小23214.5等时传输速度23414.5.1EZUSB 2100系列23414.5.2EZUSB FX系列23514.6快速传输 仅存于2100系列 23614.6.1快速写入23614.6.2快速读取23714.7快速传输的时序 仅存于2100系列 23714.7.1快速写入波形23814.7.2快速读取波形23914.8快速传输速度(仅存于2100系列)23914.9其余的等时寄存器24014.9.1除能等时寄存器24014.9.20字节计数位24114.10以无数据来响应等时IN令牌24214.11使用等时FIFO242第15章 EZUSB FX中断15.1简介24315.2USB核心中断24415.3唤醒中断24415.4USB中断信号源24515.5SUTOK与SUDAV中断24815.6SOF中断24915.7中止 suspend 中断24915.8USB重置中断24915.9批量端点中断25015.10USB自动向量25015.11USB自动向量译码25115.12I2C中断25215.13IN批量NAK中断 仅存于AN2122/26与FX系列 25315.14I2C STOP反相中断 仅存于AN2122/26与FX系列 25415.15从FIFO中断 INT4 255第16章 EZUSB FX重置16.1简介25716.2EZUSB FX打开电源重置 POR 25716.38051重置的释放25916.3.1RAM的下载26016.3.2下载EEPROM26016.3.3外部ROM26016.48051重置所产生的影响26016.5USB总线重置26116.6EZUSB脱离26216.7各种重置状态的总结263第17章 EZUSB FX电源管理17.1简介26517.2中止 suspend 26617.3回复 resume 26717.4远程唤醒 remote wakeup 269第18章 EZUSB FX系统18.1简介27118.2DMA寄存器描述27218.2.1来源. 目的. 传输长度地址寄存器27218.2.2DMA起始与状态寄存器27518.2.3DMA同步突发使能寄存器27518.2.4虚拟寄存器27818.3RD/FRD与WR/FWR DMA闪控的选择27818.4DMA闪控波形与延伸位的交互影响27918.4.1DMA外部写入27918.4.2DMA外部读取280第19章 EZUSB FX寄存器19.1简介28219.2批量数据缓冲区寄存器28319.3等时数据FIFO寄存器28419.4等时字节计数寄存器28519.5CPU寄存器28719.6I/O端口配置寄存器28819.7I/O端口A~C输入/输出寄存器28919.8230 Kbaud UART操作--AN2122/26寄存器29119.9等时控制/状态寄存器29119.10I2C寄存器29219.11中断29419.12端点0控制与状态寄存器29919.13端点1~7的控制与状态寄存器30019.14整体USB寄存器30519.15快速传输30919.16SETUP数据31119.17等时FIFO的容量大小31119.18通用I/F中断使能31219.19通用中断请求31219.20输入/输出端口寄存器D与E31319.20.1端口D输出31319.20.2输入端口D脚位31319.20.3端口D输出使能31319.20.4端口E输出31319.20.5输入端口E脚位31419.20.6端口E输出使能31419.21端口设置31419.22接口配置31419.23端口A与端口C切换配置31619.23.1端口A切换配置#231619.23.2端口C切换配置#231719.24DMA寄存器31919.24.1来源. 目的. 传输长度地址寄存器31919.24.2DMA起始与状态寄存器32019.24.3DMA同步突发使能寄存器32019.24.4选择8051 A/D总线作为外部FIFO321PART 3 固件技术篇第20章 EZUSB FX固件架构与函数库20.1固件架构总览32320.2固件架构的建立32520.3固件架构的副函数钩子32520.3.1工作分配器32620.3.2设备请求 device request 32620.3.3USB中断服务例程32920.4固件架构整体变量33220.5描述符表33320.5.1设备描述符33320.5.2配置描述符33420.5.3接口描述符33420.5.4端点描述符33520.5.5字符串描述符33520.5.6群组描述符33520.6EZUSB FX固件的函数库33620.6.1包含文件 *.H 33620.6.2子程序33620.6.3整体变量33820.7固件架构的原始程序代码338第21章 EZUSB FX固件范例程序21.1范例程序的简介34621.2外围I/O测试程序34721.3端点对, EP_PAIR范例35221.4批量测试, BulkTest范例36221.5等时传输, ISOstrm范例36821.6问题与讨论373PART 4 实验篇第22章 EZUSB FX仿真器22?1简介37522?2所需的工具37622?3EZUSB FX框图37722.4EZUSB最终版本的系统框图37822?5第一次下载程序37822.6EZUSB FX开发系统框图37922.7设置开发环境38022.8EZUSB FX开发工具组的内容38122.9EZUSB FX开发工具组软件38222.9.1初步安装程序38222.9.2确认主机 个人计算机 是否支持USB38222.10安装EZUSB控制平台. 驱动程序以及文件38322.11EZUSB FX开发电路板38522.11.1简介38522.11.2开发电路板的浏览38522.11.3所使用的8051资源38622.11.4详细电路38622.11.5LED的显示38722.11.6Jumper38722.11.7连接器39122.11.8内存映象图39222.11.9PLD信号39422.11.10PLD源文件文件39522.11.11雏形板的扩充连接器P1~P639722.11.12Philips PCF8574 I/O扩充IC40022.12DMA USB FX I/O LAB开发工具介绍40122.12.1USBFX简介40122.12.2USBFX及外围整体环境介绍40322?12?3USBFX与PC连接软件介绍40422.12.4USBFX硬件功能介绍404第23章 LED显示器输出实验23.1硬件设计与基本概念40923.2固件设计41023.3.1固件架构文件FW.C41123.3.2描述符文件DESCR.A5141223.3.3外围接口文件PERIPH.C41723.4固件程序代码的编译与链接42123.5Windows程序, VB设计42323.6INF文件的编写设计42423.7结论42623.8问题与讨论427第24章 七段显示器与键盘的输入/输出实验24.1硬件设计与基本概念42824.2固件设计43124.2.1七段显示器43124.2.24×4键盘扫描43324.3固件程序代码的编译与链接43424.4Windows程序, VB设计43624.5问题与讨论437第25章 LCD文字型液晶显示器输出实验25.1硬件设计与基本概念43825.1.1液晶显示器LCD43825.2固件设计45225.3固件程序代码的编译与链接45625.4Windows程序, VB设计45725.5问题与讨论458第26章 LED点阵输出实验26.1硬件设计与基本概念45926.2固件设计46326.3固件程序代码的编译与链接46326.4Windows程序, VB设计46526.5问题与讨论465第27章 步进电机输出实验27.1硬件设计与基本概念46627.1.11相激磁46727.1.22相激磁46727.1.31-2相激磁46827?1?4PMM8713介绍46927.2固件设计47327.3固件程序代码的编译与链接47427.4Windows程序, VB设计47627.5问题与讨论477第28章 I2C接口输入/输出实验28.1硬件设计与基本概念47828.2固件设计48128.3固件程序代码的编译与链接48328.4Windows程序, VB设计48428.5问题与讨论485第29章 A/D转换器与D/A转换器的输入/输出实验29.1硬件设计与基本概念48629.1.1A/D转换器48629.1.2D/A转换器49029.2固件设计49329.2.1A/D转换器的固件设计49329.2.2D/A转换器的固件设计49629.3固件程序代码的编译与链接49729.4Windows程序, VB设计49829.5问题与讨论499第30章 LCG绘图型液晶显示器输出实验30.1硬件设计与基本概念50030.1.1绘图型LCD50030.1.2绘图型LCD控制指令集50330.1.3绘图型LCD读取与写入时序图50530.2固件设计50630.2.1LCG驱动程序50630.2.2USB固件码51330.3固件程序代码的编译与链接51630.4Windows程序, VB设计51730.5问题与讨论518附录A Cypress控制平台的操作A.1EZUSB控制平台总览519A.2主画面520A.3热插拔新的USB设备521A.4各种工具栏的使用524A.5故障排除526A.6控制平台的进阶操作527A.7测试Unary Op工具栏上的按钮功能528A.8测试制造商请求的工具栏 2100 系列的开发电路板 529A.9测试等时传输工具栏532A.10测试批量传输工具栏533A.11测试重置管线工具栏535A.12测试设置接口工具栏537A.13测试制造商请求工具栏 FX系列开发电路板A.14执行Get Device Descriptor 操作来验证开发板的功能是否正确539A.15从EZUSB控制平台中, 加载dev_io的范例并且加以执行540A.16从Keil侦错应用程序中, 加载dev_io范例程序代码, 然后再加以执行542A.17将dev_io 目标文件移开, 且使用Keil IDE 集成开发环境 来重建545A.18在侦错器下执行dev_io目标文件, 并且使用具有侦错能力的IDE547A.19在EZUSB控制平台下, 执行ep_pair目标文件A.20如何修改fw范例, 并在开发电路板上产生等时传输550附录BEZUSB 2100系列及EZUSB FX系列引脚表B.1EZUSB 2100系列引脚表555B?2EZUSB FX系列引脚图表561附录C EZUSB FX寄存器总览附录D EEPROM烧录方式
上传时间: 2013-11-21
上传用户:努力努力再努力
含原理图+电路图+程序的波形发生器:在工作中,我们常常会用到波形发生器,它是使用频度很高的电子仪器。现在的波形发生器都采用单片机来构成。单片机波形发生器是以单片机核心,配相应的外围电路和功能软件,能实现各种波形发生的应用系统,它由硬件部分和软件部分组成,硬件是系统的基础,软件则是在硬件的基础上,对其合理的调配和使用,从而完成波形发生的任务。 波形发生器的技术指标:(1) 波形类型:方型、正弦波、三角波、锯齿波;(2) 幅值电压:1V、2V、3V、4V、5V;(3) 频率值:10HZ、20HZ、50HZ、100HZ、200HZ、500HZ、1KHZ;(4) 输出极性:双极性操作设计1、 机器通电后,系统进行初始化,LED在面板上显示6个0,表示系统处于初始状态,等待用户输入设置命令,此时,无任何波形信号输出。2、 用户按下“F”、“V”、“W”,可以分别进入频率,幅值波形设置,使系统进入设置状态,相应的数码管显示“一”,此时,按其它键,无效;3、 在进入某一设置状态后,输入0~9等数字键,(数字键仅在设置状态时,有效)为欲输出的波形设置相应参数,LED将参数显示在面板上;4、 如果在设置中,要改变已设定的参数,可按下“CL”键,清除所有已设定参数,系统恢复初始状态,LED显示6个0,等待重新输入命令;5、 当必要的参数设定完毕后,所有参数显示于LED上,用户按下“EN”键,系统会将各波形参数传递到波形产生模块中,以便控制波形发生,实现不同频率,不同电压幅值,不同类型波形的输出;6、 用户按下“EN”键后,波形发生器开始输出满足参数的波形信号,面板上相应类型的运行指示灯闪烁,表示波形正在输出,LED显示波形类型编号,频率值、电压幅值等波形参数;7、 波形发生器在输出信号时,按下任意一个键,就停止波形信号输出,等待重新设置参数,设置过程如上所述,如果不改变参数,可按下“EN”键,继续输出原波形信号;8、 要停止波形发生器的使用,可按下复位按钮,将系统复位,然后关闭电源。硬件组成部分通过综合比较,决定选用获得广泛应用,性能价格高的常用芯片来构成硬件电路。单片机采用MCS-51系列的89C51(一块),74LS244和74LS373(各一块),反相驱动器 ULN2803A(一块),运算放大器 LM324(一块) 波形发生器的硬件电路由单片机、键盘显示器接口电路、波形转换(D/ A)电路和电源线路等四部分构成。1.单片机电路功能:形成扫描码,键值识别,键功能处理,完成参数设置;形成显示段码,向LED显示接口电路输出;产生定时中断;形成波形的数字编码,并输出到D/A接口电路;如电路原理图所示: 89C51的P0口和P2口作为扩展I/O口,与8255、0832、74LS373相连接,可寻址片外的寄存器。单片机寻址外设,采用存储器映像方式,外部接口芯片与内部存储器统一编址,89C51提供16根地址线P0(分时复用)和P2,P2口提供高8位地址线,P0口提供低8位地址线。P0口同时还要负责与8255,0832的数据传递。P2.7是8255的片选信号,P2.6是0832(1)的片选,P2.5是0832(2)的片选,低电平有效,P0.0、P0.1经过74LS373锁存后,送到8255的A1、A2作,片内A口,B口,C口,控制口等寄存器的字选。89C51的P1口的低4位连接4只发光三极管,作为波形类型指示灯,表示正在输出的波形是什么类型。单片机89C51内部有两个定时器/计数器,在波形发生器中使用T0作为中断源。不同的频率值对应不同的定时初值,定时器的溢出信号作为中断请求。控制定时器中断的特殊功能寄存器设置如下:定时控制寄存器TCON=(00010000)工作方式选择寄存器(TMOD)=(00000000)中断允许控制寄存器(IE)=(10000010)2、键盘显示器接口电路功能:驱动6位数码管动态显示; 提供响应界面; 扫面键盘; 提供输入按键。由并口芯片8255,锁存器74LS273,74LS244,反向驱动器ULN2803A,6位共阴极数码管(LED)和4×4行列式键盘组成。8255的C口作为键盘的I/O接口,C口的低4位输出到扫描码,高4位作为输入行状态,按键的分布如图所示。8255的A口作为LED段码输出口,与74LS244相连接,B口作为LED的位选信号输出口,与ULN2803A相连接。8255内部的4个寄存器地址分配如下:控制口:7FFFH , A口:7FFFCH , B口:7FFDH , C口:7FFEH 3、D/A电路功能:将波形样值的数字编码转换成模拟值;完成单极性向双极性的波形输出;构成由两片0832和一块LM324运放组成。0832(1)是参考电压提供者,单片机向0832(1)内的锁存器送数字编码,不同的编码会产生不同的输出值,在本发生器中,可输出1V、2V、3V、4V、5V等五个模拟值,这些值作为0832(2)的参考电压,使0832(2)输出波形信号时,其幅度是可调的。0832(2)用于产生各种波形信号,单片机在波形产生程序的控制下,生成波形样值编码,并送到0832(2)中的锁存器,经过D/A转换,得到波形的模拟样值点,假如N个点就构成波形的一个周期,那么0832(2)输出N个样值点后,样值点形成运动轨迹,就是波形信号的一个周期。重复输出N个点后,由此成第二个周期,第三个周期……。这样0832(2)就能连续的输出周期变化的波形信号。运放A1是直流放大器,运放A2是单极性电压放大器,运放A3是双极性驱动放大器,使波形信号能带得起负载。地址分配:0832(1):DFFFH ,0832(2):BFFFH4、电源电路:功能:为波形发生器提供直流能量;构成由变压器、整流硅堆,稳压块7805组成。220V的交流电,经过开关,保险管(1.5A/250V),到变压器降压,由220V降为10V,通过硅堆将交流电变成直流电,对于谐波,用4700μF的电解电容给予滤除。为保证直流电压稳定,使用7805进行稳压。最后,+5V电源配送到各用电负载。
上传时间: 2013-11-08
上传用户:685
介绍用PIC16F84单片机制作的电子密码锁。PIC16F84单片机共18个引脚,13个可用I/O接口。芯片内有1K×14的FLASHROM程序存储器,36×8的静态RAM的通用寄存器,64×8的EEPROM的数据存储器,8级深度的硬堆栈。 用PIC单片机设计的电子密码锁微芯公司生产的PIC8位COMS单片机,采用类RISC指令集和哈弗总线结构,以及先进的流水线时序,与传统51单片机相比其在速度和性能方面更具优越性和先进性。PIC单片机的另一个优点是片上硬件资源丰富,集成常见的EPROM、DAC、PWM以及看门狗电路。这使得硬件电路的设计更加简单,节约设计成本,提高整机性能。因此PIC单片机已成为产品开发,尤其是产品设计和研制阶段的首选控制器。本文介绍用PIC16F84单片机制作的电子密码锁。PIC16F84单片机共18个引脚,13个可用I/O接口。芯片内有1K×14的FLASHROM程序存储器,36×8的静态RAM的通用寄存器,64×8的EEPROM的数据存储器,8级深度的硬堆栈。硬件设计 电路原理见图1。Xx8位数据线接4x4键盘矩阵电路,面板布局见表1,A、B、C、D为备用功能键。RA0、RA7输出4组编码二进制数据,经74LS139译码后输出逐行扫描信号,送RB4-RB7列信号输入端。余下半个139译码器动扬声器。RB2接中功率三极管基极,驱动继电器动作。有效密码长度为4位,根据实际情况,可通过修改源程序增加密码位数。产品初始密码为3345,这是一随机数,无特殊意义,目的是为防止被套解。用户可按*号键修改密码,按#号键结束。输入密码并按#号确认之后,脚输出RB2脚输出高电平,继电器闭合,执行一次开锁动作。 若用户输入的密码正确,扬声器发出一声稍长的“滴”提示声,若输入的密码与上次修改的不符,则发出短促的“滴”声。连续3次输入密码错误之后,程序锁死,扬声器报警。直到CPU被复位或从新上电。软件设计 软件流程图见图3。CPU上电或复位之后将最近一次修改并保存到EEPROM的密码读出,最为参照密匙。然后等待用户输入开锁密码。若5分钟以内没有接受到用户的任何输入,CPU自动转入掉电模式,用户输入任意值可唤醒CPU。每次修改密码之后,CPU将新的密码存入内部4个连续的EEPROM单元,掉电后该数据任有效。每执行一次开锁指令,CPU将当前输入密码与该值比较,看是否真确,并给出相应的提示和控制。布 局 所有元件均使用SMD表贴封装,缩小体积,便于产品安装,60X60双面PCB板,顶层是一体化输入键盘,底层是元件层。成型后的产品体积小巧,能很方便的嵌入防盗铁门、保险箱柜。
上传时间: 2013-10-31
上传用户:uuuuuuu
单片机音乐中音调和节拍的确定方法:调号-音乐上指用以确定乐曲主音高度的符号。很明显一个八度就有12个半音。A、B、C、D、E、F、G。经过声学家的研究,全世界都用这些字母来表示固定的音高。比如,A这个音,标准的音高为每秒钟振动440周。 升C调:1=#C,也就是降D调:1=BD;277(频率)升D调:1=#D,也就是降E调:1=BE;311升F调:1=#F,也就是降G调:1=BG;369升G调:1=#G,也就是降A调:1=BA;415升A调:1=#A,也就是降B调:1=BB。466,C 262 #C277 D 294 #D(bE)311 E 330 F 349 #F369 G 392 #G415A 440. #A466 B 494 所谓1=A,就是说,这首歌曲的“导”要唱得同A一样高,人们也把这首歌曲叫做A调歌曲,或叫“唱A调”。1=C,就是说,这首歌曲的“导”要唱得同C一样高,或者说“这歌曲唱C调”。同样是“导”,不同的调唱起来的高低是不一样的。各调的对应的标准频率为: 单片机演奏音乐时音调和节拍的确定方法 经常看到一些刚学单片机的朋友对单片机演奏音乐比较有兴趣,本人也曾是这样。在此,本人将就这方面的知识做一些简介,但愿能对单片机演奏音乐比较有兴趣而又不知其解的朋友能有所启迪。 一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能象电子琴那样能奏出多种音色的声音。因此单片机奏乐只需弄清楚两个概念即可,也就是“音调”和“节拍”。音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时间。 在音乐中所谓“音调”,其实就是我们常说的“音高”。在音乐中常把中央C上方的A音定为标准音高,其频率f=440Hz。当两个声音信号的频率相差一倍时,也即f2=2f1时,则称f2比f1高一个倍频程, 在音乐中1(do)与 ,2(来)与 ……正好相差一个倍频程,在音乐学中称它相差一个八度音。在一个八度音内,有12个半音。以1—i八音区为例, 12个半音是:1—#1、#1—2、2—#2、#2—3、3—4、4—#4,#4—5、5一#5、#5—6、6—#6、#6—7、7—i。这12个音阶的分度基本上是以对数关系来划分的。如果我们只要知道了这十二个音符的音高,也就是其基本音调的频率,我们就可根据倍频程的关系得到其他音符基本音调的频率。 知道了一个音符的频率后,怎样让单片机发出相应频率的声音呢?一般说来,常采用的方法就是通过单片机的定时器定时中断,将单片机上对应蜂鸣器的I/O口来回取反,或者说来回清零,置位,从而让蜂鸣器发出声音,为了让单片机发出不同频率的声音,我们只需将定时器予置不同的定时值就可实现。那么怎样确定一个频率所对应的定时器的定时值呢?以标准音高A为例: A的频率f = 440 Hz,其对应的周期为:T = 1/ f = 1/440 =2272μs 由上图可知,单片机上对应蜂鸣器的I/O口来回取反的时间应为:t = T/2 = 2272/2 = 1136μs这个时间t也就是单片机上定时器应有的中断触发时间。一般情况下,单片机奏乐时,其定时器为工作方式1,它以振荡器的十二分频信号为计数脉冲。设振荡器频率为f0,则定时器的予置初值由下式来确定: t = 12 *(TALL – THL)/ f0 式中TALL = 216 = 65536,THL为定时器待确定的计数初值。因此定时器的高低计数器的初值为: TH = THL / 256 = ( TALL – t* f0/12) / 256 TL = THL % 256 = ( TALL – t* f0/12) %256 将t=1136μs代入上面两式(注意:计算时应将时间和频率的单位换算一致),即可求出标准音高A在单片机晶振频率f0=12Mhz,定时器在工作方式1下的定时器高低计数器的予置初值为 : TH440Hz = (65536 – 1136 * 12/12) /256 = FBH TL440Hz = (65536 – 1136 * 12/12)%256 = 90H根据上面的求解方法,我们就可求出其他音调相应的计数器的予置初值。 音符的节拍我们可以举例来说明。在一张乐谱中,我们经常会看到这样的表达式,如1=C 、1=G …… 等等,这里1=C,1=G表示乐谱的曲调,和我们前面所谈的音调有很大的关联, 、 就是用来表示节拍的。以 为例加以说明,它表示乐谱中以四分音符为节拍,每一小结有三拍。比如: 其中1 、2 为一拍,3、4、5为一拍,6为一拍共三拍。1 、2的时长为四分音符的一半,即为八分音符长,3、4的时长为八分音符的一半,即为十六分音符长,5的时长为四分音符的一半,即为八分音符长,6的时长为四分音符长。那么一拍到底该唱多长呢?一般说来,如果乐曲没有特殊说明,一拍的时长大约为400—500ms 。我们以一拍的时长为400ms为例,则当以四分音符为节拍时,四分音符的时长就为400ms,八分音符的时长就为200ms,十六分音符的时长就为100ms。可见,在单片机上控制一个音符唱多长可采用循环延时的方法来实现。首先,我们确定一个基本时长的延时程序,比如说以十六分音符的时长为基本延时时间,那么,对于一个音符,如果它为十六分音符,则只需调用一次延时程序,如果它为八分音符,则只需调用二次延时程序,如果它为四分音符,则只需调用四次延时程序,依次类推。通过上面关于一个音符音调和节拍的确定方法,我们就可以在单片机上实现演奏音乐了。具体的实现方法为:将乐谱中的每个音符的音调及节拍变换成相应的音调参数和节拍参数,将他们做成数据表格,存放在存储器中,通过程序取出一个音符的相关参数,播放该音符,该音符唱完后,接着取出下一个音符的相关参数……,如此直到播放完毕最后一个音符,根据需要也可循环不停地播放整个乐曲。另外,对于乐曲中的休止符,一般将其音调参数设为FFH,FFH,其节拍参数与其他音符的节拍参数确定方法一致,乐曲结束用节拍参数为00H来表示。下面给出部分音符(三个八度音)的频率以及以单片机晶振频率f0=12Mhz,定时器在工作方式1下的定时器高低计数器的予置初值 : C调音符 频率Hz 262 277 293 311 329 349 370 392 415 440 466 494TH/TL F88B F8F2 F95B F9B7 FA14 FA66 FAB9 FB03 FB4A FB8F FBCF FC0BC调音符 1 1# 2 2# 3 4 4# 5 5# 6 6# 7频率Hz 523 553 586 621 658 697 739 783 830 879 931 987TH/TL FC43 FC78 FCAB FCDB FD08 FD33 FD5B FD81 FDA5 FDC7 FDE7 FE05C调音符 频率Hz 1045 1106 1171 1241 1316 1393 1476 1563 1658 1755 1860 1971TH/TL FB21 FE3C FE55 FE6D FE84 FE99 FEAD FEC0 FE02 FEE3 FEF3 FF02
上传时间: 2013-10-20
上传用户:哈哈haha
《现代微机原理与接口技术》实验指导书 TPC-H实验台C语言版 1.实验台结构1)I / O 地址译码电路如上图1所示地址空间280H~2BFH共分8条译码输出线:Y0~Y7 其地址分别是280H~287H、288H~28FH、290H~297H、298H~29FH、2A0H~2A7H、2A8H~2AFH、2B0H~2B7H、2B8H~2BFH,8根译码输出线在实验台I/O地址处分别由自锁紧插孔引出供实验选用(见图2)。 2) 总线插孔采用“自锁紧”插座在标有“总线”区引出数据总线D7~D0;地址总线A9~A0,读、写信号IOR、IOW;中断请求信号IRQ ;DMA请求信号DRQ1;DMA响应信号DACK1 及AEN信号,供学生搭试各种接口实验电路使用。3) 时钟电路如图-3所示可以输出1MHZ 2MHZ两种信号供A/D转换器定时器/计数器串行接口实验使用。图34) 逻辑电平开关电路如图-4所示实验台右下方设有8个开关K7~K0,开关拨到“1”位置时开关断开,输出高电平。向下打到“0”位置时开关接通,输出低电平。电路中串接了保护电阻使接口电路不直接同+5V 、GND相连,可有效地防止因误操作误编程损坏集成电路现象。图 4 图 55) L E D 显示电路如图-5所示实验台上设有8个发光二极管及相关驱动电路(输入端L7~L0),当输入信号为“1” 时发光,为“0”时灭6) 七段数码管显示电路如图-6所示实验台上设有两个共阴极七段数码管及驱动电路,段码为同相驱动器,位码为反相驱动器。从段码与位码的驱动器输入端(段码输入端a、b、c、d、e、f、g、dp,位码输入端s1、 s2)输入不同的代码即可显示不同数字或符号。
上传时间: 2013-11-22
上传用户:sssnaxie