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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机程序Word格式.docx

1、 CLR C ;进位位清零,为接受P1口的值做准备 MOV P1.0,#00H ;赋值,全灭 MOV C,P1.0 ;P1.0口值送进位位 MOV P1.2,C ;进位位C送值到P1.2口,输出 ACALL DELAY重复上面操作 MOV P1.1,#00H MOV C,P1.1 MOV P1.3,C MOV R6, #1 ;延时子程序.MOV R7, #1 实验二 外部中断 LED EQU P1.0 ;P1.0口连接LED显示灯 LEDBUF EQU 00H ;初始值设为0,即为低电平 LJMP START ORG 0003H ;外部中断0(INT0)的入口地址 LJMP INT0 ;跳转到

2、中断入口处 ORG 0100HSTART: MOV SP,#60H ;地址指针 CLR LEDBUF CLR LED MOV TCON,#01H ;初始化,设置为工作方式1 MOV IE,#10000001B ;EA=1开中断,EX0=1外部中断0中断允许 ORL IP,#0000H ;中断优先级设置 LJMP $INT0:PUSH PSW ;程序状态字PSW内容压入堆栈保存 CPL LEDBUF ;取反,即发生翻转 MOV C,LEDBUF MOV LED,C POP PSW ;恢复程序状态字PSW的内容 RETI END 实验三 八段数码管显示LEDMAP:DB 3FH,06H,5BH,4

3、FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H DB 00H,49HMOV 40H,#08H MOV 41H,#00H MOV 42H,#08H MOV 43H,#01H MOV 44H,#00H MOV 45H,#04HLOOP1:MOV R0,#40H ;送数据地址,即显示缓冲区地址 MOV R1,#6 ;循环次数 MOV R2,#00100000B ;从左边第一个开始显示LOOP2:MOV DPTR,#8002H ;送位口地址 CLR A MOVX DPTR,A ;关所有位 MOV A,R0 ;取显示数据 MOV DPTR,#L

4、EDMAP ;送段码表首地址 MOVC A,A+DPTR ;由序码找段码 MOV DPTR,#8004H ;送段口地址送段码 MOV DPTR,#8002H ; MOV A,R2 ;显示位显示取显示位 RR A ;右移,下一位显示 MOV R2,A INC R0 ;数据地址加1,准备取下一个数 DJNZ R1,LOOP2 ;(R1-1)0,即6位未显示完,循环 JMP LOOP1MOV R6,#2 ;延时1ms D1:MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RET 实验四 行列扫描式键盘 OUTBIT EQU 8002H ;位显示地址和列 OUTSEG EQU 800

5、4H ;段显示地址 IN EQU 8001H ;键盘行地址 LEDBUF EQU 40H ;显示缓冲区地址 RKEY EQU 46H ;键值存储区 LJMP MAIN DB 3FH,06H,5BH,4FH,66H ;04 DB 6DH,7DH,07H,7FH,6FH ;59 DB 77H,7CH,39H,5EH,79H,71H ;AF DB 00H,49H ;关断和“三”延时子程序* MOV R7,#0FAHDL0: DJNZ R7,DL0 ;执行时间大约1ms DJNZ R6,DELAYLED显示子程序*DISPLAY: MOV R0,#LEDBUF 循环六次 MOV R2,#20H ;从高

6、位开始点亮 MOV DPTR,#OUTBIT ;送位地址 MOV A,#00H MOVX DPTR,A ;关断所有数码管 MOVC A,A+DPTR ;由序码求段码 MOV DPTR,#OUTSEG ; MOVX DPTR,A MOV A,R2 位显示 MOV R6,#03H LCALL DELAY ;调用子程序右移 MOV R2,A数据地址加1,准备显示下一位 DJNZ R1,LOOP ;键盘子程序*KEY: LCALL TESTKEY JZ KEYQ ;没有按下,跳转退出 MOV R6,#10防抖延时10ms LCALL TESTKEY ;再次确认 JZ KEYQ LCALL GETKEY

7、 ;取键值等待按键释放WAITREL:防抖延时 JNZ WAITREL ;没有松开继续循环KEYQ:按键测试子程序,判断有无键按下TESTKEY:MOV DPTR,#OUTBIT ;送列地址 MOV A,#0H对列置零 MOV DPTR,#IN ;送行地址 MOVX A,DPTR CPL A ANL A,#0FH ;对行进行判断获取键值子程序从第五列开始判断GETKEY: MOV A,#11011111B第5列置零K58: CJNE A,#08H,K54 MOV RKEY,#07H ;7键按下,送键值存储区 LJMP GETKQK54: CJNE A,#04H,K52 MOV RKEY,#04

8、H ;4键按下,送键值存储区K52: CJNE A,#02H,K51 MOV RKEY,#01H ;1键按下,送键值存储区K51: CJNE A,#01H,K48 MOV RKEY,#00H ;0键按下,送键值存储区*进入第四列判断K48: MOV A,#11101111B第4列置零送行地址 CJNE A,#08H,K44 MOV RKEY,#08H ;8键按下,送键值存储区 K44: CJNE A,#04H,K42 MOV RKEY,#05H ;5键按下,送键值存储区K42: CJNE A,#02H,K41 MOV RKEY,#02H ;2键按下,送键值存储区K41: CJNE A,#01H

9、,K38 MOV RKEY,#0FH ;F键按下,送键值存储区*进入第三列判断K38: MOV A,#11110111B第3列置零对行进行判断 CJNE A,#08H,K34 MOV RKEY,#09H ;9键按下,送键值存储区K34: CJNE A,#04H,K32 MOV RKEY,#06H ;6键按下,送键值存储区K32: CJNE A,#02H,K31 MOV RKEY,#03H ;3键按下,送键值存储区K31: CJNE A,#01H,K28 MOV RKEY,#0EH ;E键按下,送键值存储区*进入第二列判断K28: MOV A,#11111011B第2列置零 CJNE A,#08

