文档库 最新最全的文档下载
当前位置:文档库 › 单片机并口简单应用(流水灯)实验报告.doc

单片机并口简单应用(流水灯)实验报告.doc

单片机并口简单应用(流水灯)实验报告.doc
单片机并口简单应用(流水灯)实验报告.doc

实验一单片机并口简单应用(流水灯)

实验目的

1、了解单片机汇编语言程序的基本结构

2、了解单片机汇编语言程序的设计和调试方法

3、掌握顺序控制程序的简单编程

实验仪器

单片机开发板、万利仿真机、稳压电源、计算机

实验原理

1、流水灯硬件电路

如图4-1所示,流水灯硬件电路由移位寄存器74LS164、功能选择开关J502、二极管、三极管、单片机并口(P0)、限流电阻等组成。发光二极管连接成共阳极结构。发光二极管点亮的条件是:阳极接高电平、各阴极接低电平。因此,通过程序控制74LS164的Q0端。Q0端输出0,公共端阳极就接成高电平,然后再按一定规则从P0口输出数据,发光二极管就会点亮。

图4-1 流水灯电路图

2、单片机流水灯程序设计

由上图可知,发光二极管要点亮,需要先把J502的2、3脚相连,三极管Q500导通,然后从P0口输出数据。

(1)控制三极管导通程序

控制三极管有两种方法,第一种:在74LS164的第8脚产生一个正脉冲,此时1脚为0,三极管就导通;为1,三极管就截止。

第二种:在单片机IO模拟74LS164时序,一次输出一个字节,只要Q0=0即可控制三极管开通。为1,三极管截止。

两种方法的程序流程如图4-2所示。

图4-2 流水灯位选信号控制

(2)产生流水灯效果程序

三极管导通后,就可以从P0口输出数据控制发光二极管。P0口输出数据既可以编写程序逐个输出,也可以将输出数据序列定义在存储器中,然后用读程序存储器指令逐个取出并输出到P0口。

程序流程图如图4-3所示。

图4-3 流水灯程序流程图

实验内容

1、直接输出法输出数据序列

2、查表法输出数据序列

实验步骤及调试信息

1、新建实验项目shiyan1

2、输入实验程序并补充完整

3、编译下载实验程序,并修改错误(按附录说明)

原因:缺少主程序

4、加入主程序重新产生代码并装入,出现以下错误。

原因:单片机堆栈指针不能是寄存器,而只能直接寻址,所以28行的R7 应改成07。

修改后成功下载实验程序:

实验现象:全速运行程序,指示灯从第一个开始亮,但第八个没有亮。原因是单片机程序中有一错误,即程序中LedSequenceTab:

DB 80H,40H,20H,10H,08H,04H,02H,01H,00H

改为LedSequenceTab:

DB 00H,40H,20H,10H,08H,04H,02H,01H,80H

5、运行前数据:

内容1运行后的结果:

内容2运行结果

7、整理实验设备

实验现象

实验从30H到8AH实现全部清零。同时R0从30H逐渐递增到8AH,R7从5AH

逐渐递减到00H。内容1中STACK 由FFFF变成00FF,内容2中由FFFF变成006D。指示灯从左到右逐一变亮。

思考题

1、请把学号后两位数进转换成二进制数,然后依次点亮其中为1对应的二极管,写出输出序列。例如,60号转换成二进制后是0011 1100B,依次点亮四个1对应的二极管,输出序列是0DFH, 0EFH, 0F7H, 0FCH.(从低位到高位也可以)

答:

06号(0000 0110)

输出序列是0FBH,0FDH

2、参考实验内容2,编写程序把输出序列增加到30个。

答:

LCALL LEDSequence

SJMP START

LEDCLK bit P3.4

LEDDIN bit P2.3

LedSequence:

LCALL LedLight

MOV R6,#30

MOV DPTR,#LedSequenceTab-1

LedSequence1:

MOV A,R6

MOVC A,@A+DPTR

CPL A

MOV P0,A

MOV R7,#200

LCALL DelayNms

DJNZ R6,LedSequence1

RET

LedSequenceTab:

DB

70H,30H,20H,10H,70H,04H,02H,60H,01H,60H,90H,40H,01H,60H,02H,

40H,30H,10H,70H,04H,02H,01H,30H,30H,08H,02H,01H,04H,10H,5 0H

DelayNms:

LCALL Delay1ms

DJNZ R7, $-3

RET

Delay1ms:

PUSH 07

MOV R7,#250 ;1ms

NOP

NOP

DJNZ R7, $-2

POP 07

RET

LedLight:

MOV B,#8

MOV A,#0FEH

CLR LEDCLK

CLR LEDDIN

LedLight1:

RLC A

MOV LEDDIN,C

SETB LEDCLK

NOP

CLR LEDCLK

DJNZ B,LedLight1

RET

单片机花样流水灯设计实验报告

**大学 物理学院 单片机花样流水灯设计实验 课题:花样流水灯设计 班级: 物理 *** 姓名: *** 学号: ……………

当今时代的智能控制电子技术,给人们的生活带来了方便和舒适,而每到晚上五颜六色的霓虹灯则把我们的城市点缀得格外迷人,为人们生活增添了不少色彩。 制作流水灯的方法有很多种,有传统的分立元件,由数字逻辑电路构成的控制系统和单片机智能控制系统等。本设计介绍一种简单实用的单片机花样流水灯设计与制作,采用基于MS-51的单片机AT89C51和发光二极管、晶振、复位、电源等电路以及必要的软件组成的以AT89C51为核心,辅以简单的数码管等设备和必要的电路,设计了一款简易的流水灯电路板,并编写简单的程序,使其能够自动工作。 本设计用AT89C51单片机为核心自制一款简易的花样流水灯,并介绍了其软件编程仿真及电路焊接实现,在实践中体验单片机的自动控制功能。该设计具有实际意义,可以在广告业、媒体宣传、装饰业等领域得到广泛应用。 关键字:AT89C51 单片机流水灯数码管

