单片机 实验1-2

合集下载

MCU实验报告--2-单片机控制流水灯设计、制作(1)

MCU实验报告--2-单片机控制流水灯设计、制作(1)

项目二单片机控制的流水灯设计、仿真及制作专业:17电子信息学号:19 姓名:张静一、实验目的和要求1、理解并行I/O口的输入/输出功能。

2、根据项目要求,设计电路,PROTEUS完成仿真,用面包板完成硬件制作。

3、实现单片机控制的LED闪烁,掌握电路设计、软件设计调试、源程序下载,软硬联调。

二、实验仪器设备1、PC机(PROTEUS,Keil)2、元器件3、面包板4、编程器三、实验步骤1、器件准备2、系统设计1)软件仿真----PROTUES 仿真2)、硬件设计在面包板上搭建电路。

3)、软件设计源程序#include<reg51.h>#include<intrins.h>void delay (unsigned int i){unsigned int k;for (k=0;k<i;k++);}void main(){P1=0x7F;while(1){P1=_cror_(P1,1);delay(5000);}}四、硬件(照片)五、项目扩展A 暗点流动仿真仿真图核心代码#include<reg51.h>#include<intrins.h>void delay (unsigned int i){unsigned int k;for (k=0;k<i;k++);}void main(){P1=0x07;while(1){P1=_cror_(P1,1);delay(5000);}}B 四个按键控制的LED灯----按键1启动,按键2 停止,按键3向上流水,按键4 向下流水1) 仿真仿真图2) 硬件制作(照片)核心代码#include<reg51.h>#define TIME 1200#include<intrins.h> sbit S1=P3^2;sbit S2=P3^3;sbit S3=P3^4;sbit S4=P3^5;void delay (unsigned int i) {unsigned int k;for (k=0;k<i;k++);}void main(){P1=0xff;while(1){if (S1==0){delay(TIME);if (S1==0)P1=0x00;} else if(S2==0){delay(TIME);if(S2==0)P1=0xFF;}else if(S3==0){delay(TIME);if (S3==0)P1=0x7f;while(1){P1=_cror_(P1,1); delay(10000);if (S4==0) break;}}else if (S4==0){delay(TIME);if (S4==0)P1=0x7f;while(1){ P1=_crol_(P1,1);delay(10000);if (S2==0) break;}}}}六、总结。

[整理]单片机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、掌握多分支结构程序的编程方法二、实验说明多分支结构是程序中常见的结构,在多分支结构的程序中,能够按调用号执行相应的功能,完成指定操作。

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

单片机实验报告范文

单片机实验报告范文

单片机实验报告范文一、实验目的本实验的目的是通过学习单片机的基本原理和使用方法,掌握单片机在各个实际应用中的基本技能。

二、实验器材及原理1.实验器材:STC89C52单片机、电源、晶振、按键、LED灯、蜂鸣器等。

2.实验原理:单片机是一种微处理器,能够完成各种复杂的功能。

通过学习单片机的工作原理和编程方法,可以控制各种外围设备,实现不同的功能。

三、实验内容及步骤1.实验一:点亮LED灯步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。

(2)编写程序,点亮LED灯。

2.实验二:按键控制LED灯步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。

(2)将按键和LED灯与单片机相连。

(3)编写程序,实现按下按键控制LED灯亮灭。

3.实验三:数码管显示步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。

(2)将数码管与单片机相连。

(3)编写程序,将数字输出到数码管上显示。

4.实验四:定时器应用步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。

(2)编写程序,实现定时器功能。

四、实验结果及分析1.实验一:点亮LED灯LED灯成功点亮,证明单片机与外部设备的连接正常。

2.实验二:按键控制LED灯按下按键后,LED灯亮起,松开按键后,LED灯熄灭。

按键控制LED 灯的效果良好,说明单片机的输入输出功能正常。

3.实验三:数码管显示数码管成功显示数字,说明单片机能够实现数字输出功能。

通过程序设计,可以实现数码管显示不同的数字。

4.实验四:定时器应用定时器正常运行,能够实现精确的定时功能。

通过调节定时器的参数,可以实现不同的定时功能。

五、实验总结通过本次实验,我们学习了单片机的基本原理和使用方法。

通过掌握单片机的编程技巧,我们能够实现各种复杂的功能,如控制LED灯、按键控制、数码管显示等。

这些技能对于日常生活和工程设计都具有很大的实用性。

在实验过程中,我们遇到了各种问题,如电路连接错误、程序编写错误等。

单片机原理及应用实验二报告

单片机原理及应用实验二报告

单片机原理及应用实验二报告实验二:单片机IO口的输入输出实验一、实验目的:1.理解并掌握单片机IO口的输入输出原理;2.掌握基础的输入输出编程技巧;3.熟悉单片机实验的基本流程和实验报告格式。

二、实验器材:1.STM32F103C8T6开发板2.LED灯3.电阻(220Ω)4.面包板、杜邦线等。

三、实验原理:单片机的IO口是实现与外部器件进行通信的重要接口,通过编程,我们可以控制IO口的状态(低电平或高电平)来实现对外部器件的控制或检测。

IO口的输入输出原理主要有两种:1.三态输出方式:通过设置IO口的DDR寄存器来将IO口设置为输出模式(推挽输出),并通过设置IO口的ODR寄存器来控制IO口的输出状态为低电平或高电平;2.上拉输入方式:通过设置IO口的DDR寄存器来将IO口设置为输入模式,同时设置IO口的CR寄存器的PUPD位为上拉使能,通过读取IO口的IDR寄存器可以获取IO口的输入状态。

四、实验步骤:1.连接电路:将STM32F103C8T6开发板的VDD和VSS(即5V和GND)分别连接到面包板的3V3和GND,将LED的阳极(长脚)连接到STM32F103C8T6开发板的PA0引脚,将LED的阴极(短脚)通过一个220Ω的电阻连接到GND。

