单片机实验资料大全

合集下载

单片机实验资料大全

单片机实验资料大全

一、熟悉学习工具开发板二、点亮LED1.单片机及最小系统电路1)电源电路2)晶振电路3)复位电路2.74HC245和74HC13874HC245的输入:DB_0 即P0.0DB_1 即P0.1DB_2 即P0.2DB_3 即P0.3DB_4 即P0.4DB_5 即P0.5DB_6 即P0.6DB_7 即P0.7U3 74HC138的输入:ADDR0即P1.0ADDR1即P1.1ADDR2即P1.2ADDR3即P1.3 E3ENLED即P1.4 E1 E2 3.跳线4.LED三极管基极端输入LEDS6是U3 74HC138的输出Y68个LED小灯阴极端的8个输入是74HC245的8个输出:DB 0 也就是P0.0DB 1 也就是P0.1DB 2 也就是P0.2DB 3 也就是P0.3DB 4 也就是P0.4DB 5 也就是P0.5DB 6 也就是P0.6DB 7 也就是P0.75.点亮一个LED的程序新建工程,添加.c文件,编辑编译,生成hex文件编译成功会出现reg2.h,,双击可以打开STP-ISP下载程序到板子,小灯被点亮1)点亮第1个小灯,熄灭第1个小灯2)点亮第2个小灯,熄灭第2个小灯3)点亮第3个小灯,熄灭第3个小灯4)点亮第1、2小灯,熄灭第1、2小灯5)点亮第1、3、5、7小灯,熄灭第1、3、5、7小灯三、闪烁LED修改小灯闪烁的时间:低于20ms,大于50HZ,小灯的闪烁人眼看到是连续的四、流水灯1、用P0点亮小灯2、依次点亮每个小灯,依次要赋给P0 的数值就是:0xFE、0xFD、0xFB、0xF7、0xEF、0xDF、0xBF、0x7F。

•左移<<右移>>•左移,最低位填0补充;右移,最高位填0补充•0xf0 11100000 01111000流水灯程序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灯、按键控制、数码管显示等。

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

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

单片机实验报告

单片机实验报告

一、实验目的1. 熟悉单片机的硬件组成和基本工作原理。

2. 掌握单片机最小系统的搭建方法。

3. 学习使用单片机编程软件进行程序编写和调试。

4. 通过实际操作,加深对单片机应用的理解。

二、实验环境1. 实验设备:MCS-51单片机实验板、电源模块、面包板、连接线、LED灯、蜂鸣器、按键等。

2. 软件环境:Keil uVision5、Proteus仿真软件。

三、实验内容1. 点亮LED灯(1)实验目的:掌握单片机I/O口的使用,实现LED灯的点亮。

(2)实验步骤:① 将LED灯的阳极连接到单片机的P1.0口,阴极连接到GND。