1. 单片机及其发展概况 单片机又称为单片微计算机,其特点是将微型计算机的基本功能部件(如中央处理器(CPU)、存储器、输入接口、输出接口、定时/计数器及终端系统等)全部集成在一个半导体芯片上。单片机作为一种高集成度微型计算机,已经广泛应用于工业自动化控制、智能仪器仪表、通信设备、汽车电子与航空航天电子系统、智能家居电器等各个领域。 2. Protues仿真软件简介 Protues以其数量众多的元件数据库、标准化的仿真仪器、直观的捕获界面、简洁明了的操作、强大的分析测试、可信的测试结果, 为电子工程设计节约研发时间,节省了工程设计费用。利用Protues软件设计一款通过数码管显示计数时间的流水灯电路及Keil C软件编程后,再将两者关联则可以简单快速的进行仿真。 【实验设计目标】 设计要求以发光二极管作为发光器件,用单片机自动控制,对8个LED 灯设计至少3种流水灯显示方式,每隔20秒变换一次显示花样,计时通过一个二位七段数码管显示。

单片机实验报告

院系:计算机科学学院专业:智能科学与技术年级: 2012 学号:2012213865 姓名:冉靖 指导教师:王文涛 2014年 6月1日

一. 以下是端口的各个寄存器的使用方式: 1.方向寄存器:PxDIR:Bit=1,输出模式;Bit=0,输入模式。 2.输入寄存器:PxIN,Bit=1,输入高电平;Bit=0,输入低电平。 3.输出寄存器:PxOUT,Bit=1,输出高电平;Bit=0,输出低电平。 4.上下拉电阻使能寄存器:PxREN,Bit=1,使能;Bit=0,禁用。 5.功能选择寄存器:PxSEL,Bit=0,选择为I/O端口;Bit=1,选择为外设功能。6.驱动强度寄存器:PxDS,Bit=0,低驱动强度;Bit=1,高驱动强度。 7.中断使能寄存器:PxIE,Bit=1,允许中断;Bit=0,禁止中断。 8.中断触发沿寄存器:PxIES,Bit=1,下降沿置位,Bit=0:上升沿置位。 9.中断标志寄存器:PxIFG,Bit=0:没有中断请求;Bit=1:有中断请求。 二.实验相关电路图: 1 MSP430F6638 P4 口功能框图: 主板上右下角S1~S5按键与MSP430F6638 P4.0~P4.4口连接: 2按键模块原理图: 我们需要设置两个相关的寄存器:P4OUT和P4DIR。其中P4DIR为方向寄存器,P4OUT 为数据输出寄存器。 主板上右下角LED1~LED5指示灯与MSP430F6638 P4.5~P4.7、P5.7、P8.0连接:

3 LED指示灯模块原理图: P4IN和P4OUT分别是输入数据和输出数据寄存器,PDIR为方向寄存器,P4REN 为使能寄存器: #define P4IN (PBIN_H) /* Port 4 Input */ #define P4OUT (PBOUT_H) /* Port 4 Output */ #define P4DIR(PBDIR_H) /* Port 4 Direction */ #define P4REN (PBREN_H) /* Port 4 Resistor Enable */ 三实验分析 1 编程思路: 关闭看门狗定时器后,对P4.0 的输出方式、输出模式和使能方式初始化,然后进行查询判断,最后对P4.0 的电平高低分别作处理来控制LED 灯。 程序流程图: 2 关键代码分析: #include void main(void) { WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗 P4DIR |= BIT5; // 设置4.5口为输出模式 P4OUT |= BIT0; // 选中P4.0为输出方式 P4REN |= BIT0; // P4.0使能 while (1) // Test P1.4 { if (P4IN & BIT0) //如果P4.0为1则执行,这是查询方式按下去后是低,否则为高

单片机并行口实验报告

单片机并行口实验报告

实验二并行口实验报告 班级: 学号: 姓名: 教师:

一、实验目的 通过实验了解8051并行口输入方式和输出方式的工作原理及编程方法。 二、实验内容 1、输出实验 如图4-1所示。以8031的P2口为输出口。通过程序控制发光二极管的亮灭。 2、输入实验 如图4-1所示。以8031的P1口为输入口。用开关向P1.0~P1.3输入不同的状态,控制P2口P2.4~P2.7发光二极管的亮灭。 3、查询输入输出实验 如图1-1所示。以8051的P1.6或P1.0为输入位,以P2口为输出,二进制计数记录按键的次数。

图1-1 三、编程提示 1、输出实验程序 (1)设计一组显示花样,编程使得P2口按照设计的花样重复显示。 (2)为了便于观察,每一状态加入延时程序。 2、输入实验程序 开关打开,则输入为1;开关闭合,则输入为0。读取P1.0~ P1.3的状态,并将它们输出到P2.4~ P2.7,驱动发光二极管。所以发光二极管L1~L4的亮灭应与开关P1.0~ P1.3的设置相吻合。 3、查询输入输出程序 (1)编程计数P1.0按键次数,按键不去抖动。 (2)编程计数P1.6按键次数,按键不去抖动。 (3)编程计数P1.0按键次数,按键软件延时去抖动。 观察(1)、(2)、(3)、的结果。 四、实验器材 计算机,目标系统实验板 五、实验步骤 1、在KEILC中按要求编好程序,编译,软件调试,生成.HEX文件。 2、断开电源,按图1-1所示,连好开关及发光二极管电路。