2. 打开Keil uVision5软件,创建一个新的工程,并选择适合的芯片型号(STM32F103C8T6)。

3.编写代码实现将PA0引脚设置为输出模式,并控制LED的亮灭。

五、实验代码:```c#include "stm32f10x.h"void GPIO_Configuration(void)GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);int main(void)GPIO_Configuration(;while (1)GPIO_SetBits(GPIOA, GPIO_Pin_0); // 点亮LEDGPIO_ResetBits(GPIOA, GPIO_Pin_0); // 关闭LED}```六、实验结果与分析:七、实验心得:本次实验主要学习了单片机IO口的输入输出原理,了解了三态输出方式和上拉输入方式,并通过实际编写代码的方式,在STM32F103C8T6开发板上实现了控制LED的亮灭。

51单片机实验-实验二 P1口输入、输出实验

51单片机实验-实验二 P1口输入、输出实验

实验二 P1口输入、输出实验一、实验目的学习Pl口的使用方法。

学习延时子程序的编写和使用。

进一步熟悉星研Star16L仿真器系统的操作,和EL-Ⅱ型通用接口板实验电路结构,学习使用PROTEUS仿真软件实现单片机的虚拟仿真。

掌握虚拟仿真与实际系统仿真的有机衔接。

二、实验仪器和设备PC机、星研Star16L仿真器系统+仿真头PODPH51(DIP)、EL-Ⅱ型通用接口板实验电路,PROTEUS仿真软件。

三、实验内容1)P1口做输出口,经过74LS04反相器接八只发光二极管,编写程序,使发光二极管循环点亮。

2)(选作)P1口既做输入又做输出,在P1.0~P1.3口接四个平推开关,通过开关的不同位置向P1.0~P1.3输入不同的状态,然后利用输入指令读取所设开关状态,为验证输入结果的正确与否,将它们输出到P1.4~P1.7,经过74LS04反相器驱动发光二极管。

四、实验结果1)循环点亮八只发光二极管。

取P1.0口接出第一个二极管,以此类推,第八个接P1.7口。

Proteus 仿真图①循环左移,即从第一个二极管开始点亮到第八个二极管实验程序:ORG 0000HSTART:MOV R2,#8MOV A,#01H ;先让第一个发光二极管点亮LOOP: MOV P1,A ;从P1口输出到发光二极管LCALL DELAYRL A ;循环左移(从第一个发光二极管开始一直往下一个二极管)DJNZ R2,LOOP ;判断移动是否超过8位,未超过则继续循环LJMP START ;循环发光DELAY:MOV R5,#5 ;延时0.5秒子程序DEL1: MOV R6,#200DEL2: MOV R7,#126DEL3: DJNZ R7,DEL3DJNZ R6,DEL2DJNZ R5,DEL1RETEND仿真结果:发光二极管从D1开始发光,依次往下到D8,然后循环这一过程。

实验结果:发光二极管从第一个开始发光,依次往左到第八个,然后循环这一过程。

单片机实验实验指导书

单片机实验实验指导书

目录实验一P1口输入、输出实验 (1)实验二P3口输出控制继电器实验 (4)实验三简单I/O实验(交通灯控制) (6)实验四外部中断实验(急救车与交通灯实验) (8)实验五定时器实验 (11)实验六8155输入输出实验 (13)实验七矩阵键盘实验 (15)实验八8279显示实验 (17)实验九串并转换实验 (20)实验十A/D转换实验 (22)实验十一步进电机控制实验 (24)实验十二D/A转换实验 (27)实验十三传送带控制系统综合实验 (29)实验十四机械手控制实验 (32)实验一 P1口输入、输出实验一.实验要求1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

延时时间500ms。

2.P1口做输入口,接八个开关,以74LS273作输出口,编写程序读取开关状态,将状态写入P0口,在发光二极管上显示出来。

二.实验目的1.学习P1口的使用方法。

2.学习延时子程序的编写和使用。

三.实验电路及连接实验1-1电路图如下:图1.1实验1-2中:P1.0-P1.7接八个按钮K1-K8,P0.0-P0.7接八个发光二极管L1-L8。

四.实验说明1.P1口是准双向口,它作为输出口时与一般的双向口使用方法相同,由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止,因为内部上拉电阻阻值是20K~40K,故不会对外部输入产生影响,若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。

2.延时子程序的延时计算问题对延时子程序DELAY: MOV R0,#00HDELAY1: MOV R1,#0B3HDJNZ R1,$DJNZ R0,DELAY1查指令表可知MOV,DJNZ指令均需要两个机器周期,而一个机器周期时间长度为12/12MHZ(假设晶振频率是12MHZ),所以该段程序执行时间为:((0B3+1)*256+1)*2*12/12000000=100ms五.实验程序流程图实验要求1的程序框图:实验要求2的程序框图:图1.2 图1.3六、调试方法第一步:打开位于d:\单片机实验\实验一\1_1.uv2,进行实验1_1打开位于d:\单片机实验\实验一\1_2.uv2,进行实验1_2第二步:在资源管理器中如打开.src文件,在程序窗口中输入已编好的程序,保存。

单片机原理及应用实验报告2

单片机原理及应用实验报告2

单片机原理及应用实验报告2单片机原理及应用实验报告2实验报告:单片机原理及应用实验一、实验目的1、了解单片机的基本工作原理;2、掌握单片机的编程方法和编写汇编语言程序的能力;3、学习单片机的应用实验。

二、实验原理单片机是一种集成电路,内部包含了中央处理器、存储器和各种输入输出端口。

单片机的工作原理是通过对输入信号的处理和对输出信号的控制来实现各种功能。

单片机的编程方法一般采用汇编语言编写程序。

汇编语言是一种低级语言,可以直接对单片机进行操作。

通过编写汇编语言程序,可以实现各种功能,如控制LED灯的亮灭、控制电机的转动等。

