单片机软件实验1-清零实验

合集下载

单片机实验报告

单片机实验报告

单片机实验报告实验一:存储器块清零或赋值一、实验目的1 熟悉存储器的读写方法,熟悉51汇编语言结构。

2 熟悉循环结构程序的编写。

3 熟悉编程环境和程序的调试。

二、实验内容指定存储器中某块的起始地址和长度,要求将其内容清零或赋值。

例如将4000H开始的10个字节内容清零或全部赋值为33H。

注意:1 文件不要用中文名称保存时不要用中文路径(目录),不要放在“桌面”上,源文件和工程要放在同一个文件夹下,文件名称和路径名称不要太长。

2 查看存储器菜单使用:窗口---数据窗口---XDATA 观察存储器内容3 查看SFR:窗口---CPU窗口查看CPU寄存器SFR4 单步执行:执行---单步执行(F8),每执行一步,查看每条语句涉及到的寄存器和存储器内容的变化结果,是否是指令所要得到的结果,如不是,检查错误原因,修改。

5利用多种执行方法和观察各种窗口调试程序,直至程序满意为止。

三、实验仪器微机、VW,WA VE6000编程环境软件,(单片机实验箱)Lab6000/Lab6000通用微控制器MCS51实验四、实验步骤1、新建工程文件。

(注意:文件不要用中文名称保存时不要用中文路径)2、编写程序。

3、运行和调试过程。

外部数据存储器(4000H为首地址的10个字节)中初始状态(随便赋值FFH):单步执行程序,观察SFR中外部地址指针的变化;全速执行程序,可以看到外部数据存储器已赋值33H:五、实验结果可以看到外部数据存储器已赋值33H:六、问题讨论本次实验能够清楚地了解存储器中数据的移动和赋值过程,通过单步执行,对于每一步的指令操作过程能够了解如何执行,查看每条语句涉及到的寄存器和存储器内容的变化结果。

同时,学习掌握汇编程序的编写和调试过程。

实验二:存储块移动一、实验目的1 熟悉51汇编语言程序结构。

2 熟悉循环结构程序的编写,进一步熟悉指令系统。

3 熟悉编程环境和程序的调试。

二、实验内容将指定源地址(3000H)和长度(10字节)的存储块移动到目的地址(3050H)。

51单片机实验报告

51单片机实验报告

实验一:开发环境的搭建一、(1)、keil的安装与破解点击Keil安装包,一键傻瓜式操作,安装完成后以管理员身份打开Keil,在File里选择license management 把CID复制到注册机里的CID栏,注册机里的Target选择C51,然后点击Generate,将生成的激活码复制到license management里的LIC栏,并点击Add LIC,即完成破解。

(2)、CH340驱动安装(3)、普中烧录软件的使用波特率选择9600,速度选择低速,文件路径选择HEX文件的路径(4)、keil的使用新建工程并保存,在CPU 里面选择STC90C52RC ,再新建C 文件,注意保存时手动加上.c 后缀,再在Source Group 1 右击选择 Add Files to Group'Source Group 1'找到刚才新建的C 文件,然后找到图标并点击,再Target 里将晶振频率改为12MHz,将Output 里生成HEX 文件的勾打上即可生成HEX 文件。

(5)、protues的安装与破解双击安装包开始安装,等进入到Labcenter Licence Manager1.6,也就是许可证管理页面,点击Browse For Key File,找到下载解压软件包中的LICENCE.lxk文件,并打开,再点击install,再点击“是”,继续傻瓜式操作。

破解时以管理员身份运行破解软件,目标文件里找到安装的路径,再点击升级,即可完成破解。

(6)、protues的使用双击蓝色ISIS图标即可打开Proteus,File里新建并保存,然后点击“P”即可选择自己所需元器件,输入AT89C52单片机,确定后在图纸中点击即可,双击单片机将对话框中的Program File 选择Keil生成的HEX文件,电路及程序都完成后,点击左下角即可开始仿真,点击停止仿真。

二、实验结论在实验一里学会了开发环境的搭建,学会并熟练了Keil u Vision4 和Proteus 7.8以及普中烧录软件的使用,基本实现了用Keil编写程序并且生成HEX文件,能够用Proteus 画基本仿真图并且成功实现仿真,在仿真过程中出现了win10电脑不能正常实现仿真的问题,在经过百度等多方面查找之后找到了如下解决办法:1、路径上不能有中文2、仿真时出现cannot open'C:User\?\AppData\Local\Temp\LISA5476.SDF'的错误时:右击我的电脑-属性-高级系统设置-环境变量,在“用户变量”栏里找到TEMP与TMP,分别双击,将变量值都改为%SystemRoot%\TEMP如果还不行将下面的“系统变量”栏里的TEMP与TMP同样修改方法,如果没有新建就行。

[整理]单片机6个必做实验

[整理]单片机6个必做实验

第一部分软件实验实验一二进制到BCD码转换一、实验目的1、掌握简单的数值转换算法2、基本了解数值的各种表达方法二、实验说明单片机中的数值有各种表达方式,这是单片机的基础。

掌握各种数制之间的转换是一种基本功。

我们将给定的一个二进制数,转换成二十进制(BCD)码。