3、下载程序。 4、调试运行程序,观察发光二极管状态。 六、C源程序清单 1、#include #define uchar unsigned char #define ON 0 #define OFF 1 sbit led1=P2^0; sbit led2=P2^1; sbit led3=P2^2; sbit led4=P2^3; sbit led5=P2^4; sbit led6=P2^5; sbit led7=P2^6; sbit led8=P2^7; void delay1(void); void main(void) { led1=led2=led3=led4=led5=led6=led7=led8=O FF; while(1) { led1=led8=ON; delay1(); led2=led7=ON;

花样流水灯实验报告

黄淮学院信息工程学院 单片机原理及应用课程设计性实验报告

五、硬件电路设计 根据设计任务,首先进行系统硬件的设计。其硬件原理图由LED显示电路和单片机最小系统组成,如图所示,其中包括时钟电路采用部时钟方式,复位电路采用上电自动复位。由于单片机的I/O口的高电平驱动能力只有微安级,而灌电流可以达到3毫安以上,因此采用低电平驱动。P1、P2、P3分别控制8个led灯。 六、软件程序设计 1、软件设计思路 如果通过上图所示电路图完成实验要求,通过数组,分别同时控P0、P1、P2分别控制8个led灯,从而协调控制24个灯实现花样流水灯效果。 开始 编写数组 主循环 逐个点亮 24灯同时闪烁 逐个熄灭

P3=table1[i]; delayms(500); } shan();//全部闪烁 for(i=0;i<8;i++)//逐个熄灭{ P3=table2[i]; delayms(500); } for(i=0;i<8;i++) { P1=table3[i]; delayms(500); } for(i=0;i<8;i++) { P0=table2[i]; delayms(500); } } } void delayms (uintt) { uint x,y; for(x=t; x>0;x--) for(y=50;y>0;y--); } 七、软硬件仿真调试分析 1、仿真调试结果

图片 1 逐个点亮图片 2 24灯闪烁 图片 3 逐个熄灭 2、性能测试及结果分析 通过仿真结果发现通过上述系统可以实现实验要求,24个灯逐个点亮,24个灯全亮后,24个灯一起闪烁,闪烁5次后,然后24个灯逐个熄灭。由此证明系统满足实验要求。 八、项目总结 在本次花样流水灯试验中,使用循环程序、数组语句实现了实验要求,设计过程中遇到了很多的问题,但经过努力,最终设计出了合理的解决方案。通过此次实验,对多个led灯的控制能力进一步得到提升。 九、项目设计报告成绩 实验报告成绩: 指导教师签字: 年月日

单片机流水灯实验报告

流水灯实习报告 一、实验原理 单片机通过P0口连接锁存器74ls273,P0同时作为低八位地址,实验板内P2口连接74ls138,任意一个输出连接74ls273片选,再将74ls273接八个LED灯,通过软件控制对74ls273送入显示数据就可以按要求显示了。 二、硬件原理图 三、实验程序 ORG 0000H AJMP START ORG 001BH AJMP INT

ORG 0100H START:MOV SP,#60H MOV TMOD,#10H MOV TL1,#00H MOV TH1,#4CH MOV R0,#00H MOV R1,#20 SETB TR1 SETB ET1 SETB EA SJMP $ INT:PUSH ACC PUSH PSW PUSH DPL PUSH DPH CLR TR1 MOV TL1,#B0H MOV TH1,#3CH SETB TR1 DJNZ R1,EXIT MOV R1,#20 MOV DPTR,#DATA

MOV A,R0 MOVC A,@A+DPTR MOV DPTR,#8000H Movx @DPTR,A INC R0 ANL 00,#07H EXIT:POP DPH POP DPL POP PSW POP ACC RETI DATA:DB 05H,0AH,50H,0A0H,55H,0AAH,0FFH,0H END 四、实验功能 以实验机上74LS273做输出口,接八只发光二极管,编写程序,使开机后第一秒钟L1,L3亮,第二秒钟L2,L4亮,第三秒钟L5,L7亮,第四秒钟L6,L8亮,第五秒钟L1,L3,L5,L7亮,第六秒钟L2,L4,L6,L8亮,第七秒钟八个二极管全亮,第八秒钟全灭,以后又从头开始,L1,L3亮,然后L2,L4亮……一直循环下去. 五、实验总结 通过这次课程设计,我拓宽了知识面,锻炼了能力,综合素质得到较大提高。而安排课程设计的基本目的,是在于通过理论

单片机实训心得体会

单片机实训心得体会 篇一: 通过今次单片机实训,使我对单片机的认识有了更深刻的理解。系统以51单片机为核心部件,利用汇编软件编程,通过键盘控制和数码管显示实现了基本时钟显示功能、时间调节功能,能实现本设计题目的基本要求和发挥部分。 由于时间有限和本身知识水平的限制,本系统还存在一些不够完善的地方,要作为实际应用还有一些具体细节问题需要解决。例如:不能实现只用两个按键来控制时钟时间,还不能实现闹钟等扩展功能。 踉踉跄跄地忙碌了两周,我的时钟程序终于编译成功。当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最终都会化为甜美的甘泉。 但在这次实训中同时使我对汇编语言有了更深的认识。当我第一次接触汇编语言就感觉很难,特别是今次实训要用到汇编语言,尽管困难重重,可我们还是克服了。这次的实训使培养了我们严肃认真的做事作风,增强了我们之间的团队合作能力,使我们认识到了团队合作精神的重要性。 这次实训的经历也会使我终身受益,我感受到这次实训是要真真正正用心去做的一件事情,是真正的自己学习的过

