简单的程序编写_第1页
简单的程序编写_第2页
简单的程序编写_第3页
免费预览已结束,剩余7页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、编程<一>.10 口输出(LED 继电器蜂鸣器)1 点亮一个LED灯#in elude <reg52.h>sbit LED = P2A0;void ma in (void)LED=0;while(1);防止跑飞2. 继电器启动#i nclude "reg51.h"sbit JDQ=P1A4;void ma in (void)JDQ=0;/P1.4引脚控制三极管再由三极管控制继电器,输出0三极管导通继电器得电吸合,输出1三极管截止继电器 失电断开while(1);3. 蜂鸣器蜂鸣#in elude <reg51.h>sbit SPK = P

2、1A5;void ma in (void)SPK=0;/P1.5引脚控制三极管再由三极管控制蜂鸣器,输出0三极管导通蜂鸣器得电,输出1三极管截止蜂鸣器失电while(1);<二>.LED灯,数码管1. LED灯一灭一亮A:#in elude <reg51.h>sbit led = P2A0;void delay(i nt m)int i;for(i=0;i<=m;i+);定义延时函数void mai n()while(1)Ied=1; delay(20000);led=0; delay(20000);B:用定时器中断亮火间隔一秒#in elude <reg5

3、2.h>#defi ne uchar un sig ned char#defi ne uint un sig ned intsbit led = P2A0;uchar num;void mai n()TMOD =0X01;TH0=(65536-45827)/256;TL0 =(65536-45827)%256;EA=1;ET0=1;TR0=1;while(1);void T0_time( )in terrupt 1 _TH0=(65536-45827)/256;TL0 =(65536-45827)%256;nu m+;if (nu m=20)num=0;led=led ;C:单一灯的左移

4、右移,八个发光二极管L1 L8分别接在单片机的 P2.0 P2.7接口上,输出“ 0”时,发光二极管亮,开始 时 P2.0tP2.1t P2.2t P2.3tt P2.7 P2.6-> P2.0 亮,重复循环。#in elude <reg52.h>un sig ned char i;un sig ned char temp;un sig ned char a,b;void delay(void)un sig ned char m,n,s;for(m=20;m>0;m-)for(n=20 ;n >0; n-)for(s=248;s>0;s-);void mai

5、 n(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();D:利用取表的方法,使端口 P1做单一灯的变化:左移 2次,右移2次,闪烁2次 (延时的时间0.2秒)。#in clude <reg52.h>un sig ned char code table=0xfe,0xfd,0xfb,0xf

6、7,0xef,0xdf,0xbf,0x7f,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0x00,0xff,0x00,0xff,0x01;un sig ned char i;void delay(void)un sig ned char m,n,s;for(m=20;m>0;m-)for(n=20 ;n >0; n-)for(s=248;s>0;s-);void mai n(void

7、)while(1)if(tablei!=0x01)如果table不等于0x01则执行下一命令P2=tablei;i+;delay();elsei=0;E:开关P3A7控制LED灯:按下灯亮松开灯灭#in elude <reg52.h>sbit K仁卩3人7;sbit L仁 P2A0;void mai n(void)while(1)if(K1=0)L1=0;elseL1=1;F:开关控制LED灯亮灭(四个按键控制八个LED灯)#includeAT89X52.H若改用reg52.h做头文件,则必须先对P2_0P2_7进行声明void mai n(void)while(1)if(P3_7

8、=0)P2_0=0;P2_l= 0;elseP2_0=1;P2_l= 1;if(P3_6=0)P2_2=0;P2_3=0;elseP2_2=1;P2_3=1;if(P3_5=0)P2_4=0;P2_5=0;elseP2_4=1;P2_5=1;if(P3_4=0)P2_6=0;P2_7=0;elseP2_6=1;P2_7=1;G:开关P3A7控制LED灯由左向右点亮(用到intrins.h函数中的_crol_命令,即循环左移的命 令,和按键消抖的编程操作)#i nclude <AT89X51.H>#in clude vintrin s.h>un sig ned char cou

9、n t,i;void delaylOms(void)un sig ned char i,j;for(i=20;i>0;i-)for(j=248;j>0;j-);void mai n(void)while(1)if(P3_7=0)/ 按键消抖delay10ms();if(P3_7=0)if(i=8)i=0;coun t=0xfe;count=_crol_ (count ,i);/count 左移 i 位P2=cou nt;i=i+1;while(P3_7=0);H:开关控制LED灯点亮(switch语句)#i nclude <AT89X51.H>void mai n ()

10、while(1)switch (P3)case 0x7f:P2_0=0;break;case 0xbf:P2_ 1=0;break;case 0xdf:P2_2=0;break;case 0xef:P2_3=0;break;case 0xf7:P2_4=0;break;case 0xfb:P2_5=0;break;2. 数码管显示数字A:动态扫描数码管亮0123 (动态扫描是靠人眼的视觉停留原理。其实数码管是一个一个亮过 去的,每个数码管显示它该现实的数字,中间只间隔十毫秒,由于断电的那几毫秒数码管有余晖,人眼看过去好像整排数码管都是量的。)#in clude<reg52.h>#d

11、efi ne uint un sig ned intun sig ned char date10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;void delay( uin t);void mai n ()while(1)P仁 0xfe;P0=0XFF; / 消影P0=date0;delay(500);P仁 0xfd;P0=0XFF;P0=date1 ; delay(500);P仁 Oxfb;P0=0XFF;P0=date2; delay(500);P仁 0xf7;P0=0XFF;P0=date3;delay(500);void dela

12、y (uint t)uint i,j;for (i=0;i>=t;i+) for(j=110;j>0;j-);B:数码管同时亮1234间隔位1s#i nclude <AT89X52.H>#in clude vintrin s.h> un sig ned char code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;un sig ned char x;un sig ned char i,j,k,m;void delay1s()误差 Ousun sig ned char a,b,c;for(c=16

13、7;c>0;c-)for(b=171;b>0;b-)for(a=16;a>0;a-);_n op_();/if Keil,require use intrin s.h void mai n(void)P1=0XF0; while(1) for(x=0;x<10;x+)P0=tablex;delay1s();C:用中断控制数码管由1-99计数,每计一个数时间为一秒#i nclude<AT89X52.H>int s,t,j;un sig ned char date10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 void delay(i nt m)int i;for(i=0;i<=m;i+);void display(void);void mai n ()s=0;t=0;EA=1;/打开总开关ET0=1;打开定时器中断TMOD=0X01;定时器模式选择(方式 1)( 16位)TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;/启动定时器while(1)while(s=20

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论