将累加器A的值拆为三个BCD码,并存入RESULT开始的三个单元,例程A赋值#123。

三、实验内容及步骤1、启动计算机,打开伟福仿真软件,进入仿真环境。

首先进行仿真器的设置,选择使用伟福软件模拟器。

2、打开TH2.ASM源程序进行编译,编译无误后,全速运行程序,打开数据窗口(DATA),点击暂停按钮,观察地址30H、31H、32H的数据变化,30H更新为01,31H更新为02,32H更新为03。

用键盘输入改变地址30H、31H、32H的值,点击复位按钮后,可再次运行程序,观察其实验效果。

修改源程序中给累加器A的赋值,重复实验,观察实验效果。

3、打开CPU窗口,选择单步或跟踪执行方式运行程序,观察CPU窗口各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。

四、流程图及源程序1.源程序RESULT EQU 30HORG 0000HLJMP STARTBINTOBCD:MOV B,#100DIV ABMOV RESULT,A ;除以100得百位数MOV A,BMOV B,#10DIV ABMOV RESULT+1,A ;余数除以10得十位数MOV RESULT+2,B ;余数为个位数RETSTART:MOV SP,#40HMOV A,#123CALL BINTOBCDLJMP $END2.流程图实验四程序跳转表一、实验目的1、了解程序的多分支结构2、掌握多分支结构程序的编程方法二、实验说明多分支结构是程序中常见的结构,在多分支结构的程序中,能够按调用号执行相应的功能,完成指定操作。

若给出调用号来调用子程序,一般用查表方法,查到子程序的地址,转到相应子程序。

单片机实验一 清零程序 实验报告

单片机实验一  清零程序  实验报告
执行程序前20-2F里面的数是任意数,执行程序后20-2F里面的数全部清零。能够实现实验内容的要求
实验报告内容:一.实验目的二.实验仪器(仪器名称、型号、参数、编号)三.实验原理(原理文字叙述和公式、原理图)四.实验步骤五、实验数据和数据处理六.实验结果七.分析讨论(实验结果的误差来源和减小误差的方法、实验现象的分析、问题的讨论等)八.思考题
00h
20h
20h
mov a,#00h
00h
00h
00h
mov b,#16
00h
00h
16h
lop1: mov @r0,a
任意值
00h
00h
inc r0
20h
21h
21h
Djnz b,lop1
16h
15h
15h
Sjmp $
00h
00h
00h
写出20-2F中执行程序前后的内容变化,说明是否实现实验内容要求。
程序框图
开始
赋初始值:R0=20h a=00h b=16
把20h的数清零:R0=a
R0+1
b-1=0?
结束
单步运行程序,填写下表内容。
程序语句
运行前寄存器值
理论分析值
实际运行结果值
Org 00h
00h
00h
00h
Ljmቤተ መጻሕፍቲ ባይዱ star
00h
00h
00h
Org 30h
00h
30h
30h
Star: mov r0,#20h
佛山科学技术学院实验报告课程名称实验项目清零程序专业班级姓名学学号号指导教师成成绩绩日期年月日日实验目的掌握汇编语言设计和调试方法熟悉键盘操作

PLC清零程序实验

PLC清零程序实验

实验一:清零程序实验:一、实验目的:1、掌握单片机的内部存储器在逻辑上的结构。

2、掌握如何对单片机内部,外部存储器RAM中所存的内容进行清零及编程方法。

二、实验内容:将外部存储器RAM 2000H~20FFH中的内容清零。

三、实验程序框图:四、实验步骤:⑴.运行仿真调试环境,打开文件编辑窗口:⑵.进行编辑源文件。

⑶.保存你所编辑的源文件,并进行编译。

即点击图标,如果你是新文件,屏幕会提示以下信息点击“YES”屏幕显示以下信息这时,你应该输入你相要保存文件的文件名。

注意:文件名的长度不能超过8个字符;同时也不能用中文名字存文件名,否则编译器会照不到连接文件而发生编译错误(这是只要因为该编译系统调用国外编译软件进行编译的的原因)。

如果文件编写正确则提示如下信息:表明编译没有警告和错误;连接没有警告和错误。

上述步骤完成后,屏幕会自动弹出调试窗口。

其中:* 表示当前PC指针所在的位置。

上图中图标,表示断点所在的位置,上图中设置了两个断点;即当程序运行到断点处就停下来,并将当前运行的结果,在寄存器或数据窗口中显示出来。

⑷.查看寄存器窗口信息,可以按下图打开寄存器窗口。

点击寄存器栏便可观察寄存器窗口的内容,按照同样的方法可打开其他窗口的信息,如数据窗口等。

按图标会对所打开的窗口进行重新排列。

垂直、水平、或卡片式排列。

⑸.调试与运行,用连续或单步不同方式运行程序,在运行图标时,即进入全速运行状态,遇到断点时便停下来,并刷新当前所运行的结果,在所对应的窗口上显示出来。

运行图标,便进入单步运行状态,该图标表示在遇到CALL指令时会进入到CALL调用的子程序内部;该图标表示在遇到CALL指令时,把所调用的CALL子程序作为一条执行语句执行;学会上述的操作方法后便可进入你所相要做的工作了。

