《现代微机原理与接口技术》实验指导书 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
自制51单片机编程器:本站的腾龙版三合一套件与com51仿真器套件均采用sst89c58芯片仿真, 如果在使用过程中不慎将监控程序冲掉导致无法联机,那么你可以利用一个支持sst89c58的编程器将softice58.exe重新烧写一次即可恢复.此时应当选择rb1进行操作:例如我们用top2000,top852,top2003等编程器的操作界面如下:如果你使用的是sst89e564 , 只需要将soft564.hex 烧写进入,同样选择rb1即可。 关于softice更多说明请看softice-ug.pdf的原版说明。
上传时间: 2014-01-14
上传用户:bhqrd30
微型计算机课程设计论文—通用微机发声程序的汇编设计 本文讲述了在微型计算机中利用可编程时间间隔定时器的通用发声程序设计,重点讲述了程序的发声原理,节拍的产生,按节拍改变的动画程序原理,并以设计一个简单的乐曲评分程序为引子,分析程序设计的细节。关键字:微机 8253 通用发声程序 动画技术 直接写屏 1. 可编程时间间隔定时器8253在通用个人计算机中,有一个可编程时间间隔定时器8253,它能够根据程序提供的计数值和工作方式,产生各种形状和各种频率的计数/定时脉冲,提供给系统各个部件使用。本设计是利用计算机控制发声的原理,编写演奏乐曲的程序。 在8253/54定时器内部有3个独立工作的计数器:计数器0,计数器1和计数器2,每个计数器都分配有一个断口地址,分别为40H,41H和42H.8253/54内部还有一个公用的控制寄存器,端地址为43H.端口地址输入到8253/54的CS,AL,A0端,分别对3个计数器和控制器寻址. 对8353/54编程时,先要设定控制字,以选择计数器,确定工作方式和计数值的格式.每计数器由三个引脚与外部联系,见教材第320页图9-1.CLK为时钟输入端,GATE为门控信号输入端,OUT为计数/定时信号输入端.每个计数器中包含一个16位计数寄存器,这个计数器时以倒计数的方式计数的,也就是说,从计数初值逐次减1,直到减为0为止. 8253/54的三个计数器是分别编程的,在对任一个计数器编程时,必须首先讲控制字节写入控制寄存器.控制字的作用是告诉8253/54选择哪个计数器工作,要求输出什么样的脉冲波形.另外,对8253/54的初始化工作还包括,向选定的计数器输入一个计数初值,因为这个计数值可以是8为的,也可以是16为的,而8253/5的数据总线是8位的,所以要用两条输出指令来写入初值.下面给出8253/54初始化程序段的一个例子,将计数器2设定为方式3,(关于计数器的工作方式参阅教材第325—330页)计数初值为65536. MOV AL,10110110B ;选择计数器2,按方式3工作,计数值是二进制格式 OUT 43H,AL ; j将控制字送入控制寄存器 MOV AL,0 ;计数初值为0 OUT 42H,AL ;将计数初值的低字节送入计数器2 OUT 42H,AL ;将计数初值的高字节送入计数器2 在IBM PC中8253/54的三个时钟端CLK0,CLK1和CLK2的输入频率都是1.1931817MHZ. PC机上的大多数I/O都是由主板上的8255(或8255A)可编程序外围接口芯片(PPI)管理的.关于8255A的结构和工作原理及应用举例参阅教材第340—373页.教材第364页的”PC/XT机中的扬声器接口电路”一节介绍了扬声器的驱动原理,并给出了通用发声程序.本设计正是基于这个原理,通过编程,控制加到扬声器上的信号的频率,奏出乐曲的.2.发声程序的设计下面是能产生频率为f的通用发声程序:MOV AL, 10110110B ;8253控制字:通道2,先写低字节,后写高字节 ;方式3,二进制计数OUT 43H, AL ;写入控制字MOV DX, 0012H ;被除数高位MOV AX, 35DEH ;被除数低位 DIV ID ;求计数初值n,结果在AX中OUT 42H, AL ;送出低8位MOV AL, AHOUT 42H,AL ;送出高8位IN AL, 61H ;读入8255A端口B的内容MOV AH, AL ;保护B口的原状态OR AL, 03H ;使B口后两位置1,其余位保留OUT 61H,AL ;接通扬声器,使它发声
上传时间: 2013-10-17
上传用户:sunjet
串行编程器源程序(Keil C语言)//FID=01:AT89C2051系列编程器//实现编程的读,写,擦等细节//AT89C2051的特殊处:给XTAL一个脉冲,地址计数加1;P1的引脚排列与AT89C51相反,需要用函数转换#include <e51pro.h> #define C2051_P3_7 P1_0#define C2051_P1 P0//注意引脚排列相反#define C2051_P3_0 P1_1#define C2051_P3_1 P1_2#define C2051_XTAL P1_4#define C2051_P3_2 P1_5#define C2051_P3_3 P1_6#define C2051_P3_4 P1_7#define C2051_P3_5 P3_5 void InitPro01()//编程前的准备工作{ SetVpp0V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=0; Delay_ms(20); nAddress=0x0000; SetVpp5V();} void ProOver01()//编程结束后的工作,设置合适的引脚电平{ SetVpp5V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=1;} BYTE GetData()//从P0口获得数据{ B_0=P0_7; B_1=P0_6; B_2=P0_5; B_3=P0_4; B_4=P0_3; B_5=P0_2; B_6=P0_1; B_7=P0_0; return B;} void SetData(BYTE DataByte)//转换并设置P0口的数据{ B=DataByte; P0_0=B_7; P0_1=B_6; P0_2=B_5; P0_3=B_4; P0_4=B_3; P0_5=B_2; P0_6=B_1; P0_7=B_0;} void ReadSign01()//读特征字{ InitPro01(); Delay_ms(1);//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(20); ComBuf[2]=GetData(); C2051_XTAL=1; C2051_XTAL=0; Delay_us(20); ComBuf[3]=GetData(); ComBuf[4]=0xff;//----------------------------------------------------------------------------- ProOver01();} void Erase01()//擦除器件{ InitPro01();//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 C2051_P3_3=1; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(1); SetVpp12V(); Delay_ms(1); C2051_P3_2=0; Delay_ms(10); C2051_P3_2=1; Delay_ms(1);//----------------------------------------------------------------------------- ProOver01();} BOOL Write01(BYTE Data)//写器件{//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 //写一个单元 C2051_P3_3=0; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; SetData(Data); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); Delay_us(20); C2051_P3_4=0; Delay_ms(2); nTimeOut=0; P0=0xff; nTimeOut=0; while(!GetData()==Data)//效验:循环读,直到读出与写入的数相同 { nTimeOut++; if(nTimeOut>1000)//超时了 { return 0; } } C2051_XTAL=1; C2051_XTAL=0;//一个脉冲指向下一个单元//----------------------------------------------------------------------------- return 1;} BYTE Read01()//读器件{ BYTE Data;//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 //读一个单元 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=1; C2051_P3_7=1; Data=GetData(); C2051_XTAL=1; C2051_XTAL=0;//一个脉冲指向下一个单元//----------------------------------------------------------------------------- return Data;} void Lock01()//写锁定位{ InitPro01();//先设置成编程状态//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 if(ComBuf[2]>=1)//ComBuf[2]为锁定位 { C2051_P3_3=1; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; Delay_us(20); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); } if(ComBuf[2]>=2) { C2051_P3_3=1; C2051_P3_4=1; C2051_P3_5=0; C2051_P3_7=0; Delay_us(20); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); }//----------------------------------------------------------------------------- ProOver01();} void PreparePro01()//设置pw中的函数指针,让主程序可以调用上面的函数{ pw.fpInitPro=InitPro01; pw.fpReadSign=ReadSign01; pw.fpErase=Erase01; pw.fpWrite=Write01; pw.fpRead=Read01; pw.fpLock=Lock01; pw.fpProOver=ProOver01;}
上传时间: 2013-11-12
上传用户:gut1234567
本章介绍dsPIC30F器件系列的看门狗定时器(WDT)和低功耗模式。dsPIC DSC 器件有两种低功耗模式,可以通过执行PWRSAV指令进入:• 休眠模式:CPU、系统时钟源和任何依靠系统时钟源工作的外设都被禁止。这是器件的最低功耗模式。• 空闲模式:CPU 被禁止,但是系统时钟源继续工作。外设继续工作,但可以有选择地禁止。WDT在使能时使用内部LPRC 时钟源工作,而且如果WDT没有被软件清零,它可以通过复位器件来检测系统软件的异常情况。可以使用WDT后分频器选择不同的WDT超时周期。WDT也可用于将器件从休眠或空闲模式唤醒。
上传时间: 2014-02-01
上传用户:金苑科技
可编程计数器/定时器的特点计算机及电子系统中需要定时信号,如系统的日历时钟,动态存储器的刷新,应用系统的定时中断、定时查询与检测等。可编程定时器芯片可以产生精确的时间间隔,形成各种脉冲序列,灵活性强。依所需时间间隔,设置计数器的时间常数,在一外部脉冲驱动下进行减1计数,计数值为0时,产生输出信号,供系统使用。
上传时间: 2013-11-17
上传用户:彭玖华
微机接口技术试题:《微机接口技术》模拟试题 一、 选择题:(每空1分,共20分)1. CPU与外设之间交换数据常采用 、 、 和 四种方式,PC机键盘接口采用 传送方式。 ⒉ 当进行DMA方式下的写操作时,数据是从 传送到 __中。 ⒊ PC总线、ISA总线和EISA总线的地址线分别为: 、 和 根。 ⒋ 8254定时/计数器内部有 个端口、共有 种工作方式。 ⒌8255的A1和A0引脚分别连接在地址总线的A1和A0,当命令端口的口地址为317H时,则A口、B口、C口的口地址分别为 、 、 。 ⒍ PC微机中最大的中断号是 、最小的中断号是 。 ⒎PC微机中键盘是从8255的 口得到按键数据。 ⒏ 串行通信中传输线上即传输_________,又传输_________。 二、选择题:(每题2分,共10分)⒈ 设串行异步通信每帧数据格式有8个数据位、无校验、一个停止位,若波特率为9600B/S,该方式每秒最多能传送( )个字符。 ① 1200 ② 150 ③ 960 ④ 120 2.输出指令在I/O接口总线上产生正确的命令顺序是( )。① 先发地址码,再发读命令,最后读数据。② 先发读命令、再发地址码,最后读数据。③ 先送地址码,再送数据,最后发写命令。④ 先送地址码,再发写命令、最后送数据。3 使用8254设计定时器,当输入频率为1MHZ并输出频率为100HZ时,该定时器的计数初值为( )。 ① 100 ② 1000 ③ 10000 ④ 其它 4 在PC机中5号中断,它的中断向地址是( )。 ① 0000H:0005H ② 0000H:0010H ③ 0000H:0014H ④ 0000H:0020H 5. 四片8259级联时可提供的中断请求总数为( )。 ① 29个 ② 30个 ③ 31个 ④ 32个 6. 下述总线中,组内都是外设串行总线为( )组。① RS-485、IDE、ISA。② RS-485、IEEE1394、USB。③ RS-485、PCI、IEEE1394。④ USB、SCSI、RS-232。 7. DMA在( )接管总线的控制权。① 申请阶段 ② 响应阶段 ③ 数据传送阶段 ④ 结束阶段 8. 中断服务程序入口地址是( )。 ① 中断向量表的指针 ② 中断向量 ③ 中断向量表 ④ 中断号
上传时间: 2013-11-16
上传用户:xiaoxiang
pic单片机实用教程(提高篇)以介绍PIC16F87X型号单片机为主,并适当兼顾PIC全系列,共分9章,内容包括:存储器;I/O端口的复位功能;定时器/计数器TMR1;定时器TMR2;输入捕捉/输出比较/脉宽调制CCP;模/数转换器ADC;通用同步/异步收发器USART;主控同步串行端口MSSP:SPI模式和I2C模式。突出特点:通俗易懂、可读性强、系统全面、学练结合、学用并重、实例丰富、习题齐全。<br>本书作为Microchip公司大学计划选择用书,可广泛适用于初步具备电子技术基础和计算机知识基础的学生、教师、单片机爱好者、电子制作爱好者、电器维修人员、电子产品开发设计者、工程技术人员阅读。本教程全书共分2篇,即基础篇和提高篇,分2册出版,以适应不同课时和不同专业的需要,也为教师和读者增加了一种可选方案。 第1章 EEPROM数据存储器和FIASH程序存储器1.1 背景知识1.1.1 通用型半导体存储器的种类和特点1.1.2 PIC单片机内部的程序存储器1.1.3 PIC单片机内部的EEPROM数据存储器1.1.4 PIC16F87X内部EEPROM和FIASH操作方法1.2 与EEPROM相关的寄存器1.3 片内EEPROM数据存储器结构和操作原理1.3.1 从EEPROM中读取数据1.3.2 向EEPROM中烧写数据1.4 与FLASH相关的寄存器1.5 片内FLASH程序存储器结构和操作原理1.5.1 读取FLASH程序存储器1.5.2 烧写FLASH程序存储器1.6 写操作的安全保障措施1.6.1 写入校验方法1.6.2 预防意外写操作的保障措施1.7 EEPROM和FLASH应用举例1.7.1 EEPROM的应用1.7.2 FIASH的应用思考题与练习题第2章 输入/输出端口的复合功能2.1 RA端口2.1.1 与RA端口相关的寄存器2.1.2 电路结构和工作原理2.1.3 编程方法2.2 RB端口2.2.1 与RB端口相关的寄存器2.2.2 电路结构和工作原理2.2.3 编程方法2.3 RC端口2.3.1 与RC端口相关的寄存器2.3.2 电路结构和工作原理2.3.3 编程方法2.4 RD端口2.4.1 与RD端口相关的寄存器2.4.2 电路结构和工作原理2.4.3 编程方法2.5 RE端口2.5.1 与RE端口相关的寄存器2.5.2 电路结构和工作原理2.5.3 编程方法2.6 PSP并行从动端口2.6.1 与PSP端口相关的寄存器2.6.2 电路结构和工作原理2.7 应用举例思考题与练习题第3章 定时器/计数器TMR13.1 定时器/计数器TMR1模块的特性3.2 定时器/计数器TMR1模块相关的寄存器3.3 定时器/计数器TMR1模块的电路结构3.4 定时器/计数器TMR1模块的工作原理3.4.1 禁止TMR1工作3.4.2 定时器工作方式3.4.3 计数器工作方式3.4.4 TMR1寄存器的赋值与复位3.5 定时器/计数器TMR1模块的应用举例思考题与练习题第4章 定时器TMR24.1 定时器TMR2模块的特性4.2 定时器TMR2模块相关的寄存器4.3 定时器TMR2模块的电路结构4.4 定时器TMR2模块的工作原理4.4.1 禁止TMR2工作4.4.2 定时器工作方式4.4.3 寄存器TMR2和PR2以及分频器的复位4.4.4 TMR2模块的初始化编程4.5 定时器TMR2模块的应用举例思考题与练习题第5章 输入捕捉/输出比较/脉宽调制CCP5.1 输入捕捉工作模式5.1.1 输入捕捉摸式相关的寄存器5.1.2 输入捕捉模式的电路结构5.1.3 输入捕捉摸式的工作原理5.1.4 输入捕捉摸式的应用举例5.2 输出比较工作模式5.2.1 输出比较模式相关的寄存器5.2.2 输出比较模式的电路结构5.2.3 输出比较模式的工作原理5.2.4 输出比较模式的应用举例5.3 脉宽调制输出工作模式5.3.1 脉宽调制模式相关的寄存器5.3.2 脉宽调制模式的电路结构5.3.3 脉宽调制模式的工作原理5.3.4 脉定调制模式的应用举例5.4 两个CCP模块之间相互关系思考题与练习题第6章 模/数转换器ADC6.1 背景知识6.1.1 ADC种类与特点6.1.2 ADC器件的工作原理6.2 PIC16F87X片内ADC模块6.2.1 ADC模块相关的寄存器6.2.2 ADC模块结构和操作原理6.2.3 ADC模块操作时间要求6.2.4 特殊情况下的A/D转换6.2.5 ADC模块的转换精度和分辨率6.2.6 ADC模块的内部动作流程和传递函数6.2.7 ADC模块的操作编程6.3 PIC16F87X片内ADC模块的应用举例思考题与练习题第7章 通用同步/异步收发器USART7.1 串行通信的基本概念7.1.1 串行通信的两种基本方式7.1.2 串行通信中数据传送方向7.1.3 串行通信中的控制方式7.1.4 串行通信中的码型、编码方式和帧结构7.1.5 串行通信中的检错和纠错方式7.1.6 串行通信组网方式7.1.7 串行通信接口电路和参数7.1.8 串行通信的传输速率7.2 PIC16F87X片内通用同步/异步收发器USART模块7.2.1 与USART模块相关的寄存器7.2.2 USART波特率发生器BRG7.2.3 USART模块的异步工作方式7.2.4 USART模块的同步主控工作方式7.2.5 USART模块的同步从动工作方式7.3 通用同步/异步收发器USART的应用举例思考题与练习题第8章 主控同步串行端口MSSP——SPI模式8.1 SPI接口的背景知识8.1.1 SPI接口信号描述8.1.2 基于SPI的系统构成方式8.1.3 SPI接口工作原理8.1.4 兼容的MicroWire接口8.2 PIC16F87X的SPI接口8.2.1 SPI接口相关的寄存器8.2.2 SPI接口的结构和操作原理8.2.3 SPI接口的主控方式8.2.4 SPI接口的从动方式8.3 SPI接口的应用举例思考题与练习题第9章 主控同步串行端口MSSP——I(平方)C模式9.1 I(平方)C总线的背景知识9.1.1 名词术语9.1.2 I(平方)C总线的技术特点9.1.3 I(平方)C总线的基本工作原理9.1.4 I(平方)C总线信号时序分析9.1.5 信号传送格式9.1.6 寻址约定9.1.7 技术参数9.1.8 I(平方)C器件与I(平方)C总线的接线方式9.1.9 相兼容的SMBus总线9.2 与I(平方)C总线相关的寄存器9.3 典型信号时序的产生方法9.3.1 波特率发生器9.3.2 启动信号9.3.3 重启动信号9.3.4 应答信号9.3.5 停止信号9.4 被控器通信方式9.4.1 硬件结构9.4.2 被主控器寻址9.4.3 被控器接收——被控接收器9.4.4 被控器发送——被控发送器9.4.5 广播式寻址9.5 主控器通信方式9.5.1 硬件结构9.5.2 主控器发送——主控发送器9.5.3 主控器接收——主控接收器9.6 多主通信方式下的总线冲突和总线仲裁9.6.1 发送和应答过程中的总线冲突9.6.2 启动过程中的总线冲突9.6.3 重启动过程中的总线冲突9.6.4 停止过程中的总线冲突9.7 I(平方)C总线的应用举例思考题与练习题附录A 包含文件P16F877.INC附录B 新版宏汇编器MPASM伪指令总表参考文献
上传时间: 2013-12-14
上传用户:xiaoyuer
mcs-51单片机应用教程以MCS-51系列单片机为主线,从实用的角度出发,通过介绍大量单片机技能训练实例和应用实例,指导读者学习和使用单片机。《MCS-51单片机应用教程》分为基础篇和应用篇两大部分。基础篇讲述单片机的基础知识,包括单片机原理与结构、指令系统、定时与中断、串行通信等。应用篇包括单片机的基础训练和应用实例两部分。《MCS-51单片机应用教程》各章节由浅入深,前后呼应,使读者能够在理解掌握单片机原理的基础上,很快学会单片机的使用。 MCS-51单片机应用教程 目录 第1篇 基础篇 第1章 MCS-51单片机系统结构 1.1 概述 1.2 单片机的内部结构 1.3 单片机的存储器结构 1.4 单片机并行I/O口 1.5 单片机的复位电路 1.6 单片机的时钟与时序 第2章 单片机的指令系统 2.1 指令系统概述 2.2 寻址方式 2.3 指令功能介绍 第3章 单片机的中断系统与定时器/计数器 3.1 中断系统 3.2 单片机的定时器/计数器 3.3 外部中断源的扩展 第4章 单片机的串行通信 4.1 串行通信的概念 4.2 MCS-51串行口的结构及工作方式 4.3 串行通信的应用 第2篇 应用篇 第5章 单片机实用开发步骤 5.1 单片机应用系统设计的一般流程 5.2 单片机汇编程序的编辑方法 5.3 源程序的编译
上传时间: 2013-11-12
上传用户:qingdou
STC 定时器2 的操作定时器2 是一个16 位定时/ 计数器。通过设置特殊功能寄存器T2CON 中的C/T2 位,可将其作为定时器或计数器(特殊功能寄存器T2CON 的描述如表1 所列)。定时器2 有3 种操作模式:捕获、自动重新装载(递增或递减计数)和波特率发生器,这3 种模式由T2CON 中的位进行选择(如表2 所列)。表1 特殊功能寄存器T2CON 的描述 1.捕获模式2. 自动重装模式(递增/ 递减计数器)3.波特率发生器模式4.波特率公式汇总5.定时器/ 计数器2 的设置6.可编程时钟输出
上传时间: 2013-11-12
上传用户:zhangzhenyu