为什么说单片机输入输出端口的P1和P3端口是静态I/O端

51单片机中端口地址的确定
比如说51的p0口接收ad转换器的8个输出数据,p1口作为输出单片机结果的输出,p2.7用来连接ad转换器的片选端。书上说端口是7fffH。怎么判断的?MOV    DPTR,#7FFFFHMOV
 A,#00HMOVX   @DPTR,A运行完这个是不是就会在p2.7产生低电平?
09-12-13 &
8255的端口地址为 80H, 82H, 84H, 86H 8253的端口地址为 90H, 92H, 94H, 96H 8259的端口地址为 A0H, A2H,         8251的端口地址为 B0H, B2H,              OUT  80H, AL      IN   AL,  82H
请登录后再发表评论!
上面这段程序是间接寻址,你用的AD转换器的片选接P2.7,片选都是低电平有效,则端口地址为7FFFH(),在运行上面的程序,不是让P2.7产生低电平,而是把00这个初始化数据传送给AD转接器,在执行MOV DPTR,#7FFFH这一句时,已经选中了端口地址(让P2.7置低,让AD转换器有效)。
请登录后再发表评论!
51单片机的I/O口 01:01对单片机的控制,其实就是对I/O口的控制,无论单片机对外界进行何种控制,或接受外部的何种控制,都是通过I/O口进行的。51单片机总共有P0、P1、P2、P3四个8位双向输入输出端口,每个端口都有锁存器、输出驱动器和输入缓冲器。4个I/O端口都能作输入输出口用,其中P0和P2通常用于对外部存储器的访问。51系列单片机有4个I/O端口,每个端口都是8位准双向口,共占32根引脚。每个端口都包括一个锁存器(即专用寄存器P0~P3)、一个输出驱动器和输入缓冲器。通常把4个端口笼统地表示为P0~P3。在无片外扩展存储器的系统中,这4个端口的每一位都可以作为准双向通用I/O端口使用。在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线。51单片机4个I/O端口线路设计的非常巧妙,学习I/O端口逻辑电路,不但有利于正确合理地使用端口,而且会给设计单片机外围逻辑电路有所启发。下面简单介绍一下输入/输出端口结构。1.P0口和P2的结构1.1 P0口的结构:下图为P0口的某位P0.n(n=0~7)结构图,它由一个输出锁存器、两个三态输入缓冲器和输出驱动电路及控制电路组成。从图中可以看出,P0口既可以作为I/O用,也可以作为地址/数据线用。
请登录后再发表评论!君,已阅读到文档的结尾了呢~~
单片机原理及接口技术课后习题答答  内容详尽,但请以实际操作为准,欢迎下载使用
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
单片机原理及接口技术课后习题答答 
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口当前位置: >>
2012年春季EDP辅导单片机
1-1、(11年春季) ()下述数据的等式成立:(166)10 = (106)16 = (10)21-2、(11年秋季) ( )下列数据等式成立: (255)10=(FF)16=( 1-3、(11年秋季)( )下列数据中数值最大者为:A(1F3)16 B(512)10 C()2 D(10)BCD543.21可表示为 543.21=5×102+4×101+3×100+2×10-1+1×10-2??1 1-4、(11年秋季)二进制数码左移1位,末位补一个零,则 数据值为原数据值乘2。1-5、()一计算机,其地址线有20根,则其最大存储容量为:A 1MBB 10MBC 1GBD 64GB1-6、(11年春季)十进制数1000至少需要10位二进制表 达。1-7、()一计算机,其地址线有30根,则其最大存储容量为: A、1MB B、10MB C、1GB D、64GB2 2-1、(11年春季) ( )计算机系统中,字节长为8位二进 制,而字长则可以为4位、8位、16位、32位等。字长:指计算机一次可处理的二进制数字的数目。根据计算机的不同,字长有固定的和可变的两种。固定字长,即字长度不 论什么情况都是固定不变的;可变字长,则在一定范围内,其 长度是可变的。计算机处理数据的速率,自然和它一次能加工 的位数以及进行运算的快慢有关。如果一台计算机的字长是另 一台计算机的两倍,即使两台计算机的速度相同,在相同的时 间内,前者能做的工作是后者的两倍。?3 字节和字长的区别:由于常用的英文字符用8位二进制就可以表示,所以通常就将8位称为一个字节。字长的长度是不固定的,对于不同的CPU、字长的长度也不一样。8位的CPU一次只 能处理一个字节,而32位的CPU一次就能处理4个字节,同理 字长为64位的CPU一次可以处理8个字节。?2-2、()所谓的32位计算机是指:A. 地址线为32根B. 数据线为32根C. CPU能同时处理32位二进制数 D. 有32个寄存器4 3-1、( )计算机中的SRAM在工作时需定时刷新, 方可保持其内容不变。5 3-2、(11秋季)有关动态存储器DRAM,下列哪种说法 是错误的? A、DRAM集成度高,工作速度比SRAM慢 B、DRAM功耗小 C、DRAM常用作计算机中的高速缓存 D、DRAM工作时需定时刷新,以保持所存内容3-3、 (11秋季) ( )有关静态存储器SRAM,下列哪种说 法是错误的? A、SRAM工作速度快,常用作计算机的高速缓冲 B、SRAM的集成度较低 C、SRAM的功耗较大 D、SRAM工作时需要定时刷新,以保持所存内容6 3-4、()SRAM和DRAM均为RAM存储器,二者的容量与读写速度为:A、SRAM有极高的读写速度及大容量 B、DRAM有极高的读写速度及大容量C、SRAM有极高的读写速度,DRAM有更大的容量D、DRAM有极高的读写速度,SRAM有更大的容量SRAM(Static RAM)意为静态随机存储器。SRAM 数据不需要通过不断地刷新来保存,因此速度 比DRAM(动态随机存储器)快得多。但是SRAM 具有的缺点是:同容量 相比DRAM需要非常多 的晶体管,发热量也非常大。因此SRAM难以成 为大容量的主存储器,通常只用在CPU、GPU中 作为缓存,容量也只有几十K至几十 M。7 3-5、( 的。)常用的U盘和SD卡是用FLASH存储器实现闪存的英文名称是“Flash Memory”,一般简称为“Flash”, 它属于内存器件的一种,(DDR、SDRAM或者RDRAM只要停止电 流供应,内存中的数据便无法保持,因此每次电脑开机都需要把数据重新载入内存;)闪存在没有电流供应的条件下也能够长久地保持数据,其存储特性相当于硬盘,这项特性正是闪存 得以成为各类便携型数字设备的存储介质的基础。8 A712 3 4 5 6A6A5 A4 A3 6116的存储容量为2K×8 ? 24个引脚: C 11 根地址线 A10~A0 C 8根数据线 I/O7~I/O0 C 片选 CS C 读写 WE C 输出允许OE A2 A1 A0 I/O0 I/O1 I/O2 GND2423 22VccA8 A9 WE OE A102120 1978 91817 16 15 14 13I/O7I/O6 I/O5 I/O4 I/O3 I/O291011 12 3-6、( )已知某存储芯片有12根地址线,则其 存储容量至少为4KB。3-7、()用8k×8位的存储器芯片组成容量为16k×16位的存储器,共需几个芯片?共需多少根地址线寻址?A、2片芯片,14根地址线寻址 B、4片芯片,14根地址线寻址 C、2片芯片,15根地址线寻址D、4片芯片,15根地址线寻址10 4-1、()要对50~20kHz的音频信号作A/D转换,则A/D芯片的 转换时间不能大于: A、100?s B、50?s C、 20?s D、10?s 物理信号→模拟的电信号→数字信号 A/D转换器的作用是将模拟的电信号转换成数字信号。 ? ADC和DAC的主要技术指标 ? 分辨率 :表示对模拟输入的分辨能力,由它确定能被转换 器辨别的最小模拟量,通常也用二进制位来表示。 ? 转换时间:是A/D转换完成一次所需要的时间。积分型AD的转换时间是毫秒级属低速AD; 逐次比较型AD是微秒级属中速AD;全并行/串并行型AD可达到纳秒级。11 4-2、 ( )2.5V电压经8位A/D转换后,其能分辨的最小电压值大约为:A、20mV B、10mV C、5mV D、2.5mV4-3、( )要对0-5V电压进行A/D转换,要求能分辨出的最小电压为1.25mV,则需几位二进制的A/D转换芯片: A、8位 B、10位 C、14位 D、12位4-4、( )已知某A/D转换器芯片的转换时间为10μs,则此A/D能对最高频率为多少的输入信号进行A/D转换 A、100kHz B、50kHz C、200kHz D、250kHz4-5、( )下面种类的A/D转换器,转换速度最快的是:A、计数式ADC B、双积分式ADCC、并行直接比较式ADCD、逐次逼近式ADC12 4-6、( )模拟信号经A/D采样后的信号及经编码后的信号均为数字信号。 模拟信号转换为数字信号,一般分为四个步骤进行,即取样、 保持、量化和编码。4-7、要对20HZ~10KHZ音频信号进行A/D转换,则A/D芯片转换时间不应大于: A. 200?s B. 150?s C. 100?s D. 50?s4-8、ADC 0809是多路输入, 8 位A/D转换电路, 其转换时间为 100 ?s。13 5-1. (11年秋季)要对-30°C~+80°C的温度信号进行模拟转 换,要求分辨率为0.1°C,请回答(8分): ①应选多少位二进制的A/D转换芯片?为什么?(3 分) ②对A/D地转换时间有何要求?(2分) ③画出电路的组成框图(3分)14 5-2、(11年秋季)要对0.01v~5v,频率为40HZ~10kHZ的音频信 号进行A/D转换和存储,电压分辨率为2.5mV,请回答: ①应迭多少位二进制的A/D转换芯片?为什么?(3分) ②对A/D的转换时间有什么要求?(2分) ③要存储此类音频信号3分钟,则存储器的容量至少为多少 字节?(3分)1、①0.01v~5v,作A/D转换,其最低(少)分辨的电压为2.5mv, 故A/D的区分等级应为:==2000 故迭用12位二进制A/D即可,因为12位二进制可区分=4096个 等级,大于2000. ②对A/D的转换时间有要求。根据采样频率的计算: F=2Fmax=210KHZ=20KHZ T0==50μ 故A/D的转换时间应低于50μ ③所需存储器的容量为:15 5-3要对频率为10HZ~1MHZ幅值为10mV~10V的正弦波信 号进行幅度与频率的测试,数字显示,请回答: 1) 画出测试系统电路框图(4分) 2) 对A/D转换芯片有什么指标要求?(5分) 3) 以什么方法测出信号的幅值?(4分) 1)电路框图如图所示16 2)对A/D转换器的要求: A. 若用峰值检测方案,则加至A/D的转换速度(转换时间无甚 要求),转换的二进制位数应高于10位(因为最小电压为 10mV) B. 若不用峰值检波而直接用A/D转换,则A/D的采样频率应高于 2MHZ,故其转换时间应低于0.5?s,为保证采样质量,取 0.1?s为宜。转换的二进制位数与上述相同,应高于10位。 3)检测幅值的方案有上述A、B两种方案,在B方案 中,控制系统中对被采信号的幅值处理也有多种 方法。17 ? 5-4. 设计一语音采录与回放系统,设语音的频率范围为 100Hz~5kHz,以8位A/D采样,要求存储3分钟此类信号并 能随时回放,请回答: 1画出系统组成框图。(4分) 2指明A/D的采样频率至少为多少?(2分) 3计算出对语音信号电压的最小分辨率。(2分) 4计算存储器的存储容量。(4分)答:①系统组成框图如下:存 储 控制放大低通A/DD/A低通放系键统②A/D的采样频率至少为:2×5kHz=10kHz ③对语音信号电压最小的分辨率为: 1 ? 128盘256④存储器的存储容量: 2 ? 5 ? 10 3 ? 8 ? 3 ? 60 ? 8 ? 1.8 M B大18 ? 5-5. 设计一语音采集、存储、回放系统,已知语音信号的频 率为20Hz~10kHz,要求用10位A/D采样,请回答:1、画出系统的组成框图?(6分) 2、A/D、D/A转换器应如何选择?(3分) 3、若要存储此类信号8分钟,则存储器的容量为多少字节?(4分)存 储①②A/D选用条件: 二进制位数―10位(1分) 转换时间―小于50μ s(最低采样周期为Tmin=1/20×103=10-4/2=50μ s) (2分) D/A选用条件: 10位二进制,转换时间小于50μ s(1分)送 放 低 控 制 系 统 低 话 大 A/D ( 单 片 机 ) D/A 通 器 器 FPGA 通 声 音 键器③3存储容量为 20×103×10位×8×60秒÷8位=12MB(3分)图4.1盘器大放19 ? 5-6. 设计一温度采集、存储、显示及回控的闭路系统,已知 被测温度范围为-30OC~70 OC,测量误差为0.2 OC,请回答: ? ○1画出系统的电路组成框图。 ? ○2指明A/D、D/A的主要选用指标。 ? ○3若每10秒存储一个采样值,则存储10个小时所需的存储 器的容量是多少?②A/D选用指标: 答:① a、10位A/D:∵0.2/(70-(-30))=0.2/100=1/500 b、∵温度变化比较缓慢,故对A/D转换时间无特殊要求。 D/A选用指标: a、与A/D配合、选用10位D/A b、转换速率无要求。 ③10位X10时X60分X60秒÷10秒÷8位=4.5kB20 ? 5-7. 设计一温度采集、无线传输的收发系统,温度变化范围 为0~100℃,误差为1℃,无线传输的载频在30MHz以下, 请回答: 1画出系统的组成框图(7分) 2A/D转换器应如何选择?(3分) 3简述系统设计的难点(3分)① ②A/D选用条件:(3分) 二进制位数为8位,因为100℃/1℃=100,此为最低分辨率,而8位 二进制的分辨率为256级 由于于变化缓慢,故A/D的转换时间无要求无 线 收 发 模 块 无 线 收 发 模 块 显 控 制 系 统 控 制 系 信 号 低 通 A/D 显 ( 单 片 机 ) 示 ( 单 片 机 统 调 理 FPGA FPGA ) 存③难点: a、信号调理,要将温度变化的信号转换成符合A/D转换的需要;(1.5分) b、无线收发:效率、功率、发射距离、通信协议,可靠通信等均需很好解决, 若用分立元件制作收发电路则难度更大。(1.5分)温 度 变 化 键 盘 存 储 键 图4.1 盘储示21 5-8. (11年春季)要对频率为10HZ~1MHZ幅值为10mV-10V的正弦波信号进行① ② ③幅度与频率的测试,数字显示,请回答: 画出测试系统电路框图(4分) 对A/D转换芯片有什么指标要求?(5分) 以什么方法测出信号的幅值?(4分)1)电路框图如图所示被测信号 信号调理 低通 峰值检波 A/D 控制系统 显示存储2)对A/D转换器的要求: 若用峰值检测方案,则加至A/D的转换速度(转换时间无甚要求),转换的 二进制位数应高于10位(因为最小电压为10mV) 若不用峰值检波而直接用A/D转换,则A/D的采样频率应高于2MHZ,故其转 换时间应低于0.5?s,为保证采样质量,取0.1?s为宜。转换的二进制位数 与上述相同,应高于10位。 3)检测幅值的方案有上述A、B两种方案,在B方案中,控制系统中对被采 信号的幅值处理也有多种方法。放大 施密特触发 器 键盘22 6-1、请找出图中所示的单片机外围电路设计中的错误,并加以改正。(6分)VCC R1 10k 1 2 3 4 5 6 7 8 13 12 U1 AT89C51 P10 P11 P12 P13 P14 P15 P16 P17 INT1 INT0 T1 T0 EA/VP X1 X2 RESET RD WR RXD TXD ALE/P PSEN 10 11 30 29 P00 P01 P02 P03 P04 P05 P06 P07 P20 P21 P22 P23 P24 P25 P26 P27 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 LEDSm + C1 22u C2 0.1u(1)复位电路电源与地交换,同时变换电解电容极性 (2分) (2)晶振与地间的两侧串入 电容 (2分) (3)第31脚接高电平 (2分) (4)第39脚(P0.0)加入 上拉电阻(1k左右) (2分)CRY ST A L15 14 31 19 18 9 17 16R2 1k23 51系列单片机的典型引脚结构C 单片机的复位引脚为RST(Pin9), 单片机内部CPU的复位信号便从这里 输入。 C 单片机复位完全通过RST引脚来完成, 其基本原理是在单片机的时钟振荡 电路启动后,如果RST引脚外加两个 机器周期(即24个时钟振荡脉冲) 以上的高电平,单片机便实现了复 位。24 复位目的是使单片机或系统中的其它部件处于某种 确定的初始状态。单片机复位后的状态PC=0000H,所以程序从0000H地址单元开始执行; 启动后,片内RAM为随机值,运行中的复位操作不 改变片内RAM的内容 ; 特殊功能寄存器复位后的状态是确定的 : ?P0~P3=FFH,各口可用于输出,也可用于输入; ?SP=07H,第一个入栈内容将写入08H单元; ?IP、IE和PCON的有效位为0,各中断源处于低优先 级且均被关断、串行通讯的波特率不加倍; ?PSW=00H,当前工作寄存器为0组。25 6-2、( )单片机上电自动复位后,程序计数器PC中的内容为0000H。6-3、( )8051单片机的复位信号是:A、低电平有效 B、高电平有效 C、下降沿有效D、上升沿有效26 P0口的结构地址/数据 读锁存器 1 控制C & T1 P0.X 引脚 MUX T2 VCC内部总线D CLP0.X 锁存器Q Q1 0写锁存器读引脚27 6-4、已知51单片机P1接口的电路结构如图示,请回答: 1图中锁存器作何用? 2图中A、B是何器件?作何用? 3在读取外部数据时,CPU如何 操作?场效应管如何工作?1 锁存器的作用: 本端口作输出时,将数据锁存于此,即在重新输出新的数据之前,接口上 的数据一直保存于此,以解决CPU速度快,外设速度慢的矛盾。 2 A、B为三态缓冲器,以控制是读锁存器还是读引脚。 3 接口用作输入时,信号是不锁存的,CPU先向本端口写入“1”,使场效应管 截止(封闭),从而将引脚信号经三态缓冲器送达内部总线。21、( )51单片机的P0~P3四个I/O端口,在作输入接口使用时,均需由CPU向其写入“1”,以免误读。28 P2口的结构读锁存器 地址 控制C R VCC内部总线D CLP2.X 锁存器Q1 1 0 MUX TP2.X 引脚写锁存器读引脚6-5、( )51单片机的P0、P1、P2、P3作为通用I/O端口使用时,均需外接上拉电阻。29 6-6、电路设计题--单片机数码管接口电路设计。(20分)(1)使用给定的器件清单中的元器件(元器件清单附后),设 计一个8051单片机扩展两位数码管(可以共阴,也可以是共 阳,但均需要注明清楚),占用单片机的I/O口线不得超过 10根,画出电路原理图。(15分)(2)简要说明电路的工作原理。(5分)(1)9013 NPN三极管5只(2)(3)330Ω、1kΩ电阻 各10个1kΩ、10kΩ可调电阻 各2个(4)(5)数码管(共阴共阳均可) 3个8051单片机芯片 1片30 共阴VCCRP1 U119 XTAL1 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 330 × 818XTAL29RST29 30 31PSEN ALE EAR11kQ190131 2 3 4 5 6 7 8P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 80C51R21kQ2901331 数 码 管 实 物 图32 g f GND a b a a f e d g b c dp b c d e f g dp a b c d e f g dp+5V?e d GND c dp(a)共阴极(b)共阳极14、( )共阴极LED数码管显示数字“8”的十六进制代码应为7F。33 LED字型显示代码表显示 0 1 2 3 4 5 6 7 8 9 A b C d E F H Pdp 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 g 0 0 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 f 1 0 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 段 e 1 0 1 0 0 0 1 0 1 0 1 1 1 1 1 1 1 1 符 d 1 0 1 1 0 1 1 0 1 1 0 1 1 1 1 0 0 0 号 c 1 1 0 1 1 1 1 1 1 1 1 1 0 1 0 0 1 0 b 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 1 1 a 1 0 1 1 0 1 1 1 1 1 1 0 1 0 1 1 0 1 十六进制代码 共阴极 共阳极 3FH C0H 06H F9H 5BH A4H 4FH B0H 66H 99H 6DH 92H 7DH 82H 07H F8H 7FH 80H 6FH 90H 77H 88H 7CH 83H 39H C6H 5EH A1H 79H 86H 71H 8EH 76H 89H F3H 8CH34 段码线控制显示的字型,位选线控制该显示位的亮或暗。 静态显示和动态显示两种显示方式。35 动态显示所有位的段码线相应段并在一起,由一个8位I/O口控制,形成段码线的多路复用,各位的公共端分别由相应的I/O线控制,形成各位的分时选通。36 单片机时序的概念指令周期 机器周期 S1 P1 P2 S2 P1 P2 S3 P1 P2 S4 P1 P2 S5 P1 P2 P1 S6 P2 P1 S1 P2 S2 P1 P2 S3 P1 P2 机器周期 S4 P1 P2 S5 P1 P2 P1 S6 P2振荡周期 时钟周期C CC C拍:拍为振荡脉冲的周期,是51系列单片机中的最小时序单元。在图中,拍用P来表示。 如果采用片内时钟模式,拍(P)的周期便是晶振的振荡周期。如果采用片外时钟模式, 拍(P)的周期便是外部时钟脉冲的周期。 时钟周期:时钟周期是单片机CPU中最基本的时间单元,在一个时钟周期内,CPU仅完成 一个最基本的动作。振荡脉冲信号(拍)经过二分频后,便可得到单片机的时钟信号。 在图中,时钟信号的周期用S来表示。由于是二分频,因此一个时钟周期包含两个拍, 分别称为P1和P2。 机器周期:一个机器周期由6个时钟周期(S1~S6)构成,也就是12个拍组成。从图中 可以看出,这12个拍依次为S1P1、S1P2、S2P1、??、S6P2。 指令周期:指令周期执行一条指令所需要的时间。不同的指令有不同的指令周期,例如 单周期指令执行需要一个机器周期,双周期指令执行需要两个机器周期。6-7、( )单片机系统中,指令周期T1、机器周期T2、时钟周期T3,三者的时间关系为: A、T3& T2& T1 C、T1& T2& T3 B、T2& T1& T3 D、T1& T3& T237 6-8、()采用软件去除按键抖动影响的办法是在检测到有键位按下时,先执行一个10ms的延时子程序,再确认该键电平是 否仍保持闭合状态电平。按键在闭合和断开时,触点会存在抖动现象:+5V无抖动理想波形 A 实际波形按下抖动B 稳定闭合释放抖动+5V有抖动38 6-9、( )软件抗干扰需增加CPU的运行时间,使计 算机处理信号的速度下降,故不适合高速场合。6-10、( 式。 )单片机均具有节电工作方节电工作方式是一种降低单片机功耗的工作方式,通 常分空闲(等待)和掉电(停机)两种,CHMOS型 器件才有。6-11、( )FPGA芯片中可用软件方法实现D/A转换, 输出模拟信号。6-12、()各种FPGA芯片在断电后,其内部编程数据 将会丢失,无法保存。39 6-13、( √)ASCII码是一种标准字符码,共有128个字符。行 列 10 01 00 11 10
NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI 001 010 DLE SP DC1 ! DC2 ” DC3 # DC4 $ NAK % SYN & ETB ’ CAN ( EM ) SUB * ESC + FS , GS - RS ? US / 011 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 100 @ A B C D E F G H I J K L M N O 101 P Q R S T U V W X Y Z [ \ ] ↑ _ 110 、 a b c d e f g h i j k l m n o 111 p q r s t u v w x y z { ? } ~ DEL美国信息交换标准码――ASCII码,用一个字节表示一个字符。 40 低7位是字符的ASCII码值;最高位是通信时的校验位。 6-14、(11年秋季)在计算机技术中,下列叙述哪一种是不正确 的? A、用机器语言编写的计算机程序也称为目标程序 B、用机器语言编写的计算机程序也称为源程序 C、编译程序是将高级语言逐条翻译成计算机可接受的目 标程序 D、汇编程序是由汇编语言编写的程序?汇编:将汇编语言源程序转换成机器语言目标程序的过程称为汇编。 (翻译) ? 汇编程序:能将汇编语言源程序转换成机器语言目标程序的系统软件称 为汇编程序。 (翻译官) ? 汇编语言源程序:用户用汇编语言助记符编的应用程序。 ?目标程序:计算机能识别的机器码程序41 串行接口通常分为两种类型: 串行通信接口 和 串行扩展接口。 串行通信接口(Serial Communication Interface,SCI) 是指设备之间的互连接口,它们互相之间距离比 较长。如当代PC机的COM接口(COM1-COM4)和USB接口。42一般有专用芯片实现通信协议,这些接口芯片称为收发器。 RS-232C串行通信接口标准识别代号 最后一次修订的标准版本号RSRecommended Standard (推荐标准)232C43 RxDTXD AT89S51 RXD GND R2OUT T2IN MAX232 GND R2IN T2OUT1 2 3 6 7 8 9TxDGND4 5RS232标准: 逻辑1的电平为-3~-15V,逻辑0的电平为+3~+15V TTL电平标准 输出 L: &0.8V ; H:&2.4V。 输入 L: &1.2V ; H:&2.0V44 串行扩展接口是设备内部器件之间的互连接口, 常用的串行扩展接口规范有SPI、I2C等。串行接口 扩展的芯片很多,可以根据需要选择。7-1、( )RS-232,RS-485接口是什么样的接口:A、均为标准串行接口B、均为标准并行接口 C、前者为串行,后者为并行接口 D、前者为并行,后者为串行接口45 7-2( ) RS-232通信协议(接口)的特点是:A、传输速率快,传输距离远 B、传输速率慢,传输距离远 C、传输速率快,传输距离短 D、传输速率慢,传输距离短速率:小于20000bit/s (实际常取19200bit/s)距离:通常15m以内,在 干扰小的情况下,电缆 长度也不超过60)46 7-3、( )下列论述哪一项是错误的:A、RS-232是同步传输数据的B、RS-232编码协议是传输距离短的主要原因 C、RS-422、RS-485的电路原理与RS-232基本相同 D、RS-232广泛用于计算机接口同步通信数据1….数据2 连续传送n 个数据数据n 校验SYN字符1SYN字符247 异步通信:n-1 第n个字符(一帧) n+1…P 1…0D0 D1 D2 D3 D4 D5 D6 D7 P 10 D0起 始 位数据位(5~8位)校 验 位停 止 位? 优点:硬件结构简单。 ? 缺点:传输速度慢。48 7-4、(B )IEEE1394接口是什么样的接口:A、高速并行接口 C、串 7-5、( 并接口 B、高速串行接口 D、并 串接口)RS-232接口,1394接口属于何种接口:A. 均为串行接口B. 均为并行接口 C. 前者为串行接口,后者为并行接口 D. 前者为并行接口,后者为串行接口49 并行扩展接口P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST RXD/P3.0 TXD/P3.1 INT0/P3.2 INT1/P3.3 T0/P3.4 T1/P3.5 WR/P3.6 RD/P3.7 XTAL2 XTAL1 V SS 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 V CC P0.0/AD 0 P0.1/AD 1 P0.2/AD 2 P0.3/AD 3 P0.4/AD 4 P0.5/AD 5 P0.6/AD 6 P0.7/AD 7 EA/V PP ALE/PROG PSEN P2.7/A 15 P2.6/A 14 P2.5/A 13 P2.4/A 12 P2.3/A 11 P2.2/A 10 P2.1/A 9 P2.0/A 8P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0 ? ? ? ? ? × ? ? (CB) +5V PSEN EA ALE RESET VCC VSS5151? ? ? § I/OP2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 ALE GA15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0? ? ? ? ? ÷? ? ? ? ? × ? ? (AB)D7 D6 D5 D4 D3 D2 D1 D0? ? ? ? ? × ? ? (DB)MCS-51的引脚图及功能分类图一个实际的单片机应用系统,常常需要根据实际情 况进行系统扩展。50 系统的扩展一般有以下几方面的内容: ① 外部程序存储器的扩展。 ② 外部数据存储器的扩展。 ③ 输入/输出接口的扩展。④ 管理功能器件的扩展(如定时器/计数器、键盘/显示器、 中断优先级编码器等)。?常用的输入设备有键盘、开关及各种传感器等; ?常用的输出设备有LED(或LCD)显示器、微型打印 机及各种执行机构等。 ? 80C51单片机,对于简单的I/O设备可以直接连接。 当系统较为复杂时,往往要借助I/O接口电路(简称 I/O接口)完成单片机与I/O设备的连接。现在,许多 I/O接口已经系列化、标准化,并具有可编程功能。51 外部程序存储器一般连接方法如图CE P 2.7 P 2.0 A 15MOVC A,@A+DPTR外部 程序~~A8 地址 锁存器 A78031MOVC A,@A+PC~A0 D7P 0.7 P 0.0 PSEN EA~~D0 OE存储器0K~64K52 P3.7(RD) P3.6(WR) P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7OE WE A8 A9 A108031D0 D1 D2 D3 D4 D5 D6 D7 GQO Q1 Q2 Q3 Q4 Q5 Q6 Q7 OEA7 A6 A5 A4 A3 A2 A1 A074HC3736116P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 EA ALEI/O0 I/O1 I/O2 I/O3 I/O4 I/O5 I/O6 I/O7CE53 P3.7(RD) P3.6(WR) P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7OE WE A8 A9 A108031D0 D1 D2 D3 D4 D5 D6 D7 GQO Q1 Q2 Q3 Q4 Q5 Q6 Q7 OEA7 A6 A5 A4 A3 A2 A1 A074HC3736116P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 EA ALEI/O0 I/O1 I/O2 I/O3 I/O4 I/O5 I/O6 I/O7CE54 并行输入/输出口的简单扩展273 真值表P0 ALED1 D2 D3 D4 D5 D6 D7 D8 CP Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 1Y1 1Y2 1Y3 1Y4 2Y1 2Y2 2Y3 2Y4 1G 1A1 1A2 1A3 1A4 2A1 2A2 2A3 2A4 2G74LS27380C31CLR+5V WRP2.7≥1 ≥1RD演示见5574LS244 I/O接口的功能是:1、对单片机输出的数据锁存 锁存数据线上瞬间出现的数据,以解决单片机与 I/O设备的速度协调问题。 2、对输入设备的三态缓冲 外设传送数据时要占用总线,不传送数据时必须 对总线呈高阻状态。利用I/O接口的三态缓冲功能, 可以实现I/O设备与数据总线的隔离,便于其它设备 的总线挂接。 常用的接口芯片:、、 74LS244、8279等。56 8-1、( )8255是可编程三端口串行I/O接口芯片; 8-2、( )8279芯片是一个用于键盘和数码管显示的专用接口芯片。8-3、( )在单片机组成的系统中,如果需要扩展I/O接口,可以使用PSEN信号选通; 8-4、( D )常见的、8255A集成芯片为: A、为串行接口芯片,8255A为并行接口芯片 B、为并行接口芯片,8255A为定时/计数芯片C、A为串行接口芯片,8253为定时/计数芯片D、8251为串行接口芯片,8253为定时/计数芯片,8255A为 并行接口芯片 8-5、()在单片机系统中,当I/O口不够用时,可以使用8155、 5芯片进行扩展。 57 I:\第二学期单片机教学\基于Proteus的单片机[程序源代码]\第8章 \8.4.3 8255可编程并行扩展实例58 8255芯片操作 CS A1 A0 RD WR 功能输入输入 输入 输入 输出 输出 输出00 0 0 0 0 000 1 1 0 0 101 0 1 0 1 000 0 0 1 1 111 1 1 0 0 0A口→数据总线(读端口A)B口→数据总线(读端口B) C口→数据总线(读端口C) 状态寄存器→数据总线 数据总线→A口(写端口A) 数据总线→B口(写端口B) 数据总线→C口(写端口C)输出禁止011×1×1×0×数据总线→控制寄存器数据总线为高阻态59 ?“方式”选择控制字?C口按位置位/复位功能8255芯片60 8255芯片?方式0的功能 ①两个8位端口(A和B)和两个4位端口(口C)。 ②任一个端口都可以作为输入或输出。 ③输出是锁存的。 ④输入是不锁存的。 ⑤在方式0时,各个端口的输入、输出可有16 种不同的组合。 在这种工作方式下,由于是无条件的传送,所以 不需要状态端口,三个端口都可作为数据端口。在 MCS-51系统中,只要执行MOVX类指令,便可完 成输入输出操作。61 填空问答题(初级、助理必答)(11年春季)8-6 1.图1是EDP实验箱的字符型LCD模块的扩展接口电路图,请依据图中的电路写出LCD模块数据输入输出端口的地址为 _______①____ __ 。图1EDP实验箱LCD模块扩展接口电路图用二进制表示的地址为 xxxx xx01 xxxx x001,其中x为0为1均可。【写对 一个地址的给4分,写完整的给5分。】62 2. EDP实验箱上的PCF8574芯片的接口电路如图2所示(该 芯片P4-P7端接的是虚拟的逻辑输入端子,功能上可视为 实际的逻辑输入开关器件),执行完下面一段C语言程序 后,系统所实现的功能是 ③ 。图2 PCF8574接口电路图63 #include &reg51.h& extern bit write8574(unsigned char ByteData); //PCF8574写模式函数调用声 明 extern unsigned char read8574(void); //PCF8574读模式函数调用声明 main() { write8574(0xff); //准备输入 while(1) { bd=read8574(); bd&&=4; bd|=0xf0; write8574(bd); } }将P4~P7的逻辑状态高低分别在P0~P3上用LED亮灭显示出来。64 各引脚的功能说明如下: RESET:8155内部复位信号输入端。高电平有效。8155被初始复位后I/O 口变为输入方式。 AD0-AD7:三态的地址/数据线。地址可以是8155的RAM单元地址或I/O 口地址。 CE:片选信号线,低电平有效。 IO/M:8155的RAM存储器和I/O口选择线,IO/M=0,AD0-AD7的地址为 8155RAM单元的地址,对RAM进行读写。IO/M=1,AD0-AD7的地址为8155 I/O口的地址,对I/O口进行读写。65 ALE:地址锁存允许端,高电平有效。 PA0-PA7:端口A的通用I/O线,由程序控制的命令寄存器选择输入/输出方向。 PB0-PB7:端口B的通用的I/O线,由程序控制的命令寄存器选择输入/输出方向。 PC0-PC5:端口C的I/O线或作为PA口和PB口的控制信号。通过命令寄存器实现程 序控制。?CPU对8155的RAM单元和I/O的寻址 IO/M=0时,CPU对个字节的RAM寻址。 IO/M=1时,CPU对8155的I/O寻址 A7 A6 A5 A4 A3 A2 A1 A0 选中I/O口及寄存器 w w w w w 0 0 0 命令及状态口 w w w w w 0 0 1 PA口 w w w w w 0 1 0 PB口 w w w w w 0 1 1 PC口 w w w w w 1 0 0 TL定时器低8位 w w w w w 1 0 1 TH定时器高6位66 填空问答题(初级、助理必答)(11年秋季)8-71、EDP实验箱中8155模块的主要功能是扩展了单片机的并行I/O 端口,通过这些扩展的端口连接LCD显示模块和矩阵键盘模 块。PCF8574是一款IIC接口的并行I/O扩展芯片,因此我们 通过PCF8574替代8155,也可以完成对LCD显示模块和矩阵键 盘模块的端口连接,如果要替换的话,请问至少需要__①2 片PCF8574芯片,并请简要说明所需PCF8574芯片输出端口的 引脚分配情况: ②一片PCF8574的8位输出端接LCD模块的8位数据口,另一片PCF8574的3位输出端接LCD模块的3位控制端口。矩阵键 盘的8位接口可以与LCD模块的接口复用,(如其中一片PCF8574闲置的4个输 出脚可以接矩阵键盘的行,矩阵键盘的4位列信号连接在LCD模块的4位数据线 上复用)。 。2、某同学在EDP实验箱上测试自己的程序时,发现按一次键有 时出现多个重复的键值显示,请问发生这种现象的最有可能 的原因是 ③软件上未对按键进行去抖处理。 。67 点阵字符型液晶显示模块LCD 液晶显示器是 Liquid Crystal Display 的简称,LCD 的构造是 LCM(LCD Module)即LCD显示模组、液晶模块,是指将液晶显 在两片平行的玻璃当中放置液态的晶体,两片玻璃中间有许多垂直和 示器件,连接件,控制与驱动等外围电路,PCB电路板,背光源,结 水平的细小电线,透过通电与否来控制杆状水晶分子改变方向,将光 构件等装配在一起的组件。 线折射出来产生画面。比CRT要好的多,但是价钱较其贵。 LCM提供用户一个标准的LCD显示驱动接口(有4位、8位、VGA等 不同类型),用户按照接口要求进行操作来控制LCD正确显示。 字符系列LCM具有8×1~40×4(字符×行)各种规格68 点阵字符型液晶显示模块电路框图69 字符液晶与 MPU连接示 例图70 点阵字符型液晶显示模块引脚功能15脚:BLA,背光源正极(+5V)输入引脚。 16脚:BLK,背光源负极,接地。 注:有些1602不带背光71 点阵字符型液晶显示模块信号真值表72 73 ? 8-8. 编程题I(本题初级、助理级全答。标准分:15分) 已知液晶显示子函数定义如下。 /******************************************************//函数名称: void lcd_string( unsigned char *p, unsigned char flag )//函数功能:1602LCD显示函数 //参数功能:*p -- 显示数据首地址; // flag C 显示数据在液晶上的行号,可选1或2 ******************************************************/void lcd_string( unsigned char *p, unsigned char flag )请用C51编写一段子程序,调用该液晶显示子函数,在液晶的第 一行显示自己的考号,第二行显示自己的姓名(汉语拼音全称)void display() { unsigned char mynumber[]={&&}; //考号字符串定义 unsigned char myname[]={&ZhangSan&}; //姓名字符串定义 lcd_string(mynumber,1); lcd_string(myname,2); }74 ? 8-9. 编程题I(本题为助理级考题,初级不答。标准分:25分) 已知51单片机T0脚接外部计数脉冲。 (1)请用C51编写一段初始化代码,使得定时/计数器T0工作在 可以自动装入计数初值的中断方式,每计1个数产生一次中断。 (15分) (2)在(1)的基础上,请用C51编写一个T0的中断服务程序, 要求T0每中断一次对计数变量Num加1,其中Num必须为 ASCII表示的两位十进制数字符串,定义见下。(10分) unsigned char Num[ ]={”00”};评分标准:按照出现的正确给分点给分,多余的设计不论对错不加分也不扣分。75 8-9题答案:第(1)小题参考代码及相关给分点:(共15分) #include &reg51.h& void T0_Init () { TMOD=0x06; //寄存器方式控制字低3位正确(110),给4分,否则0分 TL0=0 //计数初值TL0正确给3分,否则0分 TH0=0 //计数重复赋值TH0正确2分;不正确但与TL0值相同给1分;其它0分 TR0=1; //启动T0,给2分;否则0分 EA=1; //开中断,给2分;否则0分 ET0=1; //允许T0中断,给2分;否则0分 } 35题第(2)小题参考代码及相关给分点:(共10分) unsigned char Num[]={”00”};//假定Num[0]存放十位数 timer0() interrupt 1 using 1 //中断服务程序定义正确4分,名字在合法范围内任取, //中断程序采用寄存器组不限;定义格式正确但中断号使用错误,给1分;其它0分 { if (Num[1]&’9’) //个位小于9的情况计数正确,给2分;否则0分 Num[1]++; else if(Num[0]&’9’) //个位等于9,十位小于9的情况计数正确,给2分;否则0分 {Num[1]=’0’;Num[0]++;} else //个位等于9,十位等于9的情况处理恰当,给2分;否则0分 {Num[1]=’0’; Num[0]=’0’;} 76 } ? 8-10.程序设计题(助理必答,25分)(09秋机考)已知液晶显示子函数、键盘子程序、数模转换驱动程序定义如下。 /*********************************************************** * 函数名称:void lcd_string( unsigned char *p, unsigned char flag ) * * 函数功能:1602LCD显示函数 * * 参数功能:*p ―― 显示数据首地址; * * flag ―― 显示数据在液晶上的行号,可选1或2 * ***********************************************************/ /********************************************************** * 函数名称:KEY_DOWN( void ) * * 函数功能:实现判断按键是否按下功能 * * 参数功能:KEY_Data―― 有键按下,返回键值0~15,* * 无键按下,返回-1 * **********************************************************/ /********************************************************** * 函数名称:void da5615(unsigned int da) * * 函数说明:TI 10位DA TLC5615的驱动程序 * * 参数功能:da ―― DAC待转换的输入数据 * **********************************************************/1 、利用按键与显示子程序,设计一个函数,当按1键时仅在LCD第1行 显示1,当按2键时仅在LCD第2行显示2,当按其它键时不显示。注意 给出必要的代码注释。(15分) 2、利用DAC TLC5615的驱动程序,已知TLC5615的参考电压为2.5V, 设计一个子程序,使得DAC输出为1.25V。注意给出必要的代码注释。 (10分)77 8-10 1问答案:请按照得分点给分(实现相应功能即可),多余的代码不论对 错不加分不扣分。参考代码如下: fundisplay() { int keydata=-1; //初始化键值寄存器 while(keydata==-1) keydata=KEY_DOWN(); //等待,直到有键按下 ―― 3 分 //程序中若无循环查询按键给1分 if(keydata==1) //判断1键按下 ―― 1分 { lcd_string( &1&, 1 ); //LCD第1行显示1 ―― 3分 lcd_string( & &, 2 ); //LCD第2行不显示(显示空格) ―― 1分 } else if(keydata==2) //判断2键按下 ―― 1分 { lcd_string( &2&, 2 ); //LCD第2行显示2 ―― 3分 lcd_string( & &, 1 ); //LCD第1行不显示(显示空格) ―― 1分 } else //其余按键情况 { lcd_string( & &, 1 ); //LCD第1行不显示(显示空格) ―― 1分 lcd_string( & &, 2 ); //LCD第2行不显示(显示空格) ―― 1分 } 78 } 8-10 2、请按照得分点给分(实现相应功能即可),多余的代码不论 对错不加分不扣分。参考代码如下: fundac() { unsigned int DA_Data=256; //DA输入值256 ―― 5分 da5615(DA_Data); //DA转换驱动调用 ―― 5分 }79 ?8-11. 程序设计题(助理必答,25分)(10春机考)1 已知模数转换驱动程序定义如下: /********************************************************** * 函数名称:unsigned int read1543(unsigned char port) * * 函数说明:TI 10位11通道串行ADC TLC1543的驱动程序 * * 输入参数:port ―― ADC通道号 * * 返回参数:port通道的采样值 * ***********************************************************/ 利用AD采样子程序,采用C51设计一个函数,对通道A7每1秒钟采样1次。假设AD的参考电压为2.5V,将通道 A7的电压计算值存放在变量volt中。注意,需要给出必要的代码注释。(10分) 给分要点: ① 1秒计时编程思路正确,4分。定时器的初始化、定时器溢出的处理(可以查询也可以中断)、1秒时间的累计过程、 定时器时间常数及其重载,在程序中有体现且其过程基本正确的即可给分,缺少环节每小点扣1分。 ② 能准确调用AD采样子程序并计算出采样电压值的,3分。采样通道错误,函数调用错误,没有换算成真实电压值的 各扣1分。 ③ 程序书写语法的正确性,关键代码是否注释,3分。语法出错或缺少注释酌情扣分。 2 依据自己的电路设计程序,显示数字“10”。注意,需要给出必要的代码注释。(15分) 判卷给分条件:完成电路设计题第2题“单片机数码管接口电路设计”,单纯从逻辑角度看数码管能够正常显示数字 信息的,该题才按照以下得分要点判卷,没有电路的、电路错误的,电路非自己设计的、电路直接采用实验箱的 LCD显示器的等情况一律不判卷,本题直接给零分。 给分要点: ① 依据设计电路,段码输出正确(需要考虑到共阴或者共阳数码管情况),6分。段码出错或者输出操作错误的,酌情 扣分。 ② 依据设计电路,位码输出正确(需要考虑到共阴或者共阳数码管情况),动态扫描周期合理,6分。位码错或者位控 制操作错误的,酌情扣分。 ③ 程序书写语法的正确性,关键代码是否注释,3分。语法出错或缺少注释酌情扣分。80 ?8-11.参考答案1、void main( ) { T0_init();} void T0_init() { TMOD=0x06; //寄存器方式控制字低3位正确(110),给4分,否则0分 TL0=0 //计数初值TL0正确给3分,否则0分 TH0=0 //计数重复赋值TH0正确2分;不正确但与TL0值相同给1分;其它0分 TR0=1; //启动T0,给2分;否则0分 EA=1; //开中断,给2分;否则0分 ET0=1; //允许T0中断,给2分;否则0分 }timer0() interrupt 1 using 1 { AD_ad = read1543(7); //0 - - - - 第7号通道81 【评分参考】 ? 8-12.在EDP实验箱上,编写C51代码,实现每秒钟采集一次AD转换数据, #include &reg51.h& 并在LCD显示器上显示转换结果。注意:AD转换及LCD显示电路使用EDP实验 int AdcFun(char ch);//设定AD采样函数为AdcFun,给定采样通道, 箱标准配置模块,AD转换子程序和LCD显示子程序可以自己假定名称及入口 //返回整型采样值。有类似声明即可给1分。 参数,说明调用方式后在程序中直接调用即可,不需额外编写子程序代码。 void LCD_Disp(int data);//设定LCD模块显示函数为LCD_Disp,输入待显示数值, (15分) //在特定位置显示采样转换结果。有类似声明给1分。 main() { int adv,num=0; TMOD=2; //T0方式2设置。有定时器的设置环节给1分。 TH0=156;TL0=156; //计数器赋初值。有赋初值环节给1分。 TR0=1; //计数器T0启动位置1。有定时器启动环节给1分。 EA=1;ET0=1; //开中断。有开中断环节给1分。 while(1) { if(f1s==1) //秒标志位有效则调用采集子程序并刷新显示 { adv=AdcFun(1); //调用AD采样子程序,假定通道1输入。有此环节给1分。 LCD_Disp(adv);//调用显示子程序。由此环节给1分。 f1s=0; }} time0() interrupt 1 using 1 //定时器0中断处理函数。有定时器中断函数环节给1分。 { if(++num&=10000) {f1s=1;num=0;}} //假定主频为12MHz,定时器0.1ms中断一次, //软计数10000次中断为1s。有此环节给1分。 //使用定时器能准确定时到1秒钟的给5分,默认主频为12Mhz,其它主频需自己指定, //达不到准确要求的或者根本无法判断定时时长的酌情给0~4分。 82 } ? 8-13.程序设计题(助理必答,25分)2011春季1 已知IIC总线操作的功能子程序定义如下: extern void STA(void); //IIC总线启动 extern void STOP(void); //IIC总线停止 extern void MNACK(void); //发送非应答信号 extern unsigned char RDB(void); //读IIC总线 extern void WRB(unsigned char); //写IIC总线 extern bit CACK(void); //应答信号检测 利用这些功能子程序及依据图3所示的24C01的随机地址读时序图,采用C51,编写一 个字节的随机地址读程序。注意,需要给出必要的代码注释,假定器件地址A2、 A1、A0均为0。(10分)图3 AT24C01随机地址读时序图83 ? 8-13.评分参考代码: #define Addr24CW 0xA0 //AT24C01写地址给出正确,1分 #define Addr24CR 0xA1 //AT24C01读地址给出正确,1分 unsigned char read24c(unsigned char addr) { STA(); //启动,1分 WRB(Addr24CW); //写控制字,1分 WRB(addr); //写读写地址,1分 STA(); //启动,1分 WRB(Addr24CR); //写控制字,1分 dat=RDB(); //读入数据,1分 MNACK(); //发送非应答信号,1分 STOP(); //停止,1分 } 【共10分,顺序写对1条得1分;漏写或写错1条,扣1分,10分扣完为止; 针对从器件应答信号的处理语句无论对错,不加分不扣分。】84 8-14.利用51单片机的外部中断输入端测量一输入脉冲宽度(毫秒级),采用C51编写测量程序,测量结果以系统机器周期的个数存入整形变量pw中。 (15分)2011年春季 提示:T0可工作于定时方式1,门控位有效。计数结束后,需要对计数值 做一定处理以符合题目要求。评分参考代码: #include &reg51.h& main() { TMOD=9; //T0方式1设置,3分 TH0=0;TL0=0; //计数初值,有此步骤的都给2分 while(INT0); //等待低电平,计数准备,2分 TR0=1; //计数器T0启动位置1,1分 while(!INT0); //等待外部输入正脉冲信号,退出循环时T0开始计数,2分 while(INT0); //定时器计数直到脉冲信号电平为低,2分 TR0=0; //关闭计数器T0,1分 pw=TH0*256+TL0; //计数个数统计(假设计数不溢出),2分,是否准确应与计数初 值相配套 while(1); //停机 } 【凡是采用外部中断检测跳沿进行频率测量或者周期测量的给分不能超过5分】 85 8-15、在EDP实验箱上,编写C51代码,实现每秒钟采集一次AD转换数据, 【评分参考】 并在LCD显示器上显示转换结果。注意:AD转换及LCD显示电路使用EDP实 #include &reg51.h& int AdcFun(char ch);//设定AD采样函数为AdcFun,给定采样通道, 验箱标准配置模块,AD转换子程序和LCD显示子程序可以自己假定名称及 //返回整型采样值。有类似声明即可给1分。 入口参数,说明调用方式后在程序中直接调用即可,不需额外编写子程序 void LCD_Disp(int data);//设定LCD模块显示函数为LCD_Disp,输入待显示数值, 代码。(15分) //在特定位置显示采样转换结果。有类似声明给1分。 main() { int adv,num=0; TMOD=2; //T0方式2设置。有定时器的设置环节给1分。 TH0=156;TL0=156; //计数器赋初值。有赋初值环节给1分。 TR0=1; //计数器T0启动位置1。有定时器启动环节给1分。 EA=1;ET0=1; //开中断。有开中断环节给1分。 while(1) { if(f1s==1) //秒标志位有效则调用采集子程序并刷新显示 { adv=AdcFun(1); //调用AD采样子程序,假定通道1输入。有此环节给1分。 LCD_Disp(adv);//调用显示子程序。由此环节给1分。 f1s=0; }} time0() interrupt 1 using 1 //定时器0中断处理函数。有定时器中断函数环节给1分。 { if(++num&=10000) {f1s=1;num=0;}} //假定主频为12MHz,定时器0.1ms中断一次, //软计数10000次中断为1s。有此环节给1分。 //使用定时器能准确定时到1秒钟的给5分,默认主频为12Mhz,其它主频需自己指定, //达不到准确要求的或者根本无法判断定时时长的酌情给0~4分。 86 } ? 31. 程序阅读题 1 当c=1,b=2,a=3时,表达式r=a&b&c的值为 ① 0 2 字符串str的定义为char str[ ]=&3.14&,请问str[3]的值为 ② 0x3487 ? 32. (10秋季)仔细观察下述电路图(振荡电路省去未画,单片 机可正常工作):当单片机执行下面的代码后,5个发光二极管(D1~D5)中可以看到被点亮的LED有 ③ 全亮(5分,少答一个扣1分) #include &reg51.h& #include &absacc.h& main() { while(1) XBYTE[0x0f0f]=0xf0; }88 I/O接口的功能是:3、信号转换 信号类型(数字与模拟、电流与电压)、信号电 平(高与低、正与负)、信号格式(并行与串行)等 的转换。 D/A转换器:DAC0832、 TLC5616 A/D转换器:ADC0809、 TLC154389 单片机系统常用串行扩展技术并行扩展:虽然传输速度高,但芯片封装体积增大致 使成本升高,同时电路板体积增大,布线复杂度高, 也带来故障点增多,调试维修不便。串行扩展技术 I2C总线----PHILIPS 单总线(1-Wire)----DALLAS SPI串行外设接口----Freescale Microwire/Plus串行扩展接口----NS80C51 UART方式0 的串行扩展接口90 串行总线与串行传输接口的区别:? 串行总线上所有扩展器件都有自己的地址编码,单片机通过软件来选通 ? 串行传输接口上的扩展器件要求单片机有相应 的I/O口线来选通91 1. I2C总线LED VCC SCL SDA LCD SCL SDA????打印机 SCL SDASDA 80C51 MCU 单片机SDASCLSCLSCLSDASCL SDA MCUSCL SDASRAM????A/D,D/A92 I2C总线(Inter Integrate Circuit BUS),全称为芯片间 总线 以两根连线实现全双工同步数据传送 传输速率为400Kb/s I2C总线的连接: I2C总线可以直接连接具有I2C总线接口的单片机,如: 8XC552和8XC652等 也可以挂接各种类型的外围器件,如存储器(PHILIPS的 PCF8553、PCF8570)、日历/时钟 (PHILIPS的 PCF8583)、A/D(MAX127/128)、D/A(MAX517~ 519等 )、I/O口(PCF8574)、键盘、显示器 用途: 通信、视频、音像、家电等系统93 2. 单总线(1-Wire)VDDI/OMCUDQ DS 1820DQ DS 1820DQ DS 1820DQ…DS 182094 特点:? 单总线系统中配置的各种测控器件,是由DALLAS公司提供的专用芯片CSP(Chip Scale Package) ? 每个芯片均有64位ROM,厂家对每一个芯片用激光烧 写编码,其中存放有16位十进制编码序列号,是器件的 地址编码,具有惟一性 ? 另外还包括接收控制电路、发送控制电路、电源存储电 路,这类芯片一般不需要专门的附加电源 ? DALLAS公司为单总线的寻址及数据提供了严格的时 序规范95 3. SPI串行外设接口SCK MOSI MISOSCK MOSI MISO外围器件1#SCK MOSI MISO 外围器件2# CS…SCK MOSI MISO 外围器件n# CSMCUI/O I/O I/OCS┆96 特点:? SPI(Serial Peripheral Interface)是Freescale 公司推出的? ? ???一种同步串行外设接口,以串行方式交换信息 SPI的典型应用时单主系统,该系统只有一台主机,从机 通常是外围接口器件(如:E2PROM、A/D、日历时钟等) SPI系统中,数据的传送软件简单,省去了传输时的地址 选通字节;但在扩展器件较多时,连线较多 数据传送格式是高位在前,低位在后 SPI最高传输数据的速度为1.05Mb/s Freescale 公司提供了一序列具有SPI接口的单片机和外围 接口芯片,如存储器MC 2418、显示驱动器MC 14499等97 4. 80C51 UART方式0串行扩展接口RXD TXDDATA CLKMCU 80C51移位 寄存 器串 行口外 围 器 件98 2LED VCCI2C总线LCD SCL SDA????打印机 SCL SDASCL SDASDA 80C51 MCU 单片机SDASCLSCLSCLSDASCL SDA MCUSCL SDASRAM????A/D,D/A99 1. I2C总线器件的寻址方式I2C总线上所有外围器件都有规范的器件地址 器件地址由7位组成 格式 :D7DA3D6DA2D5DA1D4DA0D3A2D2A1 引脚地址D1A0D0R/W器件地址厂家设置数据传输方 向控制位决定同类器件可连 接的最大数量100 2. I2C总线的电气结构与驱动能力5~10k?VDD RP SDA SCL SDA SCL SDA SCL RP SDA SCLSDA出 SDA入 器件1#SCL出 SCL入SDA出 SDA入 器件2#SCL出 SCL入101 驱动能力:? I2C总线上的外围扩展器件都是CMOS器件,属于电压型负载 ? 总线上的器件数量不是由电流负载能力决定,而是由电 容负载决定 ? I2C总线上每个节点器件的接口都有一定的等效电容, 这会造成信号传输的延迟 ? I2C总线的负载能力为400 Pf ,通过驱动扩展可达4000 Pf;另一方面,扩展器件的数量也受器件地址空间的限 制,因为总线上每个外围器件都有一个器件地址102 3. I2C总线上的数据传送(1)数据传送SDA MSB SCL S 起始 起始 条件 信号S 1 2 7 8 应答 总线暂停控制 1 2 3-8 应答9 ACK9 ACKP 终止 终止 条件 信号PI2C总线上数据传送的每一帧数据均为一字节。但启 动I2C总线后,传送的字节数没有限制,只要求每传 送一字节后,对方回答一个应答位103 (2)总线信号起始位(S)、终止位(P)、应答位(A)、非应答位(A)SDASCL S 起始信号 P 终止信号主器件产生104 主发送器的 数据输出 非应答 从发送器的 数据输出 应答 S 起始信号 1 2 8 9 用于应答信号 的时钟脉冲主控器的 时钟输出105 (3)数据传送格式SDA MSB SCL S 起始 起始 条件 信号S 1 2 7 8 应答 总线暂停控制 1 2 3-8 应答9 ACK9 ACKP 终止 终止 条件 信号P地址读/写应答数据应答106 主器件的写操作:S SLAW A Data 1 AData 2A……Data(n-1)AData n A/AP主器件的读操作:S SLAR A Data 1 AData 2A……Data(n-1)AData n AP107 主器件的读/写操作:…SSLAW/RAData 1AData 2A…Data nA/ASrSLAR/WA……Data 1A Data 2AData 3A……Data (n-1)AData n A/AP108 注意:? 无论何种方式起始、停止、寻址字节都由主器件发出,数据字节的传送方向则遵循寻址字节中方向位的规定 ? 寻址字节只表明从器件地址及传送方向,从器件内部 的N个数据地址,由器件设计者在该器件I2C总线数据 操作格式中,指定第一个数据字节作为器件内的单元 地址指针,并设置地址自动加减功能,以减少单元地 址操作 ? 每个字节传送都必须有应答信号(A或A)相随 ? I2C总线从器件在接收到起始信号后都必须释放数据 总线,使其处于高电平,以便将要开始的从器件地址 的传送并进行预处理109 3 51单片机中I2C串行传输软件及其模拟 技术1. I2C总线信号时序(S) SDA/VSDA SDA/VSDA &4.7us &4.0us (P) SCL/VSCL &4.0us &4.0us &4.7us (A)/ &0& (A)/ &1&SCL/VSCL设: SDA→VSDA →P1.0 SCL→VSCL →P1.1fosc= 6 MHz110 2. I2C总线典型信号的模拟子程序(1)启动子程序STA: SETB SETB NOP NOP CLR NOP NOP CLR RET VSDA VSCL(S) SDA/VSDA &4.7us &4.0us (P)SDA/VVSDASCL/VSCLSCL/VVSCL111 (2)停止子程序STOP: CLR VSDA SETB VSCL NOP (S) NOP SDA/VSDA &4.7us SETB VSDA &4.0us SCL/VSCL NOP (P) NOP CLR VSCL CLR VSDA RET(A)/ &0 SDA/VSDA &4.7us SCL/VSCL&4.0112 (3)发送应答子程序MACK:(S) &4.7us &4.0us (P)A/VSDA/VSCLCLR VSDA SETB VSCL SDA/VSDA NOP NOP SCL/VSCL CLR VSCL SETB VSDA RETSDA/VSDA&4.7us(A)/ &0&(A)/ &1&SCL/VSCL&4.0us&4.0us113 (4)发送非应答子程序MNACK:s &4.0us (P)SETB SETB SDA/VSDA NOP SCL/VSCL NOP CLR CLR RETVSDA VSCL&4.7us(A)/ &0&(A)/ &1&SDA/VSDAVSCL VSDA&4.0us SCL/VSCL&4.0us114 3. I2C总线模拟通用子程序(1)应答位检查子程序CACKCACK:SETB VSDA ;置VSDA为输入方式 SETB VSCL ;使 VSDA上数据有效 CLR F0 ;预设F0=0 MOV C,VSDA ;输入VSDA引脚状态 JNC CEND ;检查VSDA状态,正常转CEND且F0=0 SETB F0 ;无正常应答,F0=1 CEND:CLR VSCL ;子程序结束,使VSCL=0 RET 标志位F0=0正常、F0=1不正常115 (2)发送1字节子程序WRBYTWRBYT: WLP: MOV RLC MOV SETB NOP NOP CLR DJNZ RET R6,#08H A VSDA,C VSCL;8位数据长度送R6 ;A左移,发送位入C ;将发送位送入SDA数据线VSCL R6,WLP占用资源:R6、C116 (3)接收1字节子程序RDBYTRDBYT: RLP: MOV SETB SETB MOV MOV RLC MOV CLR DJNZ RET R6,#08H VSDA VSCL C,VSDA A,R2 A R2,A VSCL R6,RLP;8位数据长度送R6 ;置VSDA为输入方式 ;置VSDA上数据有效 ;读入VSDA引脚状态;读入“0”程序段,由C拼装入R2中;使VSCL=0可继续接收数据位;8位读完否?未读完转RLP占用资源:R2、R6、C117 (4)发送N字节子程序WRBYT…SSLAWAData 1AData 2AData nAP入口参数: MTD: 主控器发送数据缓冲区首址的存放单元 SLA: 外围器件寻址字节(写)存放单元 NUMBYT: 发送数据字节数N存放单元118 程序:WRNBYT: MOV LCALL MOV LCALL LCALL JB MOV MOV LCALL LCALL JB INC DJNZ LCALL RET R7,NUMBYT STA A,SLA WRBYT CACK F0,WRNBYT R0,MTD A,@R0 WRBYT CACK F0,WRNBYT R0 R7,WRDA STOP;启动IC总线数 ;发送SLAW字节;检查应答位 ;非应答位则重发WRDA:119 (5)接收N字节子程序RDBYT…SSLARAData 1AData 2AData nAP入口参数: MRD: 主控器接收数据缓冲区首址的存放单元 SLA: 外围器件寻址字节(读)存放单元 NUMBYT: 接收数据字节数N存放单元120 程序:RDNBYT: MOV LCALL MOV LCALL LCALL JB MOV LCALL MOV DJNZ LCALL LCALL RET LCALL INC SJMP R7,NUMBYT STA ;启动I2C总线 A,SLA ;发送SLAW寻址字节 WRBYT ;写入寻址字节 CACK ;检查应答位 F0,RDNBYT ;非正常应答时重新开始 R0,MRD ;接收数据缓冲区首址MRD入R0 RDBYT ;读入1字节到A @R0,A R7,ACK ;N个子节读完否?未完转ACK MNACK ;N个字节读完发送非应答位A STOP ;发送停止信号P MACK R0 RDN1;子程序结束 ;发送应答位 ;指向下一个接收数据缓冲单元 ;转读入下一个字节数据121RDN1:ACK: 4具有I2C总线接口的外围器件存储器 LED显示驱动器D/A和A/D转换器实时时钟/日历芯片122 (1)24系列串行E2PROMA0 A1 A2 AT24C02 AT24C02 VDD V 1 8 A0 1 8 DD 2 A1 3 A22 7 3 6 4 5P1.0、P1.1VCC V CCVSS V4 SSTESTTEST /WP 7 SCL SCL 复 6 位 SDA SDA 5时 钟10K 10K 10K 10K VSDA 时 VSDA VSCLVSCL 钟 SDA SDA SCL SCL 80C51 复 80C51 VDD AT24C02 VSS VDD AT24C02 VSS 位 +5V +5V TESTTEST A2 A1 A0 A2 A1 A0123 (2)85系列串行LED显示驱动器U2U114 15 13 1 2 3 SCL SDA INT A0 A1 A2 PCF8574A P0 P1 P2 P3 P4 P5 P6 P7 4 5 6 7 9 10 11 1222 23 1 21 2 3SCL SDA INT A0 A1 A2P00 P01 P02 P03 P04 P05 P06 P07 P10 P11 P12 P13 P14 P15 P16 P174 5 6 7 8 9 10 11 13 14 15 16 17 18 19 208位 16位PCF8575124 (3)85系列串行D/A和A/D转换器U310 9 5 6 7 12 11 SCL SDA A0 A1 A2 AIN0 AIN1 AIN2 AIN3 AOUT 1 2 3 4 15 14 13EXT VREF OSC AGND PCF8591125 (4)85系列串行实时时钟/日历芯片U46 5 3 SCL SDA A0 OSCI 17INTOSCO2PCF85834年日历时钟,24或12小时格式 256字节RAM,具有自动字节地址增量功能和非易失性126 ()I2C总线有几根传输线?A. 16 B. 8 C. 4 D. 2127 使用字符串常量初始化字符串数组。 ? 32. 已知int型变量用16位表示,阅读下面三段代码,用16进制 数填写运行结果。(每空5分) 1、执行完下列C语言语句后,c=0x ① int a,b,c=0; c=(a=2,b=5,b++,a+b); 2、执行完下列C语言语句后,s=0x ② int r=10,s=0; while(r!=0) s+=--r;128 ? 32. 已知int型变量用16位表示,阅读下面三段代码,用16进制 数填写运行结果。(每空5分) 3、执行完下列C语言程序段后,z=0x ③ void sub(int p,int q,int *z) {*z=p-q;} void main(void) ? 补码 { 正数的补码与原码相同,即符号 int p,q,z=0; 位用0表示,数值为不变; sub(5,9,&p); 负数的补码则是符号位取反,数值 sub(3,p,&q); 位逐位取反,末位+1 sub(p,q,&z); 在指针变量说明中,“~”是类型 while(1); 说明符,表示其后是指针类型的变 } 量。 表达式中出现的“~ ”则是一个取 值运算符,用来表示指针变量所指 129 向的地址中的数据。 ? 33. 下面是一段C语言程序,实现一个8位字符数据的奇数位与 偶数位互换的功能(0和1,2和3,4和5,6和7位分别互换)。 请将程序的空白处补充完整,每空5分。 unsigned char fun1(unsigned char s) { t = s & 0x ① ; t = t && 1; s = s & 0x ② ; s = s && 1; s = s ③ }130 1.( )设计印制电路板时,地线面积应尽可能大一些,电 源线设计得宽一些,元件间的引线尽可能短一点。131
更多搜索:
All rights reserved Powered by
文档资料库内容来自网络,如有侵犯请联系客服。}

我要回帖

更多关于 单片机端口不够用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信