② 在Keil uVision5中新建工程,编写程序如下:```cvoid main() {while (1) {P1 = 0xFF; // 点亮LED灯delay(500000); // 延时P1 = 0x00; // 熄灭LED灯delay(500000); // 延时}}③ 将程序编译并下载到单片机中,观察LED灯的点亮效果。

2. 蜂鸣器控制(1)实验目的:掌握单片机I/O口的使用,实现蜂鸣器的控制。

(2)实验步骤:① 将蜂鸣器的正极连接到单片机的P1.1口,负极连接到GND。

② 在Keil uVision5中编写程序如下:```cvoid main() {while (1) {P1 = 0x02; // 使能蜂鸣器delay(100000); // 延时P1 = 0x00; // 禁止蜂鸣器delay(100000); // 延时}}```③ 将程序编译并下载到单片机中,观察蜂鸣器的鸣叫效果。

3. 按键扫描(1)实验目的:掌握单片机I/O口的使用,实现按键的扫描和识别。

(2)实验步骤:① 将两个按键分别连接到单片机的P1.2和P1.3口。

② 在Keil uVision5中编写程序如下:void main() {while (1) {if (P1 & 0x04) { // 检测按键1是否按下// 执行按键1按下后的操作}if (P1 & 0x08) { // 检测按键2是否按下// 执行按键2按下后的操作}}}```③ 将程序编译并下载到单片机中,观察按键的扫描和识别效果。

单片机实验——精选推荐

单片机实验——精选推荐

实验一认识实验一.实验目的1.了解仿真器的硬件结构与接线。

2.了解MCS-51单片机复位功能及复位后的内部状态。

3.通过示例程序的键入与执行,学习仿真器的使用与操作方法。

二.实验内容1.对照实验指导书,查对实验机具体接线。

2.按照开发系统的使用方法,分别查看复位后PC、SP、DPTR等特殊功能寄存器及片内、片外RAM的内容。

3.熟悉开发器的使用,将下面程序键入实验机。

ORG 2000H2000 74AA MOV A,#0AAH2002 75F0BB MOV B,#0BBH2005 E5F0 MOV A,B2007 78CC MOV R0,#0CCH2009 E8 MOV A,R0200A 80FE SJMP $4.程序键入后,检查各存储单元所储机器码是否正确如有误,重新键入,达到修正的目的。

5.单步执行示例程序,逐步检查执行结果,核查与分析结果是否相符,直到执行完最后一条指令。

6.练习连续执行示例程序,检查执行结果,核查与分析结果是否相符。

7.自己在示例程序中插入一条指令,执行并查看结果,然后删除,熟悉插入/删除操作。

8.将示例程序移到另外一个存储区,执行并查看结果,熟悉程序块移动操作。

三.实验预习要求1.认真阅读指导书的相关内容,熟悉开发系统的各种操作。

2.实验前应写出规定操作任务的具体操作方法步骤。

四.思考题1.MCS-51单片机怎样实现内部复位,画出一种复位电路。

2.PC、SP、P0、P1、P2、P3复位状态是什么?各有何意义?3.示例程序中最后一条指令SJMP $的作用是什么?如果取掉这一条指令,程序的执行将发生什么变化?4.实验机监控系统怎样实现程序“单步执行”功能?五.实验报告要求1.按实验顺序,写出实验操作的方法步骤。

2.写出实验中所遇到的问题与解决过程。

写出思考题的答案。

实验二建立数据区、数据块传送一.实验目的1.进一步熟悉实验机操作,练习程序调试方法。

2.理解并掌握建立数据区与数据块传送程序。

(整理)单片机学生实验资料

(整理)单片机学生实验资料

实验报告实验项目名称:P1口实验同组人:实验时间:实验室:K2-407单片机室指导教师:胡蔷一、实验目的:(l)学习P1口的使用方法; 熟悉Proteus软件电路设计和Keil软件程序调试方法。

(2)学习软件延时程序的编写。

重点:延时程序,P1口结构二、实验顶备知识:(l)Pl口为准双向口,每一位都可独立地定义为输入或输出,在作输入线使用前,必须向锁存器相应位写入“1”,该位才能作为输入。

(2)Proteus软件应用,Keil软件程序调试应用。

三、实验内容:㈠模拟开关灯的Proteus仿真及C语言程序设计1、设计要求:监视开关K1(接在P3.0端口上),用发光二级管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭。

2、仿真电路原理图(预习内容)元器件选取:①AT89C52:单片机;②RES:电阻;③CRYSTAL:晶振;④CAP、CAP-ELEC:电容、电解电容;⑤LED-GREEN:绿色发光二级管;⑥SWITCH:开关。

模拟开关灯的电路原理图3、程序设计内容①开关状态的检测过程单片机对开关状态的检测相对于单片机来说,是从单片机的P3.0端口输入信号,而输入的信号只有高电平和低电平两种,当拨动开关K1拨上去,即输入高电平,相当开关断开,当拨动开关K1拨下去,即输入低电平,相当开关闭合。

单片机可以采用if(K1= =1)或者if(K1= =0)指令来完成对开关状态的检测。

②输出控制当P1.0端口输出高电平,即P1.0=1时,根据发光二极管的单向导电性可知,这时发光二级管L1熄灭;当P1.0端口输出低电平,即P1.0=0时,发光二级管L1亮。

(预习内容)模拟开关灯的程序流程图4、程序清单(预习内容)㈡广告灯(利用查表方式)的Protues仿真及程序设计1、设计要求:利用查表的方法,使端口P1作单一灯的变化;左移2次,右移2次,闪烁2次(延时的时间0.2 s)。

2、仿真电路原理图(预习内容)元器件选取:①AT89C52:单片机;②RES:电阻;③CRYSTAL:晶振;④CAP、CAP-ELEC:电容、电解电容;⑤LED-GREEN:绿色发光二级管。

40个经典单片机实验帮你成功

40个经典单片机实验帮你成功
作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要 求的闪烁时间间隔为 0.2 秒,相对于微秒来说,相差太大,所以我们在
执行某一指令时,插入延时程序,来达到我们的要求,但这样的延时程 序是如何设计呢?下面具体介绍其原理: 如图 4.1.1 所示的石英晶体为 12MHz,因此,1 个机器周期为 1 微秒 机器周期 微秒
(2). 输出控制
如图 3 所示,当 P1.0 端口输出高电平,即 P1.0=1 时,根据发光二极管的单向 导电性可知,这时发光二极管 L1 熄灭;当 P1.0 端口输出低电平,即 P1.0=0 时,发光二极管 L1 亮;我们可以使用 SETB P1.0 指令使 P1.0 端口输出高电平, 使用 CLR P1.0 指令使 P1.0 端口输出低电平。
3. 系统板上硬件连线
(1. 把“单片机系统”区域中的 P1.0-P1.3 用导线连接到“八路发光二 极管指示模块”区域中的 L1-L4 端口上;
(2. 把“单片机系统”区域中的 P1.4-P1.7 用导线连接到“四路拨动开 关”区域中的 K1-K4 端口上;
4. 程序设计内容
(1. 开关状态检测
对于开关状态检测,相对单片机来说,是输入关系,我们可轮流检测每个开关状 态,根据每个开关的状态让相应的发光二极管指示,可以采用 JB P1.X,REL 或 JNB P1.X,REL 指令来完成;也可以一次性检测四路开关状态,然后让其指 示,可以采用 MOV A,P1 指令一次把 P1 端口的状态全部读入,然后取高 4 位的 状态来指示。
void main(void) {
while(1) { L1=0; delay02s(); L1=1; delay02s(); } }
2. 模拟开关灯 1. 实验任务

单片机实验整理

单片机实验整理

数据传送1.实验目的(1)熟悉51单片机的开发环境Keil C51(2)掌握8051单片机内部数据存储器、外部数据存储器的数据传送特点和应用(3)掌握MOV, MOVX和MOVC类指令的用法及区别2.实验内容(1)将内部数据存储器20H为首地址的十六个字节传送到30H为首地址的数据区,即:20H~2FH送30H~3FH。

(2)将外部数据存储器2000H~200FH单元的十六个数传送至内部数据存储器的30H~3FH。

建立一个数字0~9的ASCII码表,表格放在程序存贮器区首址为1000H的十个单元内,编程根据R0中的内容来查表,所得结果存放在寄存器B中,注意R0中的内容不在0~9范围时的ORG 0000HSJMP MAINORG 3000HMAIN: MOV A,#20H //传送20HLOOP1:MOV 30H,@AINC ACJNE A,#2FH,LOOPMOV DPTR,#2000H //传送2000HLOOP2:MOV 30H,@DPTRINC DPTRCJNE DPTR,#200FH,LOOP2MOV R0,#TABEL //查表MOV B,@R0ORG 1000HTABEL:DB 30H,31H,32H,33H,34HDB 35H,36H,37H,38H,39H编程将片内RAM30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去。

解:STRAT:MOV R0,#30HMOV R7,#0FHMOV DPTR,#3000HLOOP:MOV A,@R0MOVX @DPTR,AINC R0INC DPTRDJNZ R7,LOOPRET单片机实验指导书--实验3ORG 0000HLOOP0: MOV DPL,R3MOV DPH,R2MOVX A,@DPTRMOV DPL,R5MOV DPH,R4LOOP: MOVX @DPTR,ACJNE R3,#0FFH,LOOPAINC R2LOOPA: INC R3CJNE R5,#0FFH,LOOP1INC R4LOOP1: INC R5CJNE R7,#00H,LOOP2CJNE R6,#00H,LOOP3LOOP4: SJMP LOOP4LOOP2: DEC R7SJMP LOOP0LOOP3: DEC R7DEC R6SJMP LOOP0ENDkeil如何编译1 新建一工程;在主菜单project下(.Uv2)2 新建一文件;如C则存为.c文件,如汇编则存为.asm文件;3 在左边窗口中的Target1上右击,在菜单中选add file to group,再选中你的刚建的文件,即把它加入到你的工程中。

单片机实验报告

单片机实验报告

实验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.基本内容: 按照实验要求连接系统, 编制程序并运行, 说明如何利用仿真器验证程序的正确性。

单片机实验指导资料

单片机实验指导资料

实验一扩展存储器读写实验一.实验要求编制简单程序,对实验板上提供的外部存贮器(62256)进行读写操作。

二.实验目的1.学习片外存储器扩展方法。

2.学习数据存储器不同的读写方法。

三.实验电路及连线将P1.0接至L1。

CS256连GND孔。

四.实验说明1.单片机系统中,对片外存贮器的读写操作是最基本的操作。

用户藉此来熟悉MCS51单片机编程的基本规则、基本指令的使用和使用本仿真实验系统调试程序的方法。

用户编程可以参考示例程序和流程框图。

本示例程序中对片外存贮器中一固定地址单元进行读写操作,并比较读写结果是否一致。

不一致则说明读写操作不可靠或该存储器单元不可靠,程序转入出错处理代码段(本示例程序通过熄灭一个发光二极管来表示出错)。

读写数据的选用,本例采用的是55(0101,0101)与AA(1010,1010)。

一般采用这两个数据的读写操作就可查出数据总线的短路、断路等,在实际调试用户电路时非常有效。

用户调试该程序时,可以灵活使用单步、断点和变量观察等方法,来观察程序执行的流程和各中间变量的值。

2.在I状态下执行MEM1程序,对实验机数据进行读写,若L1灯亮说明RAM读写正常。

3.也可进入LCA51的调试工具菜单中的对话窗口,用监控命令方式读写RAM,在I状态执行SX0000↓ 55,SPACE,屏幕上应显示55,再键入AA,SPACE,屏幕上也应显示AA,以上过程执行效果与编程执行效果完全相同。

注:SX是实验机对外部数据空间读写命令。

4.本例中,62256片选接地时,存储器空间为0000~7FFFH。

五.实验程序框图六.实验程序:ORG 0000HLJMP STARTORG 0040HSTART:MOV SP,#60HMOV DPTR,#0000H ;置外部RAM读写地址 MOV A,#55H ;测试的数据一MOV B,AMOVX @DPTR,A ;写外部RAMMOVX A,@DPTR ;读外部RAMXRL A,B ;比较读回的数据JNZ ERRORMOV A,#0AAH ;测试的数据二MOV B,AMOVX @DPTR,AMOVX A,@DPTRXRL A,BJZ PASS ;测试通过ERROR: SETB P1.0 ;测试失败,点亮LED SJMP $PASS: CPL P1.0 ;LED状态(亮/灭)转换 MOV R1,#00H ;延时DELAY: MOV R2,#00HDJNZ R2,$DJNZ R1,DELAYLJMP START ;循环测试END_实验二 P1口输入、输出实验一.实验要求1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

-单片机实验

-单片机实验

实验一数据传送实验实验内容:将8031内部RAM 40H—4FH单元置初值A0H—AFH,然后将片内RAM 40H—4FH单元中的数据传送到片外RAM 9800H—980FH单元,再从片外RAM 9800H—980FH单元中的数据传送到片内RAM 50H—5FH单元。

将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。

源程序清单:ORG 0000HRESET: SJMP MAINORG 003FHMAIN: MOV R1,#40HMOV R2,#10HMOV A, #0A0HA1: MOV @R0,AINC R0INC ADJNZ R2,A1MOV R0, #40HMOV DPTR, #9800HMOV R2, #10HA2: MOV A, @R0MOVX @DPTR, AINC R0INC DPTRDJNZ R2,A2MOV R0, #50HMOV DPTR, #9800HMOV R2, #10HA3: MOVX A, @DPTRMOV @R0, AINC RINC DPTRDJNZ R2, A3LJMP 0000HEND思考题:1. 按照实验内容补全程序。

2. CPU 对8031内部RAM存储器和外部RAM存储器各有哪些寻址方式?内部RAM存储器寻址方式:直接寻址方式寄存器间接寻址基址变址寄存器间接寻址外部RAM存储器寻址方式:寄存器间接寻址基址变址寄存器间接寻址3. 执行程序后下列各单元的内容是什么?内部RAM 40H~4FH _________________________ 内部RAM 50H~5FH__________________________ 外部RAM 9800H~980FH______________________ 截图:实验二多字节十进制加法实验实验内容:多字节十进制加法。

加数首地址由R0 指出,被加数和结果的存储单元首地址由R1指出,字节数由R2 指出。

将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。

单片机原理及应用实验

单片机原理及应用实验

单片机原理及应用实验
单片机是一种微型计算机,它集成了中央处理器、内存、输入输出端口和其他外设接口等功能模块在一个芯片上。

单片机通过程序控制,能够完成各种处理任务,因此在很多电子产品中得到了广泛的应用。

单片机的工作原理是通过电子信号实现的。

当外部设备或传感器与单片机连接后,单片机可以通过输入输出端口收集、处理和输出数据。

单片机内部的中央处理器执行存储在其内部存储器中的程序,通过运算和逻辑操作控制外部设备或实现其他功能。

单片机的应用实验非常丰富。

下面介绍几个常见的实验:
1. LED闪烁实验:连接一个或多个LED到单片机的输出端口,通过编写程序控制LED的亮灭,实现不同的闪烁效果。

2. 温度测量实验:通过连接温度传感器到单片机的输入端口,采集传感器输出的模拟信号,进行模数转换后得到温度值,并通过输出端口显示或者通过通信接口传输到其他设备。

3. 蜂鸣器控制实验:连接蜂鸣器到单片机的输出端口,通过编写程序控制蜂鸣器的开关,实现不同的声音和音乐效果。

4. 数码管显示实验:连接数码管到单片机的输出端口,通过编写程序控制数码管的显示,实现数字、字符和动画等效果。

5. 无线通信实验:通过单片机的通信接口连接无线模块,实现与其他设备的无线数据传输,可以用于远程控制、传感器网络等应用。

以上是单片机原理及应用实验的简要介绍,单片机在电子技术领域有着广泛的应用前景,通过不断学习和实践,可以进一步掌握其原理和应用。

单片机原理实验

单片机原理实验

单片机原理实验一、实验目的本实验旨在帮助学生深入了解单片机原理,并通过实践掌握单片机的基本工作原理和应用。

二、实验设备本实验所需设备及材料如下:1. 单片机开发板2. USB数据线3. 电脑(已安装单片机开发软件)4. 电路连线板5. LED灯若干6. 电阻若干7. 杜邦线若干三、实验步骤1. 将单片机开发板和电脑通过USB数据线连接起来,确保开发板的供电和通信正常。

2. 准备一个简单的电路连线板,将LED灯和电阻连接起来,组成一个简单的电路。

3. 打开电脑上的单片机开发软件,在软件中选择合适的开发环境和单片机型号。

4. 根据实验要求,编写相应的程序代码,控制LED灯的亮灭。

5. 将编写好的程序下载到单片机开发板中,启动程序,观察LED灯的变化。

四、实验结果分析通过以上实验步骤,我们可以通过编写简单的程序代码控制单片机的输出,从而控制实验用的LED灯的亮灭。

实验结果如预期一样,我们可以通过改变代码中的逻辑关系和时序控制实现不同的效果。

五、实验应用掌握了单片机的原理和编程技巧后,我们可以将单片机应用于各种电子设备的控制。

比如智能家居系统、电子产品的自动控制、传感器系统的数据采集和处理等。

单片机的应用范围非常广泛,我们只需要根据实际需求进行相应的硬件连接和程序编写即可实现我们想要的功能。

六、实验总结通过本次实验,我们对单片机的原理有了更深入的了解,并通过实践掌握了单片机的基本工作原理和应用方法。

通过编写简单的程序代码,我们成功地控制了LED灯的亮灭,并了解了单片机的应用潜力和扩展性。

实验过程中需要注意安全,确保实验设备的正常运行。

同时,需要更多的实践和学习,才能在单片机的应用领域中取得更多的成果。

七、参考资料1.《单片机原理与应用》2.《嵌入式C语言程序设计》以上是本次单片机原理实验的实验过程和结果分析,通过实践加深对单片机原理的理解,并实现基本的控制功能。

希望本实验能够帮助读者更好地掌握单片机的原理和应用,为日后进一步的学习和实践奠定基础。

单片机内部接口实验大全

单片机内部接口实验大全

实验4-1 单片机内部接口设备的使用实验--按键、中断的使用实验目的:通过本实验练习使用数码管显示基本数字的方法;学习独立按键的使用和中断机制。

实验内容:通过编程在51单片机开发板上实现一个4位计时器,计时范围000.0-999.9。

实验要求:计时精度为0.1秒,100秒误差小于10%。

计时器具有启动、暂停、重置功能。

当系统上电后,计数器显示000.0,此时按下启动按键计数器开始计数并实时显示当前计数值。

当再次按下启动键时,计数器暂停计数并显示当前值。

如果此时又按下启动键则继续计数。

无论计数器在何种状态只要按下重置健,计数器恢复初始状态,显示000.0。

按键的使用方式不限,实际可按自己的思路安排按键的个数和功能,能够实现启动、暂停和重置功能即可。

实现计时提醒功能,当计时器的个位和十位计数到与学号最后两位数值相同时蜂鸣器发出“嘀、嘀”的提醒,并且根据百位数值确定“嘀”的次数。

即第一次响一声,第二次响两声。

实现计时溢出提醒当计时器计数到最大值999.9时,蜂鸣器常响,启动\暂停功能无效。

实验报告:内容应包含整体编程的思路,按键功能介绍,计数误差分析,以及程序源代码。

实验4-2 单片机内部接口设备的使用实验--计数器的使用实验目的:通过本实验练习使用计数器的方法;实验内容:通过编程在51单片机开发板上实现一个周期和占空比可调的PWM发生器。

实验要求:要求实现单相PWM方波输出,输出周期和占空比显示在数码管上。

通过按键实现对周期和占空比的调整并实时显示调整后的值。

通过按键实现输出启动和停止功能。

允许有输出时不能调整周期和占空比,调整周期和占空比时不能输出的简化设计。

占空比的调整可以是步进的如每次递增10%或者5%,步进值可自行确定。

输出PWM通过示波器观察其波形和变化。

进一步实现两相互补PWM输出,并具有死区,通过示波器观察其变化和死区时间。

实验报告:内容应包含整体编程的思路,按键功能介绍,输出波形误差分析,以及程序源代码。

单片机实验内容

单片机实验内容
;程序功能是利用另一台PC机通过串口发送任意字符表示有急救车到来,当有急救车到来时,路口的4个等都亮5秒,
;然后继续两个灯亮两个灯灭的路口的正常状态,正常状态是每3秒钟信号切换一次;R7为1代表有急救车通过,为0表示正常状态
;需要的硬件连线有P1.0~P1.4连发光二极管,单片机的P3.0与P3.1连EXB51仿真板旁边的RXD与TXD
SUBB A,R3
JC LOOP1
SETB F0
MOV A,R3
XCH A,@R1
DEC R1
XCH A,@R1
INC R1
LOOP1:MOV A,@R1
DJNZ R5,LOOP
JB F0,START
ORG 0000H
LJMP START
ORG 0100H
START: MOV R2,#10H
MOV R0,#40H
MOV A,#00H
LP:MOV @R0 ,A
INC R0
INC A
DJNZ R2,LP
MOV R2 ,#08H
MOV R0,#40H
MOV R1,#50H
LP1:MOV A,@R0
INC R0
ADD A,@R0
MOV @R1,A
INC R0
TIME0:
PUSH PSW
CJNE R7,#0H,SOS
DJNZ R0,TIMEOUT
MOV R0,#30
CPL P1.0
CPL P1.1
CPL P1.2
CPL P1.3
MOV B,P1
TIMEOUT:
MOV TH0,#03CH
MOV R0,#30

单片机代码实验

单片机代码实验

2014年EDA 实验第一次实验:实验1:QII 软件及实验板的使用;用图形输入法和语言输入法完成点灯实验(用两个按键控制两个灯的亮灭:灯的状态随按键状态改变而改变)。

完成软件仿真。

实验2:联控点灯实验:用两个按键独立控制同一个灯亮灭,第三个按键同时控制该灯和另一个灯亮灭。

实验3:流水灯实验:完成一个8路流水灯控制实验,要求有以下3种花型:1)8路灯同时亮灭;2)从左至右再从右至左逐个亮(每次只有1路亮);3)8路灯每次4路灯亮,4路灯灭,且亮灭相间,交替亮灭。

用3个按键控制3种花型。

按下花型按键就一直显示相应花型,再按该键可暂停。

可设置1个复位键关闭显示。

(亮灭时间自定。

)第二次实验:实验4:数据分配器实验:用2个按键代表输入数据in (2位),用2个按键代表选择控制数据位s1s0,用四组发光管(每组2位)代表四路数据输出out0-out3。

当输入数据或控制数据改变时,要求输出数据进行相应变化(原理和真值表如下)。

实验5:七段译码器实验:用一个按键代表数据输入,每按一次数据加一,从0开始到F ,再到0,依次循环,相应数字在数码管上显示。

第三次实验:实验6:数控分频器实验:用24MHz 时钟分频,通过不同按键控制输出不同的频率信号,输出信号用LED 指示。

1)1Hz 频率信号;2)10Hz 频率信号;3)0.5Hz 频率信号。

实验7:加法计数器实验在时钟信号(选择1Hz)作用下,通过使能端和复位信号完成加法计数器的计数。

用2个按键分别表示使能和复位,用4个发光管表示计数的二进制结果。

第四次实验:实验8:动态扫描实验:用4个按键分别代表加、减、暂停、复位,四位数码管代表四位十进制数,从0000开始到9999循环,自动计数,数据显示时间不大于1秒。

第五次实验:实验9:序列检测实验:用一个按键代表时钟,一个按键代表输入数据,(时钟和数据要用LED显示其电平或数值,)当检测到1101序列时,蜂鸣器响动,指示灯点亮。

单片机实验报告

单片机实验报告

一、实验目的1、熟练单片机的结构组成及原理;2、软硬兼施,采用硬件电路的焊接搭建和软件的设计调试、下载,亲自动手,对硬件系统加深了解的同时,软件编程也能得心应手;3、了解如何从硬件和软件上分析问题,排除故障。

二、实验内容MCS-51/MCS-52单片机的跑马灯硬软件设计、键盘控制及键号显示电路的软硬件设计、直流电机转速电路的软硬件设计、转速计数控制电路的软硬件设计、步进电机转速的硬软件设计三、实验器材与工具实验器材:多功能电路板、AT89S52单片机、电解电容、瓷片电容、电阻、二极管、集成芯片、插槽、八段共阴数码管、发光二极管、三极管、12MHz晶振、小按钮开关、光电开关、直流电机、步进电机主要工具PC机、下载器、电烙铁、焊锡丝、导线、尖嘴钳、斜口钳、剥线钳、数字万用表、透明胶带等。

四、实验原理1-1 MCS-51/MCS-52单片机的跑马灯的硬软件设计1 MCS-51/MCS-52单片机跑马灯的硬件电路的设计。

如图1-1是一个利用51单片机设计的跑马灯电路,51单片机的第9引脚为复位电路,单片机上电之初,使用C-R充电过程使得第9脚保持10ms以上的高电位,使机器复位。

复位开关K可使之做到随机复位。

51单片机的第18,19引脚为外接晶振,接一个12M的晶振,同51单片机内部电路配合,上电后产生12兆的晶振频率和1兆的机器周期频率。

因为89S52机片内含8K程序存储器,机器运行程序将下载其中,故89S51的引脚EA接电源VCC。

51单片机第32—39引脚为P0口,分别对应P0.7—P0.0,P0口外接10KΩ的上拉排阻。

P0口的P0.0—P0.7与74HC573的D0—D7一一对应相连,74HC573的Q0—Q7为输出,分别经220Ω电阻后接于发光二极管(跑马灯)的D0—D7上。

74HC573为8位锁存器,其1脚为输出使能端OE,低电平有效。

本电路将其接地,所以74HC573的8位Q端为直通输出。

单片机实验报告(学期全部实验)

单片机实验报告(学期全部实验)

单片机程序设计实验报告姓名:学号:专业班级:第二节课:实验一: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次后全部的灯亮,最后定义整个循环。

单片机实验报告内容

单片机实验报告内容

实验一(1) KEIL 软件使用实验一、实验目的1.熟悉keil 公司µVision 集成开发环境;2.掌握keil 软件使用方法;3.了解keil 软件的软仿真功能。

二、实验仪器和设备Keil 软件;THKSCM-2综合实验装置;三、实验原理及实验内容1.µVision 的界面以µVision2/3为例,其界面如图一所示。

首先它有一般应用软件的典型风格,如具有菜单栏和快捷工具栏,另外可以打开的主要界面是工程窗口和对应的文件编辑窗口、运行信息显示窗口、存储器信息显示窗口及调试信息显示窗口等。

图一µVision 的界面为了便于单片机资源的观察,在工程窗口可以展开Register 标签,从而可以方便地观察工程窗口编辑窗口运行信息显示窗口存储器信息窗口变量观察窗口片内外设窗口虚拟串口单片机寄存器的状态;打开存储器信息显示窗口可以显示ROM、RAM的内容;还可以打开多种窗口用于应用软件的调试。

2.目标程序的生成(1)建立工程为了获得目标程序,通常需要利用多个程序构成工程文件,这些程序包括汇编语言源文件、C语言源文件、库文件、包含文件等;生成目标文件的同时,还可以自动生成一些便于分析和调试目标程序的辅助文件,如列表文件等。

对这些文件需要进行较好的管理与组织,常用的办法就是建立一个工程文件。

用鼠标单击Project菜单的下拉选项New µVision Project,在弹出的窗口中输入准备建立的工程文件名(不用输入扩展名,系统会自动添加)。

如输入文件名:lx1。

为了便于管理,建议为该工程建立一个独立的文件夹,如lx1。

(2)配置工程刚建立的工程仅是一个框架,应该根据需求添加相应的程序。

在工程窗口的Source Group 1处单击鼠标右键会弹出一个菜单,点其中的选项Add Files to Group ‘Source Group 1’,在弹出的窗口中改变文件类型,填入文件名。

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

一、熟悉学习工具开发板二、点亮LED1.单片机及最小系统电路1)电源电路2)晶振电路3)复位电路2.74HC245和74HC13874HC245的输入:DB_0 即P0.0DB_1 即P0.1DB_2 即P0.2DB_3 即P0.3DB_4 即P0.4DB_5 即P0.5DB_6 即P0.6DB_7 即P0.7U3 74HC138的输入:ADDR0即P1.0ADDR1即P1.1ADDR2即P1.2ADDR3即P1.3 E3ENLED即P1.4 E1 E2 3.跳线4.LED三极管基极端输入LEDS6是U3 74HC138的输出Y68个LED小灯阴极端的8个输入是74HC245的8个输出:DB 0 也就是P0.0DB 1 也就是P0.1DB 2 也就是P0.2DB 3 也就是P0.3DB 4 也就是P0.4DB 5 也就是P0.5DB 6 也就是P0.6DB 7 也就是P0.75.点亮一个LED的程序新建工程,添加.c文件,编辑编译,生成hex文件编译成功会出现reg2.h,,双击可以打开STP-ISP下载程序到板子,小灯被点亮1)点亮第1个小灯,熄灭第1个小灯2)点亮第2个小灯,熄灭第2个小灯3)点亮第3个小灯,熄灭第3个小灯4)点亮第1、2小灯,熄灭第1、2小灯5)点亮第1、3、5、7小灯,熄灭第1、3、5、7小灯三、闪烁LED修改小灯闪烁的时间:低于20ms,大于50HZ,小灯的闪烁人眼看到是连续的四、流水灯1、用P0点亮小灯2、依次点亮每个小灯,依次要赋给P0 的数值就是:0xFE、0xFD、0xFB、0xF7、0xEF、0xDF、0xBF、0x7F。