程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。希望这次的经历能让我在以后学习中激励我继续进步。 篇二:单片机实验心得 通过这次单片机实习,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。 作为一名自动化专业的快大三学生,我觉得做单片机实习是十分必要的。在已度过的大学时间里,我们大多数接触的是专业课。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力,如何把我们所学的专业基础课理论知识运用到实践中去,我想做类似实习就为我们提供了良好的实践平台 学习单片机没有捷径,不能指望两三天就学会,要坚持不懈,重在积累单片机是一门应用性和实践性很强的学科,要多动手,多做实验。 (4)要学会参考别人的程序,减少自己琢磨的时间,迅速提高自己的编程能力。 (5)碰到问题可以借助网络来搜寻答案和对自己有帮助的问题,一定会有所收获。

51单片机P1口输入输出实验实验报告

实验一P1口输入输出实验 一实验目的 1 掌握P1口作为I/O口时的使用方法。 2 理解读引脚和读锁存器的区别。 二实验原理 由 AT89C51 组成的单片机系统,通常情况下 P0 口分时复用作为地址、数据总线, P2 口提供 A15-A8 即高 8 位地址, P3 口用作第二功能,只有 P1 口用作 I/O 口。 P1 口是 8 位准双向口,它的每一位都可独立地定义为输入或输出。既可作为 8 位的并行 I/O 口,也可作为 8 个不同的输入输出端。 P1 口的结构如图 2.1 所示,当其工作在输入方式时,对应锁存器必须先写 1 ,才能正确地读到引脚上的信号,否则,若对应锁存器的值为 0 ,执行读引脚指令时,读到的结果永远为 0 。每个 I/O 端口都有两种读入,即读锁存器和读引脚,读引脚指令一般都是以 I/O 端口为源操作数的指令,如 MOV C , P1.3 ,而读锁存器指令一般为“读 - 修改 - 写”指令,如 ANL P1.3 , C 指令,请同学们在实验中体会。图 2 中, P1.2 作为输出口, P1.3 作为输入口。

三实验内容与要求 1.编写程序实现当P1.3为低电平时(SW1闭合),发光管亮;P1.3为高电平时发光管灭。 修改程序在执行读P1.3之前,先执行CLR P1.3,观察结果是否正确,分析在第二种情况下程序为什么不能正确执行,理解读引脚和读锁存器区别。 四实验内容 实验程序: ORG 0000H MAIN: MOV SP,#60H ; 设置堆栈指针SP为60H MOV P1,#0FFH ;当P1口用作输入时,所有位对应的锁存器必须先置1 LOOP: ;CLR P1.3 MOV C,P1.3 ;读P1.3 JC LIGHT CLR P1.2 ;LED灭 SJMP LOOP LIGHT: SETB P1.2 ;LED 亮 SJMP LOOP RET END 若在执行读P1.3之前,先执行CLR P1.3,观察结果将会不正确。 五实验结论 1、当P1口用作输入时,所有位对应的锁存器必须先置1 2、在执行读P1.3之前,先执行CLR P1.3,观察结果不正确,程序不能正确执行,因为系统读取的是锁存器的状态。 3、读引脚和读锁存器区别:第一种方式是将引脚作为输入,那是真正地从外部引脚读进输入的值,第二种方式是该引脚处于输出状态时,有时需要改变这一位的状态,则并不需要真正地读引脚状态,而只是读入锁存器的状态,然后作某种变换后再输出。

多功能流水灯实验报告

课程设计报告设计课题:多功能流水灯 专业班级: 学生姓名: 指导教师: 设计时间:

题目多功能流水灯 一、课程设计目的 1、掌握数字系统的设计方法和测试方法。 二、课程设计题目(问题)描述和要求 设计一个四模式三路彩灯(红、绿、黄三种颜色)显示系统。该系统的显示模式由外部输入Z、Y控制,要求开机自动置入初态后便按规定模式循环运行。设各路彩灯均为8个(红灯序号为r1-r8,绿灯序号为g1-g8,黄灯序号为y1-y8),各模式规定如下: XY=00时,系统的显示模式在以下六个节拍间循环: 第一节拍,依次点亮奇号红灯(r1亮→r1、r3亮→r1、r3、r5亮→r1、r3、r5、r7亮),其余灯均灭。 第二节拍,依次点亮偶号红灯,其余灯均灭。 第三节拍,依次点亮奇号绿灯,其余灯均灭。 第四节拍,依次点亮偶号绿灯,其余灯均灭。 第五节拍,依次点亮奇号黄灯,其余灯均灭。 第六节拍,依次点亮偶号黄灯,其余灯均灭。 XY=01时,系统的显示在第一、二节拍间循环。 XY=10时,系统的显示在第三、四节拍间循环。 XY=11时,系统的显示在第五、六节拍间循环。 三、系统分析与设计 根据课程设计题目问题描述和要求,完成:

主要器件: 绘制电路原理图:确定选用的元件及其封装形式,完善电路。 原理图设计过程:进行电子电路设计时,首先要有一个设计方案,而将电路设计方案表达出来的最好方法就是画出清晰、正确的电路原理图。根据设计需要选择出元器件,并把所选用的元器件和相互之间的连接关系明确地列出,直观地表达出设计概念。 电路原理图的基本组成是电子元器件符号和连接导线,电子元器件符号包含了该元器件的功能,连接导线则包含了元器件的电气连接信息,所以电路原理图设计的质量好坏直接影响到PCB印制电路板的设计质量。 绘制原理图的两大原则:首先应该保证整个电路原理图的连线正确,信号流向清晰,便于阅读分析和修改;其次应该做到元器件的整体布局合理、美观、实用。 在Protel中绘制电路原理图的步骤: 启动原理图编辑器,新建电路原理图文件。 设置原理图的相关参数,如图纸的大小、版面及环境参数等。 加载元件库,在图纸上放置需要的各种元器件。 编辑元器件的属性,并对元器件进行合理的布局调整。 使用导线或网络标签对所有的元器件进行电气意义上的连接。 对电路原理图进行整体的编辑、调整。 保存文档,打印输出。 绘制元件库:为绘制原理图做补充。有些元件在系统库文件里可能找不到,我们可以自己动手绘制一个能表示实际元件的图形,并将其添加到原理图中。建议大家从一开始就建立一个属于自己的元件库,以后每设计一次电路,当遇到没有的原件时,就往库里添加一个元件,日积月累,自己的元件库就会充实起来,以后绘制原理图时就会非常方便。 绘制PCB封装:也是为设计原理图做补充。原理图上的元件仅仅是一个元件代号,我们可以随意改变其模样,但是PCB封装绝对不能随意改动。所谓封装,就是元件在PCB上的实际焊接点,如果焊接点与元件对应不上,那么这块板子就

51单片机流水灯实验报告单片机实验报告流水灯

51单片机流水灯试验 一、实验目的 1.了解51单片机的引脚结构。 2.根据所学汇编语言编写代码实现LED灯的流水功能。 3.利用开发板下载hex文件后验证功能。 二、实验器材 个人电脑,80c51单片机,开发板 三、实验原理 单片机流水的实质是单片机各引脚在规定的时间逐个上电,使LED灯能逐个亮起来但过了该引脚通电的时间后便灭灯的过程,实验中使用了单片机的P2端口,对8个LED灯进行控制,要实现逐个亮灯即将P2的各端口逐一置零,中间使用时间间隔隔开各灯的亮灭。使用rl或rr a实现位的转换。 A寄存器的位经过rr a之后转换如下所示: 然后将A寄存器转换一次便送给P2即MOV P2,A便将转换后的数送到了P2口,不断循环下去,便实现了逐位置一操作。

四、实验电路图 五、通过仿真实验正确性

代码如下:ORG 0 MOV A,#00000001B LOOP:MOV P2,A RL A ACALL DELAY SJMP LOOP DELAY:MOV R1,#255 DEL2:MOV R2,#250 DEL1:DJNZ R2,DEL1

DJNZ R1,DEL2 RET End 实验结果: 六、实验参考程序 #include #define uchar unsigned char #define uint unsigned int uchar table[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

