ImageVerifierCode 换一换
格式:DOCX , 页数:35 ,大小:398.67KB ,
资源ID:8343556      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8343556.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(高级电工单片机实操教程.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

高级电工单片机实操教程.docx

1、高级电工单片机实操教程试卷编号3301控制要求:在内部RAM中20H开始的区域中存有二十个无符号数,找出其中最大和最小数,分别送34H和35H单元。(注:目标程序于0800H单元开始) ORG 0000HLJMP MAINORG 0800HMAIN : MOV R0, #20H ;从内部20H单元开始查找 MOV R7, #19 ;20个数需要比较19次 MOV 34H , R0 ;将20H单元的内容同时送34H和35H MOV 35H, R0 LOOP : INC R0 ;指向下一个单元 MOV A , R0 ; 读取到ACC CJNE A , 34H , B1 ;将读取的内容与34H的内容

2、进行比较,不相等跳B1处 SJMP EXIT ;相等则不作其它比较跳EXIT处B1 : JC XIAO ;若A的内容小于34H的内容则C为1,跳XIAO处 MOV 34H , A ;C为0表明A大于34H的内容则替换掉34H的内容 SJMP EXIT ;替换后退出不作最小数比较XIAO : CJNE A , 35H , B2 ;作最小数比较,不相等跳B2处 SJMP EXIT ;相等退出到EXIT处B2 : JNC EXIT ;若A的内容大于35H的内容跳EXIT处 MOV 35H , A ;若A的内容小于35H的内容则替换掉35H的内容EXIT : DJNZ R7 , LOOP ;判断比较次

3、数是否完毕 SJMP $ ;比较完毕原地等待 END3102控制要求:利用8031定时器与中断功能控制一个“航标灯”,黑夜时发光二极管按指定频率闪烁(如:亮2S,灭2S,循环);白天时发光二极管不亮。电路图:电路工作原理:白天光敏电阻阻值小,使P3.2输入电位为高电平,不产生中断,使LED灭。晚上光敏电阻阻值变大,使P3.2的输入电位为低电平,这时产生中断,中断使LED闪烁。只要是在晚上要求LED一直闪烁。所以中断应该采用电平触发方式。调试方法: 接好电路,编好程序,使光敏电阻暴露在光线下,调节Rp到最小值,这时LED应该闪烁。慢慢调大Rp的阻值,使LED刚刚灭,保持Rp这时的阻值即可。当用手

4、遮住光敏电阻的光线,LED就会闪烁。编程思路: 使用定时器T0,方式1。所以TMOD=0 0 0 0 0 0 0 1 即:01H 使用指令: MOV TMOD , #01H 每50ms中断一次当晶振为12MHZ时,1us加一。50ms50000us。所以赋初值为 655365000015536 ,将15536转换为十六进制为3CB0H 高八位送TH0, 第八位送TL0. 使用指令: MOV TH0 , #3CH MOV TL0 , #0B0H 当晶振为6MHZ时,2us加一。50ms50000us,50000/225000 所以赋初值为 655362500040536 ,将40536转换为十六

5、进制为9E58H 高八位送TH0, 第八位送TL0 , 使用指令 :MOV TH0 , #9EH MOV TL0 , #58H当晶振为11.0592MHZ时, 12/11.0592 us加一。 50ms50000us, 50000*11.0592/1246080 所以赋初值为 655364608019456 ,将19456转换为十六进制为4C00H 高八位送TH0, 第八位送TL0 , 使用指令 :MOV TH0 , #4CH MOV TL0 , #00H因为50ms闪烁一次太快,当要求2S进行一次闪烁时则需要中断2S/50 ms40次。参考程序:(以12MHZ为例)ORG 0000H AJM

6、P MAIN ORG 0003H;外部中断0的中断入口地址 AJMP HYSD MAIN:MOV TMOD,#01H ;设置T0工作方式1,且为定时 MOV IE,#81H ;CPU开中断和外部中断0开中断 BT:CLR P1.0 SJMP BT ;白天灭LED且等待中断 HYSD:SETB P1.0 ;亮LED MOV RO,#40 ;定时40次,即:50ms*402S(这里亮2S) LP:MOV TH0,#3CH ;赋初值MOV TL0,#0B0H SETB TR0 ;启动定时JNB TF0,$ ;等待50ms定时到,定时到后TF0为1CLR TF0 ;软件清除T0的溢出标志位TF0DJN

7、Z R0,LP ;判断是否有40次T0定时MOV R0 , #20LP1: MOV TH0 , #3CH MOV TL0 , #0B0H SETB TR0 JNB TF0 , $ CLR TF0 DJNZ R0 , LP1JNB P3.2,HYSD RETI 18句 试卷编号3105考题:循环点亮8个发光二极管。控制要求:利用左移或右移指令从左向右点亮并循环n次,或从右向左点亮并循环n次,循环完毕全部熄灭。(循环顺序及次数由考评员现场指定)高电单片机实操程序1.电路原理图:2.电路工作原理:根据电路原理图可知:当某位输出为高电平时对应的LED发光。要求从左向右移动时先从P1口输出1000000

8、0即:80H这时LED7亮,其它灭,亮的时间可以通过延时确定。当向P1口送01000000即:40H这时LED6亮,其它灭,依次类推。所以可以通过RR A指令实现。 从左向右移动参考程序:ORG 0000HMOV R7 , #40 ;循环5次,一次需要依次点亮8个LED,所以为40MOV A , #80H;送初值给累加器ACC,如果向左移动就用MOV A , #01HLOOP : MOV P1, A;送P1口进行LED显示ACALL DELAY 。显示的时间通过延时子程序决定RR A 。将A的内容循环右移动一位,如果向左移动就用RL ADJNZ R7 , LOOP 。判断循环是否完毕 MOV

9、P1, #00H SJMP $ 。完毕后等待DELAY: MOV R4,#5 ;延时0.5S子程序(fOSC=6MHZ),如fOSC=12MHZ,用#10D0: MOV R5,#125 。5*2usD1: MOV R6,#200 。125*5*2*2usD2: DJNZ R6,D2 。200*125*5*2*2us DJNZ R5,D1 。125*5*2*2usDJNZ R4,D0 。5*2us RET END从右向左移动参考程序:ORG 0000HMOV R7 , #32 ;循环4次,一次需要依次点亮8个LED,所以为32MOV A , #01H;送初值给累加器ACC用MOV A , #01

10、H亮LED0LOOP : MOV P1, A;送P1口进行LED显示ACALL DELAY 。显示的时间通过延时子程序决定RL A 。将A的内容循环左移动一位DJNZ R7 , LOOP 。判断循环是否完毕 MOV P1, #00H SJMP $ 。完毕后等待DELAY: MOV R4,#5 ;延时0.5S子程序(fOSC=6MHZ),如fOSC=12MHZ,用#10D0: MOV R5,#125 。5*2usD1: MOV R6,#200 。125*5*2*2usD2: DJNZ R6,D2 。200*125*5*2*2us DJNZ R5,D1 。125*5*2*2usDJNZ R4,D0

11、 。5*2us RET END从左向右移动3次,然后从右向左移动2次参考程序:ORG 0000HMOV R7 , #24 ;循环3次,一次需要依次点亮8个LED,所以为24MOV A , #80H;送初值给累加器ACCLOOP : MOV P1, A;送P1口进行LED显示ACALL DELAY 。显示的时间通过延时子程序决定RR A 。将A的内容循环右移动一位DJNZ R7 , LOOP 。判断循环是否完毕 MOV P1, #00HMOV R7 , #16 ;循环2次,一次需要依次点亮8个LED,所以为16MOV A , #01H;送初值给累加器ACCLOOP1 : MOV P1, A;送P

12、1口进行LED显示ACALL DELAY 。显示的时间通过延时子程序决定RL A 。将A的内容循环右移动一位DJNZ R7 , LOOP1 。判断循环是否完毕 MOV P1, #00H SJMP $ 。完毕后等待DELAY: MOV R4,#5 ;延时0.5S子程序(fOSC=6MHZ),如fOSC=12MHZ,用#10D0: MOV R5,#125 。5*2usD1: MOV R6,#200 。125*5*2*2usD2: DJNZ R6,D2 。200*125*5*2*2us DJNZ R5,D1 。125*5*2*2usDJNZ R4,D0 。5*2us RET END高电实操3103:

13、 计数报警考题:利用8031计数器,当计数满n个后LED发光二极管发光报警。计数脉冲用消抖动开关产生。控制要求:按按钮开关 n次,发光二极管发光。1.电路原理图:2.电路工作原理:考题要求,每按下一次按钮时计数一次,通过程序设定计数次数,按下次数到后LED亮(P1.0输出高电平)。根据硬件结构可知:按键输入为计数器T0。所以T0在这里不能作为定时器,而是作为计数器。所以TMOD=0000 0100 (13位计数器)采用指令MOV TMOD, #04H或TMOD=0000 0101(16位计数器)采用指令MOV TMOD,#05H或TMOD=0000 0110(自动重装入8位计数器)采用指令MO

14、V TMOD ,#06H输入管脚P3.4如果直接通过开关接入的话,会有很大的干扰,也就是按下或松开时会有抖动,造成按下一次可能会计数若干次。所以采用两个与非门组成一个触发器进行抗干扰(防抖动电路)解法一:用模式1,不可循环START:MOV TMOD,#05H ;设置T0为16位计数器MOV TH0,#0FFH ;赋初值此处计数10次。因为16位最多可计数65536 MOV TL0, #0F6H ;次,初值赋6553610655260FFF6H SETB TR0 ;启动计数器 CLR P1.0 ;计数未到灭LED JNB TF0, $ ;等待计数到。如果计数到则TF0自动变为“1” SETB

15、P1.0 ;计数到亮LEDSJMP $ ;等待 END解法二:用模式2,可循环START:MOV TMOD,#06H ;模式2,自动重装入8位计数器 CLR P1.0;开始灭LED MOV TH0, #0F6H ;赋初值,模式2最多可计数256次。这里为10次 MOV TL0, #0F6H;初值为256102460F6H,模式2赋初值一样 SETB TR0;启动计数器 LP: JBC TFO, REP;计数未满顺序执行,满则跳REP同时将TF0清零。 SJMP LPREP: CPL P1.0;将输出状态取反,SJMP LP;跳LP等待下次计数10次END高电考题3104:数码管显示考题:利用8

16、031串行口和74LS164移位寄存器驱动数码管。控制要求:数码管依次按指定的顺序循环并显示数字。1.电路原理图:2.电路工作原理要求从串口将数据发送出去,所以串口为工作方式0,也就是使SCON00000000当执行MOV A ,#3FH MOV SBUF , A 时,其发送动作为:P3.0(RXD)端送数据,低位在前,高位在后。P3.1(TXD)输出移位脉冲。示意如下: 3FH = 0011 1111当八位数字发送完毕后单片机自动将TI置1,没有发送完毕TI始终为0根据硬件可知,P3.0接在74LS164的数据输入端,P3.1接在74LS164的时钟端。而74LS164的功能为:第一个时钟来

17、了将数据输入端的状态移位到Q7端,Q7的状态到Q6端依次类推最后Q1的状态到Q0端,Q0状态丢失。第二个时钟脉冲来到再作一次全体移动。所以当来了8个时钟脉冲后。 原来第一次Q7的状态就到了Q0。也就是当数据端随着时钟脉冲同步输出00111111时,8个时钟脉冲过后74LS164的Q7Q0输出也为00111111,这时会使共阴数码管显示一个“3”。3.参考程序例如:规定按1、3、5、7、9、2、4、6、8、0、A、B、C、D、E、F、-、P、 、熄灭 顺序循环显示。法一. START:MOV SCON,#00H ;串口为工作方式0,8位移位寄存器方式 MOV R0,#0 ;送偏移量初值 MOV

18、DPTR,#TAB ;送表头首地址给DPTR,也就是表06H所在的地址 LP:MOV A,R0 MOVC A,A+DPTR ;查表,将查的的数据送ACC CPL A ;如果为共阳LED就加上此句,否则不加 MOV SBUF,A ;送串口进行发送 JNB TI,$ ;发送未完TI为0就等待,完则TI为1顺序执行 CLR TI ;发送结束标志必须用软件清零 INC R0 ;偏移量加一 ACALL DELY ;调延时,也就是LED显示一位数字的时间 CJNE R0,#20,LP ;因为表格有20个字节数据,所以这里为20 SJMP START ;从头在来,无限循环下去 TAB: DB 06H, 4F

19、H, 6DH, 07H, 6FH, 5BH, 66H, 7DH, 7FH, 3FH (共阴) DB 77H, 7CH, 39H, 5EH, 79H, 71H, 40H, 73H, 80H, 00H DELY: MOV R4,#5 ;延时0.5S子程序(fOSC=6MHZ),如fOSC=12MHZ,用#10 D0: MOV R5,#125 D1: MOV R6,#200D2: DJNZ R6,D2 DJNZ R5,D1DJNZ R4,D0 RET 思考题:如果显示为循环显示8051CPU,每次间隔1秒,共大循环5次。试试如何改动程序。试卷编号(3106) 霓虹灯控制控制要求:实现8个发光二极管从

20、两边向中间或从中间向两边依次循环点亮来模拟霓虹灯效果,循环n次后全部熄灭。1. 电路原理图2. 电路工作原理 根据硬件可知: P1口某位输出为高电平,则对应的LED发光.示意图如下:如果要使得LED4和LED3亮,则P1口应该输出为: 00011000 即:18H 输出状态为:如果要使得LED5和LED2亮,则P1口应该输出为: 00100100 即:24H 输出状态为:如果要使得LED6和LED1亮,则P1口应该输出为: 01000010 即:42H 输出状态为:如果要使得LED7和LED0亮,则P1口应该输出为: 10000001 即:81H 输出状态为:因此,如果希望LED输出状态由中间

21、向两边亮,则表格按照顺序填写: 18H,24H,42H,81H 即可.根据此原理,无论状态如何变化都有对应的数据.3.参考程序:(1)从中间向两边亮,每次点亮0.5S 共6个循环后结束.ORG 0000HMOV DPTR , #LED ;送表首地址给DPTRMOV R7, #6 ;此程序共6个循环LOOP1 : MOV R0 , #0 ;送偏移量初值LOOP :MOV A , R0MOVC A, A+DPTR ;查表MOV P1 , A ;送P1口进行显示ACALL DELAY ;调用显示时间INC R0 ;偏移量加一 CJNE R0 , #4 ,LOOP ;表格里个数据没循环完跳LOOPDJ

22、NZ R7 , LOOP1 ;6次没有循环完跳LOOP1 MOV P1 , #00HSJMP $LED : DB 18H , 24H , 42H , 81H DELAY :;延时秒程序思考题:(1)从两边向中间亮,每次状态亮秒,共个大循环后结束(2)先从两边向中间亮次,再从中间向两边亮次,共个循环试卷编号(3107) :算术运算器控制要求:分别在内部RAM中20H单元和30H单元置入两个数,进行(20H+30H)30H的算术运算,将运算结果通过串口通讯方式用LED显示出来。(提示:运算值不超过“F”)1.参考电路2.电路工作原理:与试卷编号3104的硬件一样,工作原理相同。3.参考程序: OR

23、G 0000H MOV A , 20H ;将20H的内容送累加器ACC ADD A , 30H ;将A的内容与30H的内容相加 MOV B , 30H ;将30H的内容送寄存器B MUL AB ;将A的内容与B的内容相乘,低八位送ACC,高八位送B MOV DPTR, #TAB ;送显示0F的数据表格的表首地址到DPTR MOVC A , A+DPTR ;查表 MOV SBUF, A ;从串口发送进行显示 JNB TI , $ ;等待发送完毕 CLR TI SJMP $TAB : DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH DB 6FH, 77

24、H, 7CH, 39H, 5EH, 79H,71HEND试卷编号(3108):继电器控制1.实训目的掌握软件延时程序,根据要求熟练编写不同的延时时间程序。掌握隔离输出的常用方式之一:继电器隔离输出 2. 控制要求:设计程序使P10反复输出高、低电平,通过继电器控制LED1和LED2轮流点亮。程序采用软件延时n秒。(延时时间由考评员现场指定,闪烁时间15S)3.参考电路图:4.工作原理: 当P1.0输出为高电平时,经过同相器74LS07后输出也为高电平,这时KA两端电压相等,KA不动作。这时LED1得电亮。当P1.0输出为低电平时,74LS07输出也为低电平。KA得电吸合。这时LED2亮。二极管

25、D是为了续流而设。当P1.0轮流输出高低电平,则LED1和LED2轮流被点亮。5.参考程序:(该参考程序在12MHZ的晶振下运行,每1.5S两LED改变一次状态) ORG 0000HSTART : CPL P1.0 ;此程序每隔相同时间P1.0输出取反一次,相隔时间由子 ACALL DELAY ;程序DELAY的延时时间决定 SJMP STARTDELAY : MOV R6 , #15 ;此程序约为1.5S(稍微大于1.5S)M : MOV R5 , #200 N : MOV R4 , #250 DJNZ R4 , $ ;此句执行时间为:2*1us*250*200*151.5S DJNZ R5

26、 , N DJNZ R6 , M RET END6.思考题:单片机复位后先亮LED1 时间为1S。再亮LED2,时间为2.5秒。循环不止。试卷编号(3109):倒计时音乐报警器1.实训目的:熟悉简单的按键输入进行控制设备和显示2. 控制要求:按下起动按钮,数码管从“90”按递减顺序显示,当显示到“0”时,音乐响起,按下停止按钮,音乐停止。3. 参考电路图:4. 工作原理: 单片机复位后先置P1.1为低电平然后等待启动按钮QA启动,启动后数码管先显示9,隔段时间后显示8。依次往下显示。到显示0后置P1.1输出为高电平,这时音乐芯片加上了工作电压开始工作。扬声器就开始发音。当停止按钮(TA)按下,

27、音乐停止。5.参考程序: ORG 0000H CLR P1.1 JB P3.2 , $ MOV DPTR, #TAB MOV R0 , #0CONT1 : MOV A, R0 MOVC A , A+DPTRMOV SBUF , ALP1 : JBC TI , LPSJMP LP1 LP : CJNE A , #3FH , CONTSETB P1.1JB P3.3 , $CLR P1.1SJMP $CONT : ACALL DELAYSJMP CONT1TAB : DB 6FH , 7FH , 07H , 7DH, 6DH , 66H , 4FH , 5BH , 06H , 3FHDELAY :

28、 MOV R7 , #10 M : MOV R6 , :,$DJNZ R6 , N DJNZ R7 , MRET END试卷编号(3110):数据传送1.实训目的:熟练掌握单片机在执行数据传送和堆栈指令时内部的变化情况 2. 控制要求:把20H单元开始的外部RAM单元中的8个数据送到30H单元开始的外部RAM单元中;存取要求:源数据存储地址及目的地数据存储地址使用堆栈。2.在脱机运行下的参考程序:ORG 0000H MOV 70H,#20H MOV 71H,#30H MOV R7,#8LOOP : PUSH 71H PUSH 70H INC 70H INC 71H DJNZ R7,LOOP M

29、OV R7,#8 MOV DPH,#00HLOOP1 : POP DPL MOVX A,DPTR POP DPL MOVX DPTR,ADJNZ R7,LOOP1 SJMP $ END循环灯点亮(高电实操题3105)循环点亮8个发光二极管LED。要求:按规定的顺序依次点亮8个LED(每个亮0.5S),循环N次。要求:按D1、D2、D3、D4、D5、D6、D7、D8顺序依次点亮(每个亮0.5S),循环3次。解:START:MOV R1,#3 LP0: MOV R0,#0 MOV DPTR,#TAB LP: MOV A,R0 MOVC A,A+DPTR MOV P1,A ACALL DELY INC R0 CJNE R0,#8,LP DJNZ R1,LP0 MOV P1,#00H SJMP $ TAB: DB 01H,02H,04H,08H,10H,20H,40H,80H DELY: MOV R4,#5 ;延时0.5S子程序(fOSC=6MHZ),如fOSC=12MHZ,用#10 D0: MOV R5,#125 D1: MOV R6,#200 D2: DJNZ R6,D2 DJNZ R5,D1DJNZ R4,D0 RET ;共20句计数报警(高电实操3103) 用80

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1