【免费下载】单片机实验报告1
- 格式:pdf
- 大小:196.37 KB
- 文档页数:5
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==单片机实验报告(相当不错,有具体实验结果分析哦)学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:实验一 I/O 口输入、输出实验地点:基础实验大楼A311一、实验目的掌握单片机P1口、P3口的使用方法。
二、实验内容以P1 口为输出口,接八位逻辑电平显示,LED 显示跑马灯效果。
以P3 口为输入口,接八位逻辑电平输出,用来控制跑马灯的方向。
三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。
四、实验说明和电路原理图P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。
由准双向口结构可知当 P1口作为输入口时,必须先对它置高电平使内部MOS管截止。
因为内部上拉电阻阻值是20K~40K,故不会对外部输入产生影响。
若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。
本实验需要用到CPU模块(F3区)和八位逻辑电平输出模块(E4区)和八位逻辑电平显示模块(B5区)。
2学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:五、实验步骤1)系统各跳线器处在初始设置状态。
用导线连接八位逻辑电平输出模块的K0 到CPU 模块的RXD(P3.0 口);用8 位数据线连接八位逻辑电平显示模块的JD4B 到CPU 模块的JD8(P1 口)。
2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。
编译无误后,下载程序运行。
3)观察发光二极管显示跑马灯效果,拨动K0 可改变跑马灯的方向。
六、实验参考程序本实验参考程序:;//****************************************************************** ;文件名: Port for MCU51;功能: I/O口输入、输出实验;接线: 用导线连接八位逻辑电平输出模块的K0到CPU模块的RXD(P3.0口);;用8位数据线连接八位逻辑电平显示模块的JD2B到CPU模块的JD8(P1口)。
南昌大学实验报告学生姓名:学号:专业班级:实验类型:⃞验证⃞综合⃞设计⃞创新实验日期:2019.4.9 实验成绩:实验一单片机软件实验(一)实验目的1.掌握51单片机keil软件集成开发环境,能够使用汇编语言编写应用程序。
2.掌握使用集成开发环境Keil进行单片机程序开发的方法3.掌握使用集成开发环境Keil进行单片机程序跟踪调试的方法。
(二)设计要求熟悉51单片机的keil软件集成开发环境,使用汇编语言编写“1+2+3+…+100”的程序。
(三)实验原理KeilC51软件使用:在KeilC51集成开发环境下,建立一个工程并编辑源程序,熟悉Keil C51集成开发环境下各种菜单、命令的使用。
(四)实验设备PC机,Keil C51集成开发环境。
(五)实验结果对汇编程序进行编译、链接、调试,在Keil C51软件中运行仿真结果如下图所示,由于“1+2+……100”运行结果超过8位二进制所能表示的范围,计算结果将存放于两个8位工作寄存器单元R2、R3中。
其中,低八位存放于R2中,高八位存放于R3中,R4中存放计算数。
下图中的寄存器窗口中可以显示计算结果为0x13ba。
调出存储器窗口Memory:选择菜单命令View →Memory Window →Memory 1:可见计算结果存放于当前工作寄存器R2(02H)与R3(03H)中,为0x13BA。
(六)结果讨论与心得体会第一次使用Keil C51软件,初步了解了软件:Keil uVision4的使用方法,初步了解了Keil软件中程序的编辑,新工程的建立运行,初步对单片机实验进行了解,加强了实验动手操作能力。
第一次尝试单步调试,能观察到内存中每一个单元的变化,感到单片机系统复杂中的严谨,收获颇丰。
(七)附录:实验源代码实验源代码如下:ORG 0000HLJMP MAINORG 0050H MAIN:MOV R2,#00HMOV R3,#00HMOV R4,#64HMOV A,#00HCLR C LOOP:MOV A,R2ADD A,R4MOV R2,AMOV A,#00HADDC A,R3MOV R3,ADJNZ R4,LOOPSJMP $END。
1 双字节无符号数加法例1: 双字节无符号数加法(R0 R1)+(R2 R3) → (R4 R5),R0、 R2、 R4存放16位数的高字节, R1、 R3、 R5存放低字节。
已知(R0 R1)=(93h,79h);(R2 R3)=(25h,a4h)假设其和不超过16位。
请编程。
org 0000hLjmp startorg 0050hstart:mov R0,#93hmov R1, #79hmov R2,#25hmov R3, #0a4hmov A,R1ADD A,R3mov R5,Amov A,R0ADDC A,R2mov R4,Ass: jmp ssend2双字节无符号数减法例2: 双字节无符号数相减(R0 R1)-(R2 R3) → (R4 R5)。
R0、 R2、R4存放16位数的高字节, R1、 R3、 R5存放低字节,已知(R0 R1)=(93h,79h);(R2 R3)=(25h,a4h);请编程。
同学自己可以设置被减数与减数数值org 0000hLjmp startorg 0050hstart:mov R0,#93hmov R1,#79hmov R2,#25hmov R3,#0a4hmov A,R1CLR CSUBB A,R3mov R5,Amov A,R0SUBB A,R2mov R4,Ass: jmp ssend3双字节数乘以单字节数例3: 利用单字节乘法指令,进行双字节数乘以单字节数运算。
若被乘数为16位无符号数, 地址为M1(30H) 和M1+1(31H)(低位先、高位后), 乘数为8位无符号数, 地址为M2(32H), 积由高位到低位存入R2、 R3和R4三个寄存器中。
30H,31H,32H内容 12H,34H,56H ;org 0000hLjmp startorg 0050hstart:mov 30h,#12hmov 31h,#34hmov 32h,#56hmov a,(30h)mov b,(32h)mul abmov R3,bmov R4,amov a,(31h)mov b,(32h)mul abadd A,R3mov R3,Amov A,bADDC A,#00hmov R2,Ass: jmp ssend4. 把8位二进制数转换为3位BCD例4: 利用除法指令把累加器A中的8位二进制数转换为3位BCD 数, 并以压缩形式存放在地址M1、 M2单元中。
单片机实验报告1单片机实验报告1一、实验目的本实验的目的是通过学习单片机的基本知识和原理,了解单片机的工作原理,熟悉编写单片机程序并进行实验验证。
二、实验器材和软件实验器材:单片机开发板、USB数据线、LCD液晶屏、面包板、电缆线、电阻、LED等。
实验软件:KEIL C51开发软件、Proteus电路仿真软件。
三、实验原理单片机是一种集成度很高的微处理器芯片,本实验使用的单片机开发板中集成了一款8051系列的单片机。
这款单片机具有强大的数据处理能力和丰富的接口资源,可以用来实现各种功能。
四、实验内容本实验主要分为两个部分:第一部分是通过LED灯的亮灭来实现二进制数的计数;第二部分是通过LCD液晶屏显示温度和湿度数值。
1.二进制数计数利用单片机的IO口,将LED灯连接到P2口,通过对P2口的输出信号进行控制,实现二进制数的计数。
2.温湿度显示利用单片机的ADC(模数转换)功能,将温湿度传感器与单片机相连,通过ADC模块将温湿度信号转换成数字信号,并通过LCD屏幕显示出来。
五、实验步骤1.硬件连接将开发板与电脑连接,使用数据线将开发板上的USB接口与电脑的USB接口相连。
然后将LCD液晶屏和温湿度传感器连接到开发板上的相应接口,并将LED灯连接到P2口。
2.编写程序使用KEILC51软件编写程序,通过编写相应的代码,实现LED灯计数和温湿度显示功能。
4.运行实验将开发板上的拨码开关打开,开启单片机的电源。
LED灯开始计数并显示在开发板上,LCD屏幕同时显示温度和湿度的数值。
六、实验结果经过实验,LED灯能够正常进行二进制数的计数,LCD屏幕也能够准确地显示温度和湿度的数值。
七、实验总结通过本实验,我对单片机的工作原理和编程有了更深入的了解。
实验中遇到的问题,我通过查找资料、请教老师和同学进行了解决,提高了我的解决问题的能力。
通过实验,我进一步认识了单片机在各个领域中的重要性和应用价值,对未来的学习和工作有了更加明确的方向。
单片机实验报告第一篇:单片机实验报告单片机实验报告一、实验目的1.熟练使用Keil、Protues两款软件2.通过上机操作,增强个人动手实践能力3.加深对理论知识的理解4.培养运用汇编语言进行初步编写程序的能力二、实验内容1.将片外RAM3050-306FH中数据转移至片内70-8FH中。
要求:可以从Keil或Protues上看到RAM的数据转移结果。
2.设计一个外部中断触发流水灯系统:当外部中断来临时,启动流水灯,即令P2口的LED轮流循环点亮。
要求:开发板或Prrotues演示3.将片内存储器80H中存放的BCD码转换为ASCII码,要求使用表格查询技术。
要求:在Keil或Protues上看到数据转换结果。
4.各使用中断方式和查询方式设计一个方波发生器,频率为50HZ。
要求:Protues使软件间示波器显示方波。
三、实验程序1.将片外RAM3050-306FH中数据转移至片内70-8FH中ORG 0000H AJMP MAIN 上电,转向主程序ORG 0030H 主程序入口MAIN: MOV DPTR,#3050H 数据指针指向地址3050H MOV A,#04H 将立即数04H送A寄存器MOV R0,#20H NEXT: MOVX @DPTR,A INC DPTR 数据指针DPTR自加一DJNZ R0,NEXT 判断是否跳转到NEXT或继续向下执行MOV DPTR,#3050H MOV R0,#70H MOV R2,#20H NEXT1: MOVX A,@DPTR MOV @R0,A INC DPTR INC R0 DJNZ R2,NEXT1SJMP $ 等待END 2.设计一个外部中断触发流水灯系统:当外部中断来临时,启动流水灯,即令P2口的LED轮流循环点亮ORG 0000H SJMP MAIN 上电,转向主程序ORG 0003H 外部中断0向量入口AJMP INSER ORG 0030H 主程序入口MAIN: SETB EX0 SETB IT0SETB EA CPUHERE: SJMP HERE ORG 0200H INSER: MOV R2,#08H MOV A,#01H NEXT: MOV P2,A LCALL DELAY RL A DJNZ R2,NEXT NEXT或继续向下执行RETI DELAY: MOV R3,#0FFH DEL2: MOV R4,#0FFH DEL1: NOP 允许外部中断0中断选择边沿触发方式开中断等待中断设置循环次数赋初值,设置高电平亮将初值送往P2口延时左移一位判断循环次数,是否跳转到中断返回延时程序DJNZ R4,DEL1 DJNZ R3,DEL2 RET END 3.将片内存储器80H中存放的BCD码转换为ASCII码,要求使用表格查询技术 ORG 0000H LJMP MAIN ORG 0030H主程序起始地址 MAIN: MOV 80H,#05H 将立即数50H转送内存单元80H MOV A,80H 将内存单元80H中的内容送寄存器A MOV DPTR,#TAB MOVC A,@A+DPTR A寄存器内容加指针偏移量后送A寄存器 MOV 80H,A RET TAB: DB 30H,31H,32H,33H,34H DB 35H,36H,37H,38H,39H 4.1中断方式产生50HZ方波ORG 0000HAJMP MAINORG 0030H 主程序入口 MAIN: MOV TMOD,#10H 设置定时器工作模式为模式1 MOV TH1,#0D8H 装入T1计数初值MOV TL1,#0F0HSETB ET1 开中断SETB EA CPU开中断SETB TR1 启动定时器T1 HERE: SJMP HERE 等待中断ORG 001BH T1中断向量地址CLR TF1 将TF1清零CPL P2.0 P2.0取反输出MOV TH1,#0D8H 重装初值MOV TH0,#0F0HRETI;中断返回END 4.2 查询方式产生50HZ方波ORG 0000HAJMP MAINORG 0030H 主程序入口MAIN: MOV TMOD,#10H 设置定时器的工作模式为模式1 SETB TR1 启动定时器T1 LOOP: MOV TH1,#0D8H 装入T1计数初值MOV TH0,#0F0H JNB TF1,$ T1没有溢出则等待CLR TF1产生溢出,清标志位CPL P2.0 P2.0取反输出SJMP LOOP 循环END四、实验结果截图1.23.4.14.2第二篇:单片机实验报告实验四、中断交通灯实验林立强1000850116一、实验目的1、了解MCS-51单片机的组成、中断原理,中断处理过程、外部中断的中断方式。
单片机实验报告引言:单片机是一种集成了处理器、存储器和输入输出设备的微型计算机,广泛应用于电子设备中。
本实验通过对单片机的学习和实践,探索了其原理和应用。
一、实验目的本次实验的目的是熟悉单片机的基本原理和操作方法,掌握单片机的编程语言和开发工具,实现简单的实时控制和数据采集。
二、实验装置及材料1. 单片机:我们选择了常用的51系列单片机,拥有较好的性能和兼容性。
2. 开发板:用于实验中运行和调试所写的程序。
3. 传感器:温度传感器、光照传感器等,用于实现数据采集。
4. LED灯和蜂鸣器:用于实现实时控制和输出。
5. 连接线:将单片机与传感器、开发板等连接起来。
三、实验过程和结果1. 单片机的编程语言:单片机主要使用汇编语言和C语言进行编程。
汇编语言能够直接操作硬件资源,灵活性较高;而C语言则更易于理解和编写,可提高开发效率。
我们选择了C语言进行编程。
2. 开发工具:为了编写和调试单片机程序,我们使用了KeilC51和Proteus软件进行开发。
Keil C51提供了编译器和调试器,可对程序进行编译和调试;Proteus能够模拟开发板的运行情况,方便我们验证程序的正确性。
3. LED控制实验:我们首先进行了LED控制实验,通过单片机的I/O口来控制LED的开灭。
编写程序后,在开发工具中进行仿真,确保程序和电路无误后,将程序下载到单片机上进行实际运行。
实验结果显示,当程序指定LED灯为高电平时,LED灯亮起;当程序指定为低电平时,LED灯熄灭。
4. 数据采集实验:接下来,我们进行了数据采集实验,利用温度传感器和光照传感器采集环境温度和光照强度。
将传感器与单片机连接后,编写相应程序进行数据读取。
实验结果显示,我们能够通过单片机读取到精确的温度和光照数值。
5. 实时控制实验:为了验证单片机的实时控制能力,我们使用蜂鸣器进行了实时报警实验。
通过编写程序,设置蜂鸣器的开关状态,当某个条件满足时,蜂鸣器会发出警报声。
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==单片机实验报告第一部分软件实验实验一熟悉伟福模拟仿真软件的使用1.实验程序INDEX EQU 20HSUM EQU 21HORG 0000HSTART:MOV INDEX,#5MOV A,#0LOOP: ADD A,INDEXDJNZ INDEX,LOOPMOV SUM,ASJMP $END单步执行时累加器A的内容变化:00 05 09 0C 0E20H 单元的内容变化:05 04 03 02 01 0021H单元的内容变化:00 00 00 00 00 00 0F 0F全速执行时累加器A的内容:0F21H单元的内容:0F断点执行时累加器A的内容变化:0020H单元的内容变化:05 04 03 02 01思考题:将存储单元由内部存储单元21H改为外部存储单元2100H 程序如下:INDEX EQU 20HORG 0000HMOV DPTR,#2100HSTART:MOV INDEX,#5MOV A,#0LOOP: ADD A,INDEXDJNZ INDEX,LOOPMOVX @DPTR,ASJMP $END实验二简单编程实验 05 09 0C 0E1.清零程序(1)对一个单元清零ORG 0000HCLR AMOV DPTR,#200AHMOVX @DPTR,ASJMP $END200AH单元内容执行前:FF 执行后:00思考题:能否用MOVX @DPTR,#00H 或 MOVX 200AH,A?不能,访问外部数据需要间接访问对内部数据清零的方法?MOV direct,A 或 MOV direct,Rn 或 MOV direct1,direct2 MOV direct,@Ri 或 MOV direct,#data(2)将RAM某一数据块清零程序如下:ORG 0000HMOV DPTR,#201XHMOV R0,#11HCLR ALL:MOVX @DPTR,AINC DPTRDJNZ R0,LLSJMP $END执行前:201XH FF 执行后:201XH 00 201XH FF 执行后:201XH 00流程图:… 2020H… FF 执行后:2020H 00思考题:如何对从201XH开始的256个存储单元清零程序如下:ORG 0000HMOV DPTR,#201XHCLR AMOV R1,#10HLL2: MOV R0,#10HLL1:MOVX @DPTR,AINC DPTRDJNZ R0,LL1DJNZ R1,LL2SJMP $END2.屏蔽程序执行前:201XH FF 执行后:201XH FF201XH FF 执行后:201XH 0F 思考题:(1)如何对指定单元进行低4位屏蔽?例如将201XH—2020H的低4位屏蔽,程序如下: ORG 0000HMOV DPTR,#201XHMOV RO,#11HLOOP:MOVX A,@DPTRANL A,#0FHMOVX @DPTR,AINC DPTRDJNZ R0,LOOP。
单片机实习报告单片机实习报告精选2篇(一)实习报告实习单位:XXXX公司实习时间:20XX年X月-20XX年X月一、实习背景在本次实习中,我到了XXXX公司进行单片机相关的实习。
本次实习旨在通过实际操作和实践,深入了解单片机的原理和应用,并提升自己的实践能力和团队合作能力。
二、实习内容1. 学习基础知识在实习开始前,我先通过自学对单片机的基本知识进行了学习,包括单片机的原理、结构、指令系统和编程语言等。
2. 学习开发工具在公司的指导下,我学习了单片机的开发工具,包括Keil开发环境和Proteus仿真软件等。
通过学习和实践,我熟悉了这些工具的基本操作和常用功能。
3. 实际操作在掌握了基础知识和开发工具后,我开始进行实际操作。
根据公司的要求,我完成了一些单片机的应用案例,包括LED灯控制、电机控制、温度测量等。
通过实际操作,我加深了对单片机的理解,并提高了自己的实践能力。
4. 团队合作在实习期间,我积极参与到团队项目中。
与同事合作完成了一个基于单片机的智能家居控制系统的开发,包括温湿度监测、光照控制、门窗报警等功能。
这个项目不仅提高了我的团队合作能力,也进一步加深了我对单片机的应用理解。
三、收获与体会通过这次实习,我对单片机的原理和应用有了更深入的了解。
我不仅学到了书本上没有涉及到的实际操作经验,还学到了与人合作的能力。
在实践中遇到问题时,我学会了积极思考和与他人沟通,寻找解决问题的方法。
同时,我也认识到自己在某些方面的不足,比如对于理论知识的掌握还需要加强,对于一些高级功能的应用还需要进一步学习。
总的来说,这次实习对我来说是一次宝贵的经验,它不仅给我提供了实践机会,也让我认识到自己的不足之处,激发了我进一步深入学习的动力。
我相信,通过不断努力和实践,我能够在单片机领域取得更大的进步。
单片机实习报告精选2篇(二)参加单片机实训课程的心得体会如下:首先,通过单片机实训课程,我对单片机的原理和应用有了更深入的了解。
单片机实验报告1. 实验背景单片机(Microcontroller Unit,简称MCU)是一种集成了微处理器核心、内存、计时器、I/O接口等功能的集成电路芯片。
它具有体积小巧、功耗低、性能高等优点,在嵌入式系统中应用广泛。
本实验旨在通过对单片机的实际操作,加深对单片机原理及应用的理解。
2. 实验目的本次实验的主要目的是:- 掌握单片机的基础知识,包括单片机的结构、工作原理等;- 学习单片机的编程方法,初步掌握单片机的编程技巧;- 进行简单的单片机应用实验,提高对实际应用的理解。
3. 实验设备与材料实验所需的设备和材料包括:- 单片机开发板;- 计算机;- 连接线等。
4. 实验过程与结果在本实验中,我们使用XXX型单片机开发板作为实验平台,通过连接计算机进行编程。
具体的实验过程如下:4.1 硬件连接将单片机开发板与计算机通过连接线连接,并确保连接正常。
接下来,将我们设计好的电路按照要求连接到开发板的相应引脚上。
4.2 编程使用XXX软件对单片机进行编程。
根据实验要求,编写相应的程序代码,并将代码下载到单片机开发板中。
验证代码是否编译通过,并将运行结果显示在数码管、液晶显示屏等外设上。
4.3 实验结果实验结果根据不同的实验要求而定,可以是对某个外设的控制、信号的采集、数据的处理等。
在实验过程中需记录实验结果,并进行分析。
5. 实验总结通过本次实验,我对单片机的基本原理及应用有了更深入的了解。
掌握了单片机的硬件连接方法和编程技巧,并成功完成了实验要求。
实验结果表明,单片机在各个领域都有广泛的应用前景,对于嵌入式系统的开发起着重要作用。
当然,本次实验只是单片机应用的初步探索,还有很多更深入的研究和应用值得去探索。
在今后的学习与实践中,我将进一步深化对单片机的理解,并将其灵活应用于各种项目中。
6. 参考文献[参考文献1][参考文献2][参考文献3](文章内容仅供参考,具体实验过程和结果以实际情况为准。
)。
单片机实验报告班级:姓名:学号:日期:实验一:跑马灯实验实验目的:1.通过实验,掌握汇编语言程序的基本格式及其编写;2.通过实验,熟悉指令系统,掌握查表指令及其应用;3.通过实验,掌握子程序及延时子程序的编写;4.通过实验,掌握中断的概念及其定时器的应用实验内容:1.键入跑马灯的代码:#include<iom16v.h>void delay_ms(unsigned int time){unsigned int k,l;for(k=0;k<time;k++)for(l=0;l<1141;l++);}void main(void){ unsigned char i,j;PORTC=0x00;DDRC=0xFF;while(1){ j=0x02;for(i=0;i<7;i++) //8个流水灯逐个闪动{PORTC=j;delay_ms(25); //调用延时函数j<<=1;}j=0x40;for(i=0;i<7;i++) //8个流水灯反向逐个闪动{PORTC=j;delay_ms(25); //调用延时函数j>>=1;}}}2.通过ISIS7 模拟单片机3..将代码通过ATMEGA16 实现跑马灯的运行。
4.在ISIS7中运行。
实验结果:8个灯能够一次从右到左,再从左到右间隔100ms亮起。
实验问题:一开始代码正确但是当键入到ATMEGA16时8个灯不能亮起,1)电阻太大而模拟的电流太小;2)delay_ms的子代码设定的时间太短。
但是可以通过修改时钟频率可以对硬件进行时间脉冲修改。
实验二:键盘扫描实验目的:1.熟悉键盘与显示器的接口连接方法。
1.掌握键盘扫描的实现过程。
实验内容:1.键入代码:#include<iom16v.h>void delay_ms(int x){int i,j;for(i=0;i<=x;i++)for(j=0;j<=5000;j++){}}char cycle(){char jianzhi;PORTA=0xf0; //行输出低电平,列带上拉电阻输入DDRA=0x0F;delay_ms(15);if(PINA==0xf0) //检查有无键按下,无键按下返回0XFF return(0xff);if(PINA==0x70) //获取按下键的行编码jianzhi=1;else if(PINA==0xb0) //四行三列jianzhi=2;else if(PINA==0xd0)jianzhi=3;else if(PINA==0xe0)jianzhi=4;PORTA=0x0f; //反转DDRA=0xf0;delay_ms(15);if(PINA==0x0D)jianzhi=jianzhi+0;else if(PINA==0x0B)jianzhi=jianzhi+4;else if(PINA==0x07)jianzhi=jianzhi+8;return(jianzhi);}void main(){DDRD=0XFF;PORTD=0X00;DDRB=0XFF;PORTB=0X00;while(1){int jianzhi=cycle();switch(jianzhi){case 1:PORTB=0X00;PORTD=0X01;break;case 2:PORTB=0X00;PORTD=0X02;break;case 3:PORTB=0X00;PORTD=0X04;break;case 4:PORTB=0X00;PORTD=0X08;break;case 5:PORTB=0X00;PORTD=0X10;break;case 6:PORTB=0X00;PORTD=0X20;break;case 7:PORTB=0X00;PORTD=0X40;break;case 8:PORTB=0X00;PORTD=0X80;break;case 9:PORTD=0X00;PORTB=0X01;break;case 10:PORTD=0X00;PORTB=0X02;break;case 11:PORTD=0X00;PORTB=0X04;break;case 12:PORTD=0X00;PORTB=0X08;break;}}}2.通过ISIS7模拟连接电路:3.带入代码,运行程序,点击每个键盘按钮在右边的LED灯处显示所按得键盘号。
福建农林大学东方学院计算机系实验报告实验题目:转移运行40xxH单元中的内容“x ”专业年级:09电子信息工程2班学号:09x03020xx姓名:李路指导老师:罗志聪转移运行40xxH单元中的内容“x ”一、实验目的掌握程序散转的方法,实现程序的多分支转移。
二、实验内容编制程序,根据送入的数据转移运行。
三、实验程序框图四、实验步骤联机模式:(1)在4000H单元写入00,01,……09中任一个数,按下MON键,返回P状态。
(2)在PC机和实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开8kAsm 文件夹,点击S9.ASM文件,单击“确定”即可装入源文件,再单击工具栏中编译,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或工具图标运行,即开始运行程序。
(3)数码管应根据4000H单元中内容作不同的循环显示。
脱机模式:1、在P.态下,按SCAL键。
2、在4000H单元分别写入00,01,……09,在P.态下,输入2F40,按EXEC 键,数码管应根据4000H单元中内容作不同的循环显示。
五、实验程序清单CODE SEGMENT ;S9.ASMASSUME CS:CODE ;this is a program of 9 way jmpORG 2F40H ;[4000H]=0,1,2,3....9; disp:0,1,2,3. 0START: JMP START0ADDR DW DP0,DP1,DP2,DP3,DP4,DP5,DP6,DP7,DP8,DP9START0: MOV SI,40xx HMOV AL, [SI]SUB AH,AHSHL AL,1MOV BX,OFFSET ADDRADD BX,AxJMP [BX]DP0: mov bl,0c0h ;DISP "0"jmp dispDP1: mov bl,0f9h ;DISP "1"jmp dispDP2: mov bl,0a4h ;DISP "2"jmp dispDP3: mov bl,0b0h ;DISP "3"jmp dispDP4: mov bl,99h ;DISP "4"jmp dispDP5: mov bl,92h ;DISP "5"jmp dispDP6: mov bl,82h ;DISP "6"jmp dispDP7: mov bl,0f8h ;DISP "7"jmp dispDP8: mov bl,80h ;DISP "8"jmp dispDP9: mov bl,90h ;DISP "9"jmp disp;----------------------------------------disp: mov ah,0DFh disp0: mov dx,0ff22h mov al,blOUT DX,ALmov dx,0ff21h mov al,ahOUT DX,ALCALL DLYror ah,01hjmp disp0 DLY: mov cx,0001h dly1: push cxmov cx,0ffffh disp1: loop disp1pop cxoop dly1retCODE NDSEND START 六、实验结果七、实验总结。
一、实验名称单片机原理及应用实验二、实验目的1. 熟悉单片机的基本结构和原理,了解单片机在电子系统中的应用。
2. 掌握单片机编程语言C的基本语法和编程技巧。
3. 学会使用单片机进行简单控制,实现LED流水灯、数码管显示等基本功能。
4. 提高动手实践能力,培养团队合作精神。
三、实验仪器与设备1. 单片机实验箱:包括单片机、电源、按键、LED灯、数码管等。
2. 电脑:用于编程和仿真。
3. 编程软件:Keil uVision5或IAR EWARM等。
四、实验原理单片机是一种集成度高、功能强大的微控制器,具有运算速度快、功耗低、体积小等优点。
本实验以51单片机为例,介绍其基本原理和编程方法。
51单片机主要由以下几个部分组成:1. 中央处理器(CPU):负责执行指令,控制整个单片机系统。
2. 存储器:包括程序存储器(ROM)和数据存储器(RAM),用于存储程序和数据。
3. 输入/输出接口:用于与外部设备进行数据交换。
4. 定时器/计数器:用于实现定时和计数功能。
5. 中断系统:用于处理中断事件。
本实验主要涉及以下几个方面:1. 单片机基本结构和工作原理。
2. 单片机编程语言C的基本语法和编程技巧。
3. 单片机I/O口的使用和驱动能力。
4. 定时器/计数器的使用和编程。
5. 中断系统的使用和编程。
五、实验内容1. 实验一:LED流水灯(1)实验目的:掌握单片机I/O口的使用,实现LED流水灯效果。
(2)实验原理:通过单片机I/O口输出高低电平,控制LED灯的亮灭,实现流水灯效果。
(3)实验步骤:① 连接实验箱电路,将LED灯连接到单片机的P1口。
② 编写程序,设置P1口为输出模式,通过循环改变P1口输出电平,实现LED流水灯效果。
③在电脑上编译、下载程序,观察实验效果。
2. 实验二:数码管显示(1)实验目的:掌握单片机I/O口的使用,实现数码管显示功能。
(2)实验原理:通过单片机I/O口输出高低电平,控制数码管显示数字。
实验1 二进制到BCD转换一、实验目的学习星研Star16L仿真器系统的基本操作,熟悉EL-Ⅱ型通用接口板实验电路,掌握简单的数值转换算法。
二、实验仪器和设备PC机、星研Star16L仿真器系统+仿真头PODPH51(DIP)、EL-Ⅱ型通用接口板实验电路。
三、实验内容1)将给定的一个单字节二进制数(存放在R2中), 转换成非压缩的二—十进制(BCD)码, 并存放到R3R4R5中。
2)(选作)将给定的一个双字节二进制数(存放在R2R3中), 转换成压缩的二—十进制(BCD)码, 并存放到R4R5R6中。
四、实验方法1.将星研仿真器与微机和目标板相互连接构成完整的硬件仿真系统1)仿真器与仿真头的硬件连接:STAR16L仿真器与仿真头PODPH51(DIP)用两根40芯扁平电缆连接, 注意电缆插头的方向。
参见下图。
仿真头PODPH512)仿真头与EL-Ⅱ型通用接口板的硬件连接: 将EL-Ⅱ型通用接口板的8051CPU芯片拔下, 将仿真头PODPH51插入该CPU插座(40脚DIP),注意芯片的上下方向8051CPU3)仿真器与微机的连接: 通过USB接口将微机与仿真器相连, 打开仿真器电源。
仿真器与微机的第一次连接将自动引导安装程序, 在该驱动程序的安装过程中, 请勿执行其它应用程序。
2 、单片机仿真系统运行调试通过双击微机桌面的星研图标, 或通过开始菜单, 起动星研仿真系统程序, 通过输入程序, 编译通过后, 进入调试状态, 打相应的观察窗口, 观测CPU内部各个寄存器, 存储器以及外部存储器的状态, 通过单步或断点运行, 验证程序运行的正确性, 并修正错误。
五、参考程序清单及框图1)单字节二进制到非压缩BCD;NAME T1_1_BCDORG 0000H ;0100H不能用, 与星研软件冲突??BCD1: MOV A, R2 ;二进制数送AMOV B, #100 ;100作为除数送入BDIV ABMOV R3, A ;百位数送R3, 余数在B中MOV A, #10 ;分离十位和个位数XCH A, B ;余数送A, 除数10在B中DIV AB ;分离出十位在A, 个位在B中MOV R4, A ;十位送R3MOV A, BMOV R5, A ;个位送R4NOPLJMP BCD1END2)(选作)双字节二进制到压缩BCD;NAME T1_2_BCDORG 0000HBCD2: CLR AMOV R4, AMOV R5, AMOV R6, AMOV R7, #16LOOP: CLR CMOV A, R3RLC AMOV R3, AMOV A, R2RLC AMOV R2, AMOV A, R6ADDC A, R6DA AMOV R6, AMOV A, R5ADDC A, R5DA AMOV R5, AMOV A, R4ADDC A, R4DA AMOV R4, ADJNZ R7, LOOPLJMP BCD2END参考程序框图单字节二进制数转换成非压缩BCD码六、实验要求1.基本内容: 按照实验要求连接系统, 编制程序并运行, 说明如何利用仿真器验证程序的正确性。
一、实验目的1. 熟悉单片机的基本结构和工作原理;2. 掌握单片机的编程方法和调试技巧;3. 通过实际操作,加深对单片机原理的理解和应用。
二、实验内容1. 单片机基本原理实验;2. 单片机编程实验;3. 单片机接口实验。
三、实验器材1. 单片机实验板;2. 编程器;3. 调试器;4. 仿真软件;5. 实验指导书。
四、实验步骤1. 单片机基本原理实验(1)搭建单片机最小系统,包括电源、晶振、复位电路、时钟电路等;(2)观察单片机的基本引脚功能,如P1、P2、P3等;(3)了解单片机的存储器结构,包括ROM、RAM、特殊功能寄存器等;(4)学习单片机的指令系统,如数据传送指令、算术逻辑运算指令、控制指令等。
2. 单片机编程实验(1)使用Keil uVision5软件,编写单片机程序;(2)学习C51语言编程,掌握数据类型、运算符、控制结构等;(3)编写程序实现点亮LED灯,观察程序运行效果;(4)编写程序实现按键输入,读取按键状态。
3. 单片机接口实验(1)学习单片机的外设接口,如串口、I2C、SPI等;(2)使用单片机串口通信,实现单片机与PC机的数据传输;(3)编写程序实现I2C通信,读取EEPROM数据;(4)编写程序实现SPI通信,读取传感器数据。
五、实验结果与分析1. 单片机基本原理实验通过搭建单片机最小系统,观察了单片机的基本引脚功能,了解了单片机的存储器结构和指令系统。
实验过程中,掌握了单片机的基本工作原理,为后续编程实验打下了基础。
2. 单片机编程实验使用Keil uVision5软件,编写了点亮LED灯的程序,实现了按键输入读取按键状态。
通过编程实验,掌握了C51语言编程方法,提高了编程能力。
3. 单片机接口实验通过串口、I2C、SPI等接口实验,实现了单片机与PC机的数据传输,读取EEPROM 数据和传感器数据。
实验过程中,了解了单片机的外设接口原理,提高了实际应用能力。
六、实验心得与体会1. 实验过程中,掌握了单片机的基本原理和编程方法,提高了自己的动手能力;2. 通过实验,加深了对单片机原理的理解,为以后的学习和工作打下了基础;3. 在实验过程中,学会了如何查找资料、解决问题,提高了自己的独立思考能力;4. 认识到理论与实践相结合的重要性,只有将所学知识应用于实际,才能真正掌握。
一、实验目的1. 熟悉单片机的基本结构和工作原理。
2. 掌握单片机的编程方法,包括C语言和汇编语言。
3. 学习单片机的接口技术和应用系统设计。
4. 培养动手能力和解决实际问题的能力。
二、实验环境1. 单片机开发系统:STC89C52单片机开发板2. 编译器:Keil uVision3. 调试器:Proteus4. 实验指导书:《单片机实训教程》三、实验内容1. 单片机基本原理实验(1)实验目的:了解单片机的结构、工作原理和引脚功能。
(2)实验步骤:1)搭建实验电路,连接单片机开发板与Proteus仿真软件;2)编写程序,设置单片机的工作模式;3)通过Proteus仿真软件观察单片机的运行状态。
(3)实验结果:通过仿真软件,观察到单片机能够按照程序的要求进行运行,实现了实验目的。
2. 单片机C语言编程实验(1)实验目的:掌握单片机的C语言编程方法。
(2)实验步骤:1)在Keil uVision中创建新项目,选择STC89C52单片机;2)编写C语言程序,实现LED灯闪烁功能;3)编译、烧录程序到单片机,观察LED灯闪烁效果。
(3)实验结果:程序编译成功,烧录到单片机后,LED灯按照预期进行闪烁,实现了实验目的。
3. 单片机汇编语言编程实验(1)实验目的:掌握单片机的汇编语言编程方法。
(2)实验步骤:1)在Keil uVision中创建新项目,选择STC89C52单片机;2)编写汇编语言程序,实现LED灯闪烁功能;3)编译、烧录程序到单片机,观察LED灯闪烁效果。
(3)实验结果:程序编译成功,烧录到单片机后,LED灯按照预期进行闪烁,实现了实验目的。
4. 单片机接口技术实验(1)实验目的:了解单片机的接口技术,掌握常用接口的编程方法。
(2)实验步骤:1)搭建实验电路,连接单片机开发板与外部设备;2)编写程序,实现单片机与外部设备的通信;3)通过Proteus仿真软件观察通信过程。
(3)实验结果:通过仿真软件,观察到单片机与外部设备能够成功通信,实现了实验目的。
单片机实验1 汇编语言程序设计实验---- 存储器块赋值姓名于玥学号 201526030528 班级电气F1504一.实验目的1 熟悉存储器的读写方法,熟悉51汇编语言结构。
2 熟悉循环结构程序的编写。
3 熟悉编程环境和程序的调试。
二.实验内容指定存储器中某块的起始地址和长度,要求将其内容赋值。
例如将4000H 开始的100个字节内容清零或全部赋值为33H(参考程序),要求根据参考程序修改:修改程序,赋值内容为(10,9,8,7,6,5,4,3,2,1。
)三.实验仪器微机、VW,WAVE6000编程环境软件,(单片机实验箱)仿真器--仿真器设置-选择仿真器选择仿真头选择CPU Lab8000/Lab6000通用微控制器 MCS51实验 8051前3个软件实验勾选√使用伟福软件模拟器四实验步骤注意:1 文件不要用中文名称保存时不要用中文路径(目录),不要放在“桌面”上,源文件和工程要放在同一个文件夹下,文件名称和路径名称不要太长。
2 查看存储器菜单使用:窗口---数据窗口---XDATA 观察存储器内容3 查看SFR:窗口---CPU窗口查看CPU寄存器SFR4 单步执行:执行---单步执行(F8),每执行一步,查看每条语句涉及到的寄存器和存储器内容的变化结果,是否是指令所要得到的结果,如不是,检查错误原因,修改。
5利用多种执行方法和观察各种窗口调试程序,直至程序满意为止。
编译器默认设置:程序框图参考例程序:Block equ 4000hmov dptr, #Block ; 起始地址mov r0, #10 ; 清10个字节mov a, #33h ; 将33H赋值给aLoop:movx @dptr, a 将a写入外部RAMinc dptr ; 指向下一个地址djnz r0, Loop ; 记数减一ljmp $ ; $当前程序指针相当于一直执行自己;ljmp $ end说明:$:是当前语句的程序指针(地址)相当于一直执行自己:ljmp $,程序死循环要求赋值数据为10,9,8,7,6,5,4,3,2,1则以上程序该如何改动? 自己修改程序实现。
单片机原理与应用实验报告学院(部):专业:学生姓名:班级:学号:最终评定成绩:实验一存储器读写一、实验目的:1、掌握寄存器、存储器读写等汇编指令;2、掌握编程软件编辑、编译、调试等基本操作。
二、实验仪器设备1.PC机,1台2.WAVE软件开发系统三、实验内容及步骤:1、将下面的汇编程序输入到W A VE集成开发软件中ORG 0000HSJMP STARTORG 0030HSTART:MOV R0,#07HMOV 70H,#08HMOV R1,#70HMOV DPTR,#2000HLOOP:MOVX A,@R1MOVX A,@DPTRINC R1INC ADJNZ R7,LOOPSJMP $END2、选择菜单“仿真器”→“仿真器设置”,按下图所示完成软件初始设置。
3、选择菜单“项目”下“编译”,编译通过后,选择“单步运行”,观察记录寄存器(R0、R1)、累加器(A)、程序状态字(PSW)、外部存储器(2000H单元)、I/O端口(P1)的数据变化。
四、源程序源程序:ORG 0000H ;定义起始地址SJMP STARTORG 0030HSTART:MOV R0,#07HMOV 70H,#08H ;给内部RAM的70H单元赋初值MOV R1,#70H ;使R1指向内部70H单元MOV DPTR,#2000H ;定义外部存储器开始单元LOOP:MOVX A,@R1 ;将R1所指向的70H的内容赋给AMOVX @DPTR,A;将A的内容赋给外部存储器单元INC R1 ;内部RAM地址加1INC DPTR ;外部存储器地址加1DJNZ R7,LOOP ;循环,直到RAM中70H~7FH;单元的内容全部相应赋给;外部2000H~2007H单元SJMP $END3、记录下程序单步运行时,寄存器(R0、R1)、累加器(A)、程序状态字(PSW)、外部存储器(2000H单元)、I/O端口(P1)的数据变化。
五、仿真效果图实验二I/O端口操作一、实验目的:1、掌握I/O端口读写等基本汇编指令;2、掌握单片机最小系统硬件电路设计及仿真软件PROTEUS仿真、调试等基本操作方法。
单片机程序设计实验报告姓名:学号:专业班级:第二节课:实验一:1357,2468位置的灯交替闪烁一实验要求1357,2468位置的灯交替闪烁。
二硬件连接图与结果三原理简述程序直接控制LED各位置的灯亮灭,时间间隔简单的用了一个延时的语句。
四程序#include<reg51.h>main (){int i;P0=0XAA; //1357四个灯亮for (i=0;i<=25000;i++); //延时程序P0=0X55; //2468四个灯亮for (i=0;i<=25000;i++); //延时程序}五所遇问题与解决方式程序比较简单,没有遇到问题。
实验二:流水灯一实验要求流水灯,一个接一个的灯亮,亮到最后一个后,全部的灯亮,然后重头开始。
二硬件连接图与结果三原理简述程序定义第一个位置的灯亮,通过一个时间间隔,运用一个循环移位程序转移到下一个灯,移位7次后全部的灯亮,最后定义整个循环。
时间间隔简单的用了一个延时的语句。
因为移位时是直接补0,发送低电平不亮,所以直接移位达到要求。
四程序//流水灯#include<reg51.h>main (){int i,j;while(1){P0=0X01; //第1个灯亮for (i=0;i<=30000;i++); //延时程序for(j=0;j<=7;j++) //移位循环程序{P0=P0<<1; //移位for (i=0;i<=30000;i++); //延时程序}P0=0xff; //全亮for (i=0;i<=30000;i++); //延时程序}}五所遇问题与解决方式程序比较简单,没有遇到问题。
实验三:跑马灯一实验要求一个接一个的灯亮,前面亮过的等依旧亮,直到最后一个灯,最后重新开始,循环。
二硬件连接图与结果三原理简述程序定义第一个位置的灯亮,通过一个时间间隔,运用一个循环移位程序转移到下一个灯,移位7次后全部的灯亮,最后定义整个循环。