•左移<<右移>>•左移,最低位填0补充;右移,最高位填0补充•0xf0 11100000 01111000流水灯程序1.将流水灯左移理解透彻后,独立完成流水灯右移操作。

2.独立完成一个左移到头接着右移,右移到头再左移的花样流水灯程序。

五、定时计数器和数码管开发板上最右边的小灯点亮一秒,熄灭一秒,也就是以0.5Hz 的频率进行闪烁。

写程序之前,我们要先来学会计算如何用定时器定时时间。

晶振是11.0592M,时钟周期就是1/11059200,机器周期是12/11059200假如要定时20ms,就是0.02 秒,要经过x 个机器周期得到0.02 秒我们来算一下x*12/11059200=0.02,得到x= 18432。

16 位定时器的溢出值是65536(因65535 再加1 才是溢出)于是我们就可以这样操作,先给TH0 和TL0一个初始值,让它们经过18432 个机器周期后刚好达到65536,也就是溢出,溢出后可以通过检测TF0 的值得知,就刚好是0.02 秒。

那么初值y = 65536 - 18432 = 47104,转成16 进制就是0xB800,也就是TH0 = 0xB8,TL0 = 0x00。

这样0.02 秒的定时我们就做出来了,细心的同学会发现,如果初值直接给一个0x0000,一直到65536 溢出,定时器定时值最大也就是71ms 左右,那么我们想定时更长时间怎么办呢?用你小学学过的逻辑,倍数关系就可以解决此问题。