sbit P00=P0^0; sbit P01=P0^1; void delay(uchar t) { uchar i,j; for(i=0;i

工作报告之大学单片机实验报告

大学单片机实验报告 【篇一:单片机实验报告】 单片机实验报告 姓名:班级:学号:任课教师:上课地点: 实验一流水灯实验 一、实验目的及要求 1、闪烁的led; 2、从左到右的流水灯; 3、8只led左右来回点亮; 4、led模拟交通灯。 要求1:led按设定的时间间隔闪烁 要求2:接在p0口的8个led从左到右循环依次点亮,产生走马灯效果要求3:程序利用循环移位函数_crol_和_cror_形成来回滚动的效果; 二、实验原理电路图1、 电路图2、 三、源程序 要求1: #includereg51.h #define uchar unsigned char #define uint unsigned int sbit led=p1^0; //延时 void delayms(uint x) { uchar i; while(x--) {for(i=0;i120;i++); } } //主程序 void main() { while(1) {led=~led;delayms(150); } } 要求2: #include reg51.h #include intrins.h //包含程序中的_cror_(p0,y) #define uchar unsigned char #define uint unsigned int uchar led; void delay(unsigned int i) { uint j; uchar k; for(j=i;j0;j-- )for(k=125;k0;k--); } void main() { led=0x7f;//只亮第一个 delay(1000); while(1) { p0=led; delay(500); led=_cror_(led,1);//p0逐步右移一位。} } 要求3: #include reg51.h

单片机实验报告书

并行I/O接口实验 一、实验目的 熟悉掌握单片机并行I/O接口输入和输出的应用方法。 二、实验设备及器件 个人计算机1台,装载了Keil C51集成开发环境软件。https://www.wendangku.net/doc/613786591.html,单片机仿真器、编程器、实验仪三合一综合开发平台1台。 三、实验内容 (1)P1口做输出口,接八只发光二极管,编写程序,使发光二极管延时(0.5-1秒)循环点亮。实验原理图如图3.2-1所示。 图3.2-1单片机并行输出原理图 实验程序及仿真 ORG 0000H LJMP START ORG 0100H START:MOV R2,#8 MOV A,#0FEH LOOP:MOV P1,A LCALL DELAY RL A

DJNZ R2,LOOP LJMP START DELAY:MOV R5,#20 D1:MOV R6,#20 D2:MOV R7,#248 D3:DJNZ R7,D3 DJNZ R6,D2 DJNZ R5,D1 RET END 中断实验 一、实验目的 熟悉并掌握单片机中断系统的使用方法,包括初始化方法和中断服务程序的编写方法。 二、实验设备及器件

个人计算机1台,装载了Keil C51集成开发环境软件。 https://www.wendangku.net/doc/613786591.html,单片机仿真器、编程器、实验仪三合一综合开发平台1台。 三、实验内容 (2)用P1口输出控制8个发光二极管LED1~LED8,实现未中断前8个LED闪烁,响应中断时循环点亮。 实验程序及仿真 ORG 0000H LJMP MAIN ORG 0003H LJMP INT00 ORG 0010H MAIN: A1:MOV A,#00H MOV P1,A MOV A,#0FFH MOV P1,A SETB EX0 JB P3.2,B1 SETB IT0 SJMP C1 B1:CLR IT0 C1:SETB EA NOP SJMP A1 INT00:PUSH Acc PUSH PSW MOV R2,#8 MOV A,#0FEH LOOP: MOV P1,A LCALL DELAY RL A DJNZ R2,LOOP

51单片机实验报告

51单片机实验报告

实验一 点亮流水灯 实验现象 Led灯交替亮,间隔大约10ms。实验代码 #include void Delay10ms(unsigned int c); void main() { while(1) { P0 = 0x00; Delay10ms(50); P0 = 0xff; Delay10ms(50); } }

void Delay10ms(unsigned int c) { unsigned char a, b; for (;c>0;c--) { for (b=38;b>0;b--) { for (a=130;a>0;a--); } } } 实验原理 While(1)表示一直循环。 循环体首先将P0的所有位都置于零,然后延时约50*10=500ms,接着P0位全置于1,于是LED全亮了。接着循环,直至关掉电源。延迟函数是通过多个for循环实现的。 实验2 流水灯(不运用库函数) 实验现象 起初led只有最右面的那一个不亮,半秒之后从右数第二个led

也不亮了,直到最后一个也熄灭,然后led除最后一个都亮,接着上述过程 #include #include void Delay10ms(unsigned int c); main() { unsigned char LED; LED = 0xfe; while (1) { P0 = LED; Delay10ms(50); LED = LED << 1; if (P0 == 0x00) { LED = 0xfe; } } } void Delay10ms(unsigned int c)

单片机实验二、MCS-51单片机并行端口实验

大连理工大学实验报告 实验时间:2014年6月30日星期1时间:10:00~ 11 :40 实验室(房间号):420实验台号码:班级:姓名: 指导教师签字:成绩: 实验二 MCS-51单片机并行端口实验 一、实验目的和要求 1.目的:进一步熟悉、掌握KEIL软件和DP-51PROC综合试验系统的使用。掌握单片机并行端口的编程和使用方法。 2.要求:编制简单的程序,利用P1口的8位端口使用排线与LED1~LED8按顺序连接,使用一条单独连线将P 3.2与SW1连接,编制一个P1口的输出程序,实现8个LED灯依次点亮的流水灯效果。 二、实验算法 本程序属于无限循环结构,循环中通过判断P3.2的电平来决定彩灯的右移还是左移。主程序中主要变量是A,P3.2,P1,其中A作为数据移动寄存器,P3.2作为按键输入口,为高电平右移A,低电平则左移A,P1由A传送数据,外接LED1~8,实现彩灯移动现象。由于不加延时的循环在时钟频率作用下是很快的,现象是所有的灯一直是亮的状态。,解决这个问题就是在程序里面加延时函数。 三、实验流程图

四、程序清单 ORG 8000H LJMP START ORG 8100H START: MOV SP,#60H SETB P3.2 MOV A,#0FEH LED: JB P3.2,RIGHT RL A AJMP RUN RIGHT: RR A RUN: MOV P1,A CALL DELAY AJMP LED DELAY: PUSH 01H PUSH 02H MOV R1,#00H DELAY1: MOV R2,#00H DJNZ R2,$ DJNZ R1,DELAY1 POP 02H POP 01H RET END 五、实验结果与分析 实验现象:拨动开关闭合,彩灯左移;拨动开关断开,彩灯右移。无问题。 实验中,我们通过控制开关SW1能够控制彩灯移位的方向,SW1=1,即将P3.2口置一,理论上使小灯循环右移;SW1=0,即将P3.2口置零,理论上小灯应循环左移,但是由于实验仿真系统中的LED灯的高位和低位位置刚好相反,导致我们操作时看到的结果正好相反,但实际上实验是成功的。 六、实验体会和建议 通过本次单片机的并行输入输出端口实验,我对Keil仿真调试软件的操作更为熟练;也对单片机的P1等端口的应用有了更清楚的认识,同时学会了分支程序的设计,JB指令的方便和实用性。 七、主要仪器设备

哈尔滨工业大学单片机实验报告

H a r b i n I n s t i t u t e o f T e c h n o l o g y 单片机原理与应用 实验报告 学生姓名: 学号: 班级: 通信工程 专业: 任课教师: 所在单位: 电子与信息工程学院 月5年2013. 软件实验 在软件实验部分,通过实验程序的调试,使学生熟悉MCS-51的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。 实验一清零程序 一、实验目的 掌握汇编语言设计和调试方法,熟悉键盘操作。 二、实验内容 把2000~20FFh的内容清零。 三、程序框图

四、实验过程 1、LED环境 ⑴在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。 ⑵在“P.”状态下键入0640,然后按“STEP”或“EXEC”进入实验项目的调试与运行。. 2、PC环境 在与PC联机状态下,编译、连接、下载PH51\se01.asm,用连续或单步方式运行程序。 3、运行结果检查 ⑴在单步运行时,每走一步可观察其运行结果。 ⑵在连续运行状态下,应按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后再用相应的命令键观察与检查2000~20FFH 中执行程序前后的内容变化。 五、实验结果及分析 实验前截图: 实验后截图:

: 实验源程序ORG 0640H SE01: MOV R0,#00H DPTR MOV DPTR,#2000H ;(2000H送(DPTR 送LOO1: MOVX @DPTR,A ;0INC DPTR ;DPTR+1 1 INC R0 ;字节数加个字节再清FF不到CJNE R0,#00H,LOO1 ; SJMP $ END 实验问题:2000H~20FFh中的内容是什么? 解答:实验运行之前,2000H~20FFh中的内容是随机分配的;在执行完清零程序之后, 2000H~20FFh中的内容都变为0. 实验二拆字程序 一、实验目的 掌握汇编语言设计和调试方法。 二、实验内容 把2000h的内容拆开,高位送2001h低位,低位送2002h低位,2001h、2002h高位清零,一般本程序用于把数据送显示缓冲区时用。 三、程序流程

单片机实验报告

实验一:8255输入、输出实验 一.实验要求 编写程序,使用8255可编程并行口芯片,来检测八位拨动开关的状态,并控制八位发光二极管。使得八位发光二极管的亮灭变化与八位拨动开关的状态相一致。实验中用8255PB口作输入,PC口做输出。 二.实验目的 了解8255芯片结构及编程方法。 三.实验电路及连线 8255的PB0~PB7(PB口)接至八位拨动开关K0~K7。 将PC0~PC7(PC口)接至八位发光二极管L0 – L7。CS8255接F228。 四.实验说明 可编程通用接口芯片8255A有三个八位的并行I/O口,请用户仔细阅读有关书籍掌握其特点和各种用法。 由于8255的A1、A2脚分别接至地址线的A0、A1。所以相对应8255各口/寄存器的地址分配如下:PA口:F228H; PB口:F229H;PC口:F22AH;控制寄

存器地址:F22BH。 本示例程序中使用PB口作输入,检测八位拨动开关的状态;使用PC口作输出,控制八个发光二极管的亮灭。 五.实验程序及框图 实验示例程序见8255.ASM。 实验示例程序流程框图如下: 开 设置8255 工作状态 PB口读入八 位开关量 PC口输出至八 位二极管 程序代码: ;FOR EAT598 ;--------------------------------------------------------- D8255 EQU 0F22BH ;8255命令口地址 D8255A EQU 0F228H ;8255 PA口地址 D8255B EQU 0F229H ;8255 PB口地址 D8255C EQU 0F22AH ;8255 PC口地址 ;--------------------------------------------------------- ORG 0000H LJMP START ORG 0100H START: LCALL DELAY ;延时 MOV DPTR,#D8255 MOV A,#82H ;置8255状态 ;方式0,PA,PC口输出,PB口输入MOVX @DPTR,A ROTATE: MOV DPTR,#D8255B MOVX A,@DPTR ;读开关状态

嵌入式系统流水灯,按键,定时器实验报告

嵌入式系统应用 实验报告 姓名: 学号: 学院: 专业: 班级: 指导教师:

实验1、流水灯实验 1.1实验要求 编程控制实验板上LED灯轮流点亮、熄灭,中间间隔一定时间。 1.2原理分析 实验主要考察对STM32F10X系列单片机GPIO的输出操作。 参阅数据手册可知,通过软件编程,GPIO可以配置成以下几种模式: ◇输入浮空 ◇输入上拉 ◇输入下拉 ◇模拟输入 ◇开漏输出 ◇推挽式输出 ◇推挽式复用功能 ◇开漏式复用功能 根据实验要求,应该首先将GPIO配置为推挽输出模式。 由原理图可知,单片机GPIO输出信号经过74HC244缓冲器,连接LED灯。由于74HC244的OE1和OE2都接地,为相同电平,故A端电平与Y端电平相同且LED灯共阳,所以,如果要点亮LED,GPIO应输出低电平。反之,LED灯熄灭。 1.3程序分析 软件方面,在程序启动时,调用SystemInit()函数(见附录1),对系统时钟等关键部分进行初始化,然后再对GPIO进行配置。 GPIO配置函数为SZ_STM32_LEDInit()(见附录2),函数中首先使能GPIO 时钟: RCC_APB2PeriphClockCmd(GPIO_CLK[Led], ENABLE); 然后配置GPIO输入输出模式: GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 再配置GPIO端口翻转速度:

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 最后将配置好的参数写入寄存器,初始化完成: GPIO_Init(GPIO_PORT[Led], &GPIO_InitStructure)。 初始化完成后,程序循环点亮一个LED并熄灭其他LED,中间通过Delay()函数进行延时,达到流水灯的效果(程序完整代码见附录3)。 实验程序流程图如下: 硬件方面,根据实验指南,将实验板做如下连接: 1.3实验结果

单片机实验报告

本科生实验报告 实验课程单片机原理及应用 学院名称核技术与自动化工程学院 专业名称电气工程及其自动化 学生姓名 学生学号 指导教师任家富 实验地点6C902 实验成绩 二〇一五年三月二〇一五年六月 单片机最小系统设计及应用 摘要 目前,单片机以其高可靠性,在工业控制系统、数据采集系统、智能化仪器仪表等领域得到极其广泛的应用。因此对于在校的大学生熟练的掌握和使用单片机是具有深远的意义。通过本次课程设计掌握单片机硬件和软件方面的知识,更深入的了解单片机的实际应用,本次设计课程采用STC89C52单片机和ADC0804,LED显示,键盘,RS232等设计一个单片机开发板系统。进行了LED显示程序设计,键盘程序设计,RS232通信程序设计等。实现了单片机的各个程序的各个功能。对仿真软件keil的应用提升了一个新的高度。单片机体积小、成本低、使用方便,所以被广

泛地应用于仪器仪表、现场数据的采集和控制。通过本实验的学习,可以让学生掌握单片机原理、接口技术及自动控制技术,并能设计一些小型的、综合性的控制系统,以达到真正对单片机应用的理解。 关键词:单片机;智能;最小系统;ADC;RS232;显示;STC89C52 第1章概述 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。单片机采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。 它最早是被用在工业控制领域,由于单片机在工业控制领域的广泛应用,单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。 现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。 第2章实验内容 2.1单片机集成开发环境应用

单片机实验报告六(何俊儒)

一、实验目的和要求: 1、掌握单片机与可编程并行接口芯片8255的接口设计方法。 2、掌握Proteus软件与Keil软件的使用方法。 3、熟悉可编程并行接口芯片8255初始化程序的设计方法。 二、设计要求: 1、用Proteus软件画出电路原理图,在单片机的外部扩展片外三总线,并通过片外三总线与8255接口。 2、在8255PA口或PB口的某一口线上产生周期为500μS的连续方波,接示波器观察波形。 3、在8255PC口的PC0-PC3上接4个按键作输入,PC4-PC7上接4个发光二极管作输出,编程实现发光二极管正确指示按键的状态。 三、电路原理图:

四、实验程序流程框图和程序清单: 程序流程图: 开始 初始化延时等待8255复位定时器0中断 返回 送控制字读C口低字节写C口高字节 半字节交换保护现场取反C 将C状态写入PA0 汇编程序: ORG 0000H START: LJMP MAIN ORG 000BH LJMP TTC0 MAIN: MOV SP, #7FH MOV TMOD, #02H MOV TH0, #06H MOV TL0, #06H LCALL DELAY SETB EA

SETB ET0 SETB TR0 MOV DPTR, #0300H ;指向控制寄存器 MOV A, #81H ;PA方式0输出,PB方式0输出,PC高输出,PC低输入 MOVX @DPTR, A MOV DPTR, #0200H ;指向C口 LOOP: MOVX A, @DPTR ;读C口 SWAP A MOVX @DPTR, A ;写C口 LJMP LOOP DELAY: MOV R7, #0A7H DL1: MOV R6, #0ABH DL0: MOV R5, #10H DJNZ R5, $ DJNZ R6, DL0 DJNZ R7, DL1 NOP RET ORG 0050H TTC0: PUSH DPH PUSH DPL PUSH ACC CPL C

左右来回循环的流水灯实验报告

青 岛 科 技 大 学 微机原理与接口技术综合课程设计(报告) 题 目 __________________________________ 指导教师__________________________ 学生姓名__________________________ 学生学号__________________________ _______________________________院(部)____________________________专业________________ 班 ______年 ___月 ___日 直流电机控制综合实验 周艳平 宋雪英 01 信息科学技术学院 计算机科学与技术0961 2012 12 27

摘要 (2) 1、单片机概述 (2) 2、仿真软件介绍 (2) 3、需求分析 (2) 一、课程设计目的 (3) 二、课程设计要求 (3) 三、实验内容 (3) 1、设计任务与要求 (3) 2、系统分析 (3) 1).硬件电路设计(画出原理图、接线图) (4) 2)软件框图 (5) 3、用keil建项目流程 (7) 4、程序清单 (7) 4、系统调试 (9) 四、设计总结(结论) (10)

