52单片机例程

5星(超过95%的资源)
所需积分/C币:19 2012-06-21 07:03:11 2.67MB PDF
6
收藏 收藏
举报

52单片机的例程都集中在这里了!
开始 P1.0输出“1” 熄灭 延时02秒 P1,0输出“0” 1亮 处时0.2秒 图4.1.2 6.源程序 C语言源程序 #includc <AT89X51.H> sbi Ll=P1 o void delayO2s(void∥延时0.2秒子稈序 unsigned char i, j, k for(ⅰ=20:i>0:i for(-20y>0j-) for(k-248:k>0;k-); void main(void Ll=0: delayo2so L1=1 delay02so 实验2模拟开关灯 1.实验任务 如图4.2.1所示,监视开关KI(接在P3.0端口上),用发光二极管LI(接 在单片机P1.0端口上)显小开关状态,如果开关合上,L1亮,升关打开, L1熄灭。 2.电路原理图 vCC vCL C M 口可口二 GND 名的守名 C2 品品品品品品 8回 BAEEeEEE LITh RST HN 4 Lo 30DF GND &OuF R AT89S51 GND R VCC 47K 图4.2.1 3.系统板上硬件连线 (1).把“单片机系统”区域中的P1.O端口用导线连接到“八路发光二极管指示模 块”区域中的LL端口上; 2).把“单片机系统”区域中的3.0端凵用导线连接到“四路拨动开关”区域中的 K1端口上 4.程序设计内容 (1).开关状态的检测过程 单片机对开关状态的检测相对于单片机来说,是从单片机的P3.0端口输入信号, 而输入的信号只有高电平和低电平两种,当拨开开关K1拨上去,即输入高电平, 相当开人断开,当拨动开关K1拨下去,即输入低电平,相当开关闭合。单片机 可以采用 JB BIT,REL或者是 JNB BIT,REL指令来完成对开关状态的检测即 (2).输出控制 如图3所示,当P1.0端口输出高电平,即P1.0=1时,根据发光二极管的单向 导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平,即P1.0=0 时,发光二极管L1亮;我们可以使用 SETB P1.0指令使P1.0端口输出高电平, 使用CLRP1.0指令使P1.0端山输出低电平。 5.程序框图 开始 K1开关闭合了吗? L1亮 1灭 图4.2.2 6.C语言源程序 include <at89X51.h> sbit k1=p3 0 shit li=pl o void main (void) while(1) f(K1==0) L1=0;//灯亮 else L1=1;//灯灭 实验3-多路开关状态指示 1.实验任务 如图4.3.1所示,AT8951单片机的Pl.0—P1.3接四个发光二极管LI—L4, PL.4-P1.7接了四个开关K1一K1,编程将开关的状态反映到发光二极管上。 (开关闭合,对应的灯亮,开关断开,对应的灯灭)。 2.电路原理图 R离图图k离图 20 CC 受 GND 1930B EA Y1 12ME 匡 图目ex2 30oF GND 10uF∏R 己正 0,00. 0n,00. At89S51 VCC R14 4.7K R4.7 s4.7 KAKA K3 K4 LI R7 R8 R9 20 VCO 图4.3.1 3.系统板上硬件连线 (1.把“单片机系统”区域中的P1.0-P1.3用导线连接到“八路发光二 极管指示模块”区域中的L1-L4端口上; (2.把“单片机系统”区域中的P1.4一P1.7用导线连接到“四路拨动开 关”区域中的K1一K4端凵上; 4.程序设计内容 (1.开关状态检测 对于开关状态检测,相对单片机来说,是输入关系,我们可轮流检测每个开关状 态,根据每个开关的状态让相应的发光二极管指示,可以采用JBP1.X,REL 或JNBP1.X,REL指令来完成;也可以一次性检测四路开关状态,然后让其指 小,可以采用MOVA,P1指令一次把P1端口的状态仝部读入,然后取高4位的 状态来指示。 (2.控制输出 根据开关的状态,由发光二极管L1-L4来指示,我们可以用 SETB F1.X和CLR P1.Ⅹ指令来完成,也可以采用MOVP1,#1111XX3方法一次指示。 5.程序框图 读P1口数据到A Acc内容右移4次 ACc内容与FOH相或 AcC内容送入P1口 <endif]--> 开始 读P1口数据到AC Ac内容右移4次 Ac内容与FH相或 c内容送入P1口 图43.2 6.方法一(C语言源程序) include <at89X51.h> unsigned char temp void main(void) while(1) P1>>1 temp=temp OxfO Pl=temp 7.方法二(C语言源程序) include (at89X51.h> void main(void) while(1) if(P1 4==0 P10=0 el se P10=1 if(P15=0) P11=0: se P11-1; f(P16==0) P12=0; else P12-1; i(P17=0) P13=0 el se P13=1; 10

...展开详情
试读 127P 52单片机例程
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
yfzou_10 非常不错,程序写的很清楚 易学
2012-10-23
回复
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
关注 私信
上传资源赚钱or赚积分
最新推荐
52单片机例程 19积分/C币 立即下载
1/127
52单片机例程第1页
52单片机例程第2页
52单片机例程第3页
52单片机例程第4页
52单片机例程第5页
52单片机例程第6页
52单片机例程第7页
52单片机例程第8页
52单片机例程第9页
52单片机例程第10页
52单片机例程第11页
52单片机例程第12页
52单片机例程第13页
52单片机例程第14页
52单片机例程第15页
52单片机例程第16页
52单片机例程第17页
52单片机例程第18页
52单片机例程第19页
52单片机例程第20页

试读结束, 可继续阅读

19积分/C币 立即下载 >