这时你也会查看或检查2000~20FFH中执行程序前后的内容变化。

五、思考:假使把2000H~20FFH中的内容改成FF,如何修改程序。

实验1 keil 和清零

实验1 keil 和清零

实验1:keil开发环境介绍单片机内部存储器调用操作一、实验目的1.进行keil开发环境的熟悉和调试;2.能够初步进行一个简单程序的调试二、实验设备及器材启东单片机综合实验箱,计算机等三、实验内容熟悉keil的开发环境,并进行一个简单的程序调试,在keil的串行调试窗口显示“Hello World!”四、实验步骤使用C语言肯定要使用到C编译器,以便把写好的C程序编译为机器码,这样单片机才能执行编写好的程序。

KEIL uVISION2是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM,汇编和C语言的程序设计,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。

因此很多开发51应用的工程师或普通的单片机爱好者,都对它十分喜欢。

以上简单介绍了KEIL51软件,要使用KEIL51软件,必需先要安装它。

KEIL51是一个商业的软件,对于我们这些普通爱好者可以到KEIL中国代理周立功公司的网站上下载一份能编译2K的DEMO版软件,基本可以满足一般的个人学习和小型应用的开发。

(安装的方法和普通软件相当这里就不做介绍了)图1-1启动时的屏幕接着按下面的步骤建立您的第一个项目:(1)点击Project菜单,选择弹出的下拉式菜单中的New Project,如图1-2。

接着弹出一个标准Windows文件对话窗口,如图1-3,用法技巧也不是这里要说的,以后的章节中出现类似情况将不再说明。

在"文件名"中输入您的第一个C程序项目名称,这里我们用"test",只要符合Windows文件规则的文件名都行。

"保存"后的文件扩展名为uv2,这是KEIL uVision2项目文件扩展名,以后我们可以直接点击此文件以打开先前做的项目。

图1-2New Project菜单图1-3文件窗口(2)选择所要的单片机,这里我们选择常用的Ateml公司的AT89C51。

单片机实验报告(相当不错,有具体实验结果分析哦)

单片机实验报告(相当不错,有具体实验结果分析哦)

学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:实验一 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口)。

单片机软件实验1-清零实验

单片机软件实验1-清零实验

:学号:班级:同组人:指导老师:报告日期:软件设计实验1:清零实验➢实验目的:掌握汇编语言设计和调试方法。

➢实验容:使用AT89C52单片机对单片机部RAM进行清零操作,实验容如下:1.把 90H-AFH的容置为#55H;2.把90H-9FH的容清零。

➢实验问答:1.清零之后,90H-9FH的容是什么?A0H-AFH的容是什么?答:90H-9FH容:00H;A0H-AFH:#55H================================================$NOMOD51$INCLUDE (80C52.MCU);============================================== =; DEFINITIONS;============================================== =;============================================== =; VARIABLES;============================================== =;============================================== =; RESET and INTERRUPT VECTORS;============================================== =; Reset Vectororg 0000hjmp Start;============================================== =; CODE SEGMENT;============================================== =org 0100hStart:MOV R0,#90HMOV R3,#20HLOOP1:MOV R0,#55HINC R0DJNZ R3,LOOP1MOV R2,#10HMOV R1,#90HCLR0:MOV R1,#00H Loop:jmp Loop;============================================== =ENDINC R1DJNZ R2,CLR0; Write your code here:学号:班级:同组人:指导老师:报告日期:软件设计实验2:拆字拼字实验➢实验目的:进一步掌握汇编语言设计和调试方法。

80C51单片机-实验报告

80C51单片机-实验报告

实验一 CPU片内(外)清零1.CPU片内RAM清零一、实验目的:掌握MCS-51汇编语言的设计,了解单片机的寻址方式以及调试方法。

二、实验内容:把单片机片内的30H~7FH单元清零。

三、实验框图:四、实验步骤:用连续或者单步的方式运行程序,检查30H-7FH执行前后的内容变化。

五、参考实验程序:程序名称:PNQL.ASMORG 0000HJMP MAINORG 0030HMAIN:MOV R0,#30H ;30H送R0寄存器CLR1:MOV A,#00H ;00送累加器AMOV @R0,A ;00 送到30H-7FH单元INC R0 ;R0加1CJNE R0,#7FH,CLR1 ;不到7F字节再清WAIT:LJMP WAITEND六、实验思考:如果把30H-7FH的内容改为99H,如何修改程序。

2.CPU 片外RAM清零一、实验目的:掌握MCS-51汇编语言的设计,了解单片机的寻址方式以及调试方法。

二、实验内容:把外部扩展的RAM的0000H-00FFH单元内容清零。

三、实验框图:四、实验步骤:用连续或者单步的方式运行程序,检查0000H-00FFH执行前后的内容变化。

五、参考实验程序:程序名称:PWQL.ASMORG 0000HMAIN:MOV SP,#60HMOV DPTR,#0000H ;0000H送DPTR寄存器MOV R6,#0FFH ;FFH送R6寄存器(计数)CLR1:MOV A,#00H ;00送累加器AMOVX @DPTR,A ;00 送到0000H-00FFH单元INC DPTR ;DPTR+1DJNZ R6,CLR1 ;不到FF个字节再清WAIT:SJMP WAITEND六、实验思考:把1-10先对应存入片内0030H起始的单元内,然后再从片内取出,对应存入片外7FFFH起始的单元中去。