本次实验主要通过控制LED灯的亮灭来演示单片机的应用。

在实验中,我们将使用汇编语言编写程序,通过编程来控制LED灯的亮灭。

三、实验步骤2、编写汇编语言程序:打开编程软件,进入编程界面,编写程序代码;3、编译程序:将编写好的程序进行编译,生成机器码;4、烧录程序:用编程工具将编译好的机器码烧录到单片机中;5、连接电路:使用面包板将单片机与LED灯连接起来;6、测试程序:将单片机的电源接通,观察LED灯的亮灭情况。

四、实验结果与分析经过以上步骤,我们成功地编写了汇编语言程序,并将程序烧录到了单片机中。

在实验中,我们观察到LED灯根据程序的控制产生了相应的亮灭效果。

实验结果表明,通过编程可以实现对单片机的控制,从而实现各种功能。

单片机在嵌入式系统、自动控制系统、家电等方面有着广泛的应用。

五、应用实例1、家居智能化控制:通过编程控制单片机,可以实现对家电的智能化控制。

例如,可以根据日出日落时间控制窗帘的开闭,根据室内温度控制空调的开关等。

2、工业自动化:在工业生产中,单片机可以用来控制各种设备和机械,实现生产线的自动化控制。

例如,可以根据产品的规格和数量,自动调整机械的工作速度和工作时间。

3、智能交通系统:在交通领域,单片机可以用来控制信号灯、道闸等设备,实现交通流量的控制。

例如,可以根据道路的拥堵程度和车辆的行驶速度,调整信号灯的红绿灯时间,从而达到交通畅通的目的。

《单片机与嵌入式控制技术》实验书

《单片机与嵌入式控制技术》实验书

《单片机与嵌入式控制技术》实验书机电工程学院目录安全注意事项 (1)实验一keil软件平台实验 (2)实验二按键控制实验 (10)实验三查表实验 (12)实验四中断实验 (14)附录......................................................................................................... 错误!未定义书签。

安全注意事项1、不要在实验室吃东西。

2、不要穿拖鞋进入实验室,下雨天雨伞不要带入实验室。

3、使用实验箱时轻拿轻放,插拔排线时,对准,不要把排针插歪或者弄折,同时注意别被排针扎手。

4、接线时,必须把实验箱电源关闭。

5、下课后整理实验箱,设备,导线,椅子归原位,电脑正常关机,产生的垃圾带走。

实验一keil软件平台实验一、实验目的认识单片机MCS-51最小系统的构成和相关的开发软件。

任何一个用户系统的开发都需要一个界面良好的调试平台,以方便地、快捷地完成系统的设计与调试。

单片机的开发也是如此。

Keil是目前最流行,使用最广泛的开发平台,也是我们学习单片机的良好工具。

因此,我们必须首先熟悉这个工具,掌握这个工具。

二、实验内容及原理(一)实验内容要求实现某一个I/O口控制八个LED发光二极管左移或者右移流水。

(二)实验原理实验是通过对一些简单程序的调试,帮助我们直观地了解与掌握Keil调试软件的基本功能,掌握如何利用Keil来调试应用系统的硬件与软件的基本方法。

1、硬件(1)实验箱开发板主控芯片采用单片机型号为STC89C52RC,总共四组八位并行I/O口,均可实现数据输入输出,一个全双工串口,可支持的振荡频率范围为2~48Mhz,具有三个16位可编程定时器/计数器,八个中断源,四级优先级,其引脚分布如图1-1所示。

此外实验箱开发板还配备了共阴极数码管显示模块、共阳极八字形流水灯模块、点阵模块、独立按键模块、矩阵按键模块、LCD1602液晶显示模块、蜂鸣器、实时时钟模块、直流电机模块、A/D转换模块等外围模块、超声波模块、温度传感器模块等,可供相关实验与单片机配合使用。

单片机原理实验指导书

单片机原理实验指导书

实验一仿真软件的使用,简单程序设计一.实验目的:1.掌握单片机仿真软件的基本操作方法;2.熟悉汇编语言源程序的编辑、汇编、运行和检查运行结果的方法(能查看各存储空间中值的变化);3.掌握简单程序编写的基本方法和技巧;二.实验内容:1. 将内部RAM的30H—33H四个存储单元內分别存放01H、02H、03H、04H 四个数;然后送至工作寄存器R0—R3。

2.将内部RAM的30H—33H四个存储单元內的数分别传送至外部RAM的2030H--2033H存储单元中。

3. 将内部RAM的30—32H的连续3个字节中的无符号数相加,结果的低位送33H 单元,高位送34H单元实用文档三.实验步骤:1.实验内容1的步骤(1)新建文件,输入能实现实验内容1的源程序并以 .ASM为扩展名存盘;(2)编译并运行程序,检查运行结果:检查R0—R3的内容;(3)单步运行程序,并检查运行结果:检査R0—R3的内容;(4)查看程序的机器码。

2.实验内容2的步骤(1)新建文件,输入能实现实验内容2的源程序并以 .ASM为扩展名存盘(2)编译并运行程序,检查运行结果:检査外部RAM 2030H—2033H单元的內容(3)单步运行程序,并检查运行结果;(4)查看程序的机器码。

3.实验内容3的步骤(1)新建文件,输入能实现实验内容3的源程序并以 .ASM为扩展名存盘;(2)编译并运行程序,检查运行结果;实用文档(3)单步运行程序,并检查运行结果,检查33H、34H单元内容;(4)查看程序的机器码四.实验程序1.实验内容1的程序ORG 0000HMOV 30H,#00HMOV 31H,#01HMOV 32H,#02HMOV 33H,#03HMOV R0,30HMOV R1,31HMOV R2,32HMOV R3,33HEND实用文档2.实验內容2的程序ORG 0000HMOV 30H,#00HMOV 31H,#11HMOV 32H,#22HMOV 33H,#33HMOV DPTR,2030HMOV R0,#30HMOV R1,#04HLOOP:MOV A,·R0HMOVX ·DPTR,AINC R0INC DPTRDJNZ R1,LOOPSJMP $实用文档END3.实验内容3的程序ORG 0000HMOV 30H,#0F8HMOV 31H,#0C6HMOV 32H,#0D9HCLR CMOV A,30HADD A,31HJC NEXT1SJMP NEXT2NEXT1:INC R1NEXT2:ADD A,32HMOV 33H,AJC NEXT3实用文档SJMP NEXT4NEXT3:INC R1NEXT4:MOV 34H,R1SJMP $五.实验报告要求:1.对实验内容1和实验内容2的程序加注释。

