版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微控制器系统设计与应用
刘燎原
徐州建筑职业技术学院1实验
1.Keil步骤
------编程,产生.hex文件
2.Proteus步骤
------画图,加载.hex文件,仿真
3.思考题:通过按键控制灯闪烁快慢带形参的延时程序#include<AT89X52.H>//包含AT89X52.H头文件sbitLED=P1^0;//定义LED是P1.0引脚对应的变量名sbitsw=P3^0;voidDelay(unsignedintt){unsignedinti,j;for(i=0;i<t;i++){for(j=0;j<255;j++);}}voidmain(void){while(1){LED=~LED;if(sw==0)Delay(100);elseDelay(500);}}
项目二
流水灯
知识目标:1.掌握单片机的内部硬件资源2.理解并运用相关指令3.掌握微控制器的输出接口的电路形式与作用技能目标:1.掌握流水灯电路的制作2.掌握延时程序的计算和编写3.掌握LED与单片机之间的连接任务4:控制八只发光二极管按一定的规律循环点亮
八个LED如何和单片机连接?
P1口接发光二极管(LED)的阴极,P1口的管脚输出低电平时对应的发光二极管点亮。
问题:如何控制灯按顺序一个一个点亮?通过程序按一定的规律向P1口的管脚输出低电平和高电平,控制八只发光二极管循环点亮。问题:程序怎么使P1口的管脚循环输出低电平和高电平?首先要了解单片机的并行I/O口。单片机经常要和外设之间传输数据(输入,输出),P0,P1,P2,P3就是可以和外设完成并行数据传输的接口。一、P1口1.结构其1位的结构原理如图所示。P1由8个这样的电路组成锁存器起输出锁存作用,场效应管(FET)V组成输出驱动器,以增大带负载能力;三态门1是用于读锁存器端口;三态门2是引脚输入缓冲器;2.功能(1)输出(外接发光二极管)P1=0Xdata内部总线输出“0”,则D=0,Q=1,V导通,则输出点=0(2)输入(外接开关)a.读引脚A=P1读引脚脉冲有效,为高电平,把该三态缓冲器打开,这样端口引脚上的数据经过三态门缓冲器读入到内部总线。如果输入数据走该通道,那么V是否对引脚有影响?有的。如果锁存器原来寄存的数据Q=0,那么则V导通,引脚始终被嵌位在低电平,不可能输入外接电路的高电平。所以在输入前,必须用输出指令向锁存器写入“1”,使V截止(断开),保证单片机输入的电平与外接电路电平相同。所以P0口被称为一个准双向口。P1=0XFFHACC=P1复位时?b.读锁存器如:ANLP0,A称为“读-改-写”二、P0口1.结构与P1不同:多路选择开关(选择它的两种功能)V1:输出驱动器2.功能(1)输出开关连接B点,V1截止(其它同P1口)因为输出驱动器漏极开路,所以外接上拉电阻(2)输入(准双向口,先写入“1”)外接上拉电阻(其它同P1口)(3)地址/数据线开关接在A点,输出地址信号(低8位)或输出/输入数据信号不需接上拉电阻三、P2口1.结构多路选择开关(接在Q上)反相器、Q0输出驱动2.功能(1)输出(同P1口)(2)输入(同P1口)(3)地址总线(高8位)与P0口构成16位地址四、P3口1.结构2.功能(1)输出(同P1口)(2)输入(同P1口)(3)第二功能第二功能输入:缓冲器2关闭,P3口的口线状态通过缓冲器0送入“第二功能输入端”第二功能输出:Q端为高电平时,P3口的口线状态就取决于第2功能输出线的状态。P3第二功能各引脚功能定义:P3.0:RXD串行口输入P3.1:TXD串行口输出P3.2:INT0外部中断0输入P3.3:INT1外部中断1输入P3.4:T0定时器0外部输入P3.5:T1定时器1外部输入P3.6:WR外部写控制P3.7:RD外部读控制总结:准双向口通用I/O口上拉电阻(I/O口)其它用途P0口√√√数据线/低8位地址线P1口√√P2口√√高8位地址线P3口√√第二功能五、带负载能力(驱动能力)负载能力就是说能够在一定的电压(0-5V)下面能够灌入或拉出的最大电流。拉电流和灌电流是衡量电路输出驱动能力的参数,这种说法一般用在数字电路中。1.灌电流(输出低电平)当负载的另一端接VCC/VDD,输出端口输出低电平时,就会产生灌电流。就是从负载流向输出端口,“灌进去”的电流,一般是要吸收负载的电流,其吸收电流的数值叫“灌电流”。2.拉电流(输出高电平)当负载的另一端接地,输出端口输出高电平时,就会产生拉电流;就是从输出端口流向负载,“拉出来”的电流,一般是对负载提供电流,其提供电流的数值叫“拉电流”.
一般地,LSTTL即低功耗肖特基晶体管。1个LSTTL:拉电流(高电平)0.20uA,灌电流(低电平)0.35mA。所以灌电流一般它比拉电流要大得多。3.I/O口驱动能力P0:灌入,驱动8个(没有高电平能力,必须上拉电阻),2.88mAP1-3:灌入、拉,驱动4个,1.44mA51系列的芯片低电平的驱动能力比较大一点。举例说明流水灯4个引脚,每个引脚灌电流≤10mA每个端口8个引脚灌电流之和:P0≤26mAP1、P2、P3≤15mA任务4:控制八只发光二极管按一定的规律循环点亮
向右循环点亮:第一次:D1亮,P1.7输出低电平,其他都输出高电平
P1=FEH第二次:D2亮,P1.6输出低电平,其他都输出高电平
P1=FDH………第八次:D8亮,P1.0输出低电平,其他都输出高电平
P1=7FH如何编程?方法一:#include<AT89X52.H>//包含AT89X52.H头文件sbitLED=P1^0;//定义LED是P1.0引脚对应的变量名voidDelay(unsignedintt){unsignedinti,j;for(i=0;i<t;i++){for(j=0;j<255;j++);}}voidmain(void){P1=0XFF;while(1){P1=0XFE;Delay(200);P1=0XFD;Delay(200);P1=0XFB;Delay(200);P1=0XF7;Delay(200);P1=0XEF;Delay(200);P1=0XDF;Delay(200);P1=0XBF;Delay(200);P1=0X7F;Delay(200);}}方法二:(看数是否有规律?)#include<AT89X52.H>//包含AT89X52.H头文件#include<intrins.H>//intrins.H中有循环左移函数voidDelay(unsignedintt){unsignedinti,j;for(i=0;i<t;i++){for(j=0;j<255;j++);}}voidmain(void){unsignedcharm;P1=0XFF;while(1){P1=0xfe;Delay(200);for(m=0;m<8;m++){P1=_crol_(P1,1);Delay(200);}}}方法三:(数没有任何规律)#include<AT89X52.H>//包含AT89X52.H头文件sbitLED=P1^0;//定义LED是P1.0引脚对应的变量名unsignedcharcodesz1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};voidDelay(unsignedintt){unsignedinti,j;for(i=0;i<t;i++){for(j=0;j<255;j++);}}voidmain(void){unsignedcharm;while(1){for(m=0;m<8;m++){P1=sz1[m];Delay(200);}}}Code:表示数组的存储类型,存储在程序存储器任务5:8个流水灯从先从上到下逐个点亮,然后再从下到上逐个点亮,然后依次循环实验3:,K1按下,8个流水灯从上到下逐个点亮,若K1断开,8个流水灯从下到上逐个点亮,然后依次循环#include<AT89X52.H>//包含AT89X52.H头文件sbitk1=p3^0;unsignedcharcodesz1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};voidDelay(unsignedintt){unsignedinti,j;for(i=0;i<t;i++){for(j=0;j<255;j++);}}voidmain(void){unsignedcharm;while(1){if(k1==0){for(m=0;m<8;m++){P1=sz1[m];Delay(200);}}else{for(m=8;m>0;m--){P1=sz1[m-1];Delay(200);}}}关于LED的例子1.要求P1.0所接的灯闪烁#include<REG51.h> sbitLED=P1^0; voidDelay(unsignedinta) { unsignedchari; while(--a!=0){ for(i=0;i<125;i++); }}voidmain() { while(1) { LED=0; Delay(1000); LED=1; Delay(1000);
}}红色段可改写为:LED=~LED;DELAY(1000);2、八个灯循环点亮#include<REG51.h> voiddelay(unsignedinta) { unsignedchari; while(--a!=0){ for(i=0;i<125;i++); }}voidmain() {unsignedchark,i; while(1) {k=0xfe;for(i=0;i<8;i++){P1=k;delay(1000);k=k<<1;k=k|0x01;
}}}3、左右来回循环流水#include<REG51.h>#include<INTRINS.H> voiddelay(unsignedinta) { unsignedchari; while(--a!=0){ for(i=0;i<125;i++); }}voidmain() {unsignedchari,j;P1=0x7f; while(1) {for(i=0;i<8;i++){P1=_crol_(P1,1);delay(1000);
}for(j=0;j<7;j++)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年安徽省领航水下工程技术研发有限公司招聘1名(第一批次)考试备考试题及答案解析
- 2026河北保定雄安人才服务有限公司招聘综合行政专员岗位考试备考试题及答案解析
- 四川省绵阳高级技工学校崇州校区体育教师招聘考试参考题库及答案解析
- 招1人!曲麻莱县退役军人事务局2026年公益性岗位公开招聘考试模拟试题及答案解析
- 2026广东工业大学招聘工作人员19人考试备考试题及答案解析
- 2026年文学素养提升经典名著阅读理解题
- 《长方形、正方形面积的计算》教案数学课件
- 2026年石油行业采购应急处理面试题
- 2026年中医药文化与健康养生知识自测题
- 2026年银行业务员素质与技能提升题
- 2026四川德阳市什邡市教育和体育局选调高(职)中教师13人备考题库附答案详解
- 2026江西赣州市安远县东江水务集团有限公司第一批人员招聘10人备考题库含答案详解(b卷)
- 2026年花样滑冰赛事品牌建设与营销创新案例研究
- 2026年考研数学一模拟单套试卷(含解析)
- 2026年广州市黄埔区事业单位招聘笔试参考题库及答案解析
- 旅馆防偷拍工作制度
- 2026贵州贵阳市信昌融合实业发展有限公司招聘16人笔试备考试题及答案解析
- 2026年四川发展控股有限责任公司校园招聘笔试参考题库及答案解析
- 2026年辽宁省公务员省考《行政职业能力测验》真题解析
- TCCIIA 0004-2024 精细化工产品 分类
- 突发事件创伤伤员医疗救治规范2025年版
评论
0/150
提交评论