实验二P1口亮灯实验一、实验目的:学习MCS-51单片机P1口的使用方法二、实验内容:P1口做输出,接8个发光管,编写程序,使得8个二极管循环点亮。

清零程序

清零程序

南昌航空大学实验报告2016年 5 月 1 日课程名称:单片机应用实验名称:清零程序学号: 13045133 姓名:吴牧云指导老师评定:签名:一、实验目的:掌握汇编语言设计和调试方法,熟悉键盘操作。

二、实验内容把7000H~70FFH的内容清零。

三、实验程序框图四、实验步骤1、当DVCC单片机仿真实验系统独立工作时(1)将固化区EPROM中实验程序目标妈传送到仿真RAM区,操作如下:输入0后按F1键,再输入OFFF后按F2键,再输入0后按EPMOV稍等,系统返回初始状态,显示“P.”。

(2)按F2键进入仿真1态,仿真实验系统显示山东“p……”时,根据表一所示,通过键盘输入试验程序的起始地址0030H,再按执行键EXEC,表示连续运行该程序,一次执行一条语句,知道执行003CH为止,按MON键退出运行;如果以断点运行程序,则先如如110C,再按F1键,在输入0030,然后按EXEC键执行程序,当执行到003CH 时自动停下了,此时按MON键退出。

(3)用存储器读写方法检查7000H~70FFH中的内容应全是00H。

2、当DVCC单片机仿真实验系统联PC级工作时(1)在闪动“p.”状态,按PCDBG键。

(2)在PC挤处于WIN95/98软件平台下,单击DVCC图标。

(3)在系统设置选项中设定仿真模式为内程序、内数据。

(4)根据品目提示进入51/96/动态调试菜单。

(5)链接DVCC实验系统(Ctrl+H)。

(6)装载目标文件(Ctrl+L)。

(7)设置PC起始地址。

(8)从起始地址开始连续运行程序(F9)或单步(F8)或断点运行程序。

(9)单步。

断点运行完后,在存储器窗口内检查7000H~70FFH中的内容是否全为00H。

五、清零程序ORG 0030HCLEAR:MOV RO,#00HMOV DPTR,#7000HCLEAR1:CLR AMOVX@DPTR,AINC DPTRINC R0CJNE RO,#00H,CLEAR1CLEAR2:SJMP CLEAR2END六、实验小结通过本次实验,掌握了汇编语言设计和调试方法,熟悉键盘操作,颇有体会。

《MCS-51单片机原理及应用》实验指导书涛

《MCS-51单片机原理及应用》实验指导书涛

《MCS-51单片机原理与应用》实验指导书新疆水利水电学校水电机电系2010年9月前言:任务与要求一.单片机原理与应用实验的任务单片机原理与应用实验是单片机原理与应用课程的一部分,它的任务是:1.通过实验进一步了解和掌握单片机原理的基本概念、单片机应用系统的硬件设计及调试方法。

2.学习和掌握单片机应用系统程序设计基础。

3.提高应用计算机的能力及水平,提高逻辑思维及动手能力。

二.实验设备单片机实验所使用的设备由计算机、DP-51PRO单片机综合仿真试验仪,其中计算机是软件开发平台,主要完成程序编辑、编译、下载程序等任务;单片机综合仿真试验仪是硬件开发平台,是基于80C51单片机的扩展实验系统。

计算机和单片机实验开发系统之间是通过RS232串行接口进行通信的。

图1 单片机原理实验设备在计算机软件的控制下可完成单片机基本实验及综合设计性实验项目。

所有的MCS-51单片机原理与应用课程实验都在这套综合仿真试验仪上完成。

三.实验要求和成绩考核1.遵守实验室纪律,在实验室内不得随意走动、大声喧哗。

2.实验前,按实验要求事先复习与实验有关的理论知识,明确实验目的,了解实验内容和方法。

在实验过程中务必带上教材和实验文档,认真听讲,以调试为主要目的,注意观察思考,记录有关数据和程序,每次实验成绩根据完成情况给予评分。

3.按实验指导书要求进行接线和操作,经检查和指导老师同意后再通电。

小心使用机器,以免出现意外故障,若机器出现硬件故障,可报告并请求老师协调维护,勿喧哗和起哄。

4.禁止在实验室中做与实验无关的事情,特别是玩游戏者,一经发现本课程实训总成绩将减10分,发现两次实训总成绩按0分处理。

5.按规定时间完成并上交实验报告。

实验报告字迹要清楚,结论要明确,并写出程序流程图、程序、并分析实验结果、完成思考题等。

6.实验后应断电并返回WINDOWS下关闭计算机,整理实验台,恢复到实验前的情况。

第一部分 Keil C51 软件使用说明Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编、PLM语言和C 语言的程序设计,界面友好,易学易用。

《单片微机原理及应用》实验参考程序(32页)

《单片微机原理及应用》实验参考程序(32页)