单片机原理实验报告

单片机原理实验报告

单片机原理实验报告班级:姓名:学号:实验日期:成绩:实验一基本操作实验目的:熟悉伟福仿真机软件的基本操作,熟悉MCS-51指令。

实验内容A:数据传送程序实验程序:实验步骤:(1)从起始地址开始全速运行程序Ⅰ,检查运行结果, 外部数据窗口中7000H~700FH单元的内容皆为00H;(2)按要求修改程序如Ⅱ,用单步/跟踪运行程序, 查看寄存器和外部数据窗口;(3)在PLUS处设置断点,从起始地址开始全速运行程序,查看寄存器和外部数据窗口;(4)清除断点,用运行到当前行方式将程序运行到PLUS的下一条指令,查看运行结果是否正确。

实验内容B: 1 , 当X>0时求符号函数Y= 0 , 当X=0时-1 , 当X<0时实验程序:实验步骤:(1)准备好三个有代表性的数据,分三次用单步/跟踪方式运行程序,注意PC指针的变化;当(40H)= _____(X>0) 时,ACC.7= 0 , 运行后(41H)= _01H_____(Y= 1),当(40H)= _00H____(X=0) 时,ACC.7= 0 , 运行后(41H)= __00H____(Y= 0),当(40H)= _____(X<0) 时,ACC.7= 1 , 运行后(41H)= FFH (Y=﹣1)(2)思考:能否用“JC POSI ”指令替代“JB ACC.7, POSI ”指令, 修改运行程序,验证结果。

注意“CJNE A, #00H, NZEAR”执行后CY位为0/1 ?单片机原理实验报告班级:姓名:学号:实验日期:成绩:实验二输入/输出控制实验实验目的:掌握单片机I/O口输入输出的控制方法,学会编写数码管的显示程序。

实验内容A:P1 口做输出口,接8只发光二极管L1~L8(高电平时发光二极管点亮),编写程序,使L1~L8流水闪烁。

ORG 0000HSTART: MOV A,#01HMOV R2,#08HLOOP:MOV P1,ALCALL DELAYRL ADJNZ R2,LOOPAJMP STARTDELAY:MOV R5,#40 ;延时1秒D1:MOV R6,#50D2:MOV R7,#248D3:DJNZ R7,D3DJNZ R6,D2DJNZ R5,D1RETEND实验内容B:P1 口做输入口,接拨动开关K1~K8。

单片机应用实验报告 2键盘、LED 数码管显示实验

