导航:首页 > 操作系统 > 51单片机p23

51单片机p23

发布时间:2022-08-15 09:09:40

A. 51单片机中 C语言 P2^3与P2.3的区别

P2^3表示的就是P2.3,但在KeilC中P2.3的表述是不合法的。其实这只是编译器的语法而已。

B. 51单片机编程,里面的引脚定义多为大写字母,怎么修改成小写的

你打开头文件“reg51.h”把端口大写的P全换成小写的就可以了。

C. 51单片机开发板和驱动模块怎么连接

我记得我回答过这个问题的,怎么又出现了。+5V和GND是电源,接到5V电源的正负极就可以了,IN1~IN4是控制IO,接到单片机的任意四个IO就可以了,比如P20到P23。

D. 51单片机,p2^3=~p2^3这样写为什么错而sbit data1=p2^3,再data1=~dara1却对了

sbit data1=p2^3是定义了一个IO口,编译时确定。在表达式中p2^3不可用,否则^也作为异或运算符,没办法区分。

E. 在单片机编程中P2_3与P23有什么区别

P2^3表示的是P2口的第四位(唯一),不可以用来表示其他别的位 P2_3是标号,可以表示P2口任意一位,也可以表示其他的位或存储单元

F. 51单片机倒计数编程

;假设条件:
;A 采用共阳极数码管
;B P2口控制LED的段码,p2.0接A段,负输出有效
;C P1口控制位码,P1.0接最高位,P1.3接最高位,负输出有效。
;D 晶振采用12M
;E 数码管显示0.5S后自动加1
;程序:
ORG 0000H
LJMP 0080H

ORG 0030H
VAR1:DS 1 ;高位数据
VAR2:DS 1 ;低位数据
VAR3:DS 1 ;数码管位状态
VAR4:DS 1 ;暂存
VAR5:DS 1 ;周期
ORG 0080H
MOV SP, #60H
;初始状态为00.00
MOV VAR1, #00H
MOV VAR2, #00H
MOV VAR3, #01H
;==关闭数码管====
MOV P1, #0FFH
MOV P2, #0FFH
MOV VAR5, #12

INT:
;==================================================
ACALL AJTDATA ;将两位数据调整成按每位输出的单独数据
ACALL OUTSIM ;数码管显示程序
;===================================================
;==以上两个小程序执行的时间约为40MS,
;所以,当延时12次以后,程序运行了480ms,
;子程序ADDONE就是等待约0.5秒后,显示数据自动加1
ACALL ADDONE
LJMP INT

ADDONE:
DJNZ VAR5, EXITADD
MOV VAR5, #12
MOV A, VAR2
CLR C
ADDC A, #01H
DA A
MOV VAR2, A
MOV A, VAR1
ADDC A, #00H
DA A
MOV VAR1, A
EXITADD:
RET

AJTDATA:
MOV R0, #VAR4
;最高位
MOV A, VAR1
SWAP A
ANL A, #0FH
MOV @R0, A

;第二位
INC R0
MOV A, VAR1
ANL A, #0FH
MOV @R0, A
;第三位
INC R0
MOV A, VAR2
SWAP A
ANL A, #0FH
MOV @R0, A
;第四位
INC R0
MOV A, VAR2
ANL A, #0FH
MOV @R0, A
RET

OUTSIM:
MOV R0, #VAR4
;送第一位
MOV A, @R0
MOV DPTR, #TABLE
MOVC A, @A+DPTR
MOV P2, A
MOV P1, #01H
ACALL DEL10 ;延时10MS,以保证数码管显示时的视觉延缓时间
;送第二位
INC R0
MOV A, @R0
MOV DPTR, #TABLE
MOVC A, @A+DPTR
ANL A, #7FH ;将最高位,即小数点位清零,让其亮
MOV P2, A
MOV P1, #02H
ACALL DEL10
;送第三位
INC R0
MOV A, @R0
MOV DPTR, #TABLE
MOVC A, @A+DPTR
MOV P2, A
MOV P1, #04H
ACALL DEL10
;送第二位
INC R0
MOV A, @R0
MOV DPTR, #TABLE
MOVC A, @A+DPTR
MOV P2, A
MOV P1, #08H
ACALL DEL10
RET