《单片微机原理及应用》实验参考程序杭州电子科技大学电子信息学院张学超编写(使用达爱思Dais-80958B单片机实验开发系统)一、软件实验参考程序软件实验一清零程序Array ;将2000H-20FFH的内容清零SS01: CLR AMOV DPTR, #2000HMOV R7, #0FFHCLR0: MOVX @DPTR,AINC DPTRDJNZ R7, CLR0CLR1: SJMP CLR1 ; SJMP $软件实验二拆字程序;把2000H的内容拆开,高4位送2001H的低4位,低4位清零。

SS02: MOV DPTR, #2000HMOVX A, @DPTR ;取数MOV B, A ;暂存该数SW AP A ;高低半字节交换ANL A, #0FH ;屏蔽高4位INC DPTRMOVX @DPTR,A ;原数高半字节送2001HMOV A, B ;取回原数ANL A, #0FH ;屏蔽高4位INC DPTRMOVX @DPTR,A ;原数低半字节送2002HSJMP $软件实验三拼字程序;把2000H和2001H的低4位分别送入2002H的高低4位。

SS03: MOV DPTR, #2000HMOVX A, @DPTR ;取第一个半字节ANL A, #0FH ;屏蔽高4位SW AP A ;高低半字节交换MOV B, A ;暂存该数INC DPTRMOVX A, @DPTR,;取第二个半字节ANL A, #0FH ;屏蔽高4位ORL A, B ;两个半字节拼成一个字INC DPTRMOVX @DPTR,A ; 拼好的字送2002HSJMP $软件实验四数据区传送子程序;把R2R3为源RAM区首址内的R6R7字节数据传送到R4R5为目的RAM区。

SS04: MOV DPH, R2MOV DPL, R3 ;取源地址指针MOVX A, @DPTR ;取数据INC DPTR ;源地址指针+1MOV R2, DPHMOV R3, DPL ;保存源地址指针MOV DPH, R4MOV DPL, R5 ;取目的地址指针MOVX @DPTR, A ;存数据INC DPTR ;目的地址指针+1MOV R2, DPHMOV R3, DPL ;保存目的地址指针CLR CMOV A, R7SUBB A, #1MOV R7, AMOV B, A ;暂存16位字节数低字节MOV A, R6SUBB A, #0MOV R6, A ;字节数减一:(R6R7)← (R6R7)−1ORL A, B ;(R6R7)=0?JNZ SS04 ;未完继续传送RETSS04C: MOV R3, #00HMOV R2, #20H ;指定源地址为MOV R5, #00HMOV R4, #30H ;指定目的地址为3000HMOV R7, #00HMOV R6, #01H ;传送字节数为100HLCALL SS04 ;从2000H开始向3000H开始的地址区传送100H个数据SJMP $软件实验五数据排序实验;把8051中RAM 50H-5AH中放入不等的数据,运行本实验程序后检查50-5AH中内容是否按从小到大排列。

单片机原理(按键识别 )实验报告

单片机原理(按键识别 )实验报告
while(x--); } void main() {
教育资料
.
while (1) {
if(key==0) {
delay(1000); if(key==0) {
led=~led; while(key==0); }
} } } (2)按键识别 ( 按下灭,再按闪) #include<reg51.h> #define uint unsigned int #define uchar unsigned char sbit led=P2^6; sbit key=P2^7;
.
switch(j) { case 0 : led=0;break; case 1 : led=~led;delay(100);break; default:break; }
}
}
(3)按键识别 ( 按下数码管数值加 1) #include<reg51.h> #define uint unsigned int #define uchar unsigned char uchar code LedCode[]={ 0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x00}; uchar DispBuf[8]; sbit led=P2^6;
教育资料
.
if(hour>=24) {
hour=0; }
}
void main() {
uint i=2; while (1) {
if(key==0) {
delay(1000); if(key==0) {
i++; while(key==0); i=i%3;
教育资料
.
} } switch(i)

单片机实验报告概要

单片机实验报告概要

微控制器技术实验报告专业班级:学号:姓名:指导老师:时间: 2014.04目录一、实验目的及要求 (1)二、实验基本内容 (1)三、实验设备 (5)四、实验设计思想和结果分析 (8)4.1清零程序与拆字程序设计 (8)4.2拼字程序与数据传送程序 (10)4.3 排序程序与散转程序 (12)4.4 数字量输入输出实验 (14)4.5定时器/计数器实验 (16)4.6 A/D、D/A转换实验 (22)4.7 串行通讯实验 (31)五、结束语 (40)一、实验目的及要求:1、学习Keil C51集成开发工具的操作及调试程序的方法,包括:仿真调试与脱机运行间的切换方法;2、熟练使用SST89C554RC单片机核心板及I/O扩展实验系统;3、熟练掌握在Keil C51与Proteus仿真软件虚拟联机环境下,基于51单片机控制器数字接口电路的硬件、软件设计与功能调试;4、完成MCS51单片机指令系统软件编程设计和硬件接口功能设计题;二、实验基本内容(TD-51单片机实验系统实现)实验一清零程序与拆字程序设计根据实验指导书之“第二章单片机原理实验”(P17~P23页)内容,熟悉实验环境及方法,完成思考题1、2(P23)基础实验项目。

实验二拼字程序与数据传送程序设计汇编语言完成实验指导书P24思考题3、4题的基础实验项目。

实验三排序程序与散转程序设计汇编语言完成实验指导书P24思考题5、6题的基础实验项目。

实验四数字量输入输出实验基本部分:阅读、验证C语言程序功能。

使用汇编语言编程,完成实验指导书之“3.1 数字量输入输出实验”基本实验项目(P36),。

提高部分:(任选一题)题目一:LED交通灯控制(使用8255接口芯片)要求:使用汇编语言编程,功能为:通过开关实现LED灯工作方式即时控制,完成LED交通灯的开关控制显示功能和LED交通灯自动循环显示功能。

题目二:LED灯控制(使用8255接口芯片)要求:使用汇编语言编程,功能为:通过KK1实现LED灯工作方式即时控制,完成LED开关控制显示和LED灯左循环、右循环、间隔闪烁功能。

单片机设计实验报告简单计算器的设计

单片机设计实验报告简单计算器的设计

目录1.总体方案选择 (2)1.1 实验要求: (2)1.2方案设计 (2)2.硬件原理电路图的设计及分析 (2)2.1主控模块 (2)2.1.1 STC89C52单片机主要特性 (3)2.1.2 STC89C52单片机管脚图 (4)2.1.3 STC89C52单片机的中断系统 (4)2.1.4 STC89C52单片机的定时/计数器 (4)2.2矩阵键盘模块设计: (5)2.2.1矩阵键盘原理介绍 (5)2.2.2矩阵键盘电路设计 (5)2.3 LCD液晶显示器简介 (6)2.3.1液晶模块简介 (6)2.3.2液晶显示部分与89S52的接口 (7)3系统软件设计 (9)3.1系统软件流程图 (9)3.2系统整体原理图 (10)4.系统调试 (11)4.1硬件调试 (11)4.2软件调试 (11)4.3调试结果 (12)5. 心得体会 (13)1.总体方案选择1.1 实验要求:1)通过小键盘实现数据的输入,并在LED数码管上显示2)实现+、-、*、/3)在LED数码管上显示结果4)并有清零,退出功能1.2方案设计本系统以STC89C52单片机为控制核心,对系统进行初始化,主要完成对键盘的响应、液晶显示灯功能的控制,起到总控和协调各模块之间工作的作用。