使用定时器来实现延时,完成左右移动的流水灯的程序。

位选确定选择哪个数码管,段选确定被选中的数码管显示什么了解数码管的原理,掌握数码管的真值表的计算方法U3 74HC138的输入:ADDR0即P1.0ADDR1即P1.1ADDR2即P1.2ADDR3即P1.3ENLED即P1.4U374HC138的6个输出是6个数码管位选:Y0 即LEDS0Y1 即LEDS1Y2 即LEDS2Y3 即LEDS3Y4 即LEDS4Y5 即LEDS574HC245的8个输出是6个数码管段选:DB 0 也就是P0.0DB 1 也就是P0.1DB 2 也就是P0.2DB 3 也就是P0.3DB 4 也就是P0.4DB 5 也就是P0.5DB 6 也就是P0.6DB 7 也就是P0.72、数码管DS1显示13、用一个数码管间隔1秒钟静态循环显示0至F编程实现数码管静态每隔1秒钟,静态显示9 8 7 6…0。

六、中断和7段数码管1、动态显示0至9999992、用switch实现上述功能3、去鬼影4、消隐扩展:1、尝试修改程序,让我们的数码管只显示有效位,也就是高位的0 不显示。

2、尝试写一个从999999 开始倒计时的程序,并且改用定时器T1 的中断来完成,通过写这个程序,熟练掌握定时器和中断的应用。

