实验五(硬件实验二) 定时器控制P1口亮灯实验 (1)
控制P1口的8只LED每0.5s闪亮1次
单片机课程设计报告题目:控制P1口的8只LED每0.5s闪亮一次学生姓名:王张海陈启新学生学号: 1314050230 1314050203 年级: 13级专业:电气工程及其自动化班级:电气(2)班指导教师:徐峰机械与电气工程学院制2015年11月现当今,单片机的应用无处不在。
利用单片机控制灯具的实例也不胜枚举,可控制灯具的芯片也相当之多,而利用单片机控制灯具,达到人们预想效果的方法最为广泛。
它有功能多、价格优、外部电路简单的特点,深受单片机爱好者及灯具控制制造商的青昧,用80C51 单片机及少数外部电路控制LED灯光,使LED灯产生明暗效果,并在灯光达到最亮与最暗时伴随响亮的告警音。
通过硬件电路的制作以及软件程序的编制,使灯光的亮度与告警音配合得当。
LED又称为发光二极管,是一种新型光源,具有高效节能、绿色环保、使用寿命长等其他光源无法比拟的优点。
作为绿色照明光源产品,国家绿色照明推广使用的产品,代表着未来照明技术的发展方向。
本文介绍了以STC89C52为控制核心,利用PWM调光技术,通过调整PWM的周期、PWM的占空比从而控制电流,进而达到对LED进行光度亮暗的控制调节的效果,实现对LED灯的PWM调光控制。
关键词:单片机;LED灯;软件程序摘要........................................................................一目录........................................................................二前言........................................................................三1:制P1口8只LED灯每0.5秒闪亮一次原理图 (2)1.1原理图 (2)1.2原理图器件 (2)1.3原理图参数设置说明 (3)1.4 PCB板图 (4)2:制P1口8只LED灯每0.5秒闪亮一次程序 (5)2.1 程序 (5)2.2 程序原理详细介绍 (5)3:件流程图 (7)3.1流程图的优点 (7)3.2流程图采用的符号 (7)3.3软件流程图制作软件 (7)3.4流程图 (7)4:软件仿真 (9)4.1 Proteus仿真原理图 (9)参考文献 (11)单片机技术飞速发展,单片机的应用已经渗透到了国民经济的各个领域,处处影响着人们的生活,它的出现给现代工业测控领域带来了一次新的技术革命。
定时器控制流水灯实验
实验二定时器控制流水灯实验一、实验目的1、熟练掌握实验箱的使用方法和注意事项。
2、了解简单单片机应用系统的设计方法。
3、掌握定时/计数器中断的编程方法。
4、掌握Keil C51集成开发环境在硬件仿真条件下各参数的设置。
二、实验内容利用实验板上的八个LED做显示,利用中断法编写定时程序,控制单片机定时器进行定时,所定时间为1S。
三、实验器材PC机一台, 仿真器一台, 实验箱一台, 导线若干。
四、实验说明当AT89C51的P1口有低电平输出时,相应的发光二极管就会点亮。
应用这一原理我们可以容易的点亮一个LED,例如令P1口输出0111 1111时D1就会点亮。
若再把0111 1111向右循环一位,利用P1口输出,就会点亮D2。
通过定时器来保证每个LED灯点亮时间大约为1秒。
五、实验原理图单片机的P1口为准双向口,每一位均可独立定义为输入或输出,若要将P1口的某一位所对应的灯熄灭,则需要向该端口写“0”。
电路图如下:图3-1 接线图六、实验步骤1.按照实验一中的建立工程的步骤,建立本实验内容相应的工程;2.单片机的P1口接8个发光二极管L0~L7;3.运用调试工具,调试软件,观察现象;4.软件定时:即让机器执行一个程序段,这段程序本身没有具体的执行目的,只是为了磨时间。
执行这段程序所需要的时间就是延时时间。
这种程序前面已设计过。
这种方法定时占用CPU执行时间,降低了CPU利用率。
此次实验使用的是MCS-51系列单片机七、参考程序#include<reg51.h>#include<intrins.h>#define uint unsigned int; #define uchar unsigned char; uchar temp=0x01,num=0;void T0Int() interrupt 1 {TH0=19455/256;TL0=19455%256;num++;if(num==20){num=0;P1=_crol_(temp,1);temp=P1;}}void main(){EA=1;ET0=1;TMOD=0X01;TH0=19455/256;TL0=19455%256;TR0=1;while(1);}八、实验现象通过实验观察可以发现,当烧入正确程序并全速运行后,8个LED灯从左到右一次点亮,并且每个LED灯点亮时间大约为1秒,循环往复直至断电或者复位。
定时器控制led灯闪烁实验报告
定时器控制led灯闪烁实验报告实验目的:掌握使用定时器控制LED灯闪烁的方法,了解定时器的工作原理以及其在嵌入式系统中的应用。
实验材料:1. MCU开发板2. LED灯3. 面包板4. 连接线5. 电源实验步骤:1. 连接电路:将LED的正极连接至MCU开发板的GPIO口,将LED的负极连接至地线。
2. 编写程序:使用适当的程序开发工具,编写程序并上传至MCU开发板。
程序中应包括以下内容:- 初始化定时器:设置定时器的工作模式、计数器的初始值和计数器的预设值。
- 打开定时器中断:使能定时器中断,并设置中断优先级。
- 配置GPIO口:将使用的GPIO口配置为输出模式。
- 进入主循环:在主循环中不断检测定时器中断标志位,若中断发生,则将GPIO口状态翻转,从而控制LED的闪烁。
3. 连接电源:将MCU开发板连接至电源,确保系统正常运行。
4. 运行实验:观察LED灯是否按照预期进行闪烁,如果有问题,可检查代码和电路连接是否正确,并进行调试。
实验结果与分析:根据实验步骤进行实验后,LED灯应该按照预期进行闪烁。
定时器的中断周期决定了LED的闪烁频率,可以通过调整定时器的计数器值来改变LED闪烁的频率。
通过这个实验,我们可以掌握使用定时器控制LED灯闪烁的方法,并了解了定时器在嵌入式系统中的应用。
实验拓展:1. 实现呼吸灯效果:通过调整定时器的计数器值和PWM功能,使得LED灯的亮度逐渐增加然后逐渐减小,形成呼吸灯效果。
2. 多LED控制:使用多个GPIO口和定时器,控制多个LED灯的闪烁效果,可以实现不同频率、不同亮度的LED灯组合效果。
3. 控制其他外设:除了LED灯,定时器还可以用来控制其他外设,比如蜂鸣器、电机等,可以进行相应的实验拓展。
单片机实验报告
单片机实验报告班级:09050541学号:0905054116姓名:王昆鹏实验1 P1口实验一、实验目的:1.学习P1口的使用方法。
2.学习延时子程序的编写和使用。
二、实验设备:CPU挂箱、8051CPU模块三、实验内容:1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
四、实验原理:P1口为准双向口,P1口的每一位都能独立地定义为输入位或输出位。
作为输入位时,必须向锁存器相应位写入“1”,该位才能作为输入。
软件延时,如果用c编程时,通过使用keil的软件模拟,调试观察子函数(delay)延时时间。
(具体延时可以自行设定)使用汇编语言的软件延时,可以计算其指令的周期数,大概估算其软件延时。
五、实验原理图:P1口输出、输入实验六、实验步骤:执行程序:P1.0~P1.7接发光二极管L1~L8。
七、程序框图:循环点亮发光二极管(具体延时可以自行设定)八、程序代码NAME T1_1ORG 0000HLJMP STARTORG 0030HSTART: MOV A,#0FEH //将1111 1110赋给A LOOP: RL A //A循环左移MOV P1,A //把A赋给端口P1LCALL DELAY //延时0.16sJMP LOOP //循环;延时函数DELAY: MOV R1,#200DEL1: MOV R2,#200DEL2: DJNZ R2,DEL2DJNZ R1,DEL1RETEND实验2 中断口实验一、实验目的:1.学习外部中断技术的基本使用方法。
2.学习中断处理程序的编程方法。
二、实验设备:CPU挂箱、8051CPU模块三、实验内容:通过设定两个中断使能和触发方式,并编写相应的中断服务子函数,改变led灯的变化情况。
当按下KEYBOARD的按键时8个led都灭,当把k1向上拉再复位后,4个led亮,4个灭。
四、实验原理:参考《单片机原理及接口技术》第三版,北京航空航天大学出版社。
控制P1口的8只LED灯每0.5秒闪亮一次
单片机课程设计论文题目:控制P1口的8只LED灯每0.5秒闪亮一次系部电子信息工程学院专业通信工程学号姓名指导教师程亮亮2015年6月25日摘要现当今,单片机的应用无处不在。
利用单片机控制灯具的实例也不胜枚举,可控制灯具的芯片也相当之多,而利用单片机控制灯具,达到人们预想效果的方法最为广泛。
它有功能多、价格优、外部电路简单的特点,深受单片机爱好者及灯具控制制造商的青昧,用80C51 单片机及少数外部电路控制LED灯光,使LED灯产生明暗效果,并在灯光达到最亮与最暗时伴随响亮的告警音。
通过硬件电路的制作以及软件程序的编制,使灯光的亮度与告警音配合得当。
LED又称为发光二极管,是一种新型光源,具有高效节能、绿色环保、使用寿命长等其他光源无法比拟的优点。
作为绿色照明光源产品,国家绿色照明推广使用的产品,代表着未来照明技术的发展方向。
本文介绍了以STC89C52为控制核心,利用PWM调光技术,通过调整PWM的周期、PWM的占空比从而控制电流,进而达到对LED进行光度亮暗的控制调节的效果,实现对LED灯的PWM调光控制。
关键词:单片机;LED灯;软件程序AbstractNowadays, the application of single chip microcomputer. SCM is used to control the lamps and lanterns of examples are numerous, control the lamps and lanterns of chip is quite much, and using single chip computer control lamps and lanterns, achieve expected effect of the method is the most widely used. It has multi functions, excellent prices, the characteristics of the external circuit is simple, by the Qing Mei single-chip lovers and lamp control manufacturers, with 80C51 microcontroller and a few external circuit to control the LED light, LED lamp has the effect of light and shade, and the light to the brightest and darkest with loud alarm sound. Through the production of the hardware circuit and software program, the brightness of the lighting and sound alarm.LED is also known as light-emitting diode, is a new type of light source, with high efficiency, energy saving, environmental protection, long service life and other light source can not match the advantages. As a green light source products, national green lighting to promote the use of products, representing the development direction of future lighting technology. STC89C52 as control core, using PWM dimming technology, by adjusting the PWM cycle, PWM accounted for empty than to control electric current, thus achieving the photometric light and dark control and regulation of the effect of the LED, LED lamp dimming with PWM control is introduced in this paper.Key words: single chip microcomputer; LED; software program目录摘要 (Ⅱ)Abstract (Ⅲ)目录 (Ⅳ)前言 (1)1:制P1口8只LED灯每0.5秒闪亮一次原理图 (2)1.1原理图 (2)1.2原理图器件 (2)1.3原理图参数设置说明 (3)1.4 PCB板图 (4)2:制P1口8只LED灯每0.5秒闪亮一次程序 (5)2.1 程序 (5)2.2 程序原理详细介绍 (5)3:件流程图 (7)3.1流程图的优点 (7)3.2流程图采用的符号 (7)3.3软件流程图制作软件 (7)3.4流程图 (7)4:软件仿真 (9)4.1 Proteus仿真原理图 (9)参考文献 (11)前言:单片机技术飞速发展,单片机的应用已经渗透到了国民经济的各个领域,处处影响着人们的生活,它的出现给现代工业测控领域带来了一次新的技术革命。
定时器控制led灯闪烁实验报告
定时器控制led灯闪烁实验报告实验目的:学习使用定时器控制LED灯闪烁。
实验器材:Arduino UNO开发板、面包板、杜邦线、1个LED灯、220Ω电阻器。
实验原理:在Arduino开发板中,有三个可以设置的定时器,分别是Timer0、Timer1和Timer2。
定时器的作用就是在指定时间间隔内进行一定操作。
在本实验中,我们使用Timer0来控制LED灯的闪烁。
实验步骤:1. 连接电路。
将LED灯通过220Ω电阻器与Arduino开发板的数字口Pin13相连。
2. 编写程序。
下面是本实验的程序代码:int ledPin=13;void setup() {pinMode(ledPin, OUTPUT);//使用Timer0控制TCCR0B |= (1<<CS02) | (1<<CS00); //设置预扫频率为1024 }void loop() {static boolean output = LOW;static unsigned long previousMillis = 0;unsigned long currentMillis = millis();if (currentMillis - previousMillis >= 1000) { //闪烁周期为1spreviousMillis = currentMillis;if (output == LOW)output = HIGH;elseoutput = LOW;digitalWrite(ledPin, output);}}3. 上传程序。
将编写好的程序上传至Arduino UNO开发板。
4. 实验结果。
当我们打开串口监视器时,LED灯会每隔1秒钟闪烁一次。
实验结论:通过使用定时器控制LED灯的闪烁,我们学习到了如何使用Arduino开发板的Timer0功能,掌握了定时器的使用方法,进一步加深了对Arduino的理解。
(整理)实验二P1口控制LED发光二极管.
实验二 P1口控制LED发光二极管一、实验目的1、进一步熟练Proteus及Keil软件的基本操作2、掌握8051单片机P1口的使用方法3、掌握LED发光二极管的原理及使用方法4、学习汇编程序的调试及仿真方法二、实验电路三、实验内容及步骤:要求:8个LED发光二极管循环左移显示(发光的移位),间隔时间为一秒。
1、使用Proteus画出电路原理图2、在Keil uVision中完成程序编辑、调试及编译,生成.HEX文件3、进行Protues与Keil uVision联动的相关设置:4、在Proteus中仿真运行。
四、思考1、将本实验的实验现象改为“不发光二极管循环移位”。
2、将本实验的实验现象改为“每隔0.5秒发光二极管循环移位”。
参考程序:ORG 0LJMP MAINORG 30H MAIN: MOV A,#0FEH LOOP: MOV P1,ALCALL DELAYRL ASJMP LOOP DELAY: MOV R7,#20H DELAY1:MOV R6,#200 DELAY2:MOV R5,#123DJNZ R5,$DJNZ R6,DELAY2DJNZ R7,DELAY1RETEND实验三数码管静态显示实验一、实验目的1、进一步熟悉51系列单片机2、了解8051单片机P0口的使用方法3、掌握共阴极数码管的原理及使用方法4、学习8051的编程、调试、编译、仿真。
二、实验电路图3 数码管静态显示电路原理图注:数码管要从元件库选择Optoelectronics类中的7SEG-COM-CAT-GRN。
三、要求及步骤:要求:在七段数码管上以递增方式循环显示数字0—9,间隔时间为一秒。
1、使用Proteus画出电路原理图2、在Keil uVision中完成程序编辑、调试及编译,生成.HEX文件3、进行Protues与Keil uVision联动的相关设置:4、在Proteus中仿真运行。
四、思考1、为什么要将P0口各引脚通过电阻R3-R9接到电源?2、如何在共阴数码管上循环显示十六进制数字0—F(不区分字母的大小写)?3、怎样修改程序使数字以递减方式循环显示?4、若用共阳极数码管应如何修改电路和程序,才能完成本实验的功能?参考程序:ORG 00HLJMP STARTORG 30HSTART: MOV DPTR,#TABLES1: MOV R4,#00HS2: MOV A,R4MOVC A,@A+DPTRMOV P0,ALCALL DELAYINC R4CJNE R4,#0AH,S2SJMP S1DELAY: MOV R5,#20 ;延时子程序D2: MOV R6,#200D1: MOV R7,#123DJNZ R7,$DJNZ R6,D1DJNZ R5,D2RETTABLE: DB 3FH,06H,5BH,4FH,66H ;段码表DB 6DH,7DH,07H,7FH,6FHEND实验四基本输入/输出实验一、实验目的1、进一步熟悉8051单片机并行I/O口的使用方法3、掌握并行I/O口输入/输出操作的方法4、学习8051的编程、调试、编译、仿真。
定时器控制led灯闪烁实验报告
定时器控制LED灯闪烁实验报告引言本实验旨在通过使用定时器控制LED灯的闪烁,演示定时器在嵌入式系统中的应用。
通过本实验,我们可以深入了解定时器的工作原理以及如何使用它来实现各种定时功能。
实验器材•STM32F407开发板•杜邦线•LED灯•电阻实验步骤步骤一:准备工作1.将STM32F407开发板与计算机通过USB线连接。
2.在计算机上安装Keil软件,并打开工程文件。
3.将LED灯连接到开发板的GPIO引脚。
4.在Keil软件中配置GPIO引脚为输出模式。
步骤二:编写程序1.在程序的头文件中引入相应的库文件。
2.在代码中定义LED灯所连接的GPIO引脚。
3.初始化LED灯所连接的GPIO引脚,并设置为输出模式。
4.配置定时器的工作模式和频率。
5.启动定时器。
6.在无限循环中读取定时器的计数器值,并通过判断计数器值的大小来控制LED灯的亮灭状态。
步骤三:烧录程序1.将开发板与计算机通过USB线连接。
2.打开Keil软件,点击烧录按钮,将程序烧录到开发板中。
步骤四:实验验证1.确保程序已成功烧录到开发板中。
2.接通开发板的电源,观察LED灯的闪烁状态。
结果与分析经过实验验证,LED灯按照预定的频率闪烁,证明定时器工作正常。
通过调整定时器的频率,可以控制LED灯的闪烁速度,进一步验证了定时器的功能。
实验总结通过本实验,我们深入了解了定时器的工作原理,并成功实现了定时器控制LED灯的闪烁功能。
定时器在嵌入式系统中具有广泛的应用,可以用于定时中断、测量时间等功能。
在今后的学习和应用中,我们可以灵活运用定时器,提高嵌入式系统的稳定性和性能。
参考文献暂无参考文献。
附录无序列表:•STM32F407开发板•USB线•LED灯•电阻有序列表:1.准备工作1.将STM32F407开发板与计算机通过USB线连接。
2.在计算机上安装Keil软件,并打开工程文件。
3.将LED灯连接到开发板的GPIO引脚。
4.在Keil软件中配置GPIO引脚为输出模式。
实验1:P1口亮灯控制程序-实验说明
实验1: P1口亮灯控制程序一、连接方法1、将SIP8-3用跳线帽上连2、依据ISP在线编程步骤将程序写到入芯片中;3、打开电源程序即可运行。
4、注意该实验结束后可将SPL上的跳线帽去掉,以减少开发板的功耗。
二、相应原理图如下:三、实验说明:、本实验仅用到L1灯。
本例实验主要用到了延时子程序,clr,lcall,ajmp 指令,通过控制P1.0口实现效果。
用户可以通过此程序的学习,只要你掌握了该程序,你就成功迈出了学习单片机的第一步!四、程序范例:;****************************************************************************************;*描述: 端口亮灯控制程序;*公司:深圳信盈达电子有限公司;*编写: 牛乐乐;*日期: 2009年07月15日;*版本: V1.0;*连接: SPL跳线连接;;*说明:实现P1.0控制L1灯常亮;****************************************************************************************/ ORG 0000HLJMP MAINORG 0030H ;到0030h处避开00-30之间的敏感地址MAIN:CLR P1.0 ;将P1.0送0指令LCALL DEL ;延时LJMP MAIN ;循环;//******延时子程序**********//DEL: MOV R2,#200 ;执行1该条指令需要1us时间D1: MOV R3,#250 ;执行1该条指令需要1us时间D2: DJNZ R3,D2 ;执行1该条指令需要2us时间DJNZ R2,D1 ;执行1该条指令需要2us时间RET ;执行1该条指令需要1us时间END;延时子程序延时时间T=1+(1+2*250+2)*200+1=2+100600=100602us=100.6ms=0.1s ;//计算延时间;t=2+100*(2+250*(4)+2)=100 000us=0.1s(约等于1s)。
实验二 P1口亮灯实验
1.实验目的:(l)学习P1口的使用方法; (2)学习延时子程序的编写。 2.实验预备知识: (l)Pl口为准双向口,每一位 都可独立地定义为输入或输出,在作输入线使 实验中延时子程序采用指令循环来实现, 机器周期(12/6MHz)*指令所需机器周期数*循 环次数,在系统时间允许的情况下可以采用此方 法。
3.实验设备:
计算机、实验箱 4.实验内容:P1口输出口,接 八只发光二极管,编写程序, 使发光二极管按预定要求 点亮。
5.实验步骤 :将单片机P1.0~P1.7用导线连至8个
发光二极管(注意连接顺序),运行程序后,观 察发光二极管闪亮变化情况。
6.思考:1)如何改变延时时间? 2)改用查表法控制LED点亮方法。
• • • • • • • • • • • • • • • • •
8, 程序清单 文件名:HW01.ASM ORG 0000H LJMP SE18 ORG 0790H SE18: MOV P1,#0FFH ;送P1口 LO34: MOV A,#0FEH ;L1发光二极管点亮 LO33: MOV P1,A LCALL SE19 ;延时 RL A ;左移位 SJMP LO33 ;循环 ORG 07A0H SE19: MOV R6,#0A0H LO36: MOV R7,#0FFH LO35: DJNZ R7,LO35 DJNZ R6,LO36 ;延时 RET END
五.端口说明
CAP0 SDA P1.0 P1.1
SCL PWM0 CADC0
CDAC0 SPICLK SPISTE
P1.2 P1.3 P1.4
P1.5 P1.6 P1.7
p1口亮灯实验报告
竭诚为您提供优质文档/双击可除p1口亮灯实验报告篇一:单片机p1口亮灯实验实验一p1口亮灯实验一、实验目的(1)学习p1口的使用方法;(2)学习延时子程序的编写。
二、实验预备知识(1)p1口对准双向口,每一位都可独立地定义为输出线或输入线。
(2)本实验中延时子程序采用指令循环来实现,机器周期(12/6mhz)*指令所需机器周期数*循环次数,在系统时间允许的情况下可以采用此方法。
三、实验内容p1作为输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
四、程序框图五、实验电路六、实验步骤p1.o-p1.7用插针连至L1-L8,运行程序后,观察发光二极管闪亮移位情况。
程序代码如下:oRg0000hmoVp1,#0FFh;送p1口moVA,#0Feh;L1(L0?)发光二极管点亮Loop:moVp1,ALcALLDeLAY;调用延时子程序RLA;左移位sJmpLoop;循环DeLAY:moVR7,#0FFh;延时子程序Loop1:moVR6,#0FFh Loop2:nopnopDJnZR7,Loop2DJnZR6,Loop1ReT;返回enD七、思考1、改变延时常数,使发光二极管闪亮时间改变。
改变R7、R6的值2、修改程序,使发光二极管闪亮移位方向改变。
将RLA改为RRA篇二:实验二p1口亮灯实验【单片机原理及应用】实验报告班级:学号:姓名:篇三:实验一p1口亮灯实验实验一p1口亮灯实验一、实验目的(1)熟悉编程和程序调试(2)学习p1口的使用方法;(3)学习延时子程序的编写。
二、实验内容p1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
三、实验预备知识(1)p1口为准双向口,可定义为输入,也可定义为输出。
(2)本实验中延时子程序采用指令循环来实现,机器周期(12/6mhZ)*指令所需机器周期数*循环次数,在系统时间允许的情况下可以采用此方法。
四、程序框图五、实验步骤实验步骤说明:本实验需要用到单片机最小应用系统和十六位逻辑电平显示模块。
P0,P1亮灯
学院:电气信息学院专业:电气工程及其自动化
实验时间
2013-10-29
指导教师
汪鑫
成绩
实验项目名称
输入、输出接口实验(一)
实验目的
了解单片机输入输出接口的使用。
实验内容
一
1.将P1口的低四位定义为输出,高四位定义为输入。输入状态接开关,开关的状态由LED的亮灭反应。(开关开,对应的LED灯亮;开关关,对应的LED灯灭)
2.编写程序
3.连接电路图
4.进入硬件仿真,运行观察结果。
实验内容二
1.P0口接8位开关,P1口接8个LED灯。开关的开、关由LED的亮灭来反应。
2.编写程序。
3.连电路图。
4.进入硬件仿真,运行观察结果。
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: MOV P0,#0FFH
ABC: MOV P1,#00H
MOV A,P0
MOV P1,A
LJMP ABC
END
实验二 P1口及定时器计数器实验
实验二 P1口及定时器计数器实验实验二p1口及定时器计数器实验实验二 P1端口和定时器计数器实验一、实验目的1.掌握单片机基本I/O端口的使用特点,了解扩展I/O端口的方法;2.掌握单片机定时器的工作原理,体验定时器的使用特点;3.掌握中断技术、编程方法和特点。
二、实验仪器1.一块C51实验开发板,两台电脑三、实验内容1.在P1端口进行试验连接仿真器和c51实验开发板,p1口做输出口,p1口连接至8只发光二极管接口jp8,如图3-1所示,接通开发板电源。
编写程序,使发光二极管指示灯循环点亮。
p1cpu89s52图3-1p1口输出CPU的振荡频率为11.0592 MHz,需要一个延迟子程序延迟来点亮LED周期。
延迟时间为(0b3+1)×256×10+2)×2×12÷11059200=1(秒)。
delay:movr5,#0ahmovr6,#00hdelay1:movr7,#0b3hdjnzr7,$Djnzr6,delay1djnzr5,delay1参考主程序org0000hljmpstartorg0040h开始:mova,#0fehloop:movp1,a;点亮1只ledrla;左循环lcalldelay;延时1秒sjmploop修改程序,使指示灯向右循环;修改程序,使指示灯右循环间隔为0.1秒;2.在0引脚上的P1 2KHz方波输出2khz的方波需要定时器产生0.25ms连续的定时信号,可选用t0方式2,自动装入参数的8位定时方式。
单片机的主频为11.0592mhz,定时器初始值应为256-0.25×一千×11.0592/12=26=1小时参考程序奥格哈姆普斯特org000bh;t0中断入口地cplp1.0retiorg0100hstart:movtmod,#02h;置t0为方式2movtl0,#1ah;延时为0.25ms的定时器初始值,movth0,#1ahsetbpt0;当只有一个中断设置0时,设置优先级是没有意义的;中断使能setbea;开放式中断setbtr0;启动定时器sjmp$end运行程序,用接在p1.0上的led灯看效果。
实验一P1口输入
实验一P1口输入实验一P1口输入、输出实验一、实验目的1、学习P1口的使用方法2、学习延时子程序的编写和使用二、实验说明P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。
由准双向口结构可知当P1口用作输入口时,必须先对口的锁存器写“1”,若不先对它写“1”,读入的数据是不正确的。
三、实验内容及步骤实验(一):用P1口做输出口,接八位逻辑电平显示,程序功能使发光二极管从右到左轮流循环点亮。
1、使用单片机最小应用系统1模块。
关闭该模块电源,用扁平数据线连接单片机P1口与八位逻辑电平显示模块。
2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加P1_A.ASM 源程序,进行编译,直到编译无误。
4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。
5、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序,观察发光二极管显示情况。
发光二极管单只从右到左轮流循环点亮。
实验(二):用P1.0、P1.1作输入接两个拨断开关,P1.2、P1.3作输出接两个发光二极管。
程序读取开关状态,并在发光二极管上显示出来。
1、用导线分别连接P1.0、P1.1到两个拨断开关,P1.2、P1.3到两个发光二极管。
2、添加 P1_B.ASM源程序,编译无误后,运行程序,拨动拨断开关,观察发光二极管的亮灭情况。
向上拨为熄灭,向下拨为点亮。
四、流程图及源程序1.流程图(一)实验一ORG 0000H LJMP START ORG 0030HSTART: MOV A, MOV R5,#8 OUTPUT: MOV P1,A RL A CALL LJMP START DELAY: MOV R6,#0 MOV R7,#0DELAYLOOP: ;延时程序DJNZ R6,DELAYLOOP DJNZ R7,DELAYLOOP RETEND(二)实验二KEYLEFT BIT P1.0 ;定义KEYRIGHT BIT P1.1LEDLEFT BIT P1.2LEDRIGHT BIT P1.3ORG 0030HSTART: ;欲读先置一SETBLOOP:LJMP LOOPEND五、思考题(1)对于本实验延时子程序Delay: MOV R6,0MOV R7, 0DelayLoop:DJNZ R6,DelayLoopDJNZ R7,DelayLoopRET如使用12MHz晶振,粗略计算此程序的执行时间为多少?六、电路图。
实验一 P1口亮灯实验
• 硬件定时与软件计数结合方式解题思路: • 让T0作定时器用,如T0可以定时50ms,当定时时间 到,在T0中断处理程序中一个寄存器内容加1,同 时判断是否加到2000/50=40,如果不到40,则直接 返回,如果计到40,说明2s时间到,使P1口循环点 亮8个发光二极管后再返回。 • T0工作在方式1,控制字01H,计数初值(12MHz): (216–X)×1×10 -6 =50×10 -3S 即216–X=50000 X=216-50000=10000H-C350H =3CB0H 所以,初值为: TH1=3CH,TL1=B0H 若6MHZ课用原来的子程序!
;T0为方式1 ;初值 ;允许中断 ;启动定时 ; LED0先亮 ; ;等待中断 ;重新设置初值 ;依次点亮
中断处理 INTT0: MOV TH0,#9EH MOV TL0,#58H 程序: RL A RETI
拓展实验:每个LED点亮时间为2s
1.定时器/计数器应用实训 实训内容:利用T0定时,产生2s定时,使得P1 口输出信号,控制8个发光二极管循环点亮,设 fOSC=12MHz, 。 1.难点:P1口输出信号,控制8个发光二极管循环 点亮。由于定时时间长达2s,所以单靠一个定 时器不能解决问题。 2.可以采取硬件定时和软件计数(或硬件计数) 结合方式。
实验一 P1口亮灯实验
实验要求
1.分别用2种方式使P1口输出信号,轮流点 亮8个LED,每个LED点亮时间约为50ms。 方法1:利用调用延时子程序方式; 方法2:利用定时器定时50ms,设晶振频率 为12MHz。 2.拓展实验:每个LED点亮时间为2s。 3.选做P1口转弯灯实验。
思路: 1.通过P1.0P~1.7分别送“1”给8个LED指示灯; 2.每次持续时间20分之一秒,即50ms, 由定时器T0来定时,用方式1 , 又知fOSC =6MHz。 8051
单片机原理与应用实验教案实验指导书
单片机原理与应用实验指导书专业班级姓名计算机学院编2007年3月实验目录第一部分软件实验选做实验一清零程序实验二拆字程序实验三拼字程序实验四数据区传送子程序实验五数据排序实验实验六查找相同个数实验七无符号数双字节快速乘法子程序实验八脉冲计数(定时/计数综合实验)第二部分硬件实验选做实验一 P1口亮灯实验实验二 P1口转弯灯实验实验三 P3.3口输入,P1口输出实验四工业顺序控制实验五 8255PA口控制PB口实验六 8255控制交通灯实验七简单I/O口扩展实验八 A/D转换实验第一部分软件实验实验一清零程序一、实验目的掌握汇编语言设计和调试方法,熟悉键盘操作。
二、实验内容把2000H~20FF的内容清零。
三、实验步骤用连续或单步方式运行程序,检查2000H~20FF执行程序前后的内容变化。
四、思考 1、假使把2000H~20FF中的内容改为FF,如何修改程序。
2、将程序中的汇编语言中每条单步执行的指令阐述出来。
五、程序清单(sw01.asm)ORG 0000HLJMP SE01ORG 0640HSE01:MOV R0,#00HMOV DPTR,#00H ;(0000H)送DPTRLOO1:CLR AMOVX @DPTR,A ;0送DPTRINC DPTR ;DPTR+1INC R0 ;字节数加1CJNE R0,00H,LOO1 ;不到FF个字节再清LOOP:SJMP LOOPEND实验二拆字程序一、实验目的掌握汇编语言设计和调试方法。
二、实验内容把2000H的内容拆开,高位送2001H低位,低位送2002H低位,2001H、2002H高位清零,一般本程序用于把数据送显示缓冲区时用。
三、实验程序框图四、实验步骤用连续或单步方式运行程序,检查2000H~2002H中内容变化情况。
五、思考 1、如何用断点方式调试本程序。
2、将程序中的汇编语言中每条单步执行的指令阐述出来。
六、程序清单(sw02.asm)ORG 0000HLJMP SE02ORG 0660HSE02: MOV DPTR,#2000HMOVX A,@DPTRMOV B,A ;(2000H)→A→BSWAP A ;交换ANL A,#0FH ;屏蔽高位INC DPTRMOVX @DPTR,A ;送2001HINC DPTRMOV A,BANL A,#0FH ;(2000H)内容屏蔽高位MOVX @DPTR,A ;送2002HLOOP: SJMP LOOPEND实验三拼字程序一、实验目的进一步掌握汇编语言设计和调试方法。
实验三 P1口亮灯实验
实验三、P1口亮灯实验一、实验目的:a)掌握keil及proteus的联合仿真方法b)掌握并口的操作方法c)掌握延时程序的编写二、实验内容:P1口做输出口,接八只发光二极管(低电平时发光),P0口接七段数码管,编写程序,使发光二极管循环点亮。
请根据系统电路图,编写相应的程序并给予适当的注释。
(一)实验要求:z基本要求:a)每个二极管每次点亮持续的时间约为一秒钟,假设使用的系统时钟频率为12MHZ;b)其中时间控制可以利用延时程序实现,也可以利用定时器实现;c)正确连接电路,编写程序,调试运行,使发光二极管能够循环点亮;d)通过Proteus7软件观察实验结果。
z提高要求:能够通过按键控制彩灯循环的模式。
(二)实验基本步骤:1.打开Keil,新建工程:Project/New Project,输入工程名,并保存2.选项选择器件:Atmel 的89C513.新建程序文本,并另存为该文件为汇编文件格式: (1)“File/New”,(2) File/SaveAs/键入欲使用的文件名及后缀名,即“文件名.asm”。
再单击“保存”4.添加该文件该工程:回到编辑界面后,单击“Target 1”前面的“+”号,然后在“Source Group 1”上单击右键,单击“Add File to Group ‘Source Group 1’”选择刚才新建的汇编文件。
5.设置工程该的options选项:projec / options for project,(1)output 选项卡中CreateHEX File 前打勾;(2)Debug 选项卡选择use“Proteus VSM simulator”。
6.用proteus的ISIS打开电路图P1.DSN7.将proteus 里DEBUG /use remote debug monitor打勾8.在keil的汇编文件中输入程序代码,并编译,调试。
(1)写完代码后单击“Project”菜单,再在下拉菜单中单击“Built Target”选项(或者使用快捷键F7),编译成功后(0个errors),(每次修改程序后都要重新编译下,才能生效)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五 定时器控制P1口亮灯实验
一、实验目的
1.熟悉MCS -51定时/计数器的初始化编程方法,掌握根据延时要求计算定时器初值的方法。
2.理解定时器溢出中断的概念,掌握中断服务程序的编程方法。
3. 学习并行口的使用方法。
二、实验项目
1. 根据要求在单片机实验箱上接线。
2. 使用上位机(PC )按要求编制实验程序。
3. 调试实验程序,观察输出结果。
三、实验设备与仪器
1.DVCC 或 Dais 实验箱 1台 2.PC 机 1台
四、实验原理
实验电路原理图如图4-1所示,通过编程使用8051内部的定时器T0计时,当时间到(定时/计数器溢出)时,往并行口P1送数据,点亮外部扩展的LED 小灯。
程序流程图如图4-2所示。
图4-1 电路原理图
(a ) 共阳极接法
(b )共阴极接法
图 4-2 实验程序框图
五、注意事项
1.接线时必须关闭实验箱电源。
2.不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。
3. Dais 实验箱(大箱)上的LED小灯是共阳极接法,当输出为低电平(逻辑0)时灯
被点亮;而DVCC实验箱(小箱)上的为共阴极接法,当输出为高电平(逻辑1)时点亮。
4. 如使用Dais实验箱,请先检查CPU选择开关是否在51档,与PC通讯速率开关设置
为多少。
5. 如使用DVCC实验箱,按“复位键”后再按下“PCDBG”方可实现与系统的连接。
6.实验箱上,只需把连线从P1口端接到LED小灯模块的接线口即可, 74LS244、电阻
等元件的接线已布在实验箱底板上。
六、实验说明及操作步骤
1.由实验指导人员讲解本实验的基本要求,安全操作和注意事项。
介绍实验装置的使用
方法。
2.外部对象接线,将实验箱上8051的P1口接线端(P1.0~P1.7)与8盏外部的LED小灯
接线端相连即可。
3.打开上位机中的实验软件,在开发环境下按下述要求输入自己编制的程序:
定时/计数器T0工作于定时方式1,P1.0~P1.7为LED发光二极管小灯输出口,晶振的频率为12Mhz,要求采用定时中断方式,使LED小灯间隔1s从右到左循环点亮(当最右边的小灯熄灭1s后,最左边的小灯又点亮)。
4.输入完成后对其进行编译和连接,并将编译完成后的程序传至实验箱,运行观察输出
结果。
七、实验报告
1. 实验的目的与任务。
2.说明实验原理、画出软件流程图。
3. 调试心得与体会。
4.回答思考题。
5.程序清单。
八、思考题
1.定时器T0的中断入口地址为,T1的中断入口地址为,T2的中断入口
地址为;80C51 (有/没有)定时器T2。
2.跟定时器相关的特殊寄存器有哪些?写出这些寄存器各位的功能。
3. 什么叫中断优先级?跟中断控制相关的寄存器有哪些?假设要求定时器T0溢出后
检查有无外部中断0(/INT0)信号,则IP、IE的值应该为多少?如果要求在收到外部中断1(/INT1)信号后,定时器T0才开始计时,IP、IE的值又应该为多少?。