单片机通过检测键盘读取使用者按下对用功能的按键,然后通过单片机内部运放把运算的结果显示在液晶屏幕上。

图1-1系统结构框图本系统结构如图1-1所示,本设计可分为以下模块:单片机主控模块、键盘模块、功率放大模块、闹铃模块、按键设置模块。

下面对各个模块的设计方案逐一进行论证分析。

2.硬件原理电路图的设计及分析2.1主控模块STC89C52有40个引脚,4个8位并行I/O口,1个全双工异步串行口,同时内含5个中断源,2个优先级,2个16位定时/计数器。

STC89C52的存储器系统由4K的程序存储器(掩膜ROM),和128B的数据存储器(RAM)组成。

STC89C52单片机的基本组成框图见图2-1。

单片机清零程序实验心得

单片机清零程序实验心得

单片机清零程序实验心得嘿,朋友们!今天咱来聊聊单片机清零程序实验心得。

这玩意儿啊,就像是一场奇妙的冒险!你想想,单片机就像是一个小脑袋瓜,里面装着各种程序和数据。

而清零程序呢,就像是给这个小脑袋瓜来一次大扫除,把那些乱七八糟的东西都清理掉,让它重新变得干干净净、清清爽爽。

在做这个实验的时候啊,可得小心翼翼的,就跟走钢丝似的。

你得仔细检查每一个步骤,每一条代码,生怕有个小失误就前功尽弃啦!这感觉就像是在小心翼翼地拼凑一幅拼图,错了一块可就不完美了呀!做实验的过程中,有时候会遇到一些小挫折,哎呀,那真叫一个郁闷!就好像明明看到目的地就在眼前了,却突然被一块石头绊了一跤。

不过没关系呀,咱爬起来拍拍屁股继续干!这就是实验的乐趣所在嘛,不经历风雨怎么见彩虹呢?我记得有一次,我就犯了个小糊涂,把一个代码写错了,结果程序怎么都运行不起来。

我那叫一个着急啊,抓耳挠腮的,就像一只热锅上的蚂蚁。

但是我没放弃呀,我静下心来,一点一点地排查错误,嘿,还真让我给找到了!那种成就感,简直没法形容,就像中了大奖一样开心!还有啊,在实验中一定要有耐心。

这可不是一蹴而就的事情,得慢慢来,一步一个脚印。

就跟盖房子似的,得先打好基础,才能盖出漂亮的大楼。

如果心急火燎的,那肯定是要出问题的呀!而且哦,和小伙伴们一起做实验那就更有意思啦!大家可以互相讨论,互相帮助,一起攻克那些难题。

这可比自己一个人闷头苦干有趣多了呀!大家一起出谋划策,就像一群小侦探在破解谜团一样,多好玩!通过这个单片机清零程序实验,我真的学到了好多东西。

我学会了怎么去仔细地分析问题,怎么去耐心地解决问题,还学会了怎么和别人合作。

