版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
试题编号3301控制要求:在内部RAM中20H开始的区域中存有二十个无符号数,找出其中最大和最小数,分别送34H和35H单元。(注:目标程序于0800H单元开始)ORG0000HLJMPMAINORG0800HMAIN:MOVR0,#20H;从内部20H单元开始查找MOVR7,#19;20个数需要比较19次MOV34H,@R0;将20H单元的内容同时送34H和35HMOV35H,@R0LOOP:INCR0;指向下一个单元MOVA,@R0;读取到ACCCJNEA,34H,B1;将读取的内容与34H的内容进行比较,不相等跳B1处SJMPEXIT;相等则不作其它比较跳EXIT处B1:JCXIAO;若A的内容小于34H的内容则C为1,跳XIAO处MOV34H,A;C为0表明A大于34H的内容则替换掉34H的内容SJMPEXIT;替换后退出不作最小数比较XIAO:CJNEA,35H,B2;作最小数比较,不相等跳B2处SJMPEXIT;相等退出到EXIT处B2:JNCEXIT;若A的内容大于35H的内容跳EXIT处MOV35H,A;若A的内容小于35H的内容则替换掉35H的内容EXIT:DJNZR7,LOOP;判断比较次数是否完毕SJMP$;比较完毕原地等待END3102控制要求:利用8031定时器与中断功能控制一个“航标灯”,黑夜时发光二极管按指定频率闪烁(如:亮2S,灭2S,循环);白天时发光二极管不亮。电路图:PP1.0INT018031LEDR110kΩVT9013R2200ΩP3.2+5V12Rp10kΩ光敏电阻电路工作原理:白天光敏电阻阻值小,使P3.2输入电位为高电平,不产生中断,使LED灭。晚上光敏电阻阻值变大,使P3.2的输入电位为低电平,这时产生中断,中断使LED闪烁。只要是在晚上要求LED一直闪烁。所以中断应该采用电平触发方式。调试方法:接好电路,编好程序,使光敏电阻暴露在光线下,调节Rp到最小值,这时LED应该闪烁。慢慢调大Rp的阻值,使LED刚刚灭,保持Rp这时的阻值即可。当用手遮住光敏电阻的光线,LED就会闪烁。编程思路:使用定时器T0,方式1。所以TMOD=00000001即:01H使用指令:MOVTMOD,#01H每50ms中断一次当晶振为12MHZ时,1us加一。50ms=50000us。所以赋初值为65536-50000=15536,将15536转换为十六进制为3CB0H高八位送TH0,第八位送TL0.使用指令:MOVTH0,#3CHMOVTL0,#0B0H当晶振为6MHZ时,2us加一。50ms=50000us,50000/2=25000所以赋初值为65536-25000=40536,将40536转换为十六进制为9E58H高八位送TH0,第八位送TL0,使用指令:MOVTH0,#9EHMOVTL0,#58H当晶振为11.0592MHZ时,12/11.0592us加一。50ms=50000us,50000*11.0592/12=46080所以赋初值为65536-46080=19456,将19456转换为十六进制为4C00H高八位送TH0,第八位送TL0,使用指令:MOVTH0,#4CHMOVTL0,#00H因为50ms闪烁一次太快,当要求2S进行一次闪烁时则需要中断2S/50 ms=40次。参考程序:(以12MHZ为例)ORG0000HAJMPMAINORG0003H;外部中断0的中断入口地址AJMPHYSDMAIN:MOVTMOD,#01H;设置T0工作方式1,且为定时MOVIE,#81H;CPU开中断和外部中断0开中断BT:CLRP1.0SJMPBT;白天灭LED且等待中断HYSD:SETBP1.0;亮LEDMOVRO,#40;定时40次,即:50ms*40=2S(这里亮2S)LP:MOVTH0,#3CH;赋初值MOVTL0,#0B0HSETBTR0;启动定时JNBTF0,$;等待50ms定时到,定时到后TF0为1CLRTF0;软件清除T0的溢出标志位TF0DJNZR0,LP;判断是否有40次T0定时MOVR0,#20LP1:MOVTH0,#3CHMOVTL0,#0B0HSETBTR0JNBTF0,$CLRTF0DJNZR0,LP1JNBP3.2,HYSDRETI18句试题编号3105考题:循环点亮8个发光二极管。控制要求:利用左移或右移指令从左向右点亮并循环n次,或从右向左点亮并循环n次,循环完毕全部熄灭。(循环顺序及次数由考评员现场指定)高电单片机实操程序1.电路原理图:8031P8031P1.0P1.7R0R7200ΩLED0LED7CC4011CC4011+5V1234567891011121314151617181920P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/VPDRXDP3.0TXDP3.1INT0P3.2INT1P3.3T0P3.4T1P3.5WRP3.6RDP3.7XTAL2XTAL1Vss4039383736353433323130292827262524232221VccP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VppALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0803180518751+5V+5V1213141110981234567CC4011Vcc4A4B4Y3Y3B3A1A1B1Y2Y2A2BVss2.电路工作原理:根据电路原理图可知:当某位输出为高电平时对应的LED发光。要求从左向右移动时先从P1口输出10000000即:80H这时LED7亮,其它灭,亮的时间可以通过延时确定。当向P1口送01000000即:40H这时LED6亮,其它灭,依次类推。所以可以通过RRA指令实现。从左向右移动参考程序:ORG0000HMOVR7,#40;循环5次,一次需要依次点亮8个LED,所以为40MOVA,#80H;送初值给累加器ACC,如果向左移动就用MOVA,#01HLOOP:MOVP1,A;送P1口进行LED显示ACALLDELAY;显示的时间通过延时子程序决定RRA;将A的内容循环右移动一位,如果向左移动就用RLADJNZR7,LOOP;判断循环是否完毕MOVP1,#00HSJMP$;完毕后等待DELAY:MOVR4,#5;延时0.5S子程序(fOSC=6MHZ),如fOSC=12MHZ,用#10D0:MOVR5,#125;5*2usD1:MOVR6,#200;125*5*2*2usD2:DJNZR6,D2;200*125*5*2*2usDJNZR5,D1;125*5*2*2usDJNZR4,D0;5*2usRETEND从右向左移动参考程序:ORG0000HMOVR7,#32;循环4次,一次需要依次点亮8个LED,所以为32MOVA,#01H;送初值给累加器ACC用MOVA,#01H亮LED0LOOP:MOVP1,A;送P1口进行LED显示ACALLDELAY;显示的时间通过延时子程序决定RLA;将A的内容循环左移动一位DJNZR7,LOOP;判断循环是否完毕MOVP1,#00HSJMP$;完毕后等待DELAY:MOVR4,#5;延时0.5S子程序(fOSC=6MHZ),如fOSC=12MHZ,用#10D0:MOVR5,#125;5*2usD1:MOVR6,#200;125*5*2*2usD2:DJNZR6,D2;200*125*5*2*2usDJNZR5,D1;125*5*2*2usDJNZR4,D0;5*2usRETEND从左向右移动3次,然后从右向左移动2次参考程序:ORG0000HMOVR7,#24;循环3次,一次需要依次点亮8个LED,所以为24MOVA,#80H;送初值给累加器ACCLOOP:MOVP1,A;送P1口进行LED显示ACALLDELAY;显示的时间通过延时子程序决定RRA;将A的内容循环右移动一位DJNZR7,LOOP;判断循环是否完毕MOVP1,#00HMOVR7,#16;循环2次,一次需要依次点亮8个LED,所以为16MOVA,#01H;送初值给累加器ACCLOOP1:MOVP1,A;送P1口进行LED显示ACALLDELAY;显示的时间通过延时子程序决定RLA;将A的内容循环右移动一位DJNZR7,LOOP1;判断循环是否完毕MOVP1,#00HSJMP$;完毕后等待DELAY:MOVR4,#5;延时0.5S子程序(fOSC=6MHZ),如fOSC=12MHZ,用#10D0:MOVR5,#125;5*2usD1:MOVR6,#200;125*5*2*2usD2:DJNZR6,D2;200*125*5*2*2usDJNZR5,D1;125*5*2*2usDJNZR4,D0;5*2usRETEND高电实操3103:计数报警考题:利用8031计数器,当计数满n个后LED发光二极管发光报警。计数脉冲用消抖动开关产生。控制要求:按按钮开关n次,发光二极管发光。+5V121314+5V1213141110981234567CC4011Vcc4A4B4Y3Y3B3A1A1B1Y2Y2A2BVss56R3R45.1kΩELDVT901310kΩ200Ω+5VCC40115.1kΩJAT0(P3.4)P1.08031+5VR1R21141234+5V2.电路工作原理:考题要求,每按下一次按钮时计数一次,通过程序设定计数次数,按下次数到后LED亮(P1.0输出高电平)。根据硬件结构可知:按键输入为计数器T0。所以T0在这里不能作为定时器,而是作为计数器。所以TMOD=00000100(13位计数器)采用指令MOVTMOD,#04H或TMOD=00000101(16位计数器)采用指令MOVTMOD,#05H或TMOD=00000110(自动重装入8位计数器)采用指令MOVTMOD,#06H输入管脚P3.4如果直接通过开关接入的话,会有很大的干扰,也就是按下或松开时会有抖动,造成按下一次可能会计数若干次。所以采用两个与非门组成一个触发器进行抗干扰(防抖动电路)解法一:用模式1,不可循环START:MOVTMOD,#05H;设置T0为16位计数器MOVTH0,#0FFH;赋初值此处计数10次。因为16位最多可计数65536MOVTL0,#0F6H;次,初值赋65536-10=65526=0FFF6HSETBTR0;启动计数器CLRP1.0;计数未到灭LEDJNBTF0,$;等待计数到。如果计数到则TF0自动变为“1”SETBP1.0;计数到亮LEDSJMP$;等待END解法二:用模式2,可循环START:MOVTMOD,#06H;模式2,自动重装入8位计数器CLRP1.0;开始灭LEDMOVTH0,#0F6H;赋初值,模式2最多可计数256次。这里为10次MOVTL0,#0F6H;初值为256-10=246=0F6H,模式2赋初值一样SETBTR0;启动计数器LP:JBCTFO,REP;计数未满顺序执行,满则跳REP同时将TF0清零。SJMPLPREP:CPLP1.0;将输出状态取反,SJMPLP;跳LP等待下次计数10次END高电考题3104:数码管显示考题:利用8031串行口和74LS164移位寄存器驱动数码管。控制要求:数码管依次按指定的顺序循环并显示数字。aabcdefgh+5V220Ω×8R1~8CL—3161BS+5V1478031P3.0(RXD)P3.1(TXD)P1.01011174LS164Q0Q1Q2Q3Q4Q5Q6Q7ABCKR1289VssVcc2040+5V1.电路原理图:2.电路工作原理要求从串口将数据发送出去,所以串口为工作方式0,也就是使SCON=00000000SM0SM1SM2RENSM0TB8RB8TIRI00:工作方式0为移位寄存器SM0SM1SM2RENSM0TB8RB8TIRI00:工作方式0为移位寄存器当执行MOVA,#3FHMOVSBUF,A时,其发送动作为:P3.0(RXD)端送数据,低位在前,高位在后。P3.1(TXD)输出移位脉冲。示意如下:3FH=00111111当八位数字发送完毕后单片机自动将TI置1,没有发送完毕TI始终为0根据硬件可知,P3.0接在74LS164的数据输入端,P3.1接在74LS164的时钟端。而74LS164的功能为:第一个时钟来了将数据输入端的状态移位到Q7端,Q7的状态到Q6端……依次类推最后Q1的状态到Q0端,Q0状态丢失。第二个时钟脉冲来到再作一次全体移动。所以当来了8个时钟脉冲后。原来第一次Q7的状态就到了Q0。也就是当数据端随着时钟脉冲同步输出00111111时,8个时钟脉冲过后74LS164的Q7……Q0输出也为00111111,这时会使共阴数码管显示一个“3”。3.参考程序例如:规定按1、3、5、7、9、2、4、6、8、0、A、B、C、D、E、F、-、P、·、熄灭顺序循环显示。法一.START:MOVSCON,#00H;串口为工作方式0,8位移位寄存器方式MOVR0,#0;送偏移量初值MOVDPTR,#TAB;送表头首地址给DPTR,也就是表06H所在的地址LP:MOVA,R0MOVCA,@A+DPTR;查表,将查的的数据送ACCCPLA;如果为共阳LED就加上此句,否则不加MOVSBUF,A;送串口进行发送JNBTI,$;发送未完TI为0就等待,完则TI为1顺序执行CLRTI;发送结束标志必须用软件清零INCR0;偏移量加一ACALLDELY;调延时,也就是LED显示一位数字的时间CJNER0,#20,LP;因为表格有20个字节数据,所以这里为20SJMPSTART;从头在来,无限循环下去TAB:DB06H,4FH,6DH,07H,6FH,5BH,66H,7DH,7FH,3FH(共阴)DB77H,7CH,39H,5EH,79H,71H,40H,73H,80H,00HDELY:MOVR4,#5;延时0.5S子程序(fOSC=6MHZ),如fOSC=12MHZ,用#10D0:MOVR5,#125D1:MOVR6,#200D2:DJNZR6,D2DJNZR5,D1DJNZR4,D0RET思考题:如果显示为循环显示8051CPU,每次间隔1秒,共大循环5次。试试如何改动程序。试题编号(3106)霓虹灯控制控制要求:实现8个发光二极管从两边向中间或从中间向两边依次循环点亮来模拟霓虹灯效果,循环n次后全部熄灭。1.电路原理图P1.0PP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.78031VccVssLED1234567891011121314151617181920P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/VPDRXDP3.0TXDP3.1INT0P3.2INT1P3.3T0P3.4T1P3.5WRP3.6RDP3.7XTAL2XTAL1Vss4039383736353433323130292827262524232221VccP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VppALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0803180518751+5V1213141110981234567CD401174LS0474LS04Vcc14Vss178+5V⊥2.电路工作原理根据硬件可知:P1口某位输出为高电平,则对应的LED发光.示意图如下:LED7LED6LED5LED4LED3LED2LED1LED0LED7LED6LED5LED4LED3LED2LED1LED0如果要使得LED4和LED3亮,则P1口应该输出为:00011000即:18H输出状态为:如果要使得LED5和LED2亮,则P1口应该输出为:00100100即:24H输出状态为:如果要使得LED6和LED1亮,则P1口应该输出为:01000010即:42H输出状态为:如果要使得LED7和LED0亮,则P1口应该输出为:10000001即:81H输出状态为:因此,如果希望LED输出状态由中间向两边亮,则表格按照顺序填写:18H,24H,42H,81H即可.根据此原理,无论状态如何变化都有对应的数据.3.参考程序:从中间向两边亮,每次点亮0.5S共6个循环后结束.ORG0000HMOVDPTR,#LED;送表首地址给DPTRMOVR7,#6;此程序共6个循环LOOP1:MOVR0,#0;送偏移量初值LOOP:MOVA,R0MOVCA,@A+DPTR;查表MOVP1,A;送P1口进行显示ACALLDELAY;调用显示时间INCR0;偏移量加一CJNER0,#4,LOOP;表格里4个数据没循环完跳`LOOPDJNZR7,LOOP1;6次没有循环完跳LOOP1MOVP1,#00HSJMP$LED:DB18H,24H,42H,81HDELAY:.;延时0.5秒程序....RETEND思考题:从两边向中间亮,每次状态亮1秒,共4个大循环后结束.先从两边向中间亮3次,再从中间向两边亮5次,共6个循环试卷编号(3107):算术运算器控制要求:分别在内部RAM中20H单元和30H单元置入两个数,进行(20H+30H)30H的算术运算,将运算结果通过串口通讯方式用LED显示出来。(提示:运算值不超过“F”)参考电路ababcdefgh+5V220Ω×8R1~8CL—3161BS+5V1478031P3.0(RXD)P3.1(TXD)P1.01011174LS164Q0Q1Q2Q3Q4Q5Q6Q7ABCKR1289VssVcc2040+5V1234567891011121314151617181920P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/VPDRXDP3.0TXDP3.1INT0P3.2INT1P3.3T0P3.4T1P3.5WRP3.6RDP3.7XTAL2XTAL1Vss4039383736353433323130292827262524232221VccP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VppALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.08031805187512.电路工作原理:与试题编号3104的硬件一样,工作原理相同。3.参考程序:ORG0000HMOVA,20H;将20H的内容送累加器ACCADDA,30H;将A的内容与30H的内容相加MOVB,30H;将30H的内容送寄存器BMULAB;将A的内容与B的内容相乘,低八位送ACC,高八位送BMOVDPTR,#TAB;送显示0~F的数据表格的表首地址到DPTRMOVCA,@A+DPTR;查表MOVSBUF,A;从串口发送进行显示JNBTI,$;等待发送完毕CLRTISJMP$TAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FHDB6FH,77H,7CH,39H,5EH,79H,71HEND试卷编号(3108):继电器控制实训目的掌握软件延时程序,根据要求熟练编写不同的延时时间程序。掌握隔离输出的常用方式之一:继电器隔离输出2.控制要求:设计程序使P1.0反复输出高、低电平,通过继电器控制LED1和LED2轮流点亮。程序采用软件延时n秒。(延时时间由考评员现场指定,闪烁时间>1.5S)3.参考电路图:KAKAKA继电器同相驱动器74LS07P1.08031VssVcc4020+5V+5VLED1LED2R1220ΩR2220Ω1N4001D14.工作原理:当P1.0输出为高电平时,经过同相器74LS07后输出也为高电平,这时KA两端电压相等,KA不动作。这时LED1得电亮。当P1.0输出为低电平时,74LS07输出也为低电平。KA得电吸合。这时LED2亮。二极管D是为了续流而设。当P1.0轮流输出高低电平,则LED1和LED2轮流被点亮。5.参考程序:(该参考程序在12MHZ的晶振下运行,每1.5S两LED改变一次状态)ORG0000HSTART:CPLP1.0;此程序每隔相同时间P1.0输出取反一次,相隔时间由子ACALLDELAY;程序DELAY的延时时间决定SJMPSTARTDELAY:MOVR6,#15;此程序约为1.5S(稍微大于1.5S)M:MOVR5,#200N:MOVR4,#250DJNZR4,$;此句执行时间为:2*1us*250*200*15=1.5SDJNZR5,NDJNZR6,MRETEND6.思考题:单片机复位后先亮LED1时间为1S。再亮LED2,时间为2.5秒。循环不止。试卷编号(3109):倒计时音乐报警器实训目的:熟悉简单的按键输入进行控制设备和显示2.控制要求:按下起动按钮,数码管从“9—0”按递减顺序显示,当显示到“0”时,音乐响起,按下停止按钮,音乐停止。3.参考电路图:+5V+5Vabcdefgh220Ω×8R1~8CL—3161BS+5V1478031P3.0(RXD)P3.1(TXD)P1.01011174LS164Q0Q1Q2Q3Q4Q5Q6Q7ABCKR1289VssVcc2040+5V音乐芯片ZL—GGTR9220Ω8Ω0.5W扬声器+5VVssVccP1.1P3.2P3.3QATA信号4.工作原理:单片机复位后先置P1.1为低电平然后等待启动按钮QA启动,启动后数码管先显示9,隔段时间后显示8。依次往下显示。到显示0后置P1.1输出为高电平,这时音乐芯片加上了工作电压开始工作。扬声器就开始发音。当停止按钮(TA)按下,音乐停止。5.参考程序:ORG0000HCLRP1.1JBP3.2,$MOVDPTR,#TABMOVR0,#0CONT1:MOVA,R0MOVCA,@A+DPTRMOVSBUF,ALP1:JBCTI,LPSJMPLP1LP:CJNEA,#3FH,CONTSETBP1.1JBP3.3,$CLRP1.1SJMP$CONT:ACALLDELAYSJMPCONT1TAB:DB6FH,7FH,07H,7DH,6DH,66H,4FH,5BH,06H,3FHDELAY:MOVR7,#10M:MOVR6,#200N:MOVR5,#250DJNZR5,$DJNZR6,NDJNZR7,MRETEND试卷编号(3110):数据传送实训目的:熟练掌握单片机在执行数据传送和堆栈指令时内部的变化情况2.控制要求:把20H单元开始的外部RAM单元中的8个数据送到30H单元开始的外部RAM单元中;存取要求:源数据存储地址及目的地数据存储地址使用堆栈。在脱机运行下的参考程序:ORG0000HMOV70H,#20HMOV71H,#30HMOVR7,#8LOOP:PUSH71HPUSH70HINC70HINC71HDJNZR7,LOOPMOVR7,#8MOVDPH,#00HLOOP1:POPDPLMOVXA,@DPTRPOPDPLMOVX@DPTR,ADJNZR7,LOOP1SJMP$END循环灯点亮(高电实操题3105)循环点亮8个发光二极管LED。要求:按规定的顺序依次点亮8个LED(每个亮0.5S),循环N次。要求:按D1、D2、D3、D4、D5、D6、D7、D8顺序依次点亮(每个亮0.5S),循环3次。解:START:MOVR1,#3LP0:MOVR0,#0MOVDPTR,#TABLP:MOVA,R0MOVCA,@A+DPTRMOVP1,AACALLDELYINCR0CJNER0,#8,LPDJNZR1,LP0MOVP1,#00HSJMP$TAB:DB01H,02H,04H,08H,10H,20H,40H,80HDELY:MOVR4,#5;延时0.5S子程序(fOSC=6MHZ),如fOSC=12MHZ,用#10D0:MOVR5,#125D1:MOVR6,#200D2:DJNZR6,D2DJNZR5,D1DJNZR4,D0RET;共20句计数报警(高电实操3103)用8031计数器T0,当计满n个数后,发光二极管LED发光报警。计数脉冲用消抖动开关产生,设n=10。用模式2,可循环解法一:START:MOVTMOD,#05H法二:START:MOVTMOD,#06H不可循环MOVTH0,#0FFHCLRP1.0MOVTL0,#0F6HMOVTH0,#0F6HSETBTR0MOVTL0,#0F6HCLRP1.0SETBTR0JNBTF0,$LP:JBCTFO,REPSETBP1.0SJMPLPSJMP$REP:CPLP1.0SJMPLP“航标灯”(高电实操题3102)利用8031定时器与中断功能控制一个“航标灯”,要求:黑夜时发光二极管按指定的频率闪烁(例如:亮2s、灭2s、循环);白天时发光二极管不亮。用定时器T0,定时50ms,模式1,加软件延时到2s。TMOD=00000001=01Hfosc=12MHzT0计数初值X=10000H-12×50×103/12=3CB0H用RO软件计数2s/50ms=40ORG0000HAJMPMAINORG0003HAJMPHYSDMAIN:MOVTMOD,#01HMOVIE,#81HBT:CLRP1.0SJMPBTHYSD:CPLP1.0MOVRO,#40LP:MOVTH0,#3CHMOVTL0,#0B0HSETBTR0JNBTF0,$CLRTF0DJNZR0,LPJNBP3.2,HYSDRETI18句数码管显示(高电实操题3104)利用8031串行口和74LS164驱动一个数码管,要求:数码管依次按指定的顺序循环并显示数字。例如:规定按1、3、5、7、9、2、4、6、8、0、A、B、C、D、E、F、-、P、·、熄灭顺序循环显示。法一.START:MOVSCON,#00HMOVR0,#0MOVDPTR,#TABLP:MOVA,R0MOVCA,@A+DPTRMOVSBUF,AJNBTI,$CLRTIINCR0ACALLDELYCJNER0,#20,LPSJMPSTARTTAB:DB06H,4FH,6DH,07H,6FH,5BH,66H,7DH,7FH,3FH(共阴)DB77H,7CH,39H,5EH,79H,71H,40H,73H,80H,00HDELY:MOVR4,#10;延时0.5s子程序(fosc=12MHz)┆RETMOVR0,#20HMOVR1,#19MOV34H,@R0MOV35H,@R0START:INCR0MOVA,@R0CJNEA,34H,MSJMPEXITM:JCNMOV34H,ASJMPEXITN:CJNEA,35H,SSJMPEXITS:JNCEXITMOV35H,AEXIT:DJNZR1,STARTSJMP$END高电单片机实操程序循环灯点亮(高电实操题3105)循环点亮8个发光二极管LED。要求:按规定的顺序依次点亮8个LED(每个亮0.5S),循环N次。要求:按D1、D2、D3、D4、D5、D6、D7、D8顺序依次点亮(每个亮0.5S),循环3次。解:START:MOVR1,#3LP0:MOVR0,#0MOVDPTR,#TABLP:MOVA,R0MOVCA,@A+DPTRMOVP1,AACALLDELYINCR0CJNER0,#8,LPDJNZR1,LP0MOVP1,#00HSJMP$TAB:DB01H,02H,04H,08H,10H,20H,40H,80HDELY:MOVR4,#5;延时0.5S子程序(fOSC=6MHZ),如fOSC=12MHZ,用#10D0:MOVR5,#125D1:MOVR6,#200D2:DJNZR6,D2DJNZR5,D1DJNZR4,D0RET;共20句计数报警(高电实操3103)用8031计数器T0,当计满n个数后,发光二极管LED发光报警。计数脉冲用消抖动开关产生,设n=10。用模式2,可循环解法一:START:MOVTMOD,#05H法二:START:MOVTMOD,#06H不可循环MOVTH0,#0FFHCLRP1.0MOVTL0,#0F6HMOVTH0,#0F6HSETBTR0MOVTL0,#0F6HCLRP1.0SETBTR0JNBTF0,$LP:JBCTFO,REPSETBP1.0SJMPLPSJMP$REP:CPLP1.0SJMPLP“航标灯”(高电实操题3102)利用8031定时器与中断功能控制一个“航标灯”,要求:黑夜时发光二极管按指定的频率闪烁(例如:亮2s、灭2s、循环);白天时发光二极管不亮。用定时器T0,定时50ms,模式1,加软件延时到2s。TMOD=00000001=01Hfosc=12MHzT0计数初值X=10000H-12×50×103/12=3CB0H用RO软件计数2s/50ms=40ORG0000HAJMPMAINORG0003HAJMPTNTMAIN:MOVTMOD,#01HMOVIE,#81HBT:CLRP1.0SJMPBTTNT:CPLP1.0MOVRO,#40LP:MOVTH0,#3CH;如果是11.0592MHZ则TH0=4BHTL0=FEHMOVTL0,#0B0H;如果是6MHZ则TH0=9EHTL0=58HSETBTR0JNBTF0,$CLRTF0DJNZR0,LPJNBP3.2,TNTRETI18句数码管显示(高电实操题3104)利用8031串行口和74LS164驱动一个数码管,要求:数码管依次按指定的顺序循环并显示数字。例如:规定按1、3、5、7、9、2、4、6、8、0、A、B、C、D、E、F、-、P、·、熄灭顺序循环显示。法一.START:MOVSCON,#00HMOVR0,#0MOVDPTR,#TABLP:MOVA,R0MOVCA,@A+DPTRMOVSBUF,AJNBTI,$CLRTIINCR0ACALLDELYCJNER0,#20,LPSJMPSTARTTAB:DB06H,4FH,6DH,07H,6FH,5BH,66H,7DH,7FH,3FH(共阴)DB77H,7CH,39H,5EH,79H,71H,40H,73H,80H,00HDELY:MOVR4,#10;延时0.5s子程序(fosc=12MHz)┆RETMOVR0,#20HMOVR1,#19MOV34H,@R0MOV35H,@R0START:INCR0MOVA,@R0CJNEA,34H,MSJMPEXITM:JCNMOV34H,ASJMPEXITN:CJNEA,35H,SSJMPEXITS:JNCEXITMOV35H,AEXIT:DJNZR1,STARTSJMP$END3102考核项目考核内容扣分标准配分扣分记录得分利用8031定时器与中断功能控制一个“航标灯”。要求黑夜时发光二级管按指定频率闪烁(例如;亮2S。灭2S):白天时发光二级管不亮原程序: ORG0000H(程序起始地址) AJMPMAIN(跳转到主程序入口) ORG0003H(中断入口) AJMPHYSD(等待中断请求)MAIN: MOVTMOD,#01H( C/T=0定时1定时为00000001) MOVIE,#81H(允许外部中断0中断:10000001即EA=1EX0=1) CLRP1.0(关灯) SJMP$(等待中断)HYSD: SETBP1.0(亮灯) ACALLDELY CLRP1.0 ACALLDELY RETI(中断返回)DELY: MOVR0,#20(延时1S子程序)LP: MOVTH0,#3CH(置计数初值高位) MOVTL0,#0B0H(置计数初值低位) SETBTR0(启动计数器) JNBTF0,$(T0没有溢出,就地等待) CLRTF0(T0C产生溢出清标置位) DJNZR0,LP(减1不为0转移指令) RET晶振:12MHZ,#20=1S6MHZ,#20=0.5S考核项目考核内容扣分标准配分扣分记录得分利用8031串行口和74LS164移位寄存器驱动的一个数码管。要求:数码管依次按指定的顺序循环显示数字程序:方法一(循环5次)显示1到F有三个不清楚是什么START: MOVR1,#5(循环5次)LP0: MOVR0,#0(偏移量) MOVDPTR,#TAB(TAB表首地址送DPTR)LP: MOVA,R0(R0里的内容送A) MOVCA,@A+DPTR(取显示数据) MOVSBUF,A(数据送SBUF,启动串行口发送数据) JNBTI,$(等待一帧发送结束JNB为0跳转) CLRTI(清串行口中断) INCR0(显示值加1) ACALLDELY(调延时子程序) CJNER0,#19,LP(19个数据显示完否?未完成跳LP,完了往下执行) DJNZR1,LP0 MOVP1,#00H(循环完毕熄灯) SJMP$TAB: DB0C0H,0F9H,0A4H,0B0H,99H,92H DB82H,0F8H,80H,90H DB88H,83H,0C6H,0A1H DB86H,8EH,0BFH,7FH,0FFHDELY: MOVR4,#10D0: MOVR5,#125D1: MOVR6,#20D2: DJNZR6,D2 DJNZR5,D1 DJNZR4,D0 RET方法二:START: MOVSCON,#00H(设置串行口方式0{同步移位}) MOVR0,#0 MOVDPTR,#TABLP: MOVA,R0 MOVCA,@A+DPTR MOVSBUF,A JNBTI,$ CLRTI INCR0 ACALLDELY CJNER0,#19,LP SJMPSTARTTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H DB82H,0F8H,80H,90H DB88H,83H,0C6H,0A1H DB86H,8EH,0BFH,7FH,0FFHDELY:MOVR4,#1D0: MOVR5,#12D1: MOVR6,#20D2: DJNZR6,D2 DJNZR5,D1 DJNZR4,D0 RET单片机工程实践题选1.十字路口交通灯的模拟控制可模拟十字路口交通灯控制,时间显示,紧急状况控制。要求:东西方向、南北方向时间显示由LED数码管显示,显示时间从0—9,间隔时间为1秒,由东西方向和南北方向时间的低位显示。发生紧急情况时,按下紧急按钮,P3.2为东西方向紧急按钮输入,P3.3为南北方向紧急按钮输入,利用中断程序实现东西方向和南北方向灯的互换。电路具体接法如下:其中P1.0控制东西方向的红灯,P1.1控制南北方向的红灯,P1.2控制东西方向的绿灯,P1.3控制南北方向的绿灯,P1.4控制东西方向的黄灯,P1.5控制南北方向的黄灯,P1.6控制东西方向的车的显示,P1.7控制南北方向的车的显示。P3.2为东西方向紧急按钮输入,P3.3为南北方向紧急按钮输入。时间显示部分有系统功能板上8155的口控制,8155的PA4口控制东西方向时间的低位显示,8155的PA5口控制东西方向时间的高位显示,8155的PA6口控制南北方向时间的低位显示,8155的PA7口控制南北方向时间的高位显示,8155的PB0~PB6为时间的段代码。8155的控制口地址为2100H,PA口地址为2101H,PB口地址为2102H。2.生产车间流水线自动控制模拟可模拟生产车间流水线自动控制及产生故障后自动报警停止流水线工作,只要按下任一按钮就产生报警信号,排除后继续工作。要求:按照一定工序,利用发光二极管的依次点亮,实现生产车间流水线自动控制,可用按钮模拟发生紧急故障,通过中断程序处理紧急故障,能显示出出现故障车间流水线的位置。电路具体接法如下:P1.0~P1.7分别控制从准备到入库的8道工序,P3.3为报警的输入端,只要按下任一按钮就会产生报警信号。3.步进电机控制与驱动要求:掌握步进电机的工作原理及控制方法。能实现对步进电机正反转控制。电路具体接法如下:通过P1.0~P1.3控制步进电机BA~BD四个相。电路中已有驱动。4.直流电机的控制与驱动及速度的测量要求:通过编程实现对直流电机的启动、停止、正反转控制、调速等性能,调速范围为100—1000转/分钟。电路具体接法如下:通过系统功能板的D/A0832输出端已连接至DJ1来控制电机转速,测速的反馈为DJ_FO已和P3.4相接。D/A0832的地址为6000H5.继电器控制要求:编程实现继电器的闭合和断开,并由发光二极管进行显示。电路具体接法如下:本电路采用JDC—3F5VDC继电器,输出可控制220V/2A、125V/12A交流负载。本系统中用指示灯作为负载,继电器的控制输入为JIN已连接至P1.7,经7407驱动后输出到继电器线圈。低电平时,继电器动作。继电器的常开、常闭触点输出接二个指示灯用于指示继电器触点状态。128×64点阵汉字LCD应用电路要求:编程显示自己的姓名、班级、学号。电路具体接法如下:128×64点阵汉字LCD可以显示各种图形、曲线、汉字,其使用非常广泛,它与单片机CPU的接口采用8位并行总线,在使用本液晶显示模块时,先开启电源,指示灯亮时,电路才可以工作,电位器W1用于调节显示屏的亮度。译码地址已连接为3000H~3FFFH16×16矩阵LED应用电路要求:编程循环显示“启东计算机有限公司”电路具体接法如下:16×16矩阵LED正好可以显示一个中文字,LED的控制与驱动用可编程并行接口芯片8255和7407以及8D锁存器74LS273来实现。74LS273的片选信号和8255选通信号由插孔273CS和8255CS引出,系统已连接。8255的地址为3000H~3FFFH,74LS273的地址为6000~6FFFH。8、直流电机加速控制程序(晶振频率12MHZ)实现以下功能;(1)在5秒钟内,使直流电机从零速升到额定转速(2)利用T1定时,选择工作方式1用中断方式延时其中:D/A转换器地址为6000H,测速反馈单元接P3,4口9、直流电机减速程序设计设计直流电机减速控制程序(晶振频率为12MHZ)实现以下功能:(1)在3秒钟内,使直流电机从额定转速降到120转/分(2)延时方式利用软件延时实现其中;D/A转换器地址为6000H,测速反馈单元接P3、4口10、设计方波波形,实现以下功能;(1)通过数字示波器显示波形(2)方波波形脉宽为40MS(3)利用定时器T0方式1,中断方式实现其中D/A转换器地址为6000H11、设计步进电机转速控制程序(晶振频率为12MHZ)实现以下功能:(1)控制步进电机转速300转/分(2)能实现正转或反转(3)控制方式采用四相八拍控制其中:P1.0-P1.3控制步进电机BA-BD四个相12、设计步进电机定点控制程序(晶振频率为12MHZ)实现以下功能(1)控制步进电机在5秒内达到指定位置(2)利用定时器T0方式1中断方式实现(3)控制方式采用四相双四拍其中P1.0-P1.3控制步进电机BA-BD四个相,电路已有驱动部分13、设计生产工序模拟控制程序(晶振频率为12MHZ)实现以下功能(1)1和2道工序工作时间为2秒(2)3和4道工序工作时间为5秒(3)5和6道工序工作时间为7秒(4)7和8道工序工作时间为8秒(5)当某道工序发生故障时,能实现报警并显示其故障工序位置(6)利用软件延时,故障报警利用外部中断1实现其中:P1.0-P1.7分别控制从准备到入库的8道工序,P3.3为报警的输入端,只要按下任一按钮就会产生报警信号14、设计键盘控制程序(晶振频率为12MHZ)实现以下功能(1)检测1、2号键有无键按下,要求1号键按下时显示“1”,2号键按下显示“(2)延时方式利用软件延时实现(3)数码管显示数码利用查表指令实现其中:8155的PA口控制数码管位显示,8155的PB0-PB6为段代码。8155的控制口地址为2100H,PA口地址位2101H,PB口地址为2102H。15、设计秒表控制程序(晶振频率为12MHZ)实现以下功能;(1)60秒倒计时。当时间显示为0时,东西方向黄灯亮,南北方向绿灯亮(2)数码管显示方式采用动态显示(3)利用定时器T0,方式1中断方式实现16、设计交通紧急处理程序设计(晶振频率为12MHZ)实现以下程序:(1)按紧急处理1键时,东西方向数码管显示为“11”(2)按紧急处理2键时,南北方向数码管显示为“22”(3)按紧急处理1键利用P3.2东西方向紧急按钮输入,紧急处理2键利用P3.3南北方向紧急按钮输入(4)采用查询方式单片机工程实践题选答案1、P8155EQU2100HPBEQU2102HPAEQU2101HORG0000HAJMPMAINORG0003HAJMPINT00ORG0013HAJMPINT11ORG0030HMAIN:MOVSP,#60HMOVDPTR,#P8155MOVA,#03HMOVX@DPTR,AMOVP0,#00HMOVP2,#00HMOVP1,#0FFHORLIE,#85HORLIP,#01HA1:MOVP1,#46H;东西绿灯,南北红灯,东西车灯亮MOV23H,#31H;23H东西时间,24H南北时间MOV24H,#36HMOVR6,#30LOOP1:ACALLDISPAACALLDISPBACALLDELAY0ACALLDELAY0DJNZR6,LOOP1A2:MOVP1,#12H;东西黄灯,南北红灯,东西车灯灭MOV23H,#06HMOVR6,#05HLOOP2:ACALLDISPAACALLDISPBACALLDELAY0CPLP1.4ACALLDELAY0CPLP1.4DJNZR6,LOOP2A3:MOVP1,#89H;东西红灯,南北绿灯,东西车灯灭,南北车灯亮MOV23H,#36HMOV24H,#31HMOVR6,#30LOOP3:ACALLDISPAACALLDISPBACALLDELAY0ACALLDELAY0DJNZR6,LOOP3A4:MOVP1,#21H;东西红灯,南北黄灯,东西车灯灭,南北车灯灭MOV24H,#06HMOVR6,#05HLOOP4:ACALLDISPAACALLDISPBACALLDELAY0CPLP1.5ACALLDELAY0CPLP1.5DJNZR6,LOOP4AJMPA1;*********************************DISPA:DEC23H;调显示缓冲MOVA,23HANLA,#0FHMOVR2,ASETBCCJNER2,#0AH,DISPA4DISPA4:JCDISPA1CLRCMOVA,23HSUBBA,#06HMOV23H,ADISPA1:MOVR0,#7BHMOVA,23HDISPA2:MOVR1,AACALLDISPA3MOVA,R1SWAPADISPA3:ANLA,#0FHMOV@R0,AINCR0RET;************************************DISPB:DEC24HMOVA,24HANLA,#0FHMOVR1,ASETBCCJNER1,#0AH,DISPB4DISPB4:JCDISPB1CLRCMOVA,24HSUBBA,#06HMOV24H,ADISPB1:MOVR0,#7DHMOVA,24HDISPB2:MOVR1,AACALLDISPB3MOVA,R1SWAPADISPB3:ANLA,#0FHMOV@R0,AINCR0RET;*********************************INT11:MOVP1,#89HMOVDPTR,#PAMOVA,#0FFHMOVX@DPTR,AINCDPTRCLRAMOVX@DPTR,ARETIINT00:MOVP1,#46HMOVDPTR,#PAMOVA,#0FFHMOVX@DPTR,AINCDPTRCLRAMOVX@DPTR,ARETI;*******************************DISP0:SETB0D4H;显示子程序MOVR1,#7EHMOVR2,#07FHMOVR3,#80HMOVR4,#04SETBCDISP1:MOVA,R2MOVDPTR,#PAMOVX@DPTR,AMOVDPTR,#TABMOVA,@R1MOVCA,@A+DPTRMOVDPTR,#PBMOVX@DPTR,ADISP2:DJNZR3,DISP2DECR1MOVA,R2RRCAMOVR2,ADJNZR4,DISP1MOVDPTR,#PAMOVA,#0FFHMOVX@DPTR,AINCDPTRCLRAMOVX@DPTR,ACLR0D4HRETTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,8CH;************************************************DELAY0:MOVA,#0E0H;延时子程序 MOVR4,ADELAY1:MOVR5,#0FFHDE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度新能源汽车研发与生产承包协议4篇
- 生态、艺术、教育现代学校的多维度环境美化探索
- 数学竞赛对小学数学教育的促进作用
- 二零二五年绿色环保店面租赁合同3篇
- 2025年度美团外卖加盟店数据共享合作协议4篇
- 2025年树木种质资源保护与开发合同协议3篇
- 个人与酒店房屋租赁合同(2024版)2篇
- 水电发电量指标分配与交易2025年度合同3篇
- 个性化临时资金调度借款合同2024版版B版
- 二零二四年家居品牌策划与消费升级服务合同2篇
- 天津市武清区2024-2025学年八年级(上)期末物理试卷(含解析)
- 《徐霞客传正版》课件
- 江西硅博化工有限公司年产5000吨硅树脂项目环境影响评价
- 高端民用航空复材智能制造交付中心项目环评资料环境影响
- 量子医学成像学行业研究报告
- DB22T 3268-2021 粮食收储企业安全生产标准化评定规范
- 办事居间协议合同范例
- 正念减压疗法详解课件
- GB 30254-2024高压三相笼型异步电动机能效限定值及能效等级
- 重大事故隐患判定标准与相关事故案例培训课件
- 药物制剂工(三级)理论试题题库及答案
评论
0/150
提交评论