单片机第二次作业
单片机第二次作业
附录1 实验报告格式要求《微机实验》报告实验名称 分支程序设计实验 专业班级一、任务要求1. 设有8bits 符号数X 存于外部RAM 单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写程序。
240/2204020X X Y X X XX ⎧≥⎪=<<⎨⎪≤⎩当当当2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值别离通过P0、P 一、P2端口输出(以紧缩BCD 码的形式)。
P3.0为低电平常开始计时,为高电平常停止计时。
二、设计思路1. 可知此实验要求依照不同的值进行不同的运算,因此需要利用分支程序。
X 处于不同的范围,有不同的运算,可知应该先判定其与20的大小,再判定其与40的大小。
于是需要用到CJNE 指令和JNC 判定C 指令 。
并由此进行不同的运算,即可完成程序目的。
2.制作一个1s 的延时,并将其循环60次,并将其存入P0,作为秒的计时。
再来一个外层循环,将其循环60次,并存入P1,作为分计时,最后再加一个外循环,使其循环24次,并存入P2,作为时的计时。
开始计时的操纵可由JB 语句来实现三、资源分派1.将30H 作为外部RAM 的地址,并将A 的结果存入该RAM 中。
2.将R3,R4,R5,R6,R7作为临时放置数据的中间量,将秒,分,时的结果存入P0,P1,P2.四、流程图五、源代码(含文件头说明、资源利用说明、语句行注释)1.File name: task2-1.asmDescription:240/2204020X XY X XX X⎧≥⎪=<<⎨⎪≤⎩当当当Date: 10/15/2020Designed by: 刘珍Source used: R0,30HORG 1000HMOV R0,30HMOVX A,@R0CJNE A,#20,STEP1 ;X≠20,转STEP1L1: CPL A ;X=20,计算/XSJMP DONESTEP1: JNC STEP2 ;C=0,X>20,转STEP2 SJMP L1 ;C=1,X<20,转L1STEP2: CJNE A,#40,STEP3 ;X≠40,转STEP3L2: CLR C ;X=40,计算X*XADDC A,@R0SJMP DONESTEP3: JNC L2 ;C=0,X>40,转L2CLR C ;C=1,20<X<40,计算X/2MOV B,#2HDIV ABDONE: MOVX @R0,ASJMP $END2. File name: task2-2.asmDescription: 计时器,通过P0/P1/P2输出,通过P3.0操纵。
单片机第二次试验报告__分支程序设计
《微机实验》报告实验名称 分支程序设计实验 专业班级 姓名 学号 序号 联系方式一、任务要求熟练掌握KeilC 环境下汇编语言程序的调试方法,加深对汇编语言指令、机器码、寻址方式等基本内容的理解,掌握分支程序和简单程序的设计与调试方法,了解并行IO 口的使用。
1. 设有8bits 符号数X 存于外部RAM 单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写程序。
240/2204020X X Y X X X X ⎧≥⎪=<<⎨⎪≤⎩当当当2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD 码的形式)。
P3.0为低电平时开始计时,为高电平时停止计时。
提高部分(选做):a. 实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。
利用P3.7状态选择加、减计数方式。
b. 利用P3口低四位状态控制开始和停止计数,控制方式自定。
二、设计思路1.分段函数设计对于第一个任务,相当于设计一个分段函数程序,根据变量X的值所处的区间进行相应的计算。
由学过的知识知道,可利用比较转移指令CJNE来判断X是否等于临界值20,40,若不等,再根据执行CJNE 指令后的进位位CY的值来判断X与临界值的的大小关系,易知CY=0则X大于临界值,CY=1则X小于临界值;如此,再进行相应的计算。
另外,除法计算中可能产生余数,商和余数应该分开存储,若乘方运算结果大于255,高八位与低八位应分开存储。
2. 24小时制时钟程序本程序须可以构建两部分循环。
首先构建一个三重循环实现“一秒延时”,循环体利用NOP指令(单字节指令,1µs)经多次循环达到延时一秒的效果。
再利用已经构建好的“一秒延时”部分,设计计时系统的三重循环,秒(0-59)、分(0-59)、时(0-23)。
需要注意的是,在小时、分、秒达到59时,下一次应该为零。
单片机原理及应用第二次作业答案
《单片机原理及应用》第二次作业一、填空1、计算机可以直接理解的语言是机器语言(二进制编码的指令),程序员编程最方便的语言是汇编语言。
(出自第4章)答:机器语言,高级语言。
2、程序模块间通信使用______________和______________语句。
(出自第4章)答:PUBLIC,EXTRN。
3、根据结构化程序设计观点,程序有______________、______________、______________三种基本结构。
(出自第4章)答:顺序结构,分支结构,循环结构。
4、单片机C语言常用的存储模式有______________、______________、______________三种。
(出自第5章)答:SMALL、COMPACT、LARGE。
5、在有返回值的函数中切换工作寄存器组会导致_______________________的问题。
(出自第5章)答:返回值无法正确传送。
6、MCS-51的四个I/O端口有______________、______________、______________三种操作方式。
(出自第6章)答:输出数据,读端口数据,读端口引脚。
二、选择题( B )1、在MCS-51中,需双向传送信号的是____。
A)地址线B)数据线C)控制信号线D)电源线(出自第6章)( A )2、在MCS-51中,为实现P0口线的数据和低位地址利用,应使用____。
A)地址销存器B)地址寄存器C)地址缓冲器D)地址译码器(出自第6章)( D )3、在下列信号中,不是给程序存储器扩展使用的是____。
A)PSEN B)EA C)ALE D)WR(出自第6章)( A )4、在下列信号中,不是给数据存储器扩展使用的是____。
A)EA B)RD C)WR D)ALE(出自第6章)( C )5、如在系统中只扩展一片Intel2732(4K×8),除应使用P0口的8条口线外,至少还应使用P2口的口线____条。
数字电子技术第二次作业题及答案.doc
第2次作业一、单项选择题(本大题共40分,共20小题,每小题2分)1.4LS138译码器有(),74LS148编码器有()。
A.三个输入端,三个输出端B.八个输入端,八个输出端C.三个输入端,八个输出端D.八个输入端,三个输出端2.接通电源电压就能输岀矩形脉冲的电路是()。
A.单稳态触发器B.施密特触发器C. D触发器D.多谐振荡器3.如图所示的电路,输出F的状态是()。
A. AB. FC. 1D.04.函数F(A, B, C)二AB+BC+AC的最小项表达式为()。
A.F(A, B, C) = Lm (0, 2, 4)B.(A, B, C) = Sm (3, 5, 6, 7)C.F(A, B, C) = Zm (0, 2, 3, 4)D.F(A,B,C)二工m (2, 4, 6, 7)5.在下列逻辑电路屮,不是组合逻辑电路的是()。
A.译码器B.编码器C.全加器D.寄存器6.N个触发器可以构成最大计数长度(进制数)为()的计数器。
A. N B. 2N C. N2D. 2、7.0八(:输出范围为0〜1(^,当输入数字量为0110 (4位DAC),其输岀为()。
A.IVB.2VC.3VD.4V&十六路数据选择器的地址输入(选择控制)端有()个。
A.16B. 2C. 4D.89.电路和波形如下图,正确输出的波形是()。
A.①B・②C・③D・④10.对于钟控RS触发器,若要求其输出“0 “状态不变,则输入的RS信号应为()o A. RS=X0 B. RS=0X C. RS=X1 D. RS=1X11・已知输入A、B和输出Y的波形如下图所示,则对应的逻辑门电路是()Og—J"! JA.与门B.与非门C.或非门D.异或门12.为了把串行输入的数据转换为并行输出的数据,可以使用()。
A.寄存器B.移位寄存器C.计数器D.存储器13.存储8位二进制信息要()个触发器。
A. 2B. 3C・4D. 8 _14.欲使JK触发器按= Q n工作,可使JK触发器的输入端(J=K=1 B. J=0, K=1 C. J=0, K=0 D. J=l, K=015.在图1所示电路中,使Y二A一的电路是()。
(精校版)单片机第二章习题参考答案
完整word版,单片机第二章习题参考答案编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(完整word版,单片机第二章习题参考答案)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为完整word版,单片机第二章习题参考答案的全部内容。
第二章习题参考答案一、填空题:1、当MCS—51引脚ALE有效时,表示从P0口稳定地送出了低8位地址。
2、MCS—51的堆栈是软件填写堆栈指针临时在片内数据存储器内开辟的区域。
3、当使用8751且EA=1,程序存储器地址小于 1000H 时,访问的是片内ROM。
4、MCS-51系统中,当PSEN信号有效时,表示CPU要从外部程序存储器读取信息.5、MCS-51有4组工作寄存器,它们的地址范围是 00H~1FH 。
6、MCS—51片内20H~2FH范围内的数据存储器,既可以字节寻址又可以位寻址。
7、PSW中RS1 RS0=10时,R2的地址为 12H 。
8、PSW中RS1 RS0=11时,R2的地址为 1AH 。
9、单片机系统复位后,(PSW)=00H,因此片内RAM寄存区的当前寄存器是第 0 组,8个寄存器的单元地址为 00H ~ 07H .10、PC复位后为 0000H 。
11、一个机器周期= 12 个振荡周期= 6 个时钟周期。
12、PC的内容为将要执行的的指令地址。
13、在MCS-51单片机中,如果采用6MHz晶振,1个机器周期为 2us 。
14、内部RAM中,位地址为30H的位,该位所在字节的字节地址为 26H 。
15、若A中的内容为63H,那么,P标志位的值为 0 .16、8051单片机复位后,R4所对应的存储单元的地址为 04H ,因上电时PSW=00H .这时当前的工作寄存器区是第 0 工作寄存器区。
单片机课程形考作业2答案
第三章89C51指令系统第十章系统实用程序一、填空题:1、CPU在取指令时,采用寄存器进行寻址;CPU在访问64KB的片外数据存储器时,一般采用寄存器进行寻址。
(PC,DPTR)2、当需要从51单片机程序存储器取数据时,采用的指令操作码应为。
(MOVC)3、假定(A)=68,(R5)=79 ,执行下列指令后,累加器A内容为。
(47H)ADD A,R5DA A4、若A中数据为63H,那么PSW的最低位(奇偶位P)为。
(用“1”或“0”表示)(0)5、访问89C51片外数据存储器采用的是寻址方式。
89C5片外可直接寻址的程序存储空间最大可达KB,可直接寻址的数据存储空间最大可达KB。
(寄存器间接寻址,64,64)6、20根地址线的寻址范围可达。
(1MB)7、指令AJMP的调用范围是,指令LJMP的调用范围是。
(2KB,64KB)二、简答题:1、访问内部RAM单元可以采用哪些寻址方式?访问外部RAM单元可以采用哪些寻址方式?访问特殊功能寄存器(SFR)可以采用哪些寻址方式?答:对特殊功能寄存器只能采用直接寻址方式;对单片机内部RAM的高128个字节(80H~FFH),只能采用寄存器间接寻址;对外部扩展的数据存储器只能用MOVX指令访问,即寄存器间接寻址方式;而内部RAM的低128个字节(00H~7FH)既能用直接寻址方式,也能用寄存器间接寻址方式。
2、访问外部数据存储器和程序存储器可以用哪些指令来实现?举例说明。
答:访问外部数据存储器可以用以下指令实现:MOVX A,@Ri ;((Ri))→A,寄存器Ri指向的片外RAM地址中的内容送到累加器A中MOVX @Ri,A ;A→((Ri)),累加器中内容送到寄存器Ri指向的片外RAM地址中MOVX A,@DPTR ;((DPTR))→A,数据指针指向的片外RAM地址中的内容送到累加器A中MOVX @DPTR,A;A→((DPTR)),累加器中内容送到数据指针指向的片外RAM地址中访问程序存储器可以用以下指令实现:MOVC A,@A+DPTR ;((A+DPTR))→A,表格地址单元中的内容送到累加器A中MOVC A,@A+PC;PC+1→PC,((A+PC))→A,表格地址单元中的内容送到累加器A 3、试用下列3种寻址方式编程,将立即数0FH送入内部RAM的30H单元中。
单片机第二次作业
单片机第二次作业作业:将A 扩大十倍(A 值较小,不溢出),此题方法较多,根据材料有三种做法,下面就一一列出。
(既然此题如此繁琐,就请大家给个好评吧!)当然刚开始还是新建文件和工程,大家都懂得!那么我就直接粘贴啦!1、先fileànew 建asm 文件6.asm 方法一:MOV B,#10 MUL AB END 为了调试时看数据,预先在A 中赋值为01H(既然A 值较小,不溢出,那么就选个小一点的吧,简单嘛!)所以程序前加:MOV A,#01H2、建新工程,Projectànewproject,选AtemlàAT89C51,导入文件6.asm。
注意,对初学者,一个工程里只能有本程序6.asm,无关的程序要删除,新试验一个程序最好重新建工程,以保证一个工程里只有你要试验的那一个程序。
3、可见程序4、编译通过后,点debug 下的start/stop 开始调试,step 和stepover 都是单步调试,step 是遇到子程序或中断也要进入进行单步调试,stepover 是遇到子程序或中断当一句一次执行完。
本程序物子程序,二者是一样的。
我们执行一句得到:可见A 中的值变为01H,B 中还为0,是将要执行的语句,再执行一步,可见:B 中数据已变为0ah,再执行一步,可见:.A 与B 相乘,A 中存放低八位。
所以A 中的值为0AH,B 中的值为00H.,可知已经把A 扩大了十倍,这个程序简单吧?!不过,别急,有简单就有复杂的,不过谁好谁坏就不知道了,总之能用就行。
方法二:新建文件和工程就不罗嗦了,直接看程序吧!呵呵,是不是复杂了一些?不过,别怕。
一步步来看。
执行一步可见:可见A 中的值变为01H,B 中还为0,是将要执行的语句,再执行一步,可见:可见B 中的值也变为01H。
接着执行:可见A 中的值变为02H。
接着执行:可见:RO 中的值变为02H。
中国石油大学 单片机原理及应用 第二次在线作业
中国石油大学单片机原理及应用第二次在线作业单选题 (共30道题)1.(2.5分) LJMP跳转空间最大可达到()• A、2KB• B、256B• C、128B• D、64KB我的答案:D2.(2.5分)计算机内部数据之所以用二进制形式表示,主要是()• A、为了编程方便• B、由于受器件的物理性能限制• C、为了通用性• D、为了提高运算速度我的答案:B3.(2.5分) 8051单片机共有()中断源• A、4• B、5• C、6• D、7我的答案:B4.(2.5分) 8051单片机共有()个中断优先级• A、2• B、3• C、4• D、5我的答案:A5.(2.5分)外部中断源IE1(外部中断1)的向量地址为()• A、0003H• B、000BH• C、0013H• D、002BH我的答案:C6.(2.5分)累加器A的位地址为()• A、E7H• B、F7H• C、D7H• D、87H我的答案:A7.(2.5分)寄存器B的位地址为()• A、E7H• B、F7H• C、D7H• D、87H我的答案:B8.(2.5分) 8051的内部RAM中,可以进行位寻址的地址空间为()• A、00H∽2FH• B、20H∽2FH• C、00H∽FFH• D、20H∽FFH我的答案:B9.(2.5分)设累加器A的内容为0C9H,寄存器R2的内容为54H,CY=1,执行指令SUBB A,R2后结果为()• A、(A)=74H• B、(R2)=74H• C、(A)=75H• D、(R2)=75H我的答案:A10.(2.5分)设(A)=0C3H,(R0)=0AAH,执行指令ANL A,R0后,结果()• A、(A)=82H• B、(A)=6CH• C、(R0)=82• D、(R0)=6CH我的答案:A11.(2.5分) 8051的程序计数器PC为16位计数器,其寻址范围是()• A、8K• B、16K• C、32K• D、64KB我的答案:D12.(2.5分)提高单片机的晶振频率,则机器周期()• A、不变• B、变长• C、变短• D、不定我的答案:C13.(2.5分)在堆栈操作中,当进栈数据全部弹出后,这时SP应指向()• A、栈底单元• B、7FH单元• C、栈底单元地址加1• D、栈底单元地址减1我的答案:C14.(2.5分) 8051单片机中,唯一一个用户不能直接使用的寄存器是()• A、PSW• B、DPTR• C、PC• D、B我的答案:C15.(2.5分) 8051单片机中,唯一一个用户可使用的16位寄存器是()• A、PSW• B、DPTR• C、ACC• D、PC我的答案:B16.(2.5分)执行如下三条指令后,30H单元的内容是()MOVR1,#30H MOV 40H,#0EH MOV ﹫R1,40H• A、40H• B、30H• C、0EH• D、FFH我的答案:C17.(2.5分)有如下程序段: MOV R0,#30H SETBC CLR A ADDC A,#0 0H MOV ﹫R0,A 执行结果是()• A、(30H)=00H• B、(30H)=01H• C、(00H)=00H• D、(00H)=01H我的答案:B18.(2.5分)从地址2132H开始有一条绝对转移指令AJMP addr11,指令可能实现的转移范围是()• A、2000H∽27FFH• B、2132H∽2832H• C、2100H∽28FFH• D、2000H∽3FFFH精选文库我的答案:A19.(2.5分)中断是一种()• A、资源共享技术• B、数据转换技术• C、数据共享技术• D、并行处理技术我的答案:D20.(2.5分)执行MOV IE,#81H指令的意义是:()• A、屏蔽中断源• B、开放外部中断源0• C、开放外部中断源1• D、开放外部中断源0和1我的答案:B21.(2.5分) MCS—51单片机的复位信号是( )有效• A、高电平• B、低电平• C、脉冲• D、下降沿我的答案:A22.(2.5分)若MCS-51单片机使用晶振频率为6MHz时,其复位持续时间应该超过( )• A、2μs• B、4μs• C、8μs• D、1ms我的答案:B23.(2.5分)若PSW.4=0,PSW.3=1,要想把寄存器R0的内容入栈,应使用( )指令• A、PUSH R0• B、PUSH @R0• C、PUSH 00H• D、PUSH 08H我的答案:D24.(2.5分)能够用紫外光擦除ROM中程序的只读存储器称为( )• A、掩膜ROM• B、PROM• C、EPROM• D、EEPROM我的答案:C25.(2.5分)在片外扩展一片2764程序存储器芯片要( )地址线• A、8根• B、13根• C、16根• D、20根我的答案:B26.(2.5分)定时器/计数器工作方式1是( )• A、8位计数器结构• B、2个8位计数器结构• C、13位计数结构• D、16位计数结构我的答案:D27.(2.5分)设MCS-51单片机晶振频率为12MHz,定时器作计数器使用时,其最高的输入计数频率应为( )• A、2MHz• B、1MHz• C、500KHz• D、250KHz我的答案:C28.(2.5分)已知1只共阴极LED显示器,其中a笔段为字形代码的最低位,若需显示数字1,它的字形代码应为( )。
大工18秋《单片机原理及应用》在线作业2(满分题)
------------------------------------------------------------------------------------------------------------------------------ (单选题) 1: 关于伪指令说法错误的是()。
A: 伪指令属于汇编指令B: 伪指令属于单片机指令C: 汇编程序能够识别伪指令D: 单片机不能执行伪指令正确答案:(单选题) 2: 在MCS-51中,子程序调用时参数的传递方法不包括()。
A: 利用累加器或寄存器B: 利用存储器C: 利用控制器D: 利用堆栈正确答案:(单选题) 3: 以下不属于汇编语言特点的是()。
A: 生成的目标程序占存储空间少、运行速度快B: 效率高、实时性强C: 程序的阅读和修改比较容易D: 编程复杂繁琐正确答案:(单选题) 4: MCS-51单片机中,晶振频率为12MHz时机器周期为()。
A: 0.5μsB: 1.0μsC: 1.5μsD: 2.0μs正确答案:(单选题) 5: MCS-51单片机中,1个机器周期包括()个时钟振荡周期。
A: 2B: 6C: 10D: 12正确答案:(单选题) 6: 若(A)=84H,(30H)=8DH,执行指令ADD A,30H之后()。
A: (CY)=0,(OV)=0B: (CY)=0,(OV)=1C: (CY)=1,(OV)=0D: (CY)=1,(OV)=1正确答案:(单选题) 7: MCS-51单片机复位后的入口地址是()。
A: 0000HB: 0003HC: 000BHD: 0013H正确答案:(单选题) 8: 若(A)=C9H,(R2)=54H,(CY)=1,执行指令SUBB A,R2之后()。
------------------------------------------------------------------------------------------------------------------------------ A: (CY)=0,(OV)=0B: (CY)=0,(OV)=1C: (CY)=1,(OV)=0D: (CY)=1,(OV)=1正确答案:(单选题) 9: 若(P1)=10011100B,(CY)=1。
单片机第二次实验报告
上海电力学院MCS-51单片机实验报告题目:步进电机控制实验院系:电气工程学院专业年级:学生姓名:步进电机控制实验一、实验目的1、了解步进电机控制的基本原理。
2、掌握步进电机转动的编程方法。
二、实验内容通过程序改变正、反转命令,转速参数和转动步数,并在显示器上显示,转动步数减为零时停止转动。
三、实验预备知识步进电机驱动原理是切换每相线圈中的电流和顺序,来使电机作步进式旋转。
驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。
单片机控制步进电机最适合。
四、实验接线图显示部分参考键盘显示控制器8279应用实验五、实验程序框图六、七、实验步骤1、将P1.0~P1.3分别接到BA~BD插孔。
2、用8芯排线将8279区(a-h)连接到数码管显示区的CODE(A-H),JB53(BIT0-BIT7)连接到数码管显示区的BIT1-BIT8。
3、用4芯排线将8279区的JB52(H1-H7)连到键盘区的KH(H1-H4)上,JB54(L4-L1)连到键盘区的KL(L4-L1)上。
4、8279区8279CS2连到系统译码的Y6上,8279CLK连接到固定脉冲的1MHz。
5、调试、运行程序test8中BJDJ.ASM。
6、在显示器上显示的数字第:第一位为“0”表示正转,为“1”表示反转,第二位“0~F”为转速等级,第三位到第六位设定步数,到0步进电机停止旋转。
七、实验小结本次实验的内容是步进电机的控制,通过程序改变正、反转命令,转速参数和转动步数等。
虽然实验的时候曾遇到过一些问题,最终还是较好的达到了实验目的,观察到了现象,并对程序有了一定程度的理解。
大工21春《单片机原理及应用》在线作业2满分答案
1.若(A)=C3H,(R0)=AAH,执行指令ANL A,R0之后,A的值为()。
A.11HB.34HC.72HD.82H该题正确选项是: D2.累加器A采用的寻址方式是( )。
A.寄存器寻址B.直接寻址C.寄存器间接寻址D.立即寻址该题正确选项是: A3.若(50H)=3AH,指令“MOV A,50H”执行后,累加器A的内容为()。
A.0HB.3AHC.E5HD.E8H该题正确选项是: B4.按某种控制规律重复执行的程序称为( )。
A.顺序程序B.分支程序C.循环程序D.子程序该题正确选项是: C5.若(A)=C9H,(R2)=54H,(CY)=1,执行指令SUBB A,R2之后()。
A.(CY)=0,(OV)=0B.(CY)=0,(OV)=1C.(CY)=1,(OV)=0D.(CY)=1,(OV)=1该题正确选项是: B6.MCS-51系列单片机共有( )条指令。
A.49B.98C.100D.111该题正确选项是: D7.指令“MOV A,90H”采用的寻址方式是( )。
A.寄存器寻址B.直接寻址C.寄存器间接寻址D.立即寻址该题正确选项是: B8.若(R1)=30H,(A)=20H,执行指令MOV @R1,A后,(30H)=()。
A.10HB.20HC.30HD.50H该题正确选项是: B9.若(A)=84H,(30H)=8DH,执行指令ADD A,30H之后()。
A.(CY)=0,(OV)=0B.(CY)=0,(OV)=1C.(CY)=1,(OV)=0D.(CY)=1,(OV)=1该题正确选项是: D10.若(DPTR)=3000H,(3000H)=30H,执行指令MOVX A,@DPTR后,累加器A的内容为()。
A.30HB.00HC.3000HD.3030H该题正确选项是: A11.MCS-51单片机片内RAM的地址空间为64KB。
T.对 F.错该题正确选项是: F12.PUSH指令功能是将栈顶单元的内容弹出堆栈。
51单片机课程设计作业
流水灯:1.第一个发光管以间隔200ms闪烁8个发光管由上至下间隔1s流动,其中每个管亮500ms,灭500ms,亮时蜂鸣器响,灭时关闭蜂鸣器,一直重复下去。
2.8个发光管来回流动,第个管亮100ms,流动时让蜂鸣器发出“滴滴”声。
3.用8个发光管演示出8位二进制数累加过程。
4.8个发光管间隔200ms由上至下,再由下至上,再重复一次,然后全部熄灭再以300ms间隔全部闪烁5次。
重复此过程。
5.间隔300ms第一次一个管亮流动一次,第二次两个管亮流动,依次到8个管亮,然后重复整个过程。
6.间隔300ms先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动三次;再从中间往两边流动三次;8个全部闪烁3次;关闭发光管,程序停止。
数码管静态显示:1.同时用两个定时器控制蜂鸣器发声,定时器0控制频率,定时器1控制同个频率持续的时间,间隔300ms依次输出1,10,50,100,200,400,800,1k(hz)的方波。
2.用定时器以间隔500MS在6位数码管上依次显示0、1、2、3….C、D、E、F,重复。
数码管动态显示:1.利用动态扫描方法在六位数码管上显示出稳定的4321.2.用动态扫描方法和定时器1在数码管的前三位显示出秒表,精确到1%秒,即后两位显示1%秒,一直循环下去。
3.利用动态扫描和定时器1在数码管上显示出从765432开始以1/10秒的速度往下递减直至765398并保持显示此数,与此同时利用定时器0以500MS速度进行流水灯从上至下移动,当数码管上数减到停止时,实验板上流水灯也停止然后全部开始闪烁,3秒后(用T0定时)流水灯全部关闭、数码管上显示出“HELLO”。
到此保持住。
矩阵键盘及中断原理:1.数码管前三位显示一个跑表,从000到999之间以1%秒速度运行,当按下一个独立键盘时跑表停止,松开手后跑表继续运行。
(用定时器设计表)。
2.在上题的基础上,用另外三个独立键盘实现按下第一个时计时停止,按下第二个时计时开始,按下第三个是计数值清零从头开始。
第二次作业
作业2: 温湿度采集案例分析课程名称:姓名:学号:日期:班级:作业要求:根据提供的附件资料, 完成下列内容:(1)温湿度传感器DT11的分析(2)温湿度采集的硬件原理图(3)温湿度采集的软件实现过程(写出框图)(4)网上查找一些温湿度传感器并进行比较(5)提交文件名(学号+姓名)下面是作业:(1)温湿度传感器DT11的分析传感器包括一个电阻式感湿元件和一个NTC 测温元件,并与一个高性能8 位单片机相连接。
DHT11 器件采用简化的单总线通信。
单总线即只有一根数据线,系统中的数据交换、控制均由单总线完成。
设备(主机或从机)通过一个漏枀开路或三态端口连至该数据线,以允许设备在不发送数据时能够释放总线,而让其它设备使用总线;单总线通常要求外接一个约5.1kΩ的上拉电阻,这样,当总线闲置时,其状态为高电平。
由于它们是主从结极,只有主机呼叫从机时,从机才能应答,因此主机访问器件都必须严格遵循单总线序列,如果出现序列混乱,器件将不响应主机。
(2)温湿度传感器DT11的分析温湿度采集的硬件原理图(3)温湿度采集的软件实现过程(写出框图)(4)网上查找一些温湿度传感器并进行比较常用的温度传感器及其比较:a.模拟式温度传感器:原理:将驱动电路、信号处理电路以及必要的逻辑控制电路集成在单片IC上,具有实际尺寸小、使用方便、灵敏度高、线性度好、响应速度快等优点。
常见模拟式温度传感器:电压输出型:LM3911、LM335、LM45、AD22103。
电流输出型:AD590。
b.数字式温度传感器:原理:将敏感元件、A/D转换单元、存储器等集成在一个芯片上,直接输出反应被测温度的数字信号,使用方便,但响应速度较慢(100ms数量级)。
c.常用红外温度传感器比较:常用的湿度传感器:1电解质湿敏传感器利用潮解性盐类受潮后电阻发生变化制成的湿敏元件。
最常用的是电解质氯化锂(LiCl )。
从1938年顿蒙发明这种元件以来,在较长的使用实践中,对氯化锂的载体及元件尺寸作了许多改进,提高了响应速度和扩大测湿范围。
单片机第二次作业(二)2024
单片机第二次作业(二)引言概述:本文档旨在介绍单片机第二次作业的相关内容。
在本次作业中,我们将深入研究单片机的应用,包括IO口控制、定时器/计数器、中断控制、串行通信等方面的内容。
通过分析和实践,我们将学习到如何合理利用单片机的功能,实现各种实际应用。
正文:一、IO口控制1.1 了解IO口的基本概念及作用1.2 掌握IO口的配置和初始化方法1.3 实践:通过IO口控制LED灯的点亮和熄灭1.4 掌握输入输出状态的读取和设置方法1.5 实践:设计一个简单的IO口输入输出控制的应用二、定时器/计数器2.1 了解定时器/计数器的基本原理2.2 掌握定时器/计数器的配置和初始化方法2.3 实践:利用定时器实现LED灯的闪烁效果2.4 掌握定时器中断的使用方法2.5 实践:设计一个定时器中断控制的应用三、中断控制3.1 了解中断的基本概念和分类3.2 掌握中断向量表的构成和使用方法3.3 实践:编写中断服务函数,实现外部中断功能3.4 掌握中断优先级的设置方法3.5 实践:设计一个带有中断功能的实时监测系统四、串行通信4.1 了解串行通信的原理和常用通信协议4.2 掌握串口的配置和初始化方法4.3 实践:利用串口进行数据的发送和接收4.4 掌握串口中断的使用方法4.5 实践:设计一个串口通信的数据传输系统五、总结本文档介绍了单片机第二次作业的相关内容,包括IO口控制、定时器/计数器、中断控制、串行通信等方面的知识。
通过深入学习和实践,我们对单片机的应用有了更深入的了解。
希望通过这次作业的学习,能够提升大家的单片机编程水平,并能在实际应用中灵活运用相关知识。
特此总结。
单片机第二次仿真报告 2
第二次仿真要求:利用单片机的P1口设计一个4×4矩阵键盘电路,编写键盘扫描子程序,将所得键码存放在累加器A中。
1、编写程序:ORG 0000HLJMP KEYORG 0100H ;主程序入口地址KEY: MOV P1,#0F0H ;P1高四位初始化为1,第四位为0ACALL KS ;调用KS判断是否有键按下JNZ KEY_1 ;有键按下则调延时子程序ACALL DELAY ;无键按下则调用延时子程序AJMP KEYKEY_1: ACALL DELAY ;加长延时时间,消除键抖动ACALL DELAYACALL KS ;再次调用KS,判断是否真的有键按下JNZ KEY_3 ;若有键真的按下,则执行键盘扫描AJMP KEY ;否则,说明为误动作,返回KEY_3: JNB ACC.0,KEY_4 ;判断ACC.0是否为1,不为1即第一行无键按下,扫描第二行MOV A,#0 ;第一行有键按下,则将0送给AAJMP KEY_7 ;跳转到KEY_7开始进行列判断KEY_4: JNB ACC.1,KEY_5 ;判断ACC.1是否为1,不为1即第二行无键按下,扫描第三行MOV A,#4 ;第二行有键按下,则将4送给AAJMP KEY_7 ;跳转到KEY_7开始进行列判断KEY_5: JNB ACC.2,KEY_6 ;判断ACC.2是否为1,不为1即第三行无键按下,扫描第四行MOV A,#8 ;第三行有键按下,则将8送给AAJMP KEY_7 ;跳转到KEY_7开始进行列判断KEY_6: MOV A,#12 ;若前三行均无键按下,则肯定是第四行有键按下AJMP KEY_7 ;跳转到KEY_7开始进行列判断KEY_7: MOV B,A ;将A中的值存放到B中MOV P1,#0FH ;设置P1口的高四位清零,低四位为1MOV A,P1 ;将P1口中内容送给累加器AJNB ACC.4,KEY_8 ;判断ACC.4是否为1,不为1即第一列无键按下,扫描第二列MOV A,#0 ;第一列有键按下,则将0送给AAJMP KEY_11 ;判断结束,跳转到KEY_11KEY_8: JNB ACC.5,KEY_9 ;判断ACC.5是否为1,不为1即第二列无键按下,扫描第三列MOV A,#1 ;第二列有键按下,则将1送给AAJMP KEY_11 ;判断结束,跳转到KEY_11KEY_9:JNB ACC.6,KEY_10 ;判断ACC.6是否为1,不为1即第三列无键按下,扫描第四列MOV A,#2 ;第三列有键按下,则将2送给AAJMP KEY_11 ;判断结束,跳转到KEY_11KEY_10:MOV A,#3 若前三列均无键按下,则肯定是第四列有键按下KEY_11:ADD A,B ;将A和B中内容相加,送入累加器A中PUSH ACC ;将A中内容入栈保护KEY_12: ACALL DELAYACALL KS ;等待按键释放JNZ KEY_12 ;键还是按下的就跳转KEY_12POP ACC ;键释放,恢复A中内容MOV DPTR,#TAB ;将表TAB的首地址送给数据指针DPTRMOVC A,@A+DPTR ;将表中数据读到累加器A中MOV P0,A ;将A中内容送给P0口LJMP KEYKS: ANL P1,#0F0H ;P1口高四位不变,低四位清零MOV A,P1 ;P1口内容送累加器AMOV B,A ;累加器A中内容送BXRL B,#0F0H ;B中高四位取反,低四位不变MOV A,B ;将B中内容返还给ARET ;出口状态,A中低四位不为0则代表有键按下DELAY: MOV R7,#01H ;延时程序MOV R6,#01HDJNZ R6,$DJNZ R7,$-4RETTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;表中内容为LED七段码显示器字形 DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H,00H 代码(共阴极)END2、实验仿真电路图:下列图为程序运行后的截图,LED七段码显示器作用在于检验编程是否能正确达到目的:\。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
附录1 实验报告格式要求
《微机实验》报告
实验名称 分支程序设计实验 专业班级
一、任务要求
1. 设有8bits 符号数X 存于外部RAM 单元,按以下方式计算后的结果Y 也
存于外部RAM 单元,请按要求编写程序。
240/2204020X X Y X X X
X ⎧≥⎪=<<⎨⎪≤⎩当当当
2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、
秒数值分别通过P0、P1、P2端口输出(以压缩BCD 码的形式)。
P3.0为低电平
时开始计时,为高电平时停止计时。
二、设计思路
1. 可知此实验要求根据不同的值进行不同的运算,因此需要使用分支程序。
X
处于不同的范围,有不同的运算,可知应该先判断其与20的大小,再判断其与
40的大小。
于是需要用到CJNE 指令以及JNC 判断C 指令 。
并由此进行不同的
运算,即可完成程序目的。
2.制作一个1s 的延时,并将其循环60次,并将其存入P0,作为秒的计时。
再
来一个外层循环,将其循环60次,并存入P1,作为分计时,最后再加一个外循
环,使其循环24次,并存入P2,作为时的计时。
开始计时的控制可由JB 语句
来实现
三、资源分配
1.将30H 作为外部RAM 的地址,并将A 的结果存入该RAM 中。
2.将R3,R4,R5,R6,R7作为临时放置数据的中间量,将秒,分,时的结果存入P0,P1,
P2.
四、流程图
五、源代码(含文件头说明、资源使用说明、语句行注释)
1.File name: task2-1.asm
Description:
240
/22040
20
X X
Y X X
X X
⎧≥
⎪
=<<
⎨
⎪
≤
⎩
当
当
当
Date: 10/15/2011
Designed by: 刘珍
Source used: R0,30H
ORG 1000H
MOV R0,30H
MOVX A,@R0
CJNE A,#20,STEP1 ;X≠20,转STEP1
L1: CPL A ;X=20,计算/X
SJMP DONE
STEP1: JNC STEP2 ;C=0,X>20,转STEP2 SJMP L1 ;C=1,X<20,转L1
STEP2: CJNE A,#40,STEP3 ;X≠40,转STEP3
L2: CLR C ;X=40,计算X*X
ADDC A,@R0
SJMP DONE
STEP3: JNC L2 ;C=0,X>40,转L2
CLR C ;C=1,20<X<40,计算X/2
MOV B,#2H
DIV AB
DONE: MOVX @R0,A
SJMP $
END
2. File name: task2-2.asm
Description: 计时器,通过P0/P1/P2输出,通过P3.0控制。
Date: 10/15/2011
Designed by: 刘珍
Source used: R3,R4,R5,R6,R7 临时放置数据的中间量
P0,P1,P2 存放秒,分,时
ORG 0000H
MOV P0,#0H
MOV P1,#0H
MOV P2,#0H
MOV R3,#60
MOV R4,#60
MOV R5,#24H
MOV R6,#0H
MOV R7,#0H
CLR C
MOV P3.0,C
JB P3.0,DONE
DELAY: MOV R2,#50 ;置循环次数
DELAY3: MOV R0,#20
DELAY2: MOV R1,#250
DELAY1: NOP
NOP
DJNZ R1,DELAY1 ;构架三重循环
DJNZ R0,DELAY2
DJNZ R2,DELAY3
INC A ;记录“秒”的次数AJMP BCD ;转化为BCD
CLR C
DA A
MOV P0,A ;通过P0输出秒
DJNZ R3,DELAY ;置秒循环60次
MOV R3,#60 ;恢复秒的循环次数
MOV A,R7
INC A ;记录分的循环次数AJMP BCD ;转化为BCD
CLR C
DA A
MOV R7,A ;保存分的循环次数MOV P1,#0FFH ;读数的预操作
MOV P1,A ;输出分
MOV P0,#0H ;清零,保证下一轮循环
CLR A
DJNZ R4,DELAY ;置分循环60次
MOV R4,#60
MOV R7,#0H
MOV A,R6
AJMP BCD ;转化为BCD
INC A ;记录分的循环次数
CLR C
DA A
AJMP BCD ;转化为BCD
MOV R6,A ;保存分的循环次数
MOV P2,#0FFH
MOV P2,A
MOV P0,#0H
MOV P1,#0FFH
MOV P1,#0H
CLR A ;清零,保证下一轮循环
DJNZ R5,DELAY ;置时循环24次DONE: SJMP $
END
六、程序测试方法与结果、软件性能分析
实验一:赋值1,所得到的结果
实验二:
七、思考题
1.实现多分支结构程序的主要方法有哪些?举例说明。
答:主要方法有:①分支地址表
如:BRATAB: DW SUBRO
DW SUBR1
DW SUBR2
②转移地址表
如:JMPTAB: AJMP SUBR0
AJMP SUBR1
AJMP SUBR2
③地址偏移量表
如:DISTAB: DB SUBRO-DISTAB
DB SUBR1-DISTAB
DB SUBR3-DISTAB
2.在编程上,十进制加1计数器与十六进制加1计数器的区别是什么?怎样用十进制加法指令实现减1计数?
答:十六进制加一直接用INC加一,十进制加一时需先判断该位上是否是9,若是则清零。
八、心得与体会
这一次的编程,第一个程序还算比较顺利,第二个因为对于延时程序不是特别了解,所以着实花了不少功夫。
一遍又一遍地看书,计算,调试,最后才终于做出来。
阳光明媚的周末就这样被程序给占据了。
现在才真正体会到,想要编出一个程序来,扎实的基础知识是必不可少的。
所以,下次编程,得仔细看看书,现有理论,而后实践,这才是学习知识最为简单的过程。