这可都是宝贵的经验啊!总之呢,单片机清零程序实验就像是一个充满惊喜和挑战的宝库,只要你用心去挖掘,就一定能收获满满的宝藏!大家都快去试试吧,相信你们也会爱上这个有趣的实验的!别犹豫啦,赶紧行动起来吧!。

单片机实验一片内外清零、数据块的传送【精选】

单片机实验一片内外清零、数据块的传送【精选】

片内从50H 开始的连续30个地址内容清零:
,以、谈信温入党志组中心组形式,每月底组织一次党向”、“坚持根本集中学习讨论不得”要求,开展党组讲党课,邀请党校系列 讲话,做合,做合格党员”学“学党章党规、学发〈关于在全市党6〕28号),结合”学习教育,基础面贯彻落实党的严三实”专创先争一
片内20H 开始的连续30个地址内容为0FEH :
片外7000H-70FFH 单元内容清零:
》的马克情怀路、“五位一体面的深刻内涵和要展科学发展、和谐新求,坚持以知促讲道德、有品行,讲奉献、有作把理想信念时时处体现为行动的力方针政策看齐,认真贯彻省委、市委党员永远是劳动人民的普通一员,密畏、手握戒尺,廉洁从政、从严治家防变的防线;始终持干事创业、开拓在X X 事业“十三五”规划开局起步、功立业。

全体党员要坚持学做结合党员意识,强化党的宗旨意识,积极级以上党员领导干部要学做结合“三严三实”要求和好干部标实五大发展理念,带头攻重温两对照”主题织党员重温入党书记作学习展“三交流。

单片机实验

单片机实验

单片机实验第二次实验:图见实验题1.P1.0~P1.7这八个发光二极管全部点亮#include#define uchar unsigned char#define uint unsigned intsbit greenLed=P1^0;Delay(uint cnt){ uchar i;do{for(i=0;i<165;i++);}while(cnt--);}main(){ while(1){ greenLed=0;Delay(1000);greenLed=1;Delay(1000);}}2. P1.0~P1.7这八个发光二极管循环点亮#include delay(unsigned char cnt){ unsigned int i;do{for(i=0;i<6000;i++);}while(cnt--);}main(){ unsigned char a;P1=~a;while(1){if(a!=0){ delay(5);a<<=1;P1=~a;}else{a=0x01;P1=~a;}}}3.通过外部中断控制八盏灯分别右移,左移,闪烁,双灯同时左移。

#include#define uchar unsigned charuchar code LedTable[]= {0x03,0x0c,0x30,0xc0};uchar led_flag = 4;uchar a; Delay(uchar cnt){ unsigned int i;do{ for(i=0;i<6000;i++);}while(cnt--);}void Led_rr(void)//led右移函数{ uchar i;for(i=0;i<8;i++){ if(a == 0) a= 0x80;P1 = ~a;a >>= 1;}}void Led_rl(void)//led左移函数{ uchar i;for(i=0;i<8;i++){ if(a == 0) a= 0x01;P1 = ~a;a <<= 1;Delay(10);}}void Led_spark(void){ P1 = 0xff;Delay(10);P1 = 0;Delay(10);}void Led_lr_doble(){ uchar i;for (i=0;i<4;i++){ P1= ~LedTable[i];Delay(10);}}void int1(void) interrupt 2 //中断服务函数{ led_flag++;if(led_flag >= 3) led_flag = 0;}void main(void){ EA = 1;EX1 = 1;IT1 = 1;while(1){ if(led_flag ==4){ Led_spark();}if(led_flag == 0){ Led_rl();}if(led_flag == 1){ Led_rr();}if(led_flag == 2){ Led_lr_doble();}}第三次实验:1.设单片机的=12MHz,要求用定时器/计数器T0以方式1在P1.0脚上输出周期为4ms的方波。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机软件实验1-清零实验姓名:学号:班级:同组人:指导老师:报告日期:软件设计实验1:清零实验➢实验目的:掌握汇编语言设计和调试方法。

➢实验内容:使用AT89C52单片机对单片机内部RAM进行清零操作,实验内容如下:1.把 90H-AFH的内容置为#55H;2.把90H-9FH的内容清零。

➢实验问答:1.清零之后,90H-9FH的内容是什么?A0H-AFH的内容是什么?答:90H-9FH内容:00H;A0H-AFH:#55H2.累加器A、堆栈指针SP的初始状态是什么?答:累加器A:00H,堆栈指针SP:07H。

➢实验程序:================================================ $NOMOD51$INCLUDE (80C52.MCU);======================= ======================== ; DEFINITIONS;======================= ========================;======================= ======================== ; VARIABLES;======================= ========================;======================= ======================== ; RESET and INTERRUPT Loop:jmp Loop;======================= ======================== ENDVECTORS;======================= ========================; Reset Vectororg 0000hjmp Start;======================= ======================== ; CODE SEGMENT;======================= ========================org 0100hStart:MOV R0,#90HMOV R3,#20HLOOP1:MOV @R0,#55HINC R0DJNZ R3,LOOP1MOV R2,#10HMOV R1,#90HCLR0:MOV @R1,#00HINC R1DJNZ R2,CLR0; Write your codehere** 单个实验报告内容限制在两页之内,采用双面打印,所有报告统一装订;表头内容需要手工签写。