摘要 近年来,随着电子技术和微型计算机的发展,单片机的档次不断提高,起应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到广泛的应用、成为现代电子系统中最重要的智能化的核心部件。而AT89C51就是其中一种,它是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMO8位微处理器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。本课程设计介绍一种LED小灯控制系统的设计方法,以单片机作为主控核心,与按键、排阻、电阻、电容等较少的辅助硬件电路相结合,利用软件实现对LED灯进行控制。能够通过按键控制8个LED小灯从左到右依次点亮。 关键字:单片机、LED流水灯 1、单片机概述 单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微 型计算机简称单片机,特别适用于控制领域,故又称为微控制器。 通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处 理器、存储器和I/O 接口电路等。因此,单片机只需要和适当的软件及外部设备相结合, 便可成为一个单片机控制系统。 单片机经过1、2、3、3 代的发展,目前单片机正朝着高性能和多品种方向发展,它 们的CPU 功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。 2、仿真软件介绍 (1).Keil uv3 运行Keil uv3 新建工程:菜单“Preject->New Preject”,保存为*.uv2,选择芯片型号,copy否 新建文件:菜单“File->New”,保存为*.c,编写程序 将源文件添加到工程:在左侧project workspace的source group1点右键选择addfile加入*.c 设置工程:点菜单栏上的,选Target,设晶振值;选Output,点create Hex file以生成少些文件;选Debug,选择软件仿真(simulator)或硬件仿真(Keil Monitor)方式。 编译链接:点菜单栏上的进行编译,或点菜单栏上的进行编译链接,或点菜单栏上的进行重新编译链接,或点菜单栏上的停止编译。 编译链接后生成*.hex文件,可烧写到单片机。 (2).Proteus 使用Proteus仿真 点击单片机,在Program Files处选择*.hex文件,OK,进行仿真 RESPACK--8 排阻,就是好多电阻连载一起,有一个公共端,1端为公共端接VCC(上拉)或地(下拉) 一般接在51单片机P0口,因P0口内没有上拉电阻,不能输出高电平,所以要接上拉电阻。 3、需求分析

相关文档
相关文档 最新文档