当前位置:首页 » 编程语言 » p1口做输出的c语言程序
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

p1口做输出的c语言程序

发布时间: 2022-08-04 13:23:10

1. c语言汇编语言 P1口做输出口,正常时控制八只灯(P1口输出低电平 时灯被点亮)每隔0.5秒全亮全

#include<reg51.h>
#defineucharunsignedchar
ucharcnt,key=0,led1=0x00;led2=0xfe;
sbitkey1=P3^6;
sbitkey2=P3^7;
voidt0isr()interrupt1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
cnt++;
cnt%=10;
if(cnt==0)
{
switch(key)
{
case0:
P1=led1;
led1=~led1;
break;
case1:
led2=_cror_(led2,1);
P1=led2;
break;
case2:
P1=led2;
led2=_crol_(led2,1);
}
}
}
main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET0=1;
EA=1;
while(1)
{
if(key1==0)
{
while(key1==0);
key=1;
}
if(key2==0)
{
while(key2==0);
key=2;
}
}
}

2. 将汇编语言转换成C语言,急用(用P1口做为输出口,使发光二极管从右到左轮流循环点亮,)

貌似程序和你描述的不一样呢?应该是按下左键左灯亮,按下右键游等亮吧。
大概应该是这样吧,应该有的地方根据你的环境还需要改改。
#include <reg51.h>
#define KEYLEFT P1.0
#define KEYRIGHT P1.1
#define LEDLEFT P0.2
#define LEDRIGHT P0.3
int main()
{
unsigned char c;
KEYLEFT = 1;
KEYRIGHT = 1;
while(1)
{
c = KEYLEFT;
LEDLEFT = c;
c = KEYRIGHT;
LEDRIGHT = c;
}
return 0;
}

3. 单片机p1口输出数据和地址。怎么用c语言来编写。有地址和数据所存器。

两种方式,1,先位定义:sbit
a=p1^0;
表示a就代表p1.0口了,然后其它口也这么干,然后挨个幅值。2,直接用十六进制数给p1口幅值,比如0123接地,4567是高电平,直接写p1=0x0f;就行了。
读也可以直接用a=p1就行啊,提前定义好a的格式就行

4. c语言编制!!!!用P1口的工作原理,让P1口接8只发光二极管,使用各种方法实现某一只或几只发光二极管亮或灭

好简单啦。P1有八条I/O线嘛,一条各接一个LED的负极,每个LED正极串一个510欧姆电阻接Vcc。程序:设P1为输出口,写一个8位数到P1,每一位对应一个LED,写“0”点亮LED,写“1”关上LED。比如:写P1“11111101”就点亮第二个LED。

5. 1、P1 口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

#include <reg51.h>
#define LED P1 //宏定义,使用LED代替P1口(相当于LED=P1)
#define uchar unsigned char //用uchar代替unsigned char方便操作
#define uint unsigned int
/*------------------time ms延时函数-----------------*/
void delay_ms(uint time)
{
uchar tres;
for(;time>0;time--)
{
tres=150;
while(tres--);
}
}
void main()
{
uchar t;
LED=0X01;//P1=00000001B
while(1)//死循环,不停的点亮和熄灭LED
{
for(t=0;t<8;t++)
{
LED=~LED;//按位取反,点亮一个LED
delay_ms(100);//延时0.1s
LED=~LED;//按位取反
LED<<=1;//左移一位,点亮不同的LED
}
LED=0X80;//P1=10000000B
for(t=0;t<8;t++)
{
LED=~LED;//按位取反,点亮一个LED
delay_ms(100);//延时0.1s
LED=~LED;//按位取反
LED>>=1;//右移一位,点亮不同的LED
}
LED=0X01;//P1=00000001B
}
}

6. 求51单片机P1口输入实验C语言版程序。

//P2接74ls273
D0~7
//P3.0

74ls273
clk
引脚
//P3.0

WR
#include
<reg52.h>
//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
}
}
试试
估计差不多

7. 单片机C语言中,如何读取P1口的数据,并将P1口读入的数据送到P0口输出

你这个程序是对的。但是有一点忽略了:
P1口作为输入口,应该先置为ff

完整程序:
while(1)
{
P1=0xff;//这个就是忽略的地方
i=P1;
P0=i;
}

另外,下面这个也可以,以经过软件仿真通过。
P1=P0;

8. 12用C语言编制程序实现51单片机的P1口输出高电平

摘要 很高兴为您解答亲 以标准51单片机为例:

9. 单片机p1口拓展8255a用C语言怎么写程序啊8255A口是输出B口是输入C口下半部输出

P1口拓展8255写程序不如用P0口方便,因为P0是数据总线,有专门的读写指令,P1口的话,只能先使能8255,选择ABC口,再读或写P1,比较麻烦的。