51单片机如何用C语言编让P1引脚全部灯亮一秒后灭再亮如此循环?(key2和key3控制)

作者&投稿:招樊 (若有异议请与网页底部的电邮联系)
51单片机控制led灯亮两秒灭一秒 用单片机编程,不用c语言。用中断和循环两种,谢谢~

您好,这样:
P0=0x00;
if(a==20)
{
a=0;
P0=0x01;
}

如果你是要实现一秒钟亮,一秒钟灭,你可以这样
D=0x00;
while(1)
{
if(a==20)
{
a=0;
D=~D;
}
}其中D是led对应的一个io口(一定要先定义D)

你把5个灯的流水程序放在主程序中的while(1)之前,即只运行一次,就可以了。

key2,key3怎么控制没有说,我就先给你写1秒亮1秒灭,定时器控制

#include<reg52.h>

void main(void)
{
TMOD=0X01;
TH0=0XD8;
TL0=0XF0;
ET0=1;
TR0=1;
EA=1;
while(1);
}

void T0() interrupt 1
{
static unsigned char i=0
TH0=0XD8;
TL0=0XF0;
i++;
if(i==100)
{
P1=0;
}
if(i==200)
{
i=0;
P1=0xff;
}
}

#include <reg52.h>
void delay(unsigned char x)
{
unsigned int a,b;
for(a=877;a>0;a--)
for(b=x;b>0;b--);
}
void main()
{
P1=0x00;
delay(350);
P1=0xff;
delay(350);
while(0);
}


单片机的C语言定时1s采用20次50ms如何表达
include<reg52.h> char count;void main(){ EA=1;ET1=1;TMOD=0x10;TH1=(65536-50000)\/256; \/\/12M晶振完成一个机器周期是1微秒 TL1=(65536-50000)%256; \/\/那么50毫秒就50000个计数 TR1=1;while(1){ if(count==20) \/\/判断是否为20次 { count=0;} } } void tim1() ...

...P1口接8个弹性按键(P1.0~S0..P1.7~S7),P2口接一数码管,用C语言...
include"reg51.h"define uint unsigned int define uchar unsigned char sbit key1=P1^0;sbit key2=P1^1;sbit key3=P1^2;sbit key4=P1^3;sbit key5=P1^4;sbit key6=P1^5;sbit key7=P1^6;sbit key8=P1^7;num=0;void delay1ms(uint z){ uchar i;while(z--)for(i=115;i>0;i...

单片机c语言
include <AT89X51.H>\/\/假定LED是安装在P2口,按键分别安装在P3.6, P3.7#defineLEDP2sbit sw1=P3^6;sbit sw2=P3^7;void SetupTimer0(){TMOD &=0XF0; \/\/仅保留T1信息TMOD |=0X02; \/\/设置T0:定时功能,方式2,自动重载8位定时器\/计数器TH0= 256-250;\/\/定时每0.25ms中断一次TL0= ...

51单片机 c语言里 _nop_ 函数怎么用 具体一点 求高手指教
在单片机c语言中直接调用库函数即可,具体如下:include<intrins.h> \/\/ 声明了void _nop_(void);_nop_(); \/\/ 产生一条NOP指令。该函数的作用:对于延时很短的,要求在us级的,采用“_nop_”函数,这个函数相当汇编NOP指令,延时几微秒。NOP指令为单周期指令,可由晶振频率算出延时时间,对于12M...

如何用C语言来实现在一个单片机上同时定义两个cc1100的引脚
我近期也是在做CC1100,所以比较了解,现与楼主共享。1,楼主的意思是不是一个单片机接了两个CC1100芯片。2,楼主的单片机型号 我以51为例子:片选引脚不一样,其他三个引脚可以共作。\/\/第一片CC1100 sbit CC1100_SI1 P1^0;sbit CC1100_SCK1 P1^1;sbit CC1100_SO1 P1^2;s...

51单片机怎么用c语言写一个按钮控制一个led的闪烁,按一下开始闪烁,再按...
ledflash(){ if(flash){ led=1;\/\/点亮 delay(100);\/\/延时100MS led=0;\/\/熄灭 } else led=0;} void delay(unsigned int i){自己根据单片机频率写个1MS带形参的演示程序} 这个程序是现写的。。应该能执行,有些细节没有写,自己修改下,只是个大框而已(比如函数声明,定义端口什么的)...

求 单片机简单的C语言程序例子(越多越好)
7. C语言源程序#include <AT89X51.H>sbit K1=P3^0;sbit L1=P1^0;void main(void){while(1){if(K1==0){L1=0; \/\/灯亮}else{L1=1; \/\/灯灭}}} 3. 多路开关状态指示 1. 实验任务 如图4.3.1所示,AT89S51单片机的P1.0-P1.3接四个发光二极管L1-L4,P1.4-P1.7接了四个...

在单片机C语言中如何对变量的某一位进行操作或赋值。
1、使用位域 在C语言中定义位域的一般格式如下:struct 位域结构名 { 位域列表 };struct:在C语言中定义位域所使用的关键字是struct。位域结构名:是一个C语言中的标识符,有字母、数字、下划线组成,而且第一个字符必须是字母或者下划线。位域列表:组其中位域列表的形式为: 类型说明符 位域名:...

如何用c语言编程实现c51单片机中从串口接收一个字符串?
四位字符,接收 用串口中断 void ck_js() interrupt 4 { unsigned char i;for(i=0;i<4;i++){ while(RI==0);\/\/等待数据接收 RI=0;\/\/手动清零 DAT[i]=SBUF;\/\/接收到的字符存放 } } 多位字符 接收函数 void seri_int() interrupt 4 { count1=0;if(RI){ unsigned ...

...中断1由单片机的引脚P3.3下降沿触发”用C语言怎么写
先在主函数里写上:IT1=1;\/\/下降沿触发 EA=1;\/\/开总中断 EX=1;\/\/开int中断 然后在主程序外面写中断服务函数 void Int1()interrupt 2 { 写入你想实现的功能 } 当你按下P3.3后 就会执行void Int1()interrupt 2 里的程序了 希望能帮到你。

准格尔旗19368423096: 51单片机如何用C语言编让P1引脚全部灯亮一秒后灭再亮如此循环?(key2和key3控制) -
璩妹健胃: key2,key3怎么控制没有说,我就先给你写1秒亮1秒灭,定时器控制#include<reg52.h>void main(void) {TMOD=0X01;TH0=0XD8;TL0=0XF0;ET0=1;TR0=1;EA=1;while(1); }void T0() interrupt 1 {static unsigned char i=0TH0=0XD8;TL0=0XF0;i++;if(i==100){P1=0;}if(i==200){i=0;P1=0xff;} }

准格尔旗19368423096: 51单片机读p1口 c语言 -
璩妹健胃: C语言很简单啊.定义一个变量: unsigned char a; //无符号字符型变量,8位 a = P1; //a=0xaa; 这样就可以了的.

准格尔旗19368423096: 在C语言编程是怎么给单片机中的存储单元赋值,还有定义I O口那? -
璩妹健胃: 这个要具体到单片机接口上,一般定义接口需要关键词sbit 比如定义P1^1引脚.一般可以这么写K=P1^1;关于给存储单元赋值这个跟C基本一样.

准格尔旗19368423096: 单片机p1口控制一个发光二极管,每5秒闪缩一次的程序怎么写? -
璩妹健胃: 51单片机p1口是8个引脚, 可控制8个发光二极管,要说明一个发光管接哪个引脚 . C语言很简单 #include<reg51.H> #define uchar unsigned char #define uint unsigned int sbit led=P1^0;//发光管接P1.0 void main ()//主程序 { while(1) { led=1; delayms(2500); led=0; delayms(2500); } } void delayms(uint i) //1ms延时程序 {uint j;for(;i>0;i--){for(j=0;j<125;j++){;}} }

准格尔旗19368423096: 单片机怎么用c语言设置I/O口输入或输出 -
璩妹健胃: IO口的输入输出是通过对单片机寄存器的配置来实现的.C51的单片机IO口本来就是双向的不需要设置.STM32单片机的IO口用C语言的设置方法如下:void LED_Config(void) { GPIO_InitTypeDef GPIO_Structure; RCC_APB2PeriphClockCmd(...

准格尔旗19368423096: 求51单片机P1口输入实验C语言版程序. -
璩妹健胃: //P2接74ls273 D0~7//P3.0 接 74ls273 clk 引脚 //P3.0 接 WR#include//52系列单片机头文件 sbit CLK=P3^0; sbit WR=P3^1; void main() //主函数 { CLK=0; WR=1; while(1) //大循环 { unsigned int time=10; P2=P1; //P2直接 读取 P1数值 CLK=1; while(time--); CLK=0 } } 试试 估计差不多

准格尔旗19368423096: 请问 有关用C语言描述单片机引脚高低电平语句,除了如P1 - 0表示p1.0口外,还有其他比较方便的表示方法吗 -
璩妹健胃: 用P1_0表示p1.0是要声明 sbit P1_0 = p1.0是吧?这样多一步变量的声明而已,用起来其实很方便呀.要是想用另外个方法的话,那就直接对p1整体赋值吧,但是这里有一点就是,对p1整体赋值但是又只想改变p1.0的值就要用与和或运算了 具体做法是:p1 = p1 | 0X80; 设置1 p1 = p1 & 0X7F; 设置0 这样看起来,还没定义变量的方便

准格尔旗19368423096: 单片机c语言编程 -
璩妹健胃: 原发布者:风闲雅1、点亮2、3、5、8四个发光二极管.(课后作业)#includesbitLED2=P1^0;sbitLED3=P1^3;sbitLED5=P1^5;sbitLED8=P1^6;main(){LED2=0;//第二盏灯亮LED3=0;//第三盏灯亮LED5=0;//第五盏灯亮LED8=0;//第八盏灯亮...

准格尔旗19368423096: 单片机I/O口,C语言怎么设置输入? -
璩妹健胃: 1、单片机的IO口缺省时一般都是双向,既可以是输入又可以是输出,C语言中判断这个口是输入还是输出要看表达式的形式,比如: sbit key=P1^0; if(key==1).....这里是作为输入的,因为是读入,再判断值 key=1;这里是作为输出,因为直接给其赋值.2、例程:P3M0=0;P3M1=127;//0-6推挽输出P1M0=0;P1M1=255; //all 推挽输出 而51单片机的所有IO引脚,在启动后默认都是1.因此,如之前没有对此引脚进行过置0操作的话,可以直接读该引脚.但为了保险起见,也为了使程序通用、可移植,最好在读取之前对此引脚置1.

准格尔旗19368423096: 请问如何让单片机(C语言编写)P1口连的八个LED灯间隔0.7秒随机点亮. -
璩妹健胃: 很简单,用rand函数和srand函数,这样将得到的值对8取余数,即rand%8,就可以点亮随机的灯了,至于其他如何点亮环节还有延时的你可以自己编写,想学单片机的人是必须学的,我也就不提示了,这只是个思路,要是全给你完整代码,你就等于没学了...好好编一个吧,,,相信你可以编出来的.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网