七、点阵LEDU4 74HC138的输入:ADDR0即P1.0ADDR1即P1.1ADDR2即P1.2ADDR3即P1.3=E1=0ENLED即P1.4=E2=0 (((U3 74HC138的输入:ADDR0即P1.0ADDR1即P1.1ADDR2即P1.2ADDR3即P1.3=E3=1ENLED即P1.4= E1 E2=0)))点阵LED的阳极端是U4 74HC138的8个输出:Y0 即LEDSC0Y1 即LEDC1Y2 即LEDC2Y3 即LEDC3Y4 即LEDCS4Y5 即LEDC5Y6 即LEDC6Y7 即LEDC7点阵LED的阴极端是74HC245的8个输出:DB 0 也就是P0.0DB 1 也就是P0.1DB 2 也就是P0.2DB 3 也就是P0.3DB 4 也就是P0.4DB 5 也就是P0.5DB 6 也就是P0.6DB 7 也就是P0.7• 1 、点亮左上角的一个点••2、点亮一行•3、点亮全部4、心型显示点阵的动态显示图形5、竖直显示下图6、横向显示下图八函数进阶与按键例1 函数调用实现7段数码管的显示本程序问题是鬼影抖动U3 74HC138的输入引脚:ADDR0 即P1.0ADDR1 即P1.1ADDR2 即P1.2ADDR3 即P1.3键盘的输入控制引脚:KeyIn1 即P2.4KeyIn2 即P2.5KeyIn3 即P2.6KeyIn4 即P2.7键盘的输出引脚:KeyOut1 即P2.3KeyOut2 即P2.2KeyOut3 即P2.1KeyOut4 即P2.0第一排第四个按键抬起时,数码管显示下一个值,循环显示从0至9十一、串行通信速度和数据格式对于STC89C52 单片机来讲,这个波特率发生器只能由定时器T1 或定时器T2 产生定时器T1 的模式2,也就是自动重装载模式,定时器的重载值计算公式为:1、查询方式串口助手发送数据,+1后返回给串口助手这个程序还是用在主循环里等待接收中断标志位和发送中断标志位的方法来编写的,而实际工程开发中,当然就不能这么干了,我们也只是为了用直观的对比来告诉同学们硬件模块可以大大简化程序代码,那么实际使用串口的时候就用到串口中断了,来看一下用中断实现的程序。