单片机应用实验报告 2键盘、LED 数码管显示实验
delayms(5);
}
int main(){init();来自while(1){
judge();
xianshi();
}
return 0;
}
五、实验步骤
六、附录
sbit LED2=P2^6;
int num=0;
unsigned char code dispcode[]=
{0x30,0xfc,0xa2,0xa4,0x6c,
0x25,0x21,0xbc,0x20,0x24};
void init()
{
key0=1;
key1=1;
key2=1;
}
void delayms(int a)
{int b=0;
for(a;a>0;a--)
for(b=110;b>0;b--);
}
int judge()
{
if(key0==0)
{
delayms(100);
if(key0==0)
{
red=0;
yell=1;
gre=1;
num++;
if(num==10)
num=0;
}
}
if(key1==0)
{
delayms(5);
if(key1==0)
{
red=1;
yell=0;
gre=1;
}
}
if(key2==0)
{
delayms(5);
if(key2==0)
{
red=1;
yell=1;
gre=0;
}
}
return 0;
}
void xianshi()
{

单片机实验报告二 单片机IO口实验

单片机实验报告二 单片机IO口实验

南昌大学实验报告学生姓名:学号:专业班级:实验类型:⃞验证⃞综合⃞设计⃞创新实验日期:2019.4.16 实验成绩:实验二单片机I/O口实验(一)实验目的1.掌握单片机最小系统的构成,学习如何控制I/O口来驱动发光二极管,掌握移位和软件延时程序的编写。

2.熟练掌握STC型开发板的使用方法和注意事项。

3.掌握应用STC_ISP烧录过程;(二)设计要求利用51单片机及4个LED发光二极管,设计一个单片机流水灯程序,P4.7 /P4.6/ P1.6/ P1.7 来演示跑马灯。

其中流水灯的变化形式多样。

(三)实验原理STC实验箱单片机型号为IAP15W4K32S4-Student,其在线编程与在线仿真可由Keil uVision4集成开发环境和STC系列单片机在线可编程(ISP)电路实现:1.设置STC仿真器:运行STC-ISP在线编程软件,选择“keil 仿真设置”选项,如图1所示,单击“添加型号和头文件到keil中/ 添加STC仿真器驱动到keil中”,弹出“浏览文件夹”对话框,在浏览文件夹中选择keil的安装目录,单击“确定”按钮即完成添加。

根据所用芯片,单击“将IAP15W4K32S4-Student设置为仿真芯片”。

图12.Keil uVision4环境设置:选择菜单命令Project →Options for Target →Debug,选中“STC Monitor-51 Driver”,勾选“Load Application at Startup”选项和“Run to main()”选项,如图2所示。

单击图2右上角的“settings”按钮,弹出硬件参数设置对话框,如图2所示,根据仿真电路所使用的串口号(本机所用为串口5)选择串口端口,如图3所示:图2图33.STC15单击串口TTL电平通信模块结构如图4所示,P1.6、P1.7、P4.6、P4.7所连接的LED灯为共阳极LED,控制对应I/O口为低电平即可点亮LED。

单片机实训报告实验步骤

单片机实训报告实验步骤

一、实验目的1. 掌握单片机的基本工作原理和硬件结构。

2. 熟悉单片机的编程方法,提高编程能力。

3. 学习单片机的调试技巧,提高调试效率。

4. 通过实际操作,培养动手能力和团队合作精神。

二、实验仪器与设备1. 单片机实验开发板2. 编译器(如Keil、IAR等)3. 仿真软件(如Proteus、Multisim等)4. 连接线、电源、示波器等辅助设备三、实验步骤1. 熟悉单片机实验开发板(1)观察开发板的硬件结构,了解各个模块的功能和连接方式。

(2)熟悉开发板上的按键、LED、串口、I2C、SPI等接口。

2. 编写程序(1)根据实验要求,设计程序功能。

(2)选择合适的编程语言(如C语言、汇编语言等)。

(3)使用编译器编写程序代码,并进行语法检查。

3. 程序调试(1)使用仿真软件(如Proteus)对程序进行仿真调试。

(2)观察程序运行结果,检查程序是否存在错误。

(3)根据仿真结果,修改程序代码,直至程序正常运行。

4. 硬件连接(1)根据程序功能,连接开发板上的相关硬件模块。

(2)确保连接正确,避免短路或接触不良。

5. 实验运行(1)打开电源,启动单片机。

(2)观察程序运行情况,验证程序功能是否实现。

(3)根据实验要求,调整程序参数或硬件配置,优化程序性能。

6. 数据采集与记录(1)使用示波器等设备,采集实验过程中的数据。

(2)记录实验数据,为后续分析提供依据。

7. 结果分析(1)对实验数据进行整理和分析,评估程序性能。

(2)总结实验过程中的经验教训,提出改进措施。

8. 实验报告撰写(1)整理实验过程,包括实验步骤、实验数据、实验结果等。

(2)分析实验结果,总结实验经验教训。

(3)撰写实验报告,要求格式规范、内容完整。

四、实验注意事项1. 确保实验环境安全,避免触电、短路等事故。

2. 严格遵守实验操作规程,避免损坏实验设备。

3. 注意程序调试过程中的细节,提高调试效率。

4. 实验过程中,积极思考,勇于创新,提高动手能力。

单片机实验报告2

单片机实验报告2

《单片机应用系统设计》实验报告院系:仪器科学与工程学院专业:测控技术与仪器实验室:机械楼5楼同组人员:评定成绩:审阅教师:硬件实验一I/O口输入/输出及控制实验Ⅰ、I/O口输入/输出实验一、实验目的1、学习单片机I/O口的使用方法2、学习延时子程序的编写和使用二、实验内容1、I/O口输出:P1口做输出口,接八只发光二极管,编写程序让发光二极管循环点亮。

2、I/O口输入/输出:P1.0、P1.1做输入口接两个拨动开关;P1.2、P1.3做输出口,接两个发光二极管。

编写程序读取开关状态,将此状态在发光二极管上显示出来。

编程时应注意P1.0、P1.1作为输入口时应先置1,才能正确读入值。

三、实验步骤1、I/O口输出硬件连接连线连接孔1 连接孔21 P1.0 L02 P1.1 L13 P1.2 L24 P1.3 L35 P1.4 L46 P1.5 L57 P1.6 L68 P1.7 L7MCS51的P1口循环点灯2、I/O口输入/输出硬件连接连线连接孔1 连接孔21 K4 P1.02 K5 P1.13 P1.2 L44 P1.3 L5MCS51的P1口输入/输出3、实验说明(1)对于MCS51,P1口是准双向口。

它作为输出口时与一般的双向口使用方法想同;但准双向口用作输入口时,因其结构特点必须对它置“1”,否则读入的数据容易产生错误。

(2)8051延时子程序的延时计算问题,对于程序DELAY:MOV R6, #0HMOV R7, #0HDELAYLOOP:DJNZ R6, DELAYLOOPDJNZ R7, DELAYLOOPRET查指令表可知MOV和DJNZ指令均需两个指令周期,在12MHz晶振时,一个机器周期时间为:12/12MHZ=1ms,该延时子程序延时:(256X255+2)X2X1us=130ms。

4、分别连接硬件并执行相关程序,记录结果。

四、提高要求修改I/O口输出程序,先1、3、5、7灯亮,延时后2、4、6、8灯亮,交替点亮。

单片机原理实验报告

单片机原理实验报告

实验一:系统认识实验一、设计目的:1. 学习 Keil C51 集成开发环境的操作;2. 熟悉 TD-51 系统板的结构及使用。

二、设计内容:编写程序,将 00H~0FH 共 16 个数写入单片机内部 RAM 的 30H~3FH 空间。

三、设计步骤:1. 创建 Keil C51 应用程序(1)运行 Keil C51 软件,进入 Keil C51 集成开发环境。

(2)选择工具栏的 Project 选项,弹出下拉菜单,选择 NewProject 命令,建立一个新的μVision2 工程。

这时会弹出文件保存对话框,选择工程目录并输入文件名 Asm1 后,单击保存。

(3)工程建立完毕后,μVision2 会马上弹出器件选择窗口。

器件选择的目的是告诉μVision2 使用的 80C51 芯片的型号是哪一个公司的哪一个型号,不同型号的 51 芯片内部资源是不同的。

此时选择 SST 公司的 SST89E554RC。

(4)到此建立好一个空白工程,现在需要人工为工程添加程序文件,如果还没有程序文件则必须建立它。

选择工具栏的 File 选项,在弹出的下拉菜单中选择 New 目录。

(5)输入程序,完毕后点击“保存”命令保存源程序,将 Text1 保存成Asm1.asm。

Keil C51 支持汇编和 C 语言,μVision2 会根据文件后缀判断文件的类型,进行自动处理,因此保存时需要输入文件名及扩展名.ASM 或.C。

保存后,文件中字体的颜色会发生一定变化,关键字会变为蓝色。

(6)程序文件建立后,并没有与 Asm1.Uv2 工程建立任何关系。

此时,需要将 Asm1.asm 源程序添加到 Asm1.Uv2 工程中,构成一个完整的工程项目。

在Project Window 窗口内,选中Source Group1 点击鼠标右键,选择 Add Files to Group‘Source Group1’命令,此时弹出添加源程序文件对话框,选择文件Asm1.asm,点击 Add 命令按钮即可将源程序文件添加到工程中。

实验二 单片机定时器计数器编程

实验二  单片机定时器计数器编程

实验二单片机定时器/计数器编程一、实验目的1、掌握单片机定时器/计数器的工作方式;2、掌握单片机定时器/计数器的编程方法。

二、实验内容1、学习单片机定时器/计数器的工作方式、初始化以及应用等;2、利用单片机定时器/计数器编写程序驱动开发板上的LED灯按一定规律工作。

基本要求:利用定时器1控制LEDB闪烁,闪烁频率为2Hz。

提高要求:读懂教材定时器/计数器的应用实例4和5,在实验室开发板上采用分模块设计的方法编程实现以下两个任务之一:1、控制LEDB闪烁,2.5秒一个周期,亮0.5s,灭2s,周而复始。

2、将教材例5对P1.0和P1.1的控制,改为对LEDB和LEDG的控制,时序不变。

三、实验设备1、STC单片机开发板;2、PC机以及串口线。

四、实验分析及关键代码(1)利用定时器1控制LEDB闪烁,闪烁频率为2Hz。

实验分析:控制LEDB闪烁,频率为2Hz,即0.5s。

解决思路:定时器工作方式选0x01,计数器初值为(65536-50000),循环10次即为0.5s。

代码如下:#include<reg51.h>#define uchar unsigned char sbit A=P2^4;uchar i=0;void main (){TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;while(1){while(TF0){TF0=0;TH0=(65536-50000)/256;TL0=(65536-50000)%256;i++;if(i==10){A=!A;i=0;}}}}(2)控制LEDB闪烁,2.5秒一个周期,亮0.5s,灭2s,周而复始。

解决思路:设置两个循环,计数器初值设为(65536-50000),亮灯循环10次,灭灯循环40次。

代码如下:#include<reg51.h>#define uchar unsigned charsbit A=P2^4;uchar i=0;void main (){TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;while(1){while(TF0){TF0=0;TH0=(65536-50000)/256;TL0=(65536-50000)%256;i++;if(i==10){A=1;}if(i==50){A=0;i=0;}}}}五、实验总结对软件及计数器的操作及代码不太熟悉,多次查询课本及上网查找资料后懂得计数器工作方式及计数操作,其他问题迎刃而解。

单片机1-2汇编

单片机1-2汇编

单片机是把微处理器(CPU)、一定容量的 程序存储器(ROM)和数据存储器 (RAM)、输入/输出接口(I/O)通过总线 连接在一起并集成在一个芯片上。 其它名称: 微控制器MCU(MicroController Unit) 嵌入式微控制器(Embedded Microcontroller)
单片机的特点和应用

重点和难点
单片机的结构特点 存储器配置空间配置 单片机的指令时序。

MCS-51单片机的基本结构框图
基本特性:
(1)8位CPU,片内振荡器。 (2)4K字节ROM,128字节RAM; (3)21个特殊功能寄存器。 (4)32根I/O线; (5)可寻址各64K的外部数据、程序存贮器空间; (6)2个16位的定时器/计数器; (7)中断结构:五个中断源,两个优先级; (8)一个全双工串行口; (9)有位寻址功能,适于布尔处理的位处理机。
控制器
计算机工作原理:存储程序和程序控制
存储程序:事先把计算机的执行步骤序列(即
程序)及运行中所需的数据, 通过一定的方式
输入并存储在计算机的存储器中。
程序控制:指计算机能自动地逐一取出程序中
的一条条指令, 加以分析并执行规定的操作。
控制器功能、组成: 控制器是CPU的大脑中枢,工作过程:取指、指 令分析译码、执行指令,…… 包括定时与控制电 路、指令寄存器、指令译码器及若干寄存器。
若采用外部时钟方式,此时把XTAL1接地,振荡频 率由XTAL2引脚提供。现在的一些新型芯片的时钟 频率可以达到40MHz。
相关寄存器:PC、DPTR、SP
PC: 16位程序计数器,PC的内容:是下一条指令的地址。 访问范围:0000~FFFFH (1) 复位功能。复位时单片机进入初始状态,PC初值为0000H。 如果用户主程序的首地址不是0000H,那么,只要在0000H单 元中安排一条无条件转移指令,而用户主程序从跳转地址处开 始存放,微机复位后就转去执行用户主程序。 (2) 计数功能。CPU读取一条指令时,总是根据PC的内容作为 指令的地址,到存储器中该地址单元中取回指令的机器码,送 到指令寄存器。同时,每取回指令代码的一个字节,PC的内容 自动加1。

单片机实验报告二-数码管显示实验

单片机实验报告二-数码管显示实验

单片机实验报告二-数码管显示实验摘要:本实验使用单片机控制数码管的显示,在实验过程中通过学习单片机的GPIO口的编程,调试程序、调节电路来达到正确的显示效果。

最终按照要求实现了单片机控制数码管的计数器。

关键词:单片机、数码管、GPIO口、计数器一、实验介绍数码管是一种介于机械仪表和液晶显示器之间的电子显示器件,广泛应用于计时器、计数器、仪表等电子产品中。

本实验旨在通过单片机控制数码管的显示来加深对GPIO口的使用和调试程序的理解,同时了解数码管的原理。

本实验主要分为两部分:数码管显示基础实验和数码管控制开关实验。

通过这两部分的实验可以了解数码管的工作原理和单片机的基本控制方式。

二、实验原理2.1 数码管的基本原理数码管显示器将数字显示为一组符号,例如“0”到“9”。

表示不同数字的符号被编码成一个数字码。

七段数码管用一个七段数码字母来表示数字,如下表所示:| 数字 | a | b | c | d | e | f | g || ---- | - | - | - | - | - | - | - || 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 || 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 || 2 | 1 | 1 | 0 | 1 | 1 | 0 | 1 || 3 | 1 | 1 | 1 | 1 | 0 | 0 | 1 || 4 | 0 | 1 | 1 | 0 | 0 | 1 | 1 || 5 | 1 | 0 | 1 | 1 | 0 | 1 | 1 || 6 | 0 | 0 | 1 | 1 | 1 | 1 | 1 || 7 | 1 | 1 | 1 | 0 | 0 | 0 | 0 || 8 | 1 | 1 | 1 | 1 | 1 | 1 | 1 || 9 | 1 | 1 | 1 | 1 | 0 | 1 | 1 |通过控制数码管的七个LED灯的亮灭,可以实现不同符号显示。

实验二_I_O输入输出实验

实验二_I_O输入输出实验

a b cde f gh(dp) 实验二 I/O 口输入、输出实验一、实验目的1. 学习I/O 口的使用方法。

2. 学习延时子程序、查表程序的编写和使用。

二、实验说明本实验1通过单片机的I/O 口控制LED 的亮灭,从而观察I/O 口的输出。

实验2通过单片机的I/O 口接受按键动作信息,然后通过LED 和数码管指示。

通过本实验学生可以掌握单片机I/O 口输入输出的控制方法,同时也可以掌握单片机延时子程序、查表程序的编写和调试方法。

要求预先编写好程序并通过伟福仿真软件调试。

三、实验内容1、P0口做输出口,接八只LED (L1—L8),编写程序,使LED 循环点亮,间隔0.5秒。

2、P1.0--P1.7作输入口接拨动开关K1—K8;P0.0--P0.7作输出口,接发光二极管L1—L8,编写程序读取开关状态,将此状态在对应的发光二极管上显示出来,同时将开关编号(1—8)显示在共阴极LED 数码管上。

编程时应注意P1作为输入口时应先置1,才能正确读入值。

四、实验电路连线P0.0 ---- L1 P1.0 ----- K1 P0.1 ---- L2 P1.1 ----- K2 P0.2 ---- L3 P1.2 ----- K3 P0.3 ---- L4 P1.3 ----- K4 P0.4 ---- L5 P1.4 ----- K5 P0.5 ---- L6 P1.5 ----- K6P0.6 ---- L7 P1.6 ----- K7 P0.7 ---- L8 P1.7 ----- K8实验1:P0口循环点灯 实验2:P1、P0口输入输出a b c d e f g h(dp)P2.0P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7实验2: 共阴极LED 数码管各段与I/O 的连接五、实验仪器和设备PC 机、WA VE 软件、仿真器+仿真头、实验板、电源等。

六、参考程序框图P1口输入/输出框图七、思考题1、实验1欲改变LED循环的方向程序应如何修改?循环的时间间隔由什么决定?写出间隔时间为1秒的延时程序并说明计算方法。

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

实验一数据存储器实验
一、实验目的
1.掌握片内数据存储器的地址分配。

2.掌握对片内数据存储器进行数据读写的方法。

3. 掌握用Proteus调试汇编源程序的方法。

二、实验预备知识
8051的片内数据存储器共有256个单元,按其功能划分为两个部分:低128单元(单元地址00H~7FH)和高128单元(单元地址80H~FFH)。

低128单元按其用途划分为工作寄存器区(单元地址00H~1FH)、位寻址区(单元地址20H~2FH)、用户RAM区(单元地址30H~7FH)三个区域。

如图2-1所示。

高128单元是分配给特殊功能寄存器使用的,其中部分单元(单元地址能被8整除的)可以进行位寻址。

三、实验内容
通过执行程序中的相关指令,将有关数据写入工作寄存器区、位寻址区、数据缓冲区和特殊功能寄存器区各存储单元,观察当前在用工作寄存器组的选择与数据传送目标的对应关系、字节地址与位地址的区别、特殊功能寄存器的字节地址、程序计数器PC在执行指令中的作用。

四、实验步骤
1. 新建设计文件。

单击“文件”→“新建设计”,在弹出的“Create New Deign”对话框中选择“DEFAULT”模板后单击“OK”。

2. 设置图纸尺寸。

单击“系统”→“设置图纸尺寸”,在弹出的“Sheet Size Configuration”对话框中选择“A4”图纸尺寸或自定义尺寸后单击“OK”。

3. 设置网格。

单击“查看”→“网格”,网格显示(再次单击,网格不显示)。

单击“查看”→“Snap xxth”(或Snap x.xin),可改变网格单位,默认为“Snap 0.1in”。

4. 保存设计文件。

单击“文件”→“保存设计”,在弹出的“Save ISIS Design File”对话框中指定文件夹(如D盘电信061××文件夹)、输入文件名“reg”并选择保存类型为“Design Files”后单击“保存”。

5. 选取元器件。

从Proteus元器件库中选取元器件AT89C51(单片机)。

单击模式选择工具栏“元件”按钮,单击器件选择按钮“P”,在弹出的“Pick Devices”(选取元器件)对话框的“Keywords”(关键字)栏中输入元器件名称“AT89C51”(也可以是分类、小类、属性值),与关键字匹配的元器件“AT89C51”显示在元器件列表(Results)中。

双击选中的元器件“AT89C51”,便将所选元器件“AT89C51”加入到对象选择器窗口。

单击“OK”完成元器件选取。

参见图1-2选取元器件对话框。

6. 放置元器件。

单击对象选择器窗口的元器件“AT89C51”,元器件名“AT89C51”变为蓝底白字,预览窗口显示“AT89C51”元器件;单击方向工具栏按钮可实现元器件的左旋、右旋、水平和垂直翻转,以调整元器件的摆放方向;将鼠标指针移到编辑区某一位置,单击一次就可放置元器件“AT89C51”。

按图2-3所示放置元器件。

7. 编辑元器件。

单击模式选择工具栏“编辑”按钮,进入编辑状态。

右击(或单击)元器件,该元器件变为红色表明被选中,鼠标指针放到被选中的元器件上,按住左键拖动,将鼠标移到编辑区某一位置松开,即完成元器件的移动。

鼠标指针放到被选中的元器件
上右击,单击弹出的快捷菜单中的方向工具栏按钮可实现元器件的旋转和翻转。

右击被选中的元器件,可删除该元器件。

被选中的元器件外单击,可撤销选中。

8. 放置终端。

单击模式选择工具栏“终端”按钮,单击对象选择器窗口的电源终端“POWER”,该终端名背景变为蓝色,预览窗口显示该终端;单击方向工具栏“左旋转”按钮,电源终端逆时针旋转90°;将鼠标指针移到编辑区某一位置,单击一次就可放置一个终端。

9. 连线。

单击命令工具栏“实时Snap(捕捉)”按钮,实时捕捉有效(再次单击,实时捕捉无效),当鼠标指针接近引脚末端时,该处会自动出现一个小方框“□”,表明可以自动连接到该点。

按图2-3所示单击要连线的元器件起点和终点,完成连线。

10. 添加源程序。

单击“源文件”→“增加/移除源文件”,在弹出的“Add/Remove Source Code Files”对话框中单击“Code Generation Tool”栏下拉列表框按钮,选择“ASEM51”(51汇编器);单击新建源文件按钮“NEW”,在弹出的“New Source File”对话框中指定文件存放的文件夹,输入文件名“reg.asm”,单击“打开”,在单击打开的对话框中的按钮“是”;确认“Source Code Filename”栏下拉列表框中显示文件名为“reg.asm”,单击“OK”。

第一次使用该软件时,要按1.2.2节介绍的方法设置代码产生工具。

11. 编辑源程序。

单击“源文件”→“reg.asm”,在“Source Editor”源文件编辑器中输入并编辑源程序,确认无误后,单击保存按钮。

12. 编译源程序。

单击“源文件”→“构建所有”,弹出源程序编译窗口如图2-2所示。

若编译不出错,则自动生成目标代码文件(格式为HEX);若编译出错,根据提示修改源程序并保存,直至编译成功。

参见1.2.2节介绍的编译出错的解决办法。

图2-2 源程序编译窗口
13. 加载目标代码文件。

先右击后单击单片机“AT89C51”,在弹出的“Edit Component”对话框中单击“Program File”栏的打开按钮,在弹出的“Select File Name”对话框找到刚才编译生成的HEX文件,单击“打开“按钮,完成HEX文件加载;同时将“Clock Frequency”栏中的频率设为12MHz,单击“OK”,完成加载目标代码文件。

14. 仿真。

单击仿真工具栏“单步运行”按钮,进入单步运行状态。

单击“调试”→“8051 CPU Registers”,单击“调试”→“8051 CPU SFR Memory”,单击“调试”→“8051 CPU Internal (IDATA) Memory”,单击“调试”→“8051 CPU Source Code”,分别打开工作寄存器窗口、特殊功能寄存器窗口、片内数据存储器窗口和源代码调试窗口。

单击源代码调试窗口“单步执行”按钮一次,可执行一条指令;通过各调试窗口观察每条指令执行后数据处理的结果,以加深对硬件结构和指令的理解。

程序调试窗口如图2-3所示。

图2-3 程序调试窗口
五、实验结果分析与总结
提示:8051内部数据寄存器的值和CPU中各寄存器的值以及PC值的变化。

参考程序:工作寄存器区的数据传送
实验二数据传送指令实验
一、实验目的
1.掌握内部RAM和外部RAM数据传送指令的用法。

2.掌握数据交换和堆栈指令的特点。

3. 掌握用Proteus调试汇编源程序的方法。

二、实验内容
将数据传送类指令分成四类,分别编写四个小程序,以完成数据在不同区域内的传送、交换。

1.参考程序1----内部RAM数据传送
(1)将立即数#12H、#34H、#56H分别传送至内部RAM区40H、R2、A中。

(2)将内部RAM区40H、R2、A中的内容分别传送至R0、内部RAM区50H和12H中。

2. 参考程序2----外部RAM数据传送
(1)将立即数#2000H、#30H、#55H分别传送至DPTR、R1、A中。

(2)将A中的内容分别传送至外部RAM区2000H、30H中。

3. 参考程序3----数据交换
(1)将立即数#65H、#60H、#24H分别传送至内部RAM区60H、R0、A中。

(2)将A中高低半字节交换。

(3)将A中的内容与内部RAM区60H中的内容交换。

(4)将A中的内容与R0中的内容交换。

4. 参考程序4----堆栈操作
(1)将栈底指针调至30H,并将立即数#20H、#40H分别传送至内部RAM区70H、A中。

(2)将内部RAM区70H、A中的内容分别压入堆栈区中。

(3)将堆栈区中的内容分别弹出至A、内部RAM区50H中。

三、实验参考程序
参考程序1:内部RAM数据传送
参考程序2:外部RAM数据传送
参考程序3:数据交换
参考程序4:堆栈操作
四、实验步骤
五、实验分析与总结
六、实验思考
1. MOV、MOVX和MOVC三类指令有什么区别?
2.编写一个将内部RAM区40H中的内容传送至外部RAM区3000H中的程序。

相关文档
最新文档