电气工程及其自动化《单片机原理及应用》山东大学网络教育模拟题及答案
- 格式:doc
- 大小:112.50 KB
- 文档页数:21
绪论单元测试1【单选题】(20分)在家用电器中使用单片机应属于微计算机的()。
A.数值计算应用B.辅助设计应用C.测量、控制应用D.数据处理应用2【单选题】(20分)计算机中最常用的字符信息编码是()。
A.循环码B.ASCIIC.余3码D.BCD码3【单选题】(20分)51单片机PC的值是()。
A.当前正在执行指令的地址B.当前正在执行指令的前一条指令的地址C.控制器中指令寄存器的地址D.当前正在执行指令的下一条指令的地址4【单选题】(20分)在51单片机系统中,下列哪种是输出设备:A.A/D转换器B.显示屏C.DS18B20传感器D.小键盘5【判断题】(20分)MCS-51系列单片机采用的是RISC结构。
A.对B.错第一章测试1【单选题】(20分)MCS-51的并行I/O口读-改-写操作,是针对该口的:A.地址信号B.片选信号C.内部锁存器D.引脚2【单选题】(20分)当80C51上电复位时,下列说法正确的是A.SBUF=0FFHB.SP=10HC.PC=00HD.P0=00H3【单选题】(20分)80C51寻址外设端口地址的方法是:A.独立编址B.统一编址C.混合编址D.动态编址4【判断题】(20分)AT89C51单片机有6个中断优先级。
()A.错B.对5【判断题】(20分)MCS-51系列单片机的十进制调整指令只适用运算。
()A.错B.对第二章测试1【单选题】(20分)在编写程序的过程中,使用的语言有多种,其中C语言是计算机的()语言。
A.低级语言B.机器语言C.汇编语言D.高级语言2【单选题】(20分)在使用C语言编写80C51的程序时,定义的数据区xdata是指:A.芯片内部128个字节。
B.片外可寻址的128B空间。
C.芯片内部可以位寻址的16个字节。
D.片外可寻址的64KB空间。
3【判断题】(20分)C51可直接对特殊功能寄存器区进行访问。
只要将各SFR的地址通过sfr或sfr16定义一个名字,便可通过此名字对各S FR进行操作。
单片机应用技术模拟试卷1及答案一、填空题(每空1分,共20分)1、单片机是由CPU、存储器、I/O接口及定时/计数器集成在一个芯片上组成的。
2、十进制数25=16H(十六进制)=00010110B(二进制)。
3、单片机的三总线可以分为地址总线、数据总线和控制总线。
(或者数据总线、地址总线)4、8051的=1意味着访问前4K是内部程序存储器,超过4K后访问的是外部程序存储器。
5、单片机复位后SP=07H,第一个入栈数据进入08H单元。
6、执行ANL A,#0FH后,累加器A的内容高4位是0000。
7、8051单片机共有5个中断源,2个优先级。
8、能够加间址符@的寄存器有R0、R1和DPTR。
9、在伟福仿真软件当中输入调试程序我们都保存成后缀是ASM的文件。
10、可编程并行I/O接口芯片8155内部功能部件包括256B的静态RAM,3个I/O 接口和1个14位的定时/计数器。
11、A/D转换器是将模拟量转换成数字量,D/A转换器是将数字转换成模拟量。
二、选择题(每小题2分,共20分)1、一个完整的系统通常包括(B)。
A.系统软件和应用软件 B. 硬件系统和软件系统C. 计算机及外设D.硬件和系统软件2、EPROM是指(D)。
A. 随机存储器B.电擦除的只读存储器C.只读存储器D.紫外线可擦除的只读存储器3、先判断后循环的循环程序结构中,循环体至少被执行(A)次。
A.0B.1C.2D.34、MCS-51系列单片机的CPU是(B )位的。
A.4位B.8位C.16位D.32位5、8031的内部RAM中,用作位寻址的单元地址是(B)。
A.00H-1FHB.20H-2FHC.30H-4FHD.50H-6FH6、12MHz晶振的单片机在定时方式下,定时器可能实现的最小定时时间是(D ) 。
A.8us B.4us C.2us D.1us7、在单片机扩展系统中,8031地址总线和数据总线分时复用所用端口是(D)。
A. P3口B. P1口C. P2口D. P0口8、在MCS-51单片机中,惟一一个可供用户使用的16位寄存器是(C)。
1:一个机器周期是()。
1.一条指令所执行的时间2.一段程序需要的时间3.振荡脉冲周期的12倍4.振荡脉冲周期的24倍2:在下列MCS-5l单片机各条指令中,错误的是()。
1.MOVC @A+DPTR,A2.MOV A, @R03.MOV 20H, A4.MOV B, A3:PSW中的RS1和RS0用来()。
1.指示复位2.选择定时器3.选择工作寄存器区号4.选择工作方式4:LU表示()。
1.累加器2.程序状态字寄存器3.计数器4.算术逻辑部件5:INTEL8031的P0口,当使用外部存贮存器时它是一个()。
1.传输高8位地址口2.传输低8位地址口3.传输高8位数据口4.传输低8位地址/数据口6:MCS-51汇编语言指令格式中,唯一不可缺少的部分是。
1.标号2.操作码3.操作数4.注释7:在MCS-51指令中,下列指令中()是无条件转移指令。
1.LCALL addr162.DJNZ direct,rel3.SJMP rel4.ACALL addr118:假定设置堆栈指针SP的值为37H,在进行子程序调用时把断点地址进栈保护后,SP的值为()。
1.6H2.37H3.38H4.39H9:8031单片机的定时器T1用作定时方式时是()。
1.由内部时钟频率定时,一个时钟周期加12.由内部时钟频率定时,一个机器周期加13.由外部时钟频率定时,一个时钟周期加14.由外部时钟频率定时,一个机器周期加110:在下列寄存器中,与定时/计数控制无关的是()。
1.TCON(定时控制寄存器)2.TMOD(工作方式控制寄存器)3.SCON(串行控制寄存器)4.IE(中断允许控制寄存器)11:MCS-51单片机定时器工作方式2是指的()工作方式。
1.8位2.8位自动重装3.13位4.16位12:MCS?51的串行数据缓冲器SBUF用于()。
1.存放运算中间结果2.暂存数据和地址3.存放待调试的程序4.存放待发送或已接收到的数据13:在MCS-51中()。
单片机原理与应用考试模拟题与答案1、8051单片机的VCC(40)引脚是( )引脚。
A、主电源+5VB、接地C、备用电源D、访问片外存贮器答案:A2、能将A按位取反的指令是( )。
A、CPL AB、CLR AC、RL AD、SWAP A答案:A3、串行口的控制寄存器SCON中,REN的作用是( )。
A、接收中断请求标志位B、发送中断请求标志位C、串行口允许接收位D、地址/数据位答案:C4、( )显示方式编程较简单,但占用I/O端口线多,其一般适用于显示位数较少的场合。
A、静态B、查询C、动态D、静态和动态答案:A5、MCS-51单片机当扩展外部存储器或扩展I/O口时,( )口作地址总线低8位输出。
A、P0B、P1C、P2D、P3答案:A6、用8051单片机的定时器/计数器T1作定时方式,用方式2,则初始化编程为( )。
A、TMOD=0x10B、TMOD=0x06C、TMOD=0x20D、TMOD=0x60答案:C7、将内部数据存储单元的内容传送到累加器A中的指令是( )。
A、MOVXA,@R0B、MOVA,#dataC、MOVA,@R0D、MOVXA,@DPTR答案:C8、执行指令MOVXA,@DPTR时,/WR、/RD脚的电平为( )。
A、/WR高电平,/RD高电平B、/WR低电平,/RD高电平C、/WR高电平,/RD低电平D、/WR低电平,/RD低电平答案:C9、十进制数-49对应的8位补码为( )。
A、ECHB、EFHC、88HD、CFH答案:D10、MCS-51单片机规定一个机器周期共有( )个节拍。
A、12B、6C、8D、16答案:A11、MCS-51单片机扩展I/O口与外部数据存储器( )。
A、统一编址B、分别独立编址C、变址编址D、动态编址答案:A12、当系统的振荡频率为6MHz时,一个机器周期为( )μs。
A、2B、1C、4D、3答案:A13、串行口工作方式1的波特率是( )。
A、可变的,通过定时器/计数器T1的溢出率设定B、固定的,为fosc/64C、固定的,为fosc/16D、固定的,为fosc/32答案:A14、以下中断,只能通过软件清除中断请求的是( )。
一、单选题1.根据我国现行规定,对于大型电力系统频率偏移的要求是()。
A.正常运行情况下,频率偏移不得超过±0.5Hz;B.正常运行情况下,频率偏移不得超过±0.2Hz;C.正常运行情况下,频率偏移不得超过±1Hz;D.正常运行情况下,频率偏移不得超过±5Hz。
2.顺调压中枢点的电压为()A.高峰时1.05UN;低谷时UN;B.高峰时,不低于1.075UN,低谷时,不高于1.025UN;C.高峰时,不低于1.025UN;低谷时,不高于1.075UN;D.任何情况下,电压都在1.02-1.05UN3.我们使用的照明电压为220V,这个值是交流电的()。
A.有效值B.最大值C.恒定值D.瞬时值。
4.优化系统中无功功率电源分布的目的是()A.提高系统电压水平B.提高系统频率水平C.降低系统有功损耗D.提高系统电能质量5.高压配电网是指电压等级为()的配电网。
A.35kVB.110kVC.220kV/110kVD.35kV/110kV6.发电机带负荷失磁后机组转速()。
A.增高;B.降低;C.不变;D.不一定。
7.运行中的电压互感器二次线圈不许()。
A.开路;B.短路。
8.电力系统有功负荷的最优分配是针对()进行的A.第一种负荷B.第二种负荷C.第三种负荷D.第四种负荷9.EMS发电计划的功能包括()。
A.火电计划:水电计划;交换计划;扩建计划B.火电计划;水电计划;交换计划;检修计划C.火电计划;核电计划;交换计划;检修计划D.火电计划;水电计划;调度计划;检修计划10.枯水季节承担调频任务的是()A.高温高压火电厂B.中温中压火电厂C.大水电厂D.核电厂二、多选题1.对于无功补偿装置与电力网的连接,下列原则正确的是()A.无功补偿装置都可以连接于变电所的母线上;B.无功补偿装置都可以连接与直流输电换流站的母线上;C.配电网中,根据无功就地补偿原则,装中小型电容器就地补偿;D.负荷密集的供电中心集中安装大中型无功补偿装置2.变压器的等值电路中产生的是不变损耗的有()A.电阻B.电抗C.电导D.电纳3.电力系统中谐波对电网产生的影响有()A.设备发热,产生噪声B.引起附加损耗C.电感电容发生谐振,放大谐波D.产生干扰4.二次调频负荷的原始增量△PLO由()组成A.因调速器的调整作用而增大的发电机组的功率B.因调频器的二次调整作用而增大的发电机组的功率C.负荷本身的调节效应而减小的负荷功率D.负荷本身的调节效应而增大的负荷功率5.降低网损的措施包括()A.提高用户的功率因数B.改善网络中的功率分布C.合理确定电网运行电压水平D.组织变压器经济运行6.一次调频负荷的原始增量△PLO由()组成A.因调速器的调整作用而增大的发电机组的功率B.因调频器的二次调整作用而增大的发电机组的功率C.负荷本身的调节效应而减小的负荷功率D.负荷本身的调节效应而增大的负荷功率7.有功功率流过线路电抗时,产生的是()A.有功损耗;B.无功损耗;C.可变损耗;D.不变损耗三、判断题1.普通变压器可以在空载情况下改变变压器的分接头()2.无功功率的流向是从相位超前相流向相位滞后相()3.三次调整的名词不常用,其实就是按最优化准则分配的第三种有规律变化的负荷,即责成各发电厂按事先给定的发电负荷曲线发电()4.进行无功功率的平衡计算的前提是系统电压水平正常()5.利用发电机的一次调频就能够保持系统的频率()四、综合题1.简述有差调频器特点。
单片机原理与应用试题一及答案一、判断题(每题1分,共10分)1.单片机的引脚EA端口接高电平“1”时,CPU从片外程序存储器开始读取指令。
()2.堆栈指针SP的作用就是指出栈区的位置,修改SP就意味着堆栈区发生了变化。
()3.特殊功能寄存器PSW用来存放CPU运算结果的一些特征。
()4.当CPU访问外部存储器时,会自动向P0的每个口锁存器写入“1”,所以对用户而言P0作为地址/数据总线时,是一个真正的双向口。
()5.Ri作为地址指针仅能访问片内RAM,DPTR作为地址指针主要访问片外RAM。
()6.当T1进行加“1”计数运行时,T0可以工作于任何工作方式下。
()7.在MCS-51系列单片机指令系统中仅有对位才能进行状态测试。
()8.对于MCS-51系列单片机来说,每个中断源的中断请求标志位的置位都是通过内部硬件电路自动完成。
()9.当外中断源处于下降沿触发时,中断请求的撤除必须强迫进行。
()10.串行通信中波特率的设置与定时器T0的设置没有关系。
()二、选择题(每题1分,共10分)1.单片机复位时,CPU自然选中()组工作寄存器。
(A)第0 (B)第1(C)第2 (D)第32.MCS-51单片机中的位地址00H~7FH,指的是()单元中各位的位地址。
(A)片内RAM 00H~1FH (B)片内RAM 20H~2FH(C)片内RAM 80H~FFH (D)片外RAM0020H~002FH3.8051单片机外接存储器时,()可以作为普通I/O口使用。
(A)P0、P2口(B)P1、P3口(C)P3口(D)P0、P1、P2、P3口4.以下指令中,哪条指令将使标志位CY清0?()(A)MOV A,#00H (B)CLR A(C)ADDC A,#00H (D)DIV AB5.访问外部数据存储器应采用以下哪条指令?()(A)MOVX @R0,A (B)MOVC A,@A+DPTR(C)MOV @R0,A (D)MOV @DPTR,A6.下面程序段被执行后,累加器A中的内容应该是()。
试题3 参考答案一、填空题1.AT89S51单片机有(2)级优先级中断。
2.串行口方式2接收到的第9位数据送(SCON)寄存器的(RB8)位中保存。
3.当单片机复位时PSW=(00)H,这时当前的工作寄存器区是(0)区,R6所对应的存储单元地址为(06)H。
4.利用82C55可以扩展(3)个并行口,其中(8)条口线具有位操作功能;5.AT89S51访问片外存储器时,利用(ALE)信号锁存来自( P0口)发出的低8位地址信号。
6.若AT89S51外扩32KB 数据存储器的首地址若为4000H,则末地址为(BFFF)H。
7.当AT89S51执行MOVC A,@A+PC指令时,伴随着(PSEN*)控制信号有效。
8.若A中的内容为67H,那么,P标志位为(1)。
9.AT89S51单片机的通讯接口有(串行)和(并行)两种形式。
在串行通讯中,发送时要把(并行)数据转换成(串行)数据。
接收时又需把(串行)数据转换成(并行)数据。
10.AT89S51内部数据存储器的地址范围是(00-7FH),位地址空间的字节地址范围是(00-2FH),对应的位地址范围是(00-7FH),外部数据存储器的最大可扩展容量是(64KB)。
11.AT89S51单片机指令系统的寻址方式有(寄存器寻址方式)、(直接寻址方式)、(立即寻址方式)、(寄存器间接寻址方式)、(位寻址方式)、(基址寄存器加变址寄存器)、(相对寻址方式)。
12.AT89S51内部提供(2)个可编程的(16)位定时/计数器,定时器有(4)种工作方式。
二、判断对错,如对则在()中写“√”,如错则在()中写“×”。
)1.AT89S51的定时器/计数器对外部脉冲进行计数时,要求输入的计数脉冲的高电平或低电平的持续时间不小于1个机器周期。
(×)2.判断指令的正误:MOV T0,#3CF0H;(×)3.定时器T0中断可以被外部中断0中断(×)4.指令中直接给出的操作数称为直接寻址。
试题1一、填空题(25分,每空1分)1.AT89S51单片机为位单片机2.MCS-51系列单片机的典型芯片分别为、、。
3.AT89S51的异步通信口为(单工/半双工/全双工)4.AT89S51有级中断,个中断源5.AT89S51内部数据存储器的地址范围是,位地址空间的字节地址范围是,对应的位地址范围是,外部数据存储器的最大可扩展容量是。
6.AT89S51单片机指令系统的寻址方式有、_______、____、_____、。
7.如果(A)=34H,(R7)=0ABH,执行XCH A,R7;结果(A)=,(R7)= 。
8.82C55可以扩展个并行口,其中条口线具有位操作功能;9.当单片机复位时PSW=H,这时当前的工作寄存器区是区,R4所对应的存储单元地址为H。
10.若A中的内容为67H,那么,P标志位为。
11.74LS138是具有3个输入的译码器芯片,其输出作为片选信号时,最多可以选中片芯片。
二、判断以下指令的正误:(5分)(1)MOV28H,@R4;()(2)INCDPTR;()(3)DECDPTR ;()(4)CLRR0 ;()(5)MOV T0,#3CF0H;()三、简答题1.如果(DPTR)=507BH,(SP)=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下列指令后:POP DPH;POP DPL;POP SP;则:(DPH)=_____;(DPL)=________;(SP)=________;(6分)2.采用6MHz的晶振,定时1ms,用定时器方式0时的初值应为多少?(请给出计算过程)(6分)3.分析下列程序的功能(5分)PUSHACCPUSHBPOPACCPOPB四、图为8段共阴数码管,请写出如下数值的段码。
;5_____;(请给出原理六、简述一种多外部中断源系统的设计方法。
(给出图和程序)(10分)七、简述行列式扫描键盘的工作原理。
(8分)八、请回答:(共20分)1.下图中外部扩展的数据存储器容量是多少?(2分)2.三片6264的地址范围分别是多少?(地址线未用到的位填1) (6分,)3.若外部程序存储器已扩展(未画出),请编写程序,要求:(1)将30H~3FH中的内容送入62641#的前16个单元中;(6分)(2)将62642#的前32个单元的内容送入40H~5FH中;(6分)试题1参考答案一、填空题(25分,每空1分)1.AT89S51单片机为8位单片机2.MCS-51系列单片机的典型芯片分别为8031、8051、8751。
单片机原理及应用习题库(附答案)1、在C51中,函数类型是由()决定的A、return语句表达式的存储类型B、函数形参的数据类型C、定义函数时指定的返回类型D、编译系统的编译模式答案:C2、运算器的功能是进()运算和逻辑运算。
A、计算B、编程C、程序D、四则答案:D3、89C51单片机的位寻址区位于内部RAM的()单元A、00H-7FHB、20H-7FHC、00H-1FHD、20H-2FH答案:D4、()组I/O接口中没有自带上拉电阻A、P1B、P0C、P3D、P2答案:B5、74LS138芯片是()A、编码器B、锁存器C、驱动器D、译码器答案:A6、共阴极七段数码管显示器的驱动信号有何特色?()A、低电平点亮B、高电平不亮C、高电平点亮D、以上皆非答案:C7、十进制126数其对应的十六进制数可表示为()。
A、8FB、FEC、8ED、7E答案:D8、89C51单片机串行通信时,先发送()位,后发送()位。
A、低,高B、高,高C、高,低D、低,低答案:A9、51单片机采用T0计数方式3时的命令是()A、TMOD=0X05B、TMOD=0X07C、TCON=0X07D、TCON=0X05答案:B10、在编写程序的时候,若遇到重复出现多次的一段语句,最好的方法是()A、复制粘贴B、定义一个自定义函数C、在网上查找D、直接手写答案:B11、程序是以()形式存放在程序存储器中的A、汇编程序B、二进制编码C、BCD码D、C语言源程序答案:B12、下面叙述中不正确的是()。
A、C51程序的基本组成单位是函数B、C51中的注释语句只能位于可执行语句的后面C、一个C51源程序必须包含一个main()函数D、一个C51源程序可以由一个或多个函数组成答案:B13、X/10%10的效果为()A、取百位B、取十位C、语法错误D、取个位答案:B14、下列属于INT1口触发中断时的语句为interrupt()A、3B、2C、0D、1答案:B15、IT0=0的触发方式为()A、高电平触发B、低电平触发C、上升沿触发D、下降沿触发答案:B16、十六进制数B3的二进制数是()。
《单片机原理及应用》1、分析程序的执行结果,将结果填写到空格中。
ORG 0000HMOV 30H,#50HMOV R0,#30HMOV A,@R0 ;(A= 50H )MOV A,#79HMOV B,#20H ;(A= 79H B= 20H )DIV AB ;(A= 03H B= 19H )PUSH BMOV B,#0AHMUL AB ;(A= 1EH B= 00H )POP BADD A,B ;(A= 37H B= 19H )MOV 30H,A ;(30H单元的内容= 37H )MOV 20H,30HCLR 01H ;(20H单元的内容= 37H )MOV A,20H ;(PSW中P的内容= 1 )CPL ARR A ;( PSW中C的内容= 0 )SWAP A ;(A= 46H )ADDC A,#0F0H ;(A= 36H );(PSW中P的内容= 0 );( PSW中C的内容= 1 )RL A ;(A= 6CH );(PSW中P的内容= 0 );( PSW中C的内容= 0 ) LOOP: AJMP LOOP2、将MCS51内部RAM60H~65H单元存放的12个16进制数变为ASCII码,放到0090H单元开始的外部RAM中。
[使用汇编语言编写]MAIN:MOV R0,#60HMOV R2,#6MOV DPTR, #0090HHASC:MOV A,@R0ANL A,#0FH ;屏蔽高四位ADD A,#0DHMOVC A,@A+PC ;查表低四位转换为ASCII码MOVX @DPTR,A ;送如外部RAMINC DPTRMOV A,@R0ANL A,#0F0HSWAP AADD A,#6MOVC,@A+PC ;高四位转换为ASCII码MOVX @DPTR,AINC R0INC DPTRDJNZ R2,HASCENDASCTAB:DB 30H 31H 32H 33H 34 H 35H 36H 37H 38H 39HDB41H 42H 43H 44H 45H 46H3、某一故障检测系统,当出现故障1时,线路1上出现上升沿;当出现故障2时,线路2上出现下降沿。
没有故障时,线路1为低电平,线路2为高电平。
出现故障时,相应的指示灯变亮。
故障消失后,指示灯熄灭。
试用MSC1211为单片机实现该故障检测功能,画出电路原理图,并写出相应程序。
4、用MSC1211的T0定时/计数器,设计程序,实现在P1.0输出周期为200ms的占空比为1:1的方波,输出500个方波后停止输出。
解:ORG 0000HLJMP MAINORG 000BH ;T0口中断服务程序入口地址LJMP INT_T0MAIN:MOV TMOD,#00H ;T0工作于方式0定时MOV TL0,#0CHMOV TH0,#1EH ;设定秒中断周期为1msMOV A,200 ;设定输出周期为200 msMOV R2,1000 ;输出500个方波SETB TR0SETB ET0SETB EASETB P1.0SJMP $INT_T0:MOV TL0,#0CHMOV TH0,#1EH ;T0重装时间常数CPL P1.0 P1.0位取反DEC R2JZ ENDP ;若R2为0,则结束程序,否则返主程序继续输出RETI ;返主程序ENDP:END5、利用MSC1211的A/D构成数据采集系统。
使用模拟通道0进行连续数据采集,采集8次后取得平均值,存放到预先分配好的100个内存单元中,这100个单元存满后,再从第一个单元进行覆盖保存。
写出完整的程序清单(应在适当的地方加程序注释)。
解:#include<REG1211.H>#include<stdio.h>extern void autobaud(void);//声明外部函数extern void bipolar(void);float a[100]={0},w[8]={0};int out=0;long result,temp;int j;int AUXinterrupts(void)interrupt6 using1//中断服务程序{if(PAI==6) //处理AD中断{w[out++]=bipolar();temp=w[out];SUMR0=temp&0xff;SUMR1=(temp>>8)&0xff;SUMR2=(temp>>16)&0xff;SUMR3=(temp>>24)&0xff;if(out==8){SUM=SUMR3<<24+SUMR2<<16+SUMR1<<8+SUMR0;}SUM/=8;a[j++]=SUM;if(j>=100){j=0;}}}min(void){float dummy;int decimation;decimationg=1440;//抽取因子PDCON&=0x77;//打开ADCACLK=9;//模拟采样频率ADMUX=0;//使用通道0ADCON0=0x30;//内部基准2.5V,缓冲器关,BOD关,PGA=0ADCON1=0x01;//双极性,自动稳定模式,偏移增益自校准ADCON2=decimation&0xff;//写入抽取因子低字节ADCON3=(decimation>>8)&0x07;//写入抽取因子高字节AIE=&0x20;autobaud();//等待校准for(i=0;i<4;i++){while(!(AIE&0X20)){dummy=ADRESL;}SSCON=0;//清除求和寄存器EAI=1;While(1);}}6、变量k从0变到150,变化步长为10。
对于每一个值,使用整形数算术运算计算8*k,k*k*k和(40*k/150)^3。
这三个值通过MSC1211的D/A转换后同步输出(均使用电压输出模式)。
试编写程序实现。
解:include<Reg1211.h>data unsigned int k,j,i;void main(void){PDCON&=~0X48;ADCON0=0X30;DACSEL=6;DACSEL=4;DACL=0X24;DACSEL=5;DACH=0x24;while(1){DACSEL=0;DAC=0x8000;for(j=0;j<100;j++)DAC=0;for(k=0;k<151;k+=10){DACSEL=1;DAC=8*k;DACSEL=2;DAC=k*k*k;DACSEL=3;i=40*k/150;DAC=i*i*i;DACSEL=6;DACL=0Xfc;}}}7、利用MSC1211或8051设计应答方式下的多机通讯程序。
通讯参数:晶振为11.0592MHz,9600,n,8,1。
通讯过程如下:主机首先发送从机地址,从机收到地址后进行比较,如果地址相符,则将从机地址回发给主机作为应答信号。
主机收到从机的地址应答信号后,将内存单元中的120个数据发送给从机,并进行数据块校验(将各个数据进行异或),若校验正确,则从机发送00H给主机,否则发送0FFH给主机,主机重新发送数据。
(应在适当的地方加程序注释)解:主机程序如下:ORG 0000HLJMP MAINT ;跳至主程序入口地址ORG 0023H ;串行口中断服务程序入口LJMP INTSTMAINT:MOV SCON,#90H ;置工作方式2,并允许接收MOV TMOD,#20H ;置T1工作方式2MOV TH1,#0FDHMOV TL1,#0FDHMOV DPTR,#ADDR ;设置数据块首址ADDR的地址指针MOV R0,#120 ;设置发送字节数MOV R1,#00H ;设置校验和的初值MOV R2,#NAMESETB TB8 ;置位TB8位,作为发送地址桢信息特征SETB TR1SETB EA ;CPU开中断SETB ES ;允许串行口中断MOV A,R2 ;发送地址桢信息MOV SBUF,ASJMP $;中断服务程序INTST: MOV A,TB8 ;判断是发送地址还是数据,若为数据则转LOOP0 CJNE A,01H,LOOP0CLR TI ;地址桢信息发送完后清发送中断LOOP0:JB RI,LOOP1 ;检查是否是接受中断?若RI=1则转入接受乙机发送应答信息CLR TI ;因RI=0,表明是甲机发送中断数据的中断请求。
CPU响应中断,在中断服务程序中应清中断标志MOV A,TB8;CJNE A,#01H,LOO3 ;若为发送数据中断则转LOOP3继续发送数据LJMP ENDT ;甲机发送一数据完毕跳至中断返回程序LOOP1:CLR RI ;清接受中断标志MOV A,TB8 ;判断是发送地址还是数据,若为数据则转LOOP2CJNE A,#01H,LOOP4;若TB8为0则接受的为乙机数据校验应答MOV A,SBUF ;取乙机的应答数据CJNE A,@R2,LOOP2 ;若乙机应答信息不是从机地址,则地址传送不正确,则转LOOP2程序重新发送地址信息,否则清TB8,发送数据CLR TB8LOOP3:MOVX A,@DPTR ;取下一个数MOV SBUF,A ;启动串行口,发送新的数据XRL A,@R1MOV @R1,AINC DPTR ;修改地址指针DEC R0 ;修改发送字节数记数值CJNE R0,#00H,ENDT ;判别120个字节数据都发送完没有。
如果没有发送完则跳至中断返回程序。
继续发送MOV A,@R1MOV SBUF,A ;数据全部发送完毕则发送校验和LJMP ENDTLOOP4:MOV A,SBUF ;取乙机的应答数据CJNE A,#00H,LOOP5 ;若数据发送不正确,则转LOOP5重新发送CLR ES ;全部发送完毕,禁止串行口中断LOOP5:MOV DPTR,#ADDR ;设置数据块首址ADDR的地址指针MOV R0,#120 ;设置发送字节数MOV R1,#00H ;设置校验和的初值LJMP LOOP2LOOP2:MOV A,R2 ;发送地址桢信息MOV SBUF,ARETIENDT: RETIEND从机程序如下:ORG 0000HLJMP MAINR ;跳至主程序入口地址ORG 0023H ;串行口中断服务程序入口LJMP INTSRMAINR:MOV SCON,#0B0H ;置工作方式2,并允许接收MOV TMOD,#20H ;置T1工作方式2MOV TH1,#0FDHMOV TL1,#0FDHMOV DPTR,#ADDR ;设置数据块接收首址为ADDRMOV R0,#120 ;设置接收字节数MOV R2,#NAMEMOV R1,#00H ;设置校验和的初值SETB RB8 ;置位RB8位,作为接受地址信息特征SETB TR1SETB EA ;CPU开中断SETB ES ;允许串行口中断SJMP $;中断服务程序INTSR: MOV A, RB8 ;判断是接收地址还是数据,若为数据则转LOOP0 CJNE A,01H,LOOP0CLR RI ;地址桢信息接受完后清接收中断MOV A,SBUFXRL A,@R2JZ LOOP ;若地址相符则转LOOP,否则中断返回LJMP ENDRLOOP:CLR SM2CLR RB8MOV A,@R2MOV SBUF,A ;想主机发送从机地址LJMP ENDRLOOP0:JB RI,LOOP1 ;检查是否是接受中断?若RI=1则转入接受甲机发送的数据CLR TI ;因RI=0,表明是乙机发送中断数据的中断请求。