请注意一点,因为接收和发送触发的是同一个串口中断,所以在串口中断函数中就必须先判断是哪种中断,然后再作出相应的处理。

2、中断方式串口助手发送数据,+1后返回给串口助手3、数码管显示返回串口助手在这里我用一款简易的逻辑分析仪把串口通信的波形抓出来给大家看一下十二、液晶显示器12.4.1 1602 液晶的硬件接口介绍前边我们讲的流水灯、数码管、LED 点阵这三种都是LED 设备,这节课我们来学习一下LCD 显示设备——1602液晶。

那个大大的,平时第一行显示16 个小黑块,第二行什么都不显示的东西就是1602 液晶,是不是早就注意到它了呢?电子器件数据手册液晶的电源1 脚2 脚以及背光电源15 脚16 脚,不用多说,正常接就可以了。

3 脚叫做液晶显示偏压信号,大家注意到小黑块没有,当我们要显示一个字符的时候,有的黑点显示,有的黑点就不能显示,这样就可以实现我们想要的字符了。

我们这个3 脚就是用来调整显示的黑点和不显示的之间的对比度,调整好了对比度,就可以让我们的显示更加清晰一些。

在进行电路设计实验的时候,通常的办法是在这个引脚上接个电位器,也就是我们初中学过的滑动变阻器。