10、H,K24 MOV RKEY,#0AH ;A键按下,送键值存储区K24: CJNE A,#04H,K22 MOV RKEY,#0BH ;B键按下,送键值存储区K22: CJNE A,#02H,K21 MOV RKEY,#0CH ;C键按下,送键值存储区K21: CJNE A,#01H,K18 MOV RKEY,#0DH ;D键按下,送键值存储区*进入第一列判断K18: MOV A,#11111101B第1列置零 CJNE A,#08H,K14 MOV RKEY,#10H ;10键按下,送键值存储区 K14: CJNE A,#04H,K12 MOV RKEY,#11H ;11键按下,送键值存储区

11、K12: CJNE A,#02H,K11 MOV RKEY,#12H ;12键按下,送键值存储区K11: CJNE A,#01H,K08 MOV RKEY,#13H ;13键按下,送键值存储区*进入最后一列判断K08: MOV A,#11111110B第0列置零K04: CJNE A,#04H,K02 MOV RKEY,#14H ;14键按下,送键值存储区K02: CJNE A,#02H,K01 MOV RKEY,#15H ;15键按下,送键值存储区K01: CJNE A,#01H,K00 MOV RKEY,#16H ;16键按下,送键值存储区K00: MOV RKEY,#0EEH SJMP

12、GETKQGETKQ:主程序*MAIN: MOV SP,#60H MOV LEDBUF,#0DH MOV LEDBUF+1,#00H MOV LEDBUF+2,#08H MOV LEDBUF+3,#01H MOV RKEY,#0DAHMLOOP: LCALL DISPLAY LCALL KEY MOV A,RKEY ANL A,#0F0H SWAP A MOV LEDBUF+4,A ;显示高位 ANL A,#0FH MOV LEDBUF+5,A ;显示低位 LJMP MLOOP 实验五 计数器 MOV 40H,#00H ;千 MOV 41H,#00H ;百 MOV 42H,#00H ;十 MO

13、V 43H,#00H ;个 MOV 44H,#02H MOV 45H,#02H MOV TMOD,#05H ;初始化,工作方式设置 MOV TL0,#00H ;初值设为0,低4位 MOV TH0,#00H ;初值设为0,高4位 SETB TR0 ;TR0=1,启动计数器MOV R3,TL0 ;低位送到R3 MOV A,R3低八位低4位 个 MOV 40H,A SWAP A ;高低位交换 MOV 41H,A ;低八位高4位 十 MOV R3,TH0 ;高位送到R3高八位低4位 百 MOV 42H,A高八位高4位 千 MOV 43H,A MOV R0,#40H ;数据缓冲区地址 MOV R1,#6

14、 ;最高位开始显示去显示数据 MOV DPTR,#8004H ; MOV A,R2MOV R6,#3 ; 实验六 定时器 ORG 000BH ;定时器T0溢出中断入口地址 LJMP SINT0MOV TMOD,#01H ;设置定时器T0工作在方式1 MOV TH0,#3CH ;置初值,高8位送TH0 MOV TL0,#0B0H ;置初值,低8位送TL0 SETB ET0 ;ET0置1,定时器T0溢出中断允许 SETB EA ;EA置1,开中断 MOV R7,#10 ;开始计时 SETB P1.0 ;P1.0置1,即输出高电平CJNE R7,#00H,LOOP1 ;R70,继续循环 CPL A

15、;交换A值 MOV P1,A ;A值送P1口输出,即发生反转SINT0: DJNZ R7,B1 ;判断循环次数,跳转 CPL P1.0 JMP B2 B1:重新装载时间常数 MOV TL0,#0B0H B2:RETI 实验七 模拟量输入 ;AD_CS-CS1 CS0832 EQU 09000H OUTBIT EQU 0A002H ;位显示地址 OUTSEG EQU 0A004H ; CS0809 EQU 8000H RADING EQU 31H ;I0I7通道号寄存器 RAD EQU 32H ;AD值寄存器 DJNZ R7,DL0 MOV R0,#LEDBUF ;循环次数 MOV R2,#20

16、H ;从高位开始显示,即左边开始段显示送显示位 MOV R6,#03H CALL DELAY ;右移,准备显示下一位数据存储区加1,准备显示下一位 MOV LEDBUF,#08H MOV LEDBUF+1,#01H MOV LEDBUF+2,#00H MOV LEDBUF+3,#04H MOV LEDBUF+4,#00H MOV LEDBUF+5,#00H MOV R5,#0FFH ;数字量应00到0FFHDIRLOP: LCALL DISPLAY ;调用显示子程序 DJNZ R5,DIRLOP ;(R5-1)0,跳转ADLOOP:MOV RADING,#01H ;置初值 LCALL AD ;调用AD转换子程序 LCALL ADDIR ;调用读取和显示AD转换结果子程序 LJMP ADLOOP ;AD: MOV DPTR,#CS0809 ;指向0通道 MOV A,DPL ; ADD A,RADING MOV DPL,A启动AD转换 MOV R5,#40H ;查询,是否转换结束 DJNZ R5,$ MOVX A,DPTR ;读取转换结果 MOV RAD,A ;送转换结果ADDIR: MOV A,RAD ;取转换结果交换高低位 ANL A,#0FH ;低位清零 MOV LEDBUF+4,A ; MOV LEDBUF+5,A ;显

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

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