365文库
登录
注册
2

绍兴文理学院单片机实验考试文档

333阅读 | 12收藏 | 9页 | 打印 | 举报 | 认领 | 下载提示 | 分享:
2
绍兴文理学院单片机实验考试文档第1页
绍兴文理学院单片机实验考试文档第2页
绍兴文理学院单片机实验考试文档第3页
绍兴文理学院单片机实验考试文档第4页
绍兴文理学院单片机实验考试文档第5页
绍兴文理学院单片机实验考试文档第6页
绍兴文理学院单片机实验考试文档第7页
绍兴文理学院单片机实验考试文档第8页
绍兴文理学院单片机实验考试文档第9页
福利来袭,限时免费在线编辑
转Pdf
right
1/9
right
下载我编辑的
下载原始文档
收藏 收藏
搜索
下载二维码
App功能展示
海量免费资源 海量免费资源
文档在线修改 文档在线修改
图片转文字 图片转文字
限时免广告 限时免广告
多端同步存储 多端同步存储
格式轻松转换 格式轻松转换
用户头像
上传于:2024-07-09
绍兴文理学院单片机实验考试程序: 基本部分: 实验三:汇编语言程序设计 (1)清零:把外部RAM 2000H~20FFH的内容清零。 ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV A,#00H //累加器A清零 MOV R0,#00H MOV DPTR,#2000H //将2000H内容送给DPTR LOOP: MOV @DPTR,A //将2000H中的内容清零 INC DPTR //DPTR增1 DJNZ R0,LOOP //减1不为0则转移,继续循环,否则结束 SJMP $ END 拆字:把外部RAM 2000H的内容拆开,高位送外部RAM 2001H低位,低位送外部RAM 2002H低位,外部RAM 2001H、外部RAM 2002H高位清零。 ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV DPTR,#2000H //DPTR中为2000H MOVX A,@DPTR //2000H内容送A MOV B,A //将A中内容寄存在B中 SWAP A //高低位交换 ANL A,#0FH //高位清零 INC DPTR //DPTR中为2001H MOVX @DPTR,A //将A中的内容(2000H的高位)给2001H的低位 INC DPTR //DPTR中为2002H MOV A,B //将B中的内容(2000H内容)还给A ANL A,#0FH //屏蔽200OH的高位 MOVX @DPTR,A //将A中的内容(2000H的低位)给2002H的高位 SJMP $ END 拼字:把外部RAM 2000H、外部RAM 2001H的低位分别送入外部RAM 2002H高低位。 ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV DPTR,#2000H //将2000H中的内容送DPTR MOVX A,@DPTR //将2000H中的内容送A ANL A,#0FH //交换高低位送B SWAP A MOV B,A INC DPTR //DPTR增1 MOVX A,@DPTR ANL A,#0FH //屏蔽高位,将2001H内容送A ORL A,B //A和B或后送2002H INC DPTR MOVX @DPTR,A SJMP $ END 在内部RAM中查找是否有单元为特殊值。(单重循环)如:查找找内部RAM的30H-50H单元中是否有0AAH这一数据。若有,则将51H单元置为“01H”;若未找到,则将51H单元置为“00H”。 ORG 0000H AJMP START ORG 0030H START: MOV R0,#30H MOV R2,#20H LOOP: MOV A,@R0 CJNE A,#0AAH,NEXT MOV 51H,#01H LJMP EXIT NEXT: INC R0 DJNZ R2,LOOP MOV 51H,#00H OVER: SJMP $ END 实验四:汇编语言程序设计 外部RAM数据块搬移程序: (1)试将片内RAM中30H~3FH的数据传送到片外RAM地址为1000H开始的单元中。数据搬移:(内部和外部数据存储器之间,单重循环) ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV R0,#30H MOV R1,#10H MOV DPTR,#1000H LOOP: MOV A,@R0 MOVX @DPTR,A INC DPTR INC R0 OVER: DJNE R1,LOOP SJMP $ END (2)将外部RAM中R2、R3为源地址的N个字节数据传送到R4、R5为目的地址的外部RAM区中,字节个数存放在R6、R7中。 数据区传送功能:在R2、R3中输入源地址(例如0000H),R4、R5中输入目的地址(例如2000H),R6、R7中输入字节数(例如2000H),运行程序,检查0000~1FFFH中内容是否和2000H~3FFFH中内容完全—致。 ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV DPL,R3 ;R3内容给DPTR低位 MOV DPH,R2 ;R2内容给DPTR高位 MOVX A,@DPTR ;R2,R3源地址内容给累加器A,即取数 MOV DPL,R5 ;R5内容给DPTR低位 MOV DPH,R4 ;R4内容给DPTR高位 MOVX @DPTR,A ;数据搬移 CJNE R3,#0FFH,LOOP1 ;R3是否需要进位,即传送数据是否超过OFFH INC R2 ;若超过则进位 LOOP1: INC R3 ;源地址加1 CJNE R5,#0FFH,LOOP2 ;R5是否需要进位,即接受数据是否超过OFFH INC R4 ;若超过则进位 LOOP2: INC R5 ;目的地址加1 CJNE R7,#00H,LOOP3 ;若低位字节数不为0,则跳转LOOP3,字节数减1 CJNE R6,#00H,LOOP4 ;若高位字节数不为0,则跳转LOOP4,产生借位,高低位字节数均减1 SJMP $ NOP ;空操作 LOOP3: DEC R7 SJMP MAIN LOOP4: DEC R7 DEC R6 SJMP MAIN END 2.双字节*单字节无符号乘法程序:是编写程序,其功能为:(R0R1)*(R2)→R3R4R5。 ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV A,R1 MOV B,R2 MUL AB ;R1*R2 XCH A,R5 ;乘积低位→R5,R5→A准备乘数 MOV R4,B ;乘积高位暂存R4 MOV A,R0 MOV B,R2 MUL AB ;R0*R2 ADD A,R4 ;乘积低位加上一次的乘积高位暂存R4 CLR A ;清累加器 ADDC A,B ;高位加从低位来的进位给乘积高位 MOV R3,A SJMP $ END 提高部分: 数据排序。(256个数以内) 编写并调试一个排序子程序,其功能为用冒泡法将内部RAM中几个单字节无符号的正整数,按从小到大的次序重新排列。 数据排序功能:把RAM空间50H~5AH中放入不等的数据,运行本实验程序后检查50H~5AH中数据是否按从小到大排列。 ORG 0000H AJMP START ORG 0030H START: MOV R0,#50H ;将50h的值赋给R0 MOV R2,#10 ;将10赋给R2 SORT: MOV A,R0 ;将R0值给A MOV R1,A ;将A的值给R1 MOV A,R2 ;将R2的值给A MOV R5,A ;将A的值给R5 CLR F0 ;将F0清零 MOV A,@R1 ;将R1的地址给A LOOP: MOV R3,A ;将A的值给R3 INC R1 ;R1自加 CLR C ;清零进位标志 MOV A,@R1 ;将R1的地址给A SUBB A,R3 ;将A与R3的值相减 JNC LOOP1 ;如果借位跳转到LOOP1 反之按顺序往下 SETB F0 ;把F0置1 MOV A,R3 ;把R3的值给A XCH A,@R1 ;将A与R1的字节交换 DEC R1 ;R1自减 XCH A,@R1 ;将A与R1的字节交换 INC R1 ;R1自加 LOOP1: MOV A,@R1 ;将R1的地址赋给A DJNZ R5,LOOP ;判断R5是否为0 是则跳转 反之按顺序继续程序 JB F0,SORT ;判断F0是否为1,是则跳转 反之按顺序继续程序 RET ;返回 SJMP $ ;数据保留 END ;结束 动态显示。(用实验6仿真图) 实验二:编写程序,在数码管上显示固定“654321”字形 #include #include #define uchar unsigned char #define uint unsigned int uchar code tab1[]={0xF9,0xA4,0xB0,0x99,0x92,0x82}; //数码管显示数字1-6 uchar code tab2[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf}; //控制数码管位选 uchar i; void delay(uint ms) //延时1Ms { uchar i; while(ms--) for(i=0;i<123;i++); } void main() { while(1) { for(i=0;i<6;i++) { P1=tab2[i]; //选择数码管位选 P0=tab1[i]; //选择数码管显示字形 delay(1); P0=0xff; //数码管消影 } } } 脉冲计数并显示。(用实验6仿真图) 实验五 定时/计数器实验:将定时/计数器0外部输入的脉冲进行计数。 #include
下载二维码
网站备案:鄂ICP备2021004464号 网络文化经营许可证:鄂网文[2024]95956-12号
© 2009-2023 www.365docx.com All rights reserved 版本号:1.2.1.154
开发者:武汉妙游互动信息技术有限公司 免责声明:本站文档为网友上传,如有侵权,请联系删除
地址:武汉东湖新技术开发区凌家山南路1号武汉光谷企业天地4号楼12层03室(自贸区武汉片区)
服务条款 免责声明 隐私政策 侵权处理
下载二维码
tj