中国地质大学单片机实验

上传人:第*** 文档编号:58998178 上传时间:2018-11-03 格式:DOC 页数:22 大小:157KB
返回 下载 相关 举报
中国地质大学单片机实验_第1页
第1页 / 共22页
中国地质大学单片机实验_第2页
第2页 / 共22页
中国地质大学单片机实验_第3页
第3页 / 共22页
中国地质大学单片机实验_第4页
第4页 / 共22页
中国地质大学单片机实验_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《中国地质大学单片机实验》由会员分享,可在线阅读,更多相关《中国地质大学单片机实验(22页珍藏版)》请在金锄头文库上搜索。

1、 中国地质大学单片机实验报告-班级:xxx姓名:xxx学号:2012指导老师:王巍中国地质大学通信工程目录目录实验一 实验开发环境学习2 一实验目的.2 二 实验内容.2 三实验注意事项.2 四 实验过程.2 实验 a:.2 实验 b:.3 实验 c:.4 实验二 单片机输入及输出实验5 一 实验目的.5 二 实验内容.5 三 实验注意事项.5 四 实验电路及连线.6 五 实验过程.6 实验 a(流水灯):.6 实验 b(LED 两种点亮方式):8 实验三 单片机定时器及中断实验10 一 实验目的.10 二实验内容.10 三 实验注意事项.10 四.实验过程11 方波查询:12 方波中断:12

2、 流水灯查询:14 流水灯中断:15 实验四 单片机键盘及 LED 显示实验16 一实验目的.16 二实验内容.16 三 实验注意事项.16 四实验电路及连线.17 五 实验过程.17 六问题分析.20 实验感想21实验一实验一 实验开发环境学习实验开发环境学习一实验目的1) 学习 Keil 软件的使用方法; 2) 学习单片机汇编程序的开发流程; 3) 学习程序的调试仿真方法。2实验内容完成以下程序,并进行调试。 (a)设有两个 4 位的 BCD 码,分别存放在片内 RAM 的 23H,22H 单元 和 33H,32H 单元中,求他们的和,并送入 43H,42H 单元中(低位在低字 节中,高位

3、在高字节中) 。 (b)将 8bit 二进制数转换为 3 位 BCD 码。 (c)找出放在内存单元 40H 开始的 10 个数中的最大值,并放在内存单元 50H 中。三实验注意事项1) 由于实验学时很少,请提前预习和思考实验内容,将流程图及程序准备好, 到实验室进行调试和验证。 2) 由于实验室计算机 C 盘和 D 盘被保护,所以开始实验前在计算机 E 盘 建立自己的文件夹,文件夹最好为英文名称。实验中及时保存自己的源文件。 (3) 实验报告要求 在实验报告中详细介绍自己的设计思路、流程图和程序编写、调试过程。4实验过程实验实验 a:设计思路: 首先将两个 BCD 码的低字节 22H 和 32

4、H 相加放入 42H 单元中,再将高字节 23H 和 33H 相加放入 43H 单元中,注意要加入十进制加法修正 DA 指令。 流程图:开始(42H)一(22H) +(32H)(43H)一(23H) +(33H)(41H)一进位位结束 束程序代码:ORG 0000HSJMP MAINORG 0030H MAIN: CLR AMOV A,22HADDC A,32HDA AMOV 42H,A;低字节 22H 和 32H 相加放入 42H 单元中MOV A,23HADDC A,33HDA AMOV 43H,A;高字节 23H 和 33H 相加放入 43H 单元中CLR AADDC A,#00HMOV

5、 41H,ASJMP $END实验实验 b:设计思路: 设该 8bit 二进制数存放在 R1 中,则将其除以 100,得到的商便为 BCD 码的最 高位;余数除以 10 得到的商为第二位;此次余数为 BCD 码的最低位。流程图:程序代码:开始(R1)一该二进制数(A)一(R1),除以 100; (10H)一(A) 一商; (A)一(B)一余数;(A)除以 10; (11H)一(A) 一商; (12H)一(B)一余数;结束 束ORG 0000HSJMP STARTORG 0030H START: MOV A,R1MOV B,#100DIV AB; 该二进制数除以 100MOV 10H,A; A

6、中为商,即 BCD 码的最高位,存放在 10H 中MOV A,B; 取余数MOV B,#10DIV AB; 余数除以 10MOV 11H,A ; A 中为商,即 BCD 码的第二位,存放在 11H 中MOV 12H,B; B 中为余数,即 BCD 码的最低位,存放在 12H 中END实验实验 c:设计思路: 首先将这 10 个数中的前两个进行比较,第一个数存于寄存器 A 中,第二个数 存于 40H 单元中;若两数相等或(A)大于(40H) ,则继续比较 A 与下一个数; 若(A)小于(40H) ,则把(40H)放到 A 中后再继续比较 A 与下一个数,比 较 9 次后结束循环,最后把 A 中的

7、值送入内存单元 50H 中。 流程图开始(R0)一数据区首地址(A)一第一个数(R7)一比较次数(R0)一(R0)+1(A)当前数?(A)一当前数比较次数1=0?存最大值YNYN程序代码:ORG 0000HLJMP MAXPORG 0030H MAXP: MOV R0,#0030H; 起始数据地址存放在 R0MOV A,R0; 寄存器间接寻址MOV R7,#9; 比较次数存放在 R7 LOOP: INC R0 ; MOV 40H,R0; 下一个数据CJNE A,40H,NEQ; 比较不相等则跳转到 NEQSJMP SUB NEQ: JNC SUB ; CY=0 即(A)更大则跳转到 SUBMO

