173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

单片机1到f循环

htxw 2023-03-14 资讯中心 26 ℃

单片机高手帮我查下这个程序 为何数码管不亮 原意是让数码管从1到f 间隔500m

位选 驱动写法明显错误,多个数字重叠 导致 所有 LED段 点亮 ,那就只能显示 888888

单片机七段数码管循环显示0-FC语言程序

这要看你的数码管是共阴还是共阳的哈。还有和单片机IO口的链接情况。然后对应IO口将相应的''0-F编码。

如下面是我的开发板的一位数码管的显示程序,你在上面做些修改就是了哈!

#include reg51.h

#include intrins.h

#define NOP() _nop_() /* 定义空指令 */

void delay(unsigned int i); //函数声名

// 此表为 LED 的字模

unsigned char code LED7Code[] = {~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F,~0x77,~0x7C,~0x39,~0x5E,~0x79,~0x71};

main()

{

unsigned int LedNumVal=1 ,C ; //定义变量

while(1)

{

if (++C= 300)

{ LedNumVal++ ; //每隔300个扫描周期加一次

C =0; //每隔300个扫描清零

}

// 将字模送到P0口显示

P0 = LED7Code[LedNumVal%10]0x7f; //LED7 0x7f为小数点 共阴和共阳此处也是不一样;

delay(150); //调用延时程序

}

}

/*****************************************************************

* *

* 延时程序 *

* *

*****************************************************************/

void delay(unsigned int i)

{

char j;

for(i; i 0; i--)

for(j = 200; j 0; j--);

}

单片机控制数码管1 按键控制开始、数码管循环显示0-F.时间间隔为1s的程序及硬件图

P1口外接共阳极的8段数码显示器。

P3.2外接一个按键,按下后,接地,用来起动.

ORG 0000H

JB P3.2, $

MOV R2, #0

LOOP:

INC R2

MOV A, R2

ANL A, #0FH

MOV DPTR, #TAB

MOVC A, @A+DPTR

MOV P1, A

LCALL DL500MS

LCALL DL500MS

SJMP LOOP

TAB:

DB 0c0H,0f9H,0a4H,0b0H, 99H, 92H, 82H,0f8H

DB 80H, 90H, 88H, 83H,0c6H,0a1H, 86H, 8eH

DL500MS:

MOV R5, #100

MOV R6, #10

MOV R7, #248

NOP

DJNZ R7, $

DJNZ R6, $ - 5

DJNZ R5, $ - 9

RET

用51单片机汇编语言,数码管静态轮流显示1~F

错误给你找到了,由于在查显示编码表时 要不断地使用累加器A, 累加器A不能用来保存要轮流要显示的数据,可以改用R4.

ORG 0000H

TT: MOV R4,#0 ;循环16次

KK: MOV A,R4

MOV DPTR,#TABLE ;存入表的起始地址

MOVC A,@A+DPTR ;按地址取代码并存入A

MOV P0,A ;将代码送P0转变为数字显示

INC R4

LCALL DELAY

CJNE R4,#16,KK

AJMP TT

TABLE: DB 0FCH,60H,0DAH,0F2H ;代码表

DB 66H,0B6H,0BEH,0E0H

DB 0FEH,0F6H,0AAH,3EH

DB 9CH,7AH,9EH,8EH

DELAY: MOV R1,#25 ;延时

L1: MOV R2,#50

L2: MOV R3,#250

L3: DJNZ R3,L3

DJNZ R2,L2

DJNZ R1,L1

RET

51单片机汇编语言如何用定时器中断实现数码管从0-F每秒进1且循环进行。

51单片机汇编语言,用定时器中断实现数码管从0-F每秒进1且循环进行。

电路与程序如下:

由于条件不足,晶振频率不明,所以,本程序没有精确定时。

提问者采纳的答案是错误的。

题目要求显示 0~F,这就需要 16 个七段码。

而采纳答案中,并没有写全。

单片机1到f循环的介绍就聊到这里吧,感谢您花时间阅读,谢谢。

本文标签:单片机1到f循环

<