任务2最新单片机控制单灯的亮灭
- 格式:ppt
- 大小:667.50 KB
- 文档页数:16
习题 11.1 单项选择题(1) A (2)C (3)C1.2 填空题(1)硬件系统、软件系统(2)时钟电路、复位电路(3)XTAL1、XTAL2、RESET、EA(4)晶振1.3 问答题什么是单片机?它由哪几部分组成?什么是单片机应用系统?答:单片微型计算机(Single Chip Microcomputer)简称单片机,是指集成在一个芯片上的微型计算机,它的各种功能部件,包括CPU(Central Processing Unit)、存储器(memory)、基本输入/输出(Input/Output,简称I/O)接口电路、定时/计数器和中断系统等,都制作在一块集成芯片上,构成一个完整的微型计算机。
单片机应用系统是以单片机为核心,配以输入、输出、显示等外围接口电路和控制程序,能实现一种或多种功能的实用系统。
1.4 上机操作题(1)参考程序:#include <reg51.h> //包含头文件reg51.h,定义了51单片机的专用寄存器//函数名:delay//函数功能:实现软件延时//形式参数:无符号整型变量i,控制空循环的循环次数//返回值:无void delay(unsigned int i) //延时函数{unsigned int k;for(k=0;k<i;k++);}void main() //主函数{while(1){P1=0x00;delay(20000); //调用延时函数,实际参数为20000P1=0xff;delay(20000); //调用延时函数,实际参数为20000}}(2)参考程序:#include <reg51.h> //包含头文件reg51.h,定义了51单片机的专用寄存器//函数名:delay//函数功能:实现软件延时//形式参数:无符号整型变量i,控制空循环的循环次数//返回值:无void delay(unsigned int i) //延时函数{unsigned int k;for(k=0;k<i;k++);}void main() //主函数{while(1){P1=0x55;delay(20000); //调用延时函数,实际参数为20000P1=0xff;delay(20000); //调用延时函数,实际参数为20000}}习题 22.1 单项选择题(1)C (2)A (3)A (4)A (5)A (6)D (7)C (8)A (9)A (10)C 2.2 填空题(1)外部程序存储器、外部数据存储器、内部程序存储器、内部数据存储器(2)程序存储器(3)工作寄存器组、位寻址区、用户RAM(4)1us、2us(5)按键复位、上电复位(6)2、高2.3 回答题(1)P3口的第二功能是什么?答:P3口各引脚的第二功能如下表。
交流调速课程设计说明书设计题目:基于单片机的单键单灯亮/灭控制系统设计指导教师: xxxxx设计者: xxxx学号: xxxxxxxxx系别:机械工程学院班级:目录一、题目 (1)二、内容要求 (1)三、总体方案设计思路 (1)四、电路原理图 (1)五、程序 (2)六、课程设计心得体会···························· (3)七、参考文件 (4)1题目:基于单片机的单键单灯亮/灭控制系统设计2内容要求:选用单片机为控制核心,用一个按钮控制一只LED 灯的点亮和熄灭。
要求上电后,按一次按钮,灯点亮;再按一次,灯熄灭;第三次案又点亮,如此循环。
3总体方案设计思路:程序通过if判断语句,判断输入引脚,当输入引脚为低电平时,满足if语句判断条件,当条件满足时,通过取反指令,控制输出引脚,LED灯亮灭切换。
通过while循环语句,确定有效按键。
4电路原理图:5程序:#include<reg51.h> //单片机头文件sbit key=P1^0; //按键输入引脚定义sbit led=P2^0; //led灯输出引脚定义main () //主函数{while(1) //死循环{if (key==0) //按键判断低电平有效{led=~led; //灯取反}while(key==0); //按键上升沿等待}}6课程设计心得体会在整个设计中我懂得了许多东西,了解了单片机的电器原理,掌握了单片机的调试的基本原理,特别是单片机的编程技术,对C语言编程和汇编语言编程有了深入的理解,熟悉了单片机开发仪的操作。
对于本次课程设计对基于单片机的单键单灯亮/灭控制系统设计。
主题:单片机独立按键控制LED灯实验原理目录1. 概述2. 单片机独立按键控制LED灯实验原理3. 实验步骤4. 结语1. 概述单片机在现代电子设备中起着至关重要的作用,它可以通过编程实现各种功能。
其中,控制LED灯是单片机实验中常见的任务之一。
本文将介绍单片机独立按键控制LED灯的实验原理及实验步骤,希望对初学者有所帮助。
2. 单片机独立按键控制LED灯实验原理单片机独立按键控制LED灯的实验原理主要涉及到单片机的输入输出端口及按键和LED的连接方式。
在单片机实验中,按键与单片机的输入端口相连,LED与单片机的输出端口相连。
通过按键的按下和松开来改变单片机输出端口电平,从而控制LED的亮灭。
3. 实验步骤为了完成单片机独立按键控制LED灯的实验,需要按照以下步骤进行操作:步骤一:准备材料- 单片机板- 按键- LED灯- 连线- 电源步骤二:搭建电路- 将按键与单片机的输入端口相连- 将LED与单片机的输出端口相连- 连接电源步骤三:编写程序- 使用相应的单片机开发软件编写程序- 程序中需要包括按键状态检测和LED控制的部分步骤四:烧录程序- 将编写好的程序烧录到单片机中步骤五:运行实验- 按下按键,观察LED的亮灭情况- 确保按键可以正确控制LED的亮灭4. 结语通过上述实验步骤,我们可以实现单片机独立按键控制LED灯的功能。
这个实验不仅可以帮助学习者了解单片机的输入输出端口控制,还可以培养动手能力和程序设计能力。
希望本文对单片机实验初学者有所帮助,谢谢阅读!实验步骤在进行单片机独立按键控制LED灯实验时,需要按照一定的步骤进行操作,以确保实验能够顺利进行并取得预期的效果。
下面将详细介绍实验步骤,帮助读者更好地理解和掌握这一实验过程。
1. 准备材料在进行单片机独立按键控制LED灯实验前,首先需要准备相应的材料。
这些材料包括单片机板、按键、LED灯、连线和电源。
在选择单片机板时,需要根据具体的实验需求来确定,常见的有51单片机、Arduino等,不同的单片机板具有不同的特性和使用方法,因此需要根据实验要求来选择适合的单片机板。
任务2单片机控制单灯的亮灭单灯的亮灭任务1-2 任务单片机控制单灯的亮灭单灯的亮灭一、任务目标1.单片机内部结构的了解单片机内部结构的了解2.单片机输入输出口的基本应用单片机输入输出口的基本应用3.伟福软件的作用及作用方法伟福软件的作用及作用方法4.编程器的作用及作用方法编程器的作用及作用方法5.单片机基本连接电路单片机基本连接电路单灯的亮灭二、任务要求任务描述:任务描述:用单片机控制一个LED发光二极管不断闪烁。
LED发光二极管不断闪烁。
发光二极管不断闪烁单灯的亮灭三、相关知识(一)单片机的基本连线89C51管脚图单灯的亮灭三、相关知识(二)硬件电路单灯的亮灭89C51管脚89C51管脚1、电源:单片机使用的是5V电源,其中正极接40引脚VCC, 电源:单片机使用的是5V电源,其中正极接40引脚VCC, 5V电源40引脚VCC 负极( 负极(地)接20引脚GND。
20引脚GND。
引脚GND2、振蒎电路:在单片机内部已集成了振荡器,使用晶体振振蒎电路:在单片机内部已集成了振荡器,荡器,18、19脚只要买来晶振,电容,连上就可以了,荡器,接18、19脚。
只要买来晶振,电容,连上就可以了,按图1接上即可。
按图1接上即可。
3、复位引脚(RST):按图1中画法连好,至于复位是何含义复位引脚(RST):按图1中画法连好,(RST) 及为何需要复要复位,在单片机功能中介绍。
及为何需要复要复位,在单片机功能中介绍。
4、EA引脚:EA引脚接到正电源端。
EA 引脚:EA引脚接到正电源端。
引脚引脚接到正电源端单灯的亮灭(三) 单片机怎样控制灯的闪烁1.将LED接到P1.0脚上LED 接到P1.0脚上接到P1.0 2.我们又怎样让P1.0变‘高’或变‘低’呢?我们又怎样让P1.0变P1.0 或变‘ 3.怎样执行指令机器语言编程器 4.程序放在哪里程序存储器5.让灯不断地闪烁单灯的亮灭(四)软件分析ORG 0030H LOOP: SETB P10 LCALL DELAY CLR P10 LCALL DELAY LJMP LOOP ;以下子程序DELAY: MOVR7,#250 D1: MOV R6,#250 D2: DJNZ R6,D2 DJNZ R7,D1 RET END ;(6) ;(7) ;(8) ;(9) ;(10) ;(11) ;(1) ;(2) ;(3) ;(4) ;(5)单灯的亮灭(五)单片机的程序和数据的存放1.程序存储器只读程序存储器(ROM) 只读程序存储器(ROM) EA的作用EA的作用 2.数据存储器(1)内部数据存储器低128单元内部数据存储器低128单元128单灯的亮灭内部数据存储器低128单元内部数据存储器低128单元128单元是单片机的真正RAM存储器低128单元是单片机的真正单元是单片机的真正存储器1)寄存器区) 2)位寻址区) 用户RAM区区用户单灯的亮灭数据存储器(2)内部数据存储器高128单元内部数据存储器高128单元128专用寄存器( 专用寄存器(Special Function Register) )单灯的亮灭(四)扩展知识(1)准双向口准双向口P0、P1、P2、P3 、、、(2) P1口口读引脚方式读锁存器方式单灯的亮灭五.任务实施1、在*****软件中按图搭接好电路;*****软件中按图搭接好电路;软件中按图搭接好电路2、在伟福软件中编辑程序,进行编译,得到.HEX格式在伟福软件中编辑程序,进行编译,得到.HEX格式 .HEX 文件;文件;3、将所得的HEX 格式文件在*****中指定到MCU芯片将所得的HEX格式文件在*****中指定到MCU芯片HEX格式文件在*****中指定到MCU 中;4、运行仿真,观察仿真结果;运行仿真,观察仿真结果;5、*****中结果正常后,用实际硬件搭接并调试电*****中结果正常后,中结果正常后路,通过编程器将.HEX格式文件下载到*****中,通通过编程器将.HEX格式文件下载到*****中 .HEX格式文件下载到***** 电验证实验结果。
单片机单灯闪烁实验报告实验目的:通过单片机控制一个LED灯的闪烁,熟悉单片机的基本操作以及IO口的使用。
实验器材:1. STC89C52单片机开发板2. LED灯3. 面包板4. 连接线实验原理:单片机是一种微型计算机,具有中央处理器、存储器和输入输出设备等,可以进行数据的输入、输出、运算等操作。
本实验使用的STC89C52单片机具有4个IO 口,其中P0口和P2口可以用来控制外部设备。
通过控制这些IO口的高低电平,可以控制LED灯的亮灭。
实验步骤:1. 将STC89C52单片机开发板连接到电脑上,并打开Keil软件。
2. 在Keil软件中新建一个工程,选择STC89系列单片机,并设置好工程的文件路径。
3. 在新建的工程中,编写代码实现单片机控制LED灯闪烁的功能。
代码如下:#includesbit LED = P2^0; // 将LED连接到P2.0口void delay// 延时函数{int i, j;for (i = 0; i < 100; i++)for (j = 0; j < 1000; j++);}void main{while (1) // 无限循环{LED = 0; // 点亮LED灯delay// 延时LED = 1; // 熄灭LED灯delay// 延时}}4. 在Keil软件中编译代码,生成HEX文件。
5. 将生成的HEX文件下载到STC89C52单片机开发板中。
6. 将LED灯连接到P2.0口上,保证正极连接到P2.0口,负极连接到GND。
7. 接通电源,LED灯开始闪烁。
实验结果:经过实验,可以看到LED灯在程序的控制下不断闪烁,每次亮灭的时间间隔为延时函数设置的时间。
实验总结:本实验通过单片机控制LED灯闪烁的实验,初步了解了单片机的基本操作和IO口的使用。
通过编写简单的代码,我们可以控制单片机的输出,实现各种不同的功能。
在今后的学习中,我们可以进一步学习单片机的其他功能,如输入输出、定时器、中断等,从而更深入地了解单片机的应用。
西安科技大学电气工程及其自动化专业3+1大四实践课51单片机控制照明灯增亮和减灭1.原理图2.程序源代码#include<reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charsbit br=P2^1; //总开关sbit su=P2^2; //逐渐减灭sbit in=P2^3; //逐渐增亮sbit pu=P2^0; //脉冲触发uint m,n,z,f; //定义变量void delay_18ms(uint t) //消抖延时,延时为15ms,精度为0us{uint a,b;for(;t>0;t--)for(b=122;b>0;b--)for(a=2;a>0;a--);}void delay_80us(uint t) //脉冲宽度为80us,精度为0us{unsigned char a;for(;t>0;t--)for(a=2;a>0;a--);}void main(void){f=0; //初始化pu=1;TMOD=0x02; //定时器方式2TH0=0x00; //装初值对应200us;TL0=0x38;ET0=0; //定时器0溢出中断禁止TR0=0; //禁止定时器启动IT0=1; //下降沿触发EX0=0; //禁止外部中断0EA=1; //cpu中断开放while(1) //放循环{if(su==0) //是否输入低电平{delay_18ms(21); //延时确定即消抖if(su==0) //确认是否为低电平{while(!su);m++;if(m>31) //最大导通角的值,即灯泡亮度最小{m=31;}}}if(in==0) //是否输入低电平{delay_18ms(21); //延时确定即消抖if(in==0) //确认是否为低电平{while(!in);m--; //最小导通角的值,即灯泡亮度最亮if(m<1){m=1;}}}if(br==0) //是否输入低电平{delay_18ms(21); //延时确定即消抖if(br==0) //确认是否为低电平{if(f==0) //开关状态检测,此句为打开灯泡{f=1; //总开关标志设定m=8; //灯泡初值触发角度EX0=1; //允许外部中断0}else //此句为关断灯泡{f=0; //总开关标志设定EX0=0; //关断外部中断0}while(!br);}}}}void int0(void) interrupt 0 //外部中断0程序{ET0=1; //定时器0中断允许TR0=1; //定时器0启动n=m; //把导通角m的值赋值到n}void timer0(void) interrupt 1{z++; //触发时间设定if(z==n) //把导通角的n的值赋值到z{z=0;TR0=0; //定时器0中断禁止ET0=0; //定时器0禁止启动TH0=0x00; //装初值为200usTL0=0x38;pu=0; //脉冲形成环节,脉冲宽度为80usdelay_80us(11);pu=1;}}。