8、V A,R0; 取 R0 中的数据(大者)存放在 A SUB: DJNZ R7,LOOPMOV 50H,ASJMP $END实验二实验二 单片机输入及输出实验单片机输入及输出实验1实验目的1) 学习单片机的 I/O 口的使用方法; 2) 学习延时子程序的编写和使用; 3) 学习分支指令的使用; 4) 学习使用定时器完成延时的方法。2实验内容1) P1 口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮, 每个发光二极管点亮时间为 1 秒;仔细思考,画出程序流程图;编写程 序并写清注释; 2) P2.0、 P2.1 作输入口接两个拨动开关, P1 作输出口,接八个发光二极管,编写程序读

9、取开关状态,根据此状态,改变八个发光二极管的点亮方式 (至少两种) 。编程时应注意 P2.0、P2.1 作为输入口时应先置 1,才能正 确读入值。仔细思考,画出程序流程图;编写程序并写清注释; 3) 考虑使用定时器完成需要的延时,可以采用查询或是中断的方式。首先 根据延时时间确定定时器的工作方式(13 位、16 位还是 8 位) ,然后据 此计算出定时器初值,最后确定选择使用 T0 还是 T1,并设置相应特殊 功能寄存器(TMOD、TCON) 。可根据课件中的例子进行修改。3实验注意事项1) 对于 MCS51MCU, P2 口是准双向口。它作为输出口时与一般的双向口结束 束使用方法相同。由准双

10、向口结构可知当 P2 口用为输入口时,必须先对它置“1” 。若不先对它置“1” ,读入的数据是不正确的。2) 8051 延时子程序的延时计算问题,需要考虑系统晶振和延时时长,对于较 长的延时需要采用多重循环的方式得到。如实验要求发光二极管点亮 1 秒,请 参考课件上延时 50ms 的例子进行修改 。 3) 如果需要使用定时器完成较长时间的延时,需要定时器多次定时来完成。 4) 实验报告要求 在实验报告中详细介绍自己的设计思路、流程图和程序编写过程。4实验电路及连线连线 连接孔 1 连接孔 2 1 P1.0 L0 2 P1.1 L1 3 P1.2 L2 4 P1.3 L3 5 P1.4 L4 6

11、 P1.5 L5 7 P1.6 L6 8 P1.7 L7 9 P2.0 S0 10 P2.1 S15实验过程实验实验 a(流水灯):(流水灯):设计思路:在晶振为 12MHZ 时,方式 1 最大能实现的定时时间 为 us,要使 P1.0 输出周期为 2s 的方波,定时时间为 1s。对类似的定长时间定时要求,可以采用 基准定时加循环的方法。比如要求定时 1s,选择 T0 的方式 1,基准定时 50ms, 循环 20 次即为 1s。 流程图:开始置定时器模式和常数记数单元赋初值 (10H)一(A) 一商; (A)一(B)一余数;启动定时器 (11H)一(A) 一商; (12H)一(B)一余数;等待

12、中断开中断 (11H)一(A) 一商; (12H)一(B)一余数;(a)主程序流程图主程序流程图(b)中断服务程序流程图)中断服务程序流程图程序代码:ORG 0000HAJMP START ORG 001BHAJMP INT_T0 ORG 0030HSTART:MOV SP, #68H MOV P2,#0FFH MOV A,#001H MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0HMOVR7,#20中断入口保护现场 (10H)一(A) 一商; (A)一(B)一余数;记数单元重新赋初值 (11H)一(A) 一商; (12H)一(B)一余数;中断返回恢复现场 (1

13、1H)一(A) 一商; (12H)一(B)一余数;1s 循环时间到?重置 1s 循环次数改变 P1.0 状态NYSETB TR1 SETB EA SETB ET0 SJMP $ INT_T0:PUSH PSWMOVTH0,#3CHMOVTL0,#0B0HDJNZ R7,EXITMOV R7,#20MOVP1,ARLAEXIT:POPPSWRETIEND实验实验 b(LED 两种点亮方式):两种点亮方式):设计思路:P2.1P2.0 作输入口接两个拨动开关, P1 作输出口,接八个发光二 极管,编写程序读取开关状态,根据此状态,改变八个发光二极管的点亮方式, P2.1P2.0=11 时右移依次点

14、亮,P2.1P2.0=10 时左移依次点亮。点亮 LED 用基准 定时实现。因为数码管共阴极,所以高电平时亮。 流程图:(a)主程序流程图主程序流程图开始置定时器模式和常数记数单元赋初值 (10H)一(A) 一商; (A)一(B)一余数;启动定时器 (11H)一(A) 一商; (12H)一(B)一余数;等待中断开中断 (11H)一(A) 一商; (12H)一(B)一余数;中断入口保护现场 (10H)一(A) 一商; (A)一(B)一余数;(b)中断服务程序流程图)中断服务程序流程图程序代码:ORG 0000HAJMP STARTORG 000BHAJMP INT_T1ORG 0030HSTART:MOV SP, #68H ;数据指针上移 MOV P2,#0FFH ; P2 全高 ,P2.1P2.0=11 MOV A,#001H ; MOV TMOD,#10H

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号