姓名:学号:班级:同组人:指导老师:报告日期:软件设计实验2:拆字拼字实验➢实验目的:进一步掌握汇编语言设计和调试方法。

➢实验内容:使用AT89C52单片机对单片机内部RAM存储的数据进行拆字和拼字实验,实验内容如下:1. 将40H地址的内容设置为#8AH;2. 将40H地址的内容进行拆分,高字节保存在31H,低字节保存在32H;3. 将31H、32H地址的内容进行合并,保存在30H。

➢实验问答:1.运行程序后30H和40H的最终内容是?答:都是#8AH2.如果欲使30H内容为0A8H,程序应如何修改?答:将30H值赋予A,再SWAP A,然后将A赋予30H。

➢实验程序:================================================ $NOMOD51$INCLUDE (80C52.MCU);======================= ======================== ; DEFINITIONS;======================= ========================;======================= ======================== ; VARIABLES;======================= ========================;======================= ======================== Loop:jmp Loop;======================= ======================== END; RESET and INTERRUPT VECTORS;======================= ========================; Reset Vectororg 0000hjmp Start;======================= ======================== ; CODE SEGMENT;======================= ========================org 0100hStart:MOV 40H,#8AHMOV A,40HANL 31H,#0FHANL 32H,#0FHMOV R1,#32HXCHD A,@R1SWAP ADEC R1XCHD A,@R1 ;拆分结束CLR AMOV R1,#32HXCHD A,@R1DEC R1SWAP AXCHD A,@R1SWAP AMOV 30H,A ;合并结束; Write your codehere姓名:学号:班级:同组人:指导老师:报告日期:软件设计实验3:查找相同数个数实验➢实验目的:熟悉汇编语言编程,掌握判断与跳转语句的使用。

➢实验内容:使用AT89C52单片机对单片机内部RAM进行查找相同数,输出其个数的实验,实验内容如下:1. 初始化后,B0H-BFH地址的内容为#00H,将B9H的内容赋值为#01H,将BBH的内容赋值为#01H;2. 在B0H-BFH中查找有几个单元存放的内容是#00H,把个数放在R7中。

➢实验问答:1.如需使用第2组工作寄存器的R7,需如何修改程序?答:更改起始单元地址,用位操作指令将RS0和RS1分别置为0,12.如需从B0H单元开始,查32个单元的内容,需修改程序哪个语句,如何修改?答:将循环计数标志置为#20H➢实验程序:================================================ $NOMOD51$INCLUDE (80C52.MCU);======================= ======================== ; DEFINITIONS;======================= ========================;======================= ======================== ; VARIABLES;======================= ========================;======================= ======================== ; RESET and INTERRUPT VECTORS;======================= ======================== Loop:jmp Loop;======================= ======================== END; Reset Vectororg 0000hjmp Start;======================= ======================== ; CODE SEGMENT;======================= ========================org 0100hStart:MOV R2,#0FHMOV R1,#0B0HLOOP1:MOV@R1,#00HINC R1DJNZ R2,LOOP1MOV R0,#0B9HMOV @R0,#01HMOV R1,#0BBHMOV @R1,#01H ;初始化结束MOVR2,#10H ;15次循环MOV R1,#0B0HMOV R7,#00HRESEARCH:CJNE @R1,#00H,NEXTINC R7NEXT: INC R1DJNZ R2,RESEARCH; Write your codehere姓名:学号:班级:同组人:指导老师:报告日期:软件设计实验4:二进制转ASCII实验➢实验目的:熟悉ASCII的编码原理,学习其与二进制之间的转换。

➢实验内容:1.将#9FH转为相应的ASCII;2.将结果存放到30H、31H地址;3.查表的方式实现。

➢实验问答:1.简述ASCII、BCD码与二进制之间的关系。

BCD:使用16进制的前10个进行编码,用四位二进制数表示十进制数ASCII:标准信息编码,用二进制表示字符的规定,每一个字符对应一个二进制数2.简述MOVC两条指令,并说明其作用及区别。

MOVC A,@A+DPTR:以DPTR为基址以A为变址进行寻址,用于查表MOVC A,@A+PC:以PC为基址以A为变址进行寻址,PC指向下一条指令,用于查表➢实验程序:================================================ $NOMOD51$INCLUDE (80C52.MCU);======================= ======================== ; DEFINITIONS;======================= ========================;======================= ======================== ; VARIABLES;======================= ========================;======================= ======================== ; RESET and INTERRUPT Loop:jmp Loop;======================= ======================== ENDVECTORS;======================= ========================; Reset Vectororg 0000hjmp Start;======================= ======================== ; CODE SEGMENT;======================= ========================org 0100hStart:MOV A,#9FHSWAP AANL A,#0FHACALL CHECKMOV 30H,AMOV A,#9FHANL A,#0FHACALL CHECKMOV 31H,ASJMP $CHECK: INC AMOVC A,@A+PCRETTABLE: DB30H,31H,32H,33H,34H,35H, 36H,37H,38H,39HDB41H,42H,43H,44H,45H,46 H; Write your codehere姓名:学号:班级:同组人:指导老师:报告日期:软件设计实验5:数据块传送实验➢实验目的:掌握外部扩展RAM中的数据操作。

相关文档
最新文档