




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机应用技术
项目教程任务一点亮一个LED灯
任务提出任务分析相关知识编写程序任务一点亮一个LED灯
任务提出用单片机控制一只发光二极管灯亮。任务一点亮一个LED灯任务分析根据任务要求使用单片机I/O端口控制LED灯亮。根据LED的工作原理,只要给LED两端加上正向电压就可以点亮一个灯。要想用单片机来控制LED,至少要完成以下几个工作:一、硬件工作(1)提供系统所需的电源和CPU工作所需的时钟振荡信号;(2)将单片机与LED连接起来;二、软件工作把我们的要求用单片机可以接收的语言“写”给单片机,也就是软件编程。任务一点亮一个LED灯硬件知识1.MCS
51单片机的外部引脚P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/VPDRXD/P3.0TXD/P3.1INT0/P3.2INT1/P3.3T0/P3.4T1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1VSS12345678910111213141516171819208031805187514039383736353433323130292827262521222324VCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VppALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0熟悉Keil软件的使用方法一、Keil软件概述二、Keil软件的使用(1)启动Keil双击桌面上的图标,即可启动Keil软件,启动主界面如图1-2所示。
(2)建立源文件
(3)建立工程文件
(4)工程参数设置工程建立后,还需要对工程参数进行设置,以满足要求。
(5)编译、连接、调试在设置好工程参数之后,即可进行程序编译、调试以及工程的连接。任务一点亮一个LED灯使用Proteus设计仿真电路图
本任务主要熟悉Proteus软件的使用方法。一、Proteus软件概述二、Proteus软件的初步使用任务一点亮一个LED灯二、Proteus软件的初步使用1)菜单栏:菜单栏共由12个部分组成,其功能大部分可以通过工具栏中的图标实现,编辑一般的原理图时,应用工具栏中的图标更快捷、方便。
2)原理图编辑区:原理图编辑区是用来编辑原理图的区域,启动主界面后,在该区域会出现蓝色方框,设计原理图时元件必须放到蓝色方框里面。
3)预览窗口:预览窗口主要用于单个元件和整个原理图的预览。
4)元件列表:此窗口用来显示用户所选择的元件,在需要编辑原理图时,用鼠标单击该窗口对应的元件,再单击原理图编辑区,就可以把元件添加到原理图中。5)模型工具栏:模型工具栏,顾名思义,用来选择对应的模型、配件、图形等,下面列出工具栏中部分图标的功能。
6)工具栏:工具栏中给出了对编辑窗口中的图形进行操作的快捷方式。
7)仿真工具栏:原理图完成后,可以单击仿真工具栏进行仿真运行。原理图元器件材料表序号名称型号、规格单位数量备注1UAT89S51片12J16MHZ只13C1、C230pF只24C322μF/25V只15R1270Ω只16R2200Ω只17R32K只18LEDφ5红色只19A1TC-0102只1编写程序C语言程序如下:#include<reg52.h>//包含reg.52文件sbitP1_0=P1^0;//位定义voidmain()//main函数{while(1)//while循环{P1_0=0;//点亮LED}}任务一点亮一个LED灯任务二闪烁灯
任务提出任务分析相关知识编写程序任务二闪烁灯
任务提出用单片机控制一只发光二极管灯闪烁
。任务分析使用单片机I/O端口控制LED灯闪烁,想让LED灯暗,通过单片机的连接口置低电平实现,反之,将对应端口置高电平可以点亮LED,要使得LED闪烁,单片机输出的高低电平需要有一段时间的延时。
任务二闪烁灯任务二闪烁灯C51的数据类型类型符号关键字所占位数字节数表示范围整型有(signed)short162-32768~32767(signed)int162-32768~32767(signed)long324-2147483648~2147483647无Unsigedshoutint1620~65535Unsiged
int1620~65535Unsigedlong3240~4294967295实型有float324±1.175494E-38~±3.402823E+38有double6481.7e-308~1.7e308字符型有
char81-128~127无Unsigedchar810~255任务二闪烁灯C51扩充数据类型
类
型长
度值
域说明bit位0或1位变量声明sbit位0或1特殊功能位声明sfr8位=1字节0~255特殊功能寄存器声明Sfr1616位=2字节0~65535Srf的16位数据声明*1~3字节对象的地址任务二闪烁灯C语言程序基本构架
#include<reg52.h>//引用S52单片机头文件Voidmain(void)//主程序main函数{/*在主程序中设置死循环程序,保证主程序的运行*/While(1){/*此处添加控制程序*/}}任务二闪烁灯单片机I/O口输出控制
C语言中“=”运算符是赋值运算,作用是把“=”右边的值赋给“=”左边的变量。实现单片机P0.0置低电平,写程序P0^0=0即可;实现单片机P0.0置高电平,写程序P0^0=1即可。任务二闪烁灯C语言while的使用
While一般有两种形式形式1:While(判断条件){执行语句},先进行判断,再运行执行语句。执行语句执行完,自动返回继续判断While中的条件是否符合,若符合,则继续运行执行语句;不符合,则退出循环。形式2:do{执行语句}while(判断条件),先执行语句,再进行while条件判断,如果符合条件,则返回继续执行do后的执行语句,由此形成循环。while(1){}表示判断条件一直为1(C语言中1为真),所以一直在这个循环中重复运行。任务二闪烁灯延时程序
unsignedinti;for(i=0;i<50000;i++);//延时一段时间任务二闪烁灯程序
LED闪烁C语言程序#include<reg52.h>sbitLED=P1^0;//延时函数,含有输入参数unsignedintx,无返回值unsignedint是宏定义无符号整型变量,其值的范围是0~65535
voiddelay(unsigned
intx)
{
while(x--);
}
//主函数
voidmain(void)
{
while(1)//无限循环
{
LED=0;//P1.0输出低电平,点亮LED灯
delay(2000);//调用延时函数,更改X值,相当于更改LED灯闪烁的频率
LED=1;//P1.0输出高电平,熄灭LED灯
delay(2000);//调用延时函数,更改X值,相当于更改LED灯闪烁的频率
}
}任务三广告灯的左移与右移
任务提出任务分析相关知识编写程序任务三广告灯的左移与右移
任务提出用单片机控制一组八只发光二极管灯的左右移动
任务三广告灯的左移与右移C语言的位操作位运算是指按二进制进行的运算。在系统软件中,常常需要处理二进制位的问题。C语言提供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型,见表1-3-1任务三广告灯的左移与右移
任务提出用单片机控制一组八只发光二极管灯的左右移动
表1-3-1位操作符表运算符含
义运算符含
义&按位与~取反|按位或《左移^按位异或
》右移1)&按位与如果两个相应的二进制位都为1,则该位的结果值为1,否则为02)按位或两个相应的二进制位中只要有一个为1,该位的结果值为13)^按位异或若参加运算的两个二进制位值相同则为0,否则为14)~取反~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变05)<<左移用来将一个数的各二进制位全部左移N位,右补06)>>右移将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,高位补0任务三广告灯的左移与右移电路原理图
任务三广告灯的左移与右移系统板上硬件连线
把“单片机系统”区域中的P2.0-P2.7用8根线连接到“八路发光二极管指示模块”区域中的L1-L8端口上,要求:P2.0对应着L1,P2.1对应着L2,……,P2.7对应着L8。
任务三广告灯的左移与右移程序设计
#include<reg52.h>unsignedchari;unsignedchartemp;unsignedchara,b;voiddelay(void){unsignedcharm,n,s;for(m=20;m>0;m--)for(n=20;n>0;n--)for(s=248;s>0;s--);}voidmain(void){while(1){temp=0xfe;P2=temp;delay();for(i=1;i<8;i++){a=temp<<i;b=temp>>(8-i);P2=a|b;delay();}for(i=1;i<8;i++){a=temp>>i;b=temp<<(8-i);P2=a|b;delay();}}}
任务提出任务分析相关知识编写程序任务四数码管显示
任务提出用单片机按键控制数码管静态显示数字0-9任务四数码管显示
任务分析要实现数码管静态显示数字0-9,可以利用51单片机、1个独立按键及1位7段数码管等器件,设计一个单片机输入显示系统,要求每按一下独立按键数码管显示数据加1(数码管初始值设为0,计到9后再加1,则数码管显示0)。本次设计采用12MHz的晶体振荡器为单片机提供振荡周期,外加独立按键、复位电路和显示电路组成。任务四数码管显示
数码管基础知识任务四数码管显示
数码管基础知识任务四数码管显示
数码管可以分为共阳极与共阴极两种,共阳极就是把所有LED的阳极连接到共同接点com,而每个LED的阴极分别为a、b、c、d、e、f、g及dp(小数点);共阴极则是把所有LED的阴极连接到共同接点com,而每个LED的阳极分别为a、b、c、d、e、f、g及dp(小数点),如上图所示。图中的8个LED分别与A~DP各段相对应,通过控制各个LED的亮灭来显示数字。
数码管基础知识任务四数码管显示
显示字型共阳极D7D6D5D4D3D2D1D0发光管DPGFEDCBA编码011000000C0111000000F9211110001A4310110000B0410011001995100100109261000001082711111000F88100000008091001000090显示字型共阴极D7D6D5D4D3D2D1D0发光管DPGFEDCBA编码0001111113F100000110062010110115B3010011114F401100110665011011016D6011111017D700000111078011111117F9011011116F硬件电路原理图
任务四数码管显示
电路元器件清单任务四数码管显示
元件标号元件名称所在库AT89C5151单片机MCS805174HC245数据缓冲器74HC7SEG7段数码管DISPLAYRES电阻DEVICEBUTTON按键ACTIVECAP电容DEVICECRYSTAL晶振DEVICE程序流程图任务四数码管显示
结束返回重新检测按键将单片机处理的数据进行显示单片机主控制电路向单片机申请显示0计数加1,向单片机申请显示该数值。Y是否按键?开始N程序任务四数码管显示
#include<reg52.h>#defineucharunsignedcharsbitkey=P1^0;//独立按键的位定义ucharcodeduan[]={0x3F,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};ucharnum;//记录按键的次数voiddisplay(uchar);//显示函数声明voiddelay(uchar);//延时函数声明voidmain(){
ucharnum=0; while(1)//while大循环
{
if(key==0) { delay(80);//按键消抖
if(key==0)//重新检测
{
if(num==9) num=0; else num++;
while(!key);//等待松手,松手后才能送去显示
} }
display(num); }}voiddisplay(ucharx){ P2=duan[x]; delay(1);//在1位数码管上显示 }voiddelay(uchara){
uchar
y,z;
for(y=a;y>0;y--)
for(z=150;z>0;z--);}
任务提出任务分析相关知识编写程序任务五数码管响应中断
任务提出
用单片机通过中断控制数码管依次显示数字0-9,要求每秒钟数字变化一次。
任务五数码管响应中断
任务分析要实现每秒钟数码管依次显示数字0-9,可以通过中断定时器控制1秒定时变化显示数字,也可以循环等待1秒变化显示数字,循环等待的缺点是循环等待期间不能进行其他任何扫描程序,实践应用不可取,因此本次任务选择中断定时控制。任务五数码管响应中断中断定时器MCS-51单片机内设置了两个可编程的16位定时器T0和T1,通过编程,可以设定为定时器和外部计数方式。T1还可以作为其串行口的波特率发生器。定时器T0由特殊功能寄存器TL0和TH0构成,定时器T1由TH1和TL1构成,特殊功能寄存器TMOD控制定时器的工作方式,TCON控制其运行。定时器的中断由中断允许寄存器IE,中断优先权寄存器IP中的相应位进行控制。定时器T0的中断入口地址为000BH,T1的中断入口地址为001BH。任务五数码管响应中断中断定时器定时器的编程包括:置工作方式。置计数初值。中断设置。启动定时器。定时器/计数器由四种工作方式,所用的计数位数不同,因此,定时计数常数也就不同。在编写中断服务程序时,应该清楚中断响应过程:CPU执行中断服务程序之前,自动将程序计数器PC内容(即断点地址)压入堆栈保护任务五数码管响应中断中断定时器(但不保护状态寄存器PSW,更不保护累加器A和其它寄存器内容),然后将对应的中断矢量装入程序计数器PC使程序转向该中断矢量地址单元中以执行中断服务程序。定时器T0和T1对应的中断矢量地址分别为000BH和001BH。中断服务程序从矢量地址开始执行,一直到返回指令“RETI”为止。“RETI”指令的操作一方面告诉中断系统该中断服务程序已经执行完毕,另一方面把原来压入堆栈保护的断点地址从栈顶弹出,装入到程序计数器PC,使程序返回到被到中断的程序断点处,以便继续执行。任务五数码管响应中断中断定时器因此,在编写中断服务程序时注意。1.在中断矢量地址单元放一条无条件转移指令,使中断服务程序可以灵活地安排在64K字节程序存储器的任何空间。2.在中断服务程序中应特别注意用软件保护现场,以免中断返回后,丢失原寄存器、累加器的信息。3.若要使执行的当前中断程序禁止更高优先级中断,可以先用软件关闭CPU中断,或禁止某中断源中断,在返回前再开放中断。任务五数码管响应中断程序流程图
任务五数码管
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025山西煤化所招聘1人笔试参考题库附带答案详解
- 汽车车载网络控制技术 试题库及答案 简答题
- 2024年民宿旅游项目投资申请报告代可行性研究报告
- 2025年上半年宣恩园创产业投资限公司公开招聘工作人员【7人】易考易错模拟试题(共500题)试卷后附参考答案
- 2025年上半年宜宾屏山县就业服务管理局招考(30人)易考易错模拟试题(共500题)试卷后附参考答案
- 2025年上半年安阳市滑县招考劳务派遣人员易考易错模拟试题(共500题)试卷后附参考答案
- 2025年上半年安徽马鞍山市含山博物馆招考1人易考易错模拟试题(共500题)试卷后附参考答案
- 2025年上半年安徽长安责任保险股份限公司招聘易考易错模拟试题(共500题)试卷后附参考答案
- 2025年上半年安徽省马鞍山师范高等专科学校招聘编外聘用辅导员24人易考易错模拟试题(共500题)试卷后附参考答案
- 2025年上半年安徽省歙县事业单位招考易考易错模拟试题(共500题)试卷后附参考答案
- 教科版科学四年级下册教师用书
- 娱乐主播如何转型做带货主播
- 四川省德阳市各县区乡镇行政村村庄村名居民村民委员会明细及行政区划代码
- 青岛版三年级数学下册全套单元测试卷
- (参考)食品加工操作流程图
- 2023高中物理步步高大一轮 第十章 第1讲 磁场及其对电流的作用
- 空分设备安全培训课件
- Adobe-Illustrator-(Ai)基础教程
- 没头脑和不高兴-窦桂梅.精选优秀PPT课件
- 钢栈桥计算书(excel版)
- 租赁合同审批表
评论
0/150
提交评论