通过调整电位器的分压值,来调整3脚的电压。

而当产品批量生产的时候,我们可以把我们调整好的这个值直接用简单电路来实现,就如同在我们板子上,我们直接使用的是一个18 欧的下拉电阻,市面上有的1602 的下拉电阻大概1 到1.5K 也是比较合适的值。

4 脚是数据命令选择端。

对于液晶,有时候我们要发送一些命令,让它实现我们想要的一些状态,有时候我们要发给它一些数据,让它显示出来,液晶就通过这个引脚来判断接收到的是命令还是数据,这个引脚我们接到了ADDR0 上,通过跳线帽和P1.0 连接在一起。

大家注意学会读手册,看到这个引脚描述里:数据/命令选择端,而后跟了括号(H/L),他的意思就是当这个引脚是H(High)高电平的时候,是数据,当这个引脚是L(Low)低电平的时候,是命令。

5 脚和4 脚用法类似,功能是读写选择端。

我们既可以写给液晶数据或者命令,也可以读取液晶内部的数据或状态,就是控制这个引脚。

因为液晶本身内部有RAM,实际上我们送给液晶的命令或者数据,液晶需要先保存在缓存里,然后再写到内部的寄存器或者RAM中,这个就需要一定的时间。

所以我们进行读写操作之前,首先要读一下液晶当前状态,是不是在“忙”,如果不忙,我们可以读写数据,如果在“忙”,我们就需要等待液晶忙完了,再进行操作。

读状态是常用的,不过读液晶数据我接触的场合没怎么用过,大家了解这个功能即可。

这个引脚我们接到了ADDR1 上,通过跳线帽和P1.1 连接在一起。

6 脚是使能信号,很关键,液晶的读写命令和数据,都要靠它才能正常读写,我们后边详细讲这个引脚怎么用。

这个引脚我们通过跳线帽接到了ENLCD 上,这个位置的跳线是为了和另外一个12864 液晶的切换使用而设计的。

7 到14 引脚就是8 个数据引脚了,我们就是通过这8 个引脚读写数据和命令的。

我们统一接到了P0 口上。

来看一下开发板上的1602 接口的原理图,如图12-1 所示。

1602 液晶内部带了80 个字节的显示RAM,用来存储我们发送的数据第一行的地址是0x00H到0x27第二行的地址从0x40到0x67其中第一行0x00 到0x0F是与液晶上第一行16 个字符显示位置相对应的第二行0x40 到0x4F 是与第二行16 个字符显示位置相对应的。

而每行都多出来一部分,是为了显示移动字幕设置的。

这个状态字节有8 个位,最高位表示了当前液晶是不是“忙”,如果这个位是1 表示液晶正“忙”,禁止我们读写数据或者命令,如果是0,则可以进行读写。

而低7 位就表示了当前数据地址指针的位置。

这里用的1602液晶所使用的接口时序是摩托罗拉公司所创立的6800时序,还有另外一种时序是Intel 公司的8080 时序,也有部分液晶模块采用,只是相对来说比较少见。

相关文档
最新文档