导航:首页 > 操作系统 > 单片机p1口程序

单片机p1口程序

发布时间:2024-09-29 13:07:15

A. 求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
}
}

试试 估计差不多

B. 编程:使用单片机P1口控制8个LED。显示方式:自上而下逐个点亮,再自下而上逐个点亮,如此循环

给你个简单点的
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN: MOV P1,#01111111B ;P1口低电平 对应灯亮 点亮P1.7对应的LED
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况
MOV P1,#10111111B
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况
MOV P1,#11011111B
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况
MOV P1,#11101111B
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况
MOV P1,#11110111B
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况
MOV P1,#11111011B
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况
MOV P1,#11111101B
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况
MOV P1,#11111110B;点亮P1.0对应LED
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况
MOV P1,#11111110B
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况
MOV P1,#11111101B
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况
MOV P1,#11111011B
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况
MOV P1,#11110111B
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况
MOV P1,#11101111B
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况
MOV P1,#11011111B
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况
MOV P1,#10111111B
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况
MOV P1,#01111111B
LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况
SJMP MAIN
;延时250ms子程序
DLY_250MS:MOV R5,#5
DLY1: MOV R6,#100
DLY0: MOV R7,#250
DLY: DJNZ R7,DLY
DJNZ R6,DLY0
DJNZ R5,DLY1
RET
;延时500ms子程序
DLY_500MS:MOV R4,#2
DLY2: LCALL DLY_250MS
DJNZ R4,DLY2
RET
END

C. 用五一单片机c语言编程,p1口控制八个发光二极管,实现每隔一秒,两两点亮,并循环。

一、#include<reg51.h>

void delay(unsigned char Xms)//延时Xms

{

int i,j;

for(X = i; X>0; X--)

for(j=110;j>0;j--);

}

void main()

{

P0 = 0x00; //P0.0~P0.7分别接八个发光二极管,刚开始全灭

while(1)

{

delay(1000);

P0 = 0xc0;//点亮前两个发光二极管P0.0和P0.1;

delay(1000);//延时1秒

P0 = 0x30;//点亮第三个和第四个LED

delay(1000);

P0 = 0x0c;

delay(1000);

P0 = 0x03;

}

}

二、

#include <reg52.h>

#include <intrins.h>

#define uchar unsigned char

#define uint unsigned int

uchar temp, t0, t1;

bit t2;

sbit P10 = P1^0;

void main()

{

P10 = 1;

temp = 0xfe;

P0 = temp;

P2 = 0xff;

TMOD = 0x01;

TH0 = (65536 - 50000) / 256;

TL0 = (65536 - 50000) % 256;

ET0 = 1;

EA = 1;

TR0 = 1;

while(1);

}

void timer0() interrupt 1

{

TH0 = (65536 - 50000) / 256;

TL0 = (65536 - 50000) % 256;

t0++;

if(t0 == 10) {

t0 = 0;

t1++;

if(t1 == 8) {t1 = 0; t2 = ~t2; P10 = t2;}

temp = _crol_(temp, 1);

if(t2) {P0 = temp; P2 = 255;}

else {P2 = temp; P0 = 255;}

}

}

(3)单片机p1口程序扩展阅读:

例如:a = 3,b = 5,现交换a,b的值,这个问题就好像交换两个杯子里面的水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为:c = a; a = b; b = c;执行结果是a = 5,b = c = 3如果改变其顺序,写成:a = b; c = a; b =c;则执行结果就变成a = b = c = 5,不能达到预期的目的,初学者最容易犯这种错误。

顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算、输出三步曲的程序就是顺序结构,例如计算圆的面积,其程序的语句顺序就是输入圆的半径r,计算s = 3.14159*r*r,输出圆的面积s。

D. 单片机的P1端口输出控制8个指示灯LED0~LED7,写出指示灯LED0到LED7依次流水灯显示的程序。

与你LED接法有关,输出1 LED亮 还是输出0 LED亮
假设输出1 LED亮,程序如下:
#include<REG51.H>
#define uchar unsigned char
#define uint unsigned int
void delay1ms(uint i) //1ms延时程序
{

uint j;
for(;i>0;i--)
{
for(j=0;j<125;j++)
{;}
}
}
void main(void)//主程序

{
uchar i;
while(1)
{

for(i=0;i<8;i++)
{
P1=0x01<<i;
delay1ms(500);

}
}
}

阅读全文

与单片机p1口程序相关的资料

热点内容
代理服务器的地址端口号码 浏览:163
程序员给领导提意见 浏览:460
哪里可以看夏木的电影app 浏览:452
如何辨别原装数据线安卓 浏览:631
手机pc游戏解压教程 浏览:696
安卓怎么设置高清动态壁纸 浏览:777
古剑七存档文件夹 浏览:376
mom服务器下载文件命令 浏览:277
office编程教程 浏览:672
为何称加密锁为加密狗 浏览:558
阿里云服务器远程异常 浏览:290
世界上最大的魔方解压球 浏览:417
书籍编译器下载 浏览:715
rosmoveit编程 浏览:198
人人讲app怎么使用 浏览:293
android查看文件工具 浏览:943
女程序员化妆视频大全 浏览:745
录音笔如何修改文件夹 浏览:645
八爪鱼数据采集加密文字替换 浏览:84
android系统运行动态编译的程序 浏览:420