导航:首页 > 源码编译 > 单片机p1源码

单片机p1源码

发布时间:2023-01-11 17:13:18

‘壹’ 求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
}
}

试试 估计差不多

‘贰’ 单片机中怎么定义p1=0xed的数据,怎么写

在单片机的C语言代码中,只要你引用了诸如<reg51.h>等头文件,则代码P1=0xed;就是有效的,编译下载后,单片机的P1口的电平从P1.7至P1.0就会显现出1110 1101的情况,因为头文件中已经预定义了这些I/O端口,需要注意的是一定是大写的P才能和预定义相符合,而小写的p是无效的。

‘叁’ 单片机PO P1口控制16个LED 的跑马灯程序

#include <reg52.h>
void time(unsigned int ucMs);//函数声明
void main(void)
{
unsigned char ucTimes;
#define DELAY_TIME 450
while(1)
{
P1=0xff;
P0=0xff;
for(ucTimes=0;ucTimes<8;ucTimes++){
P0 = P0 - (0x01<<ucTimes);time(DELAY_TIME);}
for(ucTimes=0;ucTimes<8;ucTimes++){
P1 = P1 - (0x01<<ucTimes);time(DELAY_TIME);}
P1=0xff;
P0=0xff;
for(ucTimes=0;ucTimes<8;ucTimes++){
P1 = P1 - (0x80>>ucTimes);time(DELAY_TIME);}
for(ucTimes=0;ucTimes<8;ucTimes++){
P0 = P0 - (0x80>>ucTimes);time(DELAY_TIME);}
}}
void time(unsigned int ucMs)
{
#define DELAYTIMES 239
unsigned char ucCounter;
while(ucMs!=0) {
for(ucCounter=0; ucCounter<DELAYTIMES; ucCounter++) { }
ucMs--;
}
}

‘肆’ 51单片机问题,想要在P1.0口输出高低比为1比2的矩形波,周期为3ms,求思路个源代码!C语言

先声明变量,然后赋值,需要先把标识符 f置0,bb置1

void timer() interrupt 1 //中断处理
{
TH0=(65536-922)/256;//1毫秒
TL0=(65536-922)%256;

aa++;

if(f==0)//先判断标识符状态
{
if(aa==bb) //判断定时是否到达1s 即 1000 ms
{
aa=0; //清空计数
bb=2; //重新赋值基准数据
LED=1; //脉冲输出
f=1; 设置标识符
}
}
if(f==1)//先判断标识符状态
{
if(aa==bb) //判断定时是否到达1s 即 1000 ms
{
aa=0; //清空计数
bb=1; //重新赋值基准数据
LED=0; //脉冲输出
f=0; 设置标识符
}
}

我只写了关于定时器中断的处理程序,其他的你应该可以弄出来

‘伍’ 51单片机读p1口 c语言

你说的恰恰是C的读取方式即:
unsigned char a;
a=P1;
汇编则是:
MOV A,P1

‘陆’ 51单片机,书上说P1口作为输入,需要写1。实验发现不写一也可以,求解释。 代码如下。

你能产生这样的疑问是很好的,说明你动脑筋了.
为什么不用写1也行呢?为什么书本上说要写1呢?
有以下两种情况:
1 你是用软件仿真的,不管是Protues还是Keil软件仿真的,都和硬件是不一样的,所以,你完全不用写
1,经常见学生画的Proteus电路,只能仿真,不能做成实物,因为电路其实是不对的,但是能仿真,也就是
说仿真与实际是不一样的.

2 你没有仿真,确实的用单片机实验了一把,那一般也不用写1,因为现在的单片机,在内部的电路结构
上已经和你书本上学到的不一样了,书本上的8051单片机是指很古老的,那个时候,P1口还是准双向
口,为了保险起见,需要先写成高电平,给P1一个稳定的状态.
这也是我们大学的悲哀,我记得07年我大三的时候,讲的单片机居然还有8031....
言归正传,现在的单片机,虽然也是准双向口,但是在上电复位后,会自动给P1---P3口一个准确的电
位,即高电平,就是说,相当于自动写1了,另外,现在的单片机,很多的51单片机,IO口是可选择的了,可以
设定为上拉,推挽.浮空输入,准双向,而且一复位的时候是浮空准入状态,这种情况的单片机,更不用写1了.

总结:就是,你被过期的教材忽悠了一下,这是我们教育的悲哀.

‘柒’ 用单片机实现当按下开关S1时,P1口的8位LED正向流水点亮,当按下S2时,P0口的8位LED反向流水点亮,求C语言代码

算法没有错,但是你忽略了些小问题——按键消抖,还有就是先一步一步来,不忙把程序一次性加上去,建议你先做闪烁灯,在闪烁灯的基础上做流水灯,然后在做按键控制闪烁灯,当上面的都没有问题了,你在按照你的算法来改成你现在要的效果!

‘捌’ 单片机源代码C语言怎么转化回汇编语言啊,就是带MOV,JMP的种

帮你转了

ORG 0000H
DB 02H
NOP
L0002H:
CPL A
RR A
INC R5
NOP
NOP
NOP
NOP
MOV R7, A
MOV R7, A
LJMP L0180H
L000EH:
MOV 89H, #01H
MOV 8CH, #0F0H
MOV 8AH, #60H
SETB 88H.4
SETB 0A8H.1
SETB 0A8H.7
CLR A
MOV 08H, A
MOV 09H, A
MOV 80H, #14H
MOV 0CH, A
MOV R6, 0AH
MOV R7, 0BH
MOV R4, A
MOV R5, #0AH
LCALL L01DEH
MOV 0DH, R7
MOV R6, 0AH
MOV R7, 0BH
MOV R4, #00H
MOV R5, #0AH
LCALL L01DEH
MOV 0EH, R5
MOV 0FH, 09H
L0043H:
CLR C
MOV A, 0BH
SUBB A, #14H
MOV A, 0AH
SUBB A, #00H
JNC L0052H
MOV R7, #01H
SJMP L0054H
L0052H:
MOV R7, #00H
L0054H:
JB 0B0H.1, L005BH
MOV R6, #01H
SJMP L005DH
L005BH:
MOV R6, #00H
L005DH:
MOV A, R7
ANL A, R6
JZ L008CH
MOV R3, #0F5H
L0063H:
DJNZ R3, L0063H
JB 0B0H.1, L008CH
MOV A, 09H
XRL A, #09H
ORL A, 08H
JNZ L007FH
INC 0BH
MOV A, 0BH
JNZ L0078H
INC 0AH
L0078H:
CLR A
MOV 08H, A
MOV 09H, A
SJMP L0087H
L007FH:
INC 09H
MOV A, 09H
JNZ L0087H
INC 08H
L0087H:
INC 80H
L0089H:
JNB 0B0H.1, L0089H
L008CH:
JB 0B0H.0, L00D4H
MOV R3, #0F5H
L0091H:
DJNZ R3, L0091H
JB 0B0H.0, L00D4H
MOV A, 09H
ORL A, 08H
JNZ L00ACH
MOV A, 0BH
DEC 0BH
JNZ L00A4H
DEC 0AH
L00A4H:
MOV 08H, #00H
MOV 09H, #09H
SJMP L00B4H
L00ACH:
MOV A, 09H
DEC 09H
JNZ L00B4H
DEC 08H
L00B4H:
CLR C
MOV A, 0BH
SUBB A, #02H
MOV A, 0AH
SUBB A, #00H
JNC L00CFH
MOV 0AH, #00H
MOV 0BH, #02H
CLR A
MOV 08H, A
MOV 09H, A
DB 75H, 80H
L00CCH:
DEC A
SJMP L00D1H
L00CFH:
DEC 80H
L00D1H:
JNB 0B0H.0, L00D1H
L00D4H:
MOV R6, 0AH
MOV R7, 0BH
MOV R4, #00H
MOV R5, #0AH
LCALL L01DEH
MOV 0DH, R7
MOV R6, 0AH
MOV R7, 0BH
MOV R4, #00H
MOV R5, #0AH
LCALL L01DEH
MOV 0EH, R5
MOV 0FH, 09H
LJMP L0043H
L00F4H:
MOV R0, #7FH
CLR A
L00F7H:
MOV @R0, A
DJNZ R0, L00F7H
MOV 81H, #0FH
LJMP L013BH
L0100H:
LJMP L000EH
L0103H:
CLR A
MOVC A, @A+DPTR
INC DPTR
MOV R0, A
L0107H:
CLR A
MOVC A, @A+DPTR
INC DPTR
JC L010FH
MOV @R0, A
SJMP L0110H
L010FH:
MOVX @R0, A
L0110H:
INC R0
DJNZ R7, L0107H
SJMP L013EH
L0115H:
CLR A
MOVC A, @A+DPTR
INC DPTR
MOV R0, A
ANL A, #07H
ADD A, #0CH
XCH A, R0
CLR C
RLC A
SWAP A
ANL A, #0FH
ORL A, #20H
XCH A, R0
MOVC A, @A+PC
JC L012DH
CPL A
ANL A, @R0
SJMP L012EH
L012DH:
ORL A, @R0
L012EH:
MOV @R0, A
DJNZ R7, L0115H
SJMP L013EH
AJMP L0002H
INC A
INC R0
JBC 20H, L017AH
DB 80H
L013BH:
MOV DPTR, #0003H
L013EH:
CLR A
MOV R6, #01H
MOVC A, @A+DPTR
JZ L0100H
INC DPTR
MOV R7, A
ANL A, #3FH
JNB 0E0H.5, L0154H
ANL A, #1FH
MOV R6, A
CLR A
MOVC A, @A+DPTR
INC DPTR
JZ L0154H
INC R6
L0154H:
XCH A, R7
ANL A, #0C0H
ADD A, 0E0H
JZ L0103H
JC L0115H
CLR A
MOVC A, @A+DPTR
INC DPTR
MOV R2, A
CLR A
MOVC A, @A+DPTR
INC DPTR
MOV R0, A
L0165H:
CLR A
MOVC A, @A+DPTR
INC DPTR
XCH A, R0
XCH A, 82H
XCH A, R0
XCH A, R2
XCH A, 83H
XCH A, R2
MOVX @DPTR, A
INC DPTR
XCH A, R0
XCH A, 82H
XCH A, R0
XCH A, R2
XCH A, 83H
XCH A, R2
L017AH:
DJNZ R7, L0165H
DJNZ R6, L0165H
SJMP L013EH
L0180H:
PUSH 0E0H
PUSH 83H
PUSH 82H
PUSH 0D0H
MOV 0D0H, #00H
MOV 8CH, #0F0H
MOV 8AH, #60H
MOV A, 0CH
JNZ L01AFH
MOV A, 0DH
JZ L01CBH
MOV A, 0CH
MOV DPTR, #0244H
MOVC A, @A+DPTR
MOV 0A0H, A
MOV A, #0DH
ADD A, 0CH
MOV R0, A
MOV A, @R0
MOV DPTR, #0233H
MOVC A, @A+DPTR
MOV 90H, A
SJMP L01CBH
L01AFH:
MOV A, 0CH
MOV DPTR, #0244H
MOVC A, @A+DPTR
MOV 0A0H, A
MOV A, #0DH
ADD A, 0CH
MOV R0, A
MOV A, @R0
MOV DPTR, #0233H
MOVC A, @A+DPTR
MOV 90H, A
MOV A, 0CH
CJNE A, #01H, L01CBH
ORL 90H, #80H
L01CBH:
INC 0CH
MOV A, 0CH
CJNE A, #03H, L01D5H
MOV 0CH, #00H
L01D5H:
POP 0D0H
POP 82H
POP 83H
POP 0E0H
RETI
L01DEH:
CJNE R4, #00H, L01ECH
CJNE R6, #00H, L020DH
MOV A, R7
MOV 0F0H, R5
DIV AB
MOV R7, A
MOV R5, 0F0H
RET
L01ECH:
CLR A
XCH A, R4
MOV R0, A
MOV 0F0H, #08H
L01F2H:
MOV A, R7
ADD A, R7
MOV R7, A
MOV A, R6
RLC A
MOV R6, A
MOV A, R4
RLC A
MOV R4, A
MOV A, R6
SUBB A, R5
MOV A, R4
SUBB A, R0
JC L0206H
MOV R4, A
MOV A, R6
SUBB A, R5
MOV R6, A
INC R7
L0206H:
DJNZ 0F0H, L01F2H
CLR A
XCH A, R6
MOV R5, A
RET
L020DH:
MOV A, R5
MOV R0, A
MOV 0F0H, A
MOV A, R6
DIV AB
JB 0D0H.2, L0232H
MOV R6, A
MOV R5, 0F0H
MOV 0F0H, #08H
L021CH:
MOV A, R7
ADD A, R7
MOV R7, A
MOV A, R5
RLC A
MOV R5, A
JC L022BH
SUBB A, R0
JNC L022DH
DJNZ 0F0H, L021CH
RET
L022BH:
CLR C
SUBB A, R0
L022DH:
MOV R5, A
INC R7
DJNZ 0F0H, L021CH
L0232H:
RET
ADDC A, R7
INC @R0
ANL A, R3
ORL A, R7
XRL A, @R0
XRL A, R5
MOV R5, #07H
MOV R7, #6FH
MOV @R1, #7CH
ADDC A, R1
ANL A, R6
MOV R1, #71H
NOP
MOV R6, A
MOV R5, A
MOV R3, A
MOV R7, A

END

‘玖’ 点亮d37发光二极管的单片机代码是什么

实验(二):本程序的功能是点亮一个发光二极管#includeVoid main(){P1=0xfe;While(1);}实验(三):本程序的功能是点亮三个发光

阅读全文

与单片机p1源码相关的资料

热点内容
广东编程猫学习班 浏览:704
上海数控编程培训学校 浏览:311
怎么下载我的解压神器 浏览:632
lib文件无用代码会编译吗 浏览:26
我的世界嗨皮咳嗽服务器怎么下 浏览:1000
mvn命令顺序 浏览:978
车贷还完多少时间解压 浏览:964
java页面开发 浏览:816
学编程的小发明 浏览:25
为什么说程序员喜欢格子 浏览:253
代码编译后叫什么 浏览:969
电脑文件夹做了保护怎么删除 浏览:678
php数据库连接全局 浏览:528
葫芦岛有程序员吗 浏览:986
小胖机器人显示无命令 浏览:775
一日一画pdf 浏览:99
编程猫拔萝卜文字评价模板 浏览:254
cmdjava命令 浏览:239
扫描版pdf转文字版 浏览:536
单片机专用寄存器 浏览:502