哈工大威海 单片机实验报告.doc

上传人:啊飒飒 文档编号:10171382 上传时间:2021-04-25 格式:DOC 页数:12 大小:47.50KB
返回 下载 相关 举报
哈工大威海 单片机实验报告.doc_第1页
第1页 / 共12页
哈工大威海 单片机实验报告.doc_第2页
第2页 / 共12页
哈工大威海 单片机实验报告.doc_第3页
第3页 / 共12页
哈工大威海 单片机实验报告.doc_第4页
第4页 / 共12页
哈工大威海 单片机实验报告.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《哈工大威海 单片机实验报告.doc》由会员分享,可在线阅读,更多相关《哈工大威海 单片机实验报告.doc(12页珍藏版)》请在三一文库上搜索。

1、单片机实验报告 学号:100250212姓名:指导教师:实验二一、 实验目的 1 、 进一步了解开发系统的功能和使用; 2 、 了解程序设计与调试的基本过程; 3 、 了解简单程序和分支程序程序的特点和设计。 二、 实验内容 1 、 简单程序的设计、输入、调试和运行; 2 、 分支程序的设计、输入、调试和运行; 三、 实验步骤 1、设计、调试双字节乘法程序,功能为:(R2R3)*(R6R7)R4R5R6R7输入设计好的程序检查无误后,汇编。向R2R3和R6R7中输入多组不同的数据,运行程序,观察R4R5R6R7中的内容,分析运行结果是否正确。2、求符号函数,设:X30H,Y31H输入设计好的程

2、序检查无误后,汇编。向30H中输入多个不同的数据,运行程序,观察31H中的内容,分析运行结果是否正确。3、将ASCII码转换十六进制数设ASCII码放在累加器A中,结果放回到A中,如果A中的内容不是十六进制的数的ASCII码,用户标志位F0置1。输入设计好的程序检查无误后,汇编。向A中输入多个不同的数据,运行程序,观察A中的内容,分析运行结果是否正确。四、实验程序及分析结果1、双字节乘法运算程序程序如下:ORG 0000HLJMP MAINMAIN: MOV A, R3;先计算R7乘R3MOV B, R7MUL AB ;A中为积的低八位MOV R1,A ;将低八位存入R1中MOV R5,B ;

3、将高八位存入R5中MOV A, R2 ;计算R7乘R2MOV B, R7MUL AB ADD A, R5 ;R5加至A MOV R5, A ;将结果存入R5 MOV R4, B;将高位结果存入R4 MOV A, R1 MOV R7, A;将低八位存入R7中 JNC NEXT1 ;C为零则跳转 MOV A, R4 ;如果C为1则将R4加一 CLR C ADD A, #01 MOV R4, ANEXT1: MOV A, R3MOV B, R6 MUL AB ADD A, R5 MOV R5, A MOV R1,B MOV A, R4 JNC NEXT2 CLR C ADD A, #1NEXT2:

4、ADD A, R1MOV R4, A MOV A, R2 MOV B, R6 MUL AB ADD A, R4 MOV R4, A MOV A, B JNC NEXT3 CLR C ADD A, #1NEXT3: MOV R1, AMOV A,R5MOV R6, A MOV A, R4MOV R5, A MOV A, R1 MOV R4, AHERE: SJMP HEREEND总体思想为将该16位乘法拆分为四步8位乘法运算在进行带进位的相加程序中每段分别实现一个八位乘法,然后与上次运算结果相加。实验结果该程序正确正确的执行出了结果,输入数据后其输出数据均正确。2、符号函数程序: ORG 000

5、0HSTART: MOV A,30HCJNE A,#00H,NZAJMP LLNZ: JB ACC.7,MMMOV A,#01HAJMP LLMM: MOV A,#81HLL: MOV 31H,AHERE: SJMP HEREEND 总体思想:将30H中的数与0比较,相等则31H输出为0;不相等判断最高位(符号位),符号位为0,说明是整数,输出为01H;符号位为1,说明为负数,输出为81H。3、码转换程序ORG 0000HCLR CCLR F0SUBB A,#30HJC NASCCJNE A,#0AH,NE1NOPNE1: JC ASCSUBB A,#07HCJNE A,#0AH,NE2NE2

6、: JC NASCCJNE A,#10H,NE3NE3: JNC ASCNASC: SETB F0ASC: NOPHERE: SJMP HEREEND总体思想:16进制包括09,AF,09的ASC值为3039,AF的ASC值为6570,依次按程序判断给出的数是否在这两个区间之内,满足条件则输出对应的16进制数,不满足条件则用户标志位F0置1.实验三一、 实验目的 1 、 了解汇编语言程序设计与调试的过程; 2 、 掌握循环程序、查表程序和子程序的特点及设计。 二、 实验内容 1 、 循环程序的设计、输入、调试和运行; 2 、 查表程序的设计、输入、调试和运行;三、 实验步骤 1 、排序程序:将

7、N 个数从小到大排列起来。 设R0的内容为数据区的首地址,R7的内容为数据的字节数。ORG 0000HLJMP MAINMAIN:SS:MOV A,R7MOV R2,A MOV 60H,R0NN:DEC R2MOV A,R2MOV R3,AMOV R0,60HL1: MOV A,R0INC R0CLR CSUBB A,R0JC MMMOV A,R0DEC R0XCH A,R0INC R0MOV R0,ASETB F0MM:DJNZ R3,L1MOV A,R2CJNE R2,#01H,RRSJMP JJRR: JB F0,NNJJ: MOV R0,60HHERE: SJMP HEREEND该程序

8、为经典的冒泡排序算法为效率非常高的算法,其大体思想如下:1. 比较相邻两个数,如果后一个大于前一个,则将两个数交换,否则不进行任何动作2. 继续比较下一个数3. 如果本趟比较没有进行交换,则排序完毕2 、查表程序 设计一程序,将16进制数转换为对应的 ASCII 码。设16进制数放在 R6中,转换结果放在R7中。 ORG 0000H LJMP MAINMAIN:MOV A,R6 ANL A,#0FH MOV DPTR,#TAB MOVC A,A+DPTR MOV R7,A MOV R7,A HERE: SJMP HEREORG 0030H TAB : DB 012345678 DB 9ABCD

9、EFEND 程序基本思想:将R6输入的数作为地址偏移量,进行查表寻址,采用DPTR指针寻址,基址为表格起始地址四、实验结果将数存入相应的内存单元,运行程序,排序结果正确程序二中装换结果正确。实验四 单片机中断实验一、 实验目的 1 、 了解单片机的中断过程。 2 、 了解单片机中断的触发方式。 3 、 了解单片机中断的程序设计。 4 、 学习中断服务程序的调试方法。 二、 实验内容 1 、 单片机外部中断的低电平触发方式 如图3.4.1,按住开关 K,在 INT0 端产生一个低电平信号,触发外部中断,将事先送入寄存器R1中的值由 LED 即发光二极管电路显示出来。 2 、 单片机外部中断的下降

10、沿触发方式 如图3.4.1,按一下开关 K,在 INT0 端产生一个下降沿信号,触发外部中断,将事先送入寄存器R1中的值由LED 即发光二极管电路显示出来。 注意:开关Kx可用查询式键盘中的任意一键代替。 三、 实验步骤 1 、 外部中断的低电平触发方式 (i )按图4-3 给出的原理图连好电路,其中 Kx 可为开关量输入如模块中的任意一个开关,用双头线与INT0 引脚(位于单片机扩展资源区(D1区)连接。参考程序如下: ORG 0000H AJMP MAIN ORG 0003H AJMP ITAP ORG 0030H MAIN: MOV TCON ,#00H SETBEX0 SETB EA

11、HERE: AJMP HERE ORG 0040H ITAP : MOV A,R1 MOV P1,A RETI END 2 、外部中断的下降沿触发方式 参考程序如下: ORG 0000H AJMP MAIN ORG 0003H AJMP ITAP ORG 0030H MAIN: MOV TCON ,#01H MOVIE ,#81H MOV R1,#21H HERE: AJMP HERE ORG 0100H ITAP : MOV A,P1 SWAP A MOV P1,A RETI END 程序一设为低电平触发方式,只要外部存在低电平,则执行中断服务程序,程序二为下降沿触发模式。四、实验结果程序一

12、在低电平持续期间,不停执行中断服务程序,程序二只在下降沿是执终端服务程序。实验五 单片机定时/计数器实验一、 实验目的 1 、 了解单片机定时/ 计数器原理、工作方式选择; 2 、 了解单片机定时与计数器的工作过程; 3 、 了解单片机定时/ 计数器的程序设计方法。 二、 实验内容 1 、 用定时、计数器控制图4-4 中的发光二极管,使其亮两秒,灭两秒,周而复始,设计该程序。三、 实验步骤1 、 设T0定时间隔为 50ms(方式),当定时时间到后,将 P1.7 的输出加到 T1端作计数脉冲,需要定时两次才构成一个完整的计数脉冲,因此T1需计数 20 次,才能完成2 秒的定时,2 、 计算定时/

13、 计数器的初值 T0为定时方式,设其初值为4C00HT1为计数方式 初值为 256-10=246=ECHORG 0000H AJMP MAIN ORG 000BH AJMP T0_INT ORG 0100H MAIN:MOV TMOD,#61H MOV TL1,#0ECH MOV TH1,#0ECH MOV TH0,#4CH MOV TL0,#00H MOV IE,#82H SETB TR0 SETB TR1 LOOP1:JBC TF1,LOOP2 SJMP LOOP1 LOOP2:CPL P1.0 SJMP LOOP1 T0_INT: MOV TH0,#4CH MOV TL0,#00H CPL P1.7 RETI END 每次经过50ms定时器一产生一个中断,将p1.7的电平翻转,产生100ms的脉冲,将其作为T1的计数输入端,则可产生一个周期两秒的脉冲四、实验结果P1.7的小灯按100ms的周期闪烁,P1.0的小灯按2s的周期闪烁。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1