DEL10: ;10MS延时程序
MOV R6, #20
DEL1:
MOV R7, #250
DJNZ R7, $
DJNZ R6, DEL1
RET

TABLE:
DB 0C0H,0F9H,0A4H,0B0H,99H,32H,82H,0F8H,80H,90H

END

G. 51单片机如何连接4个二位数码管,只有p0口和P20-P23可以使用了。

用4个二位数码管,可以用一个8位一体的共阴数码管画仿真图更简单。用P0口和P2.0~P2.2就可以接成8位动态显示电路。方法一:用两片74HC573锁存器,这是比较典型的显示电器,用是比较多,用P0口输出数据,两片锁存器分别锁存段码和位码。如下图。

H. 关于51单片机点阵心形显示问题

首先你要搞清楚点阵显示原理。
8*8点阵要显示一个画面,通常采用扫描的形式。点阵内部发光阵列每一行的阴极连在一起,引出一条共阴线;每一纵向阳极连在一起,引出一条共阳线。这样8*8点阵就共有8条共阴线和8条共阳线。具体请参考点阵内部结构示意图!
扫描的过程:例如将共阳线作为扫描线,即每次给其中一条阳线供电,其它阳线断电。这样,在该条阳线上的LED点亮与否就取决于8条阴线的电平高低了。快速地扫描阳线,并且每扫描一条就给阴线变化相应的电平,就实现了一组图像的显示。
在你给的程序中,很明显的 tabP2是用来形成扫描输出的。你自己分析一下这些值每次是不是只发生了0这个值的移位。这是采用查表法来得到扫描功能的,每次让IO口(一组)输出这表中的一个值,最终就形成了扫描动作。至于tabP0就是对应于每一个扫描线输出的心形数据表了。每次扫描IO输出 tabP2的一个值,对应数据IO输出tabP0的一个值。
至于你说的“还有8X8点阵图中接口P23,P25,LP04,LP06,其中的LP04,LP06是不是指单片机的P04和P06接口啊?”我个人认为你应该自己有能力对这等电路进行分析了,不要一味只是单纯复制制作。只有自己尝试了解,以后才能做出更具特色的东西而不会仅仅停留在心形显示。

I. 51单片机数码管静态显示问题

点亮数码管是最基本的了。首先要学会看原理图。通过P22,P23,P24来控制38译码器先选通一个数码管,然后把段码加到P0上,就能显示了。要想显示多个数码管,就是上述方法加上延时。先显示一个数码管,再选通另一个数码管,再送段码,就能静态显示多个数码管了。

阅读全文

与51单片机p23相关的资料

热点内容
程序员神经 浏览:752
dns服务器在电脑上有什么用 浏览:915
杭州大妈喜欢程序员 浏览:686
python评论树讲解 浏览:679
juniper防火墙常用命令 浏览:426
vapp怎么下载地址 浏览:11
pdf里面内容怎么修改 浏览:807
收藏网址加密的浏览器 浏览:1000
phpurl问号 浏览:898
什么笔记本电脑可以用python 浏览:135
加密相册如何翻找 浏览:992
泰州地区DNS服务器地址 浏览:849
一种app可以买菜用英语怎么说 浏览:196
中国联通app里面通话详单怎么删除 浏览:505
计算机网络编译软件 浏览:100
程序员说不能说的秘密 浏览:700
在线shell编译器 浏览:103
为什么王者荣耀安卓转苹果成功登不上去 浏览:710
文件加密算法可行性报告 浏览:60
a3双面打印pdf 浏览:270