找回密码
 立即注册
查看: 1181|回复: 15

PWM输出影响数码管

[复制链接]

14

主题

33

回帖

216

积分

中级会员

积分
216
发表于 2024-3-20 09:50:44 | 显示全部楼层 |阅读模式
本帖最后由 alanma 于 2024-3-20 10:33 编辑

有没有老师指导下?SET8H4K的P1.0的PWM输出,但是每次PWM输出的时候,数码管的共阳COM2(P2.2)会闪烁点亮,已经排除硬件短路等问题,原因一直没找到,PWM配置的是单独的输出,数码管为共阳的三位数码管,即使把数码管全部设置为没有输出,PWM输出的时候,数码管仍然会有部分笔画闪烁显示;PWM和数码管配置,以及PWM输出控制代码如下,
;========================================================================
; 函数: F_PWM_Init
; 描述: PWM初始化程序.
;========================================================================
F_PWM_Init:
    CLR     A                   ;写 CCMRx 前必须先清零 CCxE 关闭通道
    MOV     DPTR,#PWMA_CCER1
    MOVX    @DPTR,A

    MOV     A,#068H             ;设置 PWMx 模式1 输出
    MOV     DPTR,#PWMA_CCMR1
    MOVX    @DPTR,A

    MOV     A,#03H             ;配置通道输出使能和极性
    MOV     DPTR,#PWMA_CCER1
    MOVX    @DPTR,A
    MOV     A,#2EH                ;设置PWM频率=SYSCLK/(PWMx_PSCR+1)X(PWMx_ARR+1)=2kHz (PWMx_PSCR=0  
    MOV     DPTR,#PWMA_ARRH
    MOVX    @DPTR,A
    MOV     A,#0E0H
    MOV     DPTR,#PWMA_ARRL
    MOVX    @DPTR,A

    MOV     A,#00H             ;使能 PWM1P 输出  ;初始化不输出PWM,=01输出
    MOV     DPTR,#PWMA_ENO
    MOVX    @DPTR,A
   
    MOV     A,#00H              ;高级 PWM 通道输出脚选择位, P2.0为01H,P1.0为00H
    MOV     DPTR,#PWMA_PS
    MOVX    @DPTR,A
  
     MOV     A,#080H             ;使能主输出
    MOV     DPTR,#PWMA_BKR
    MOVX    @DPTR,A
    MOV     DPTR,#PWMA_CR1
    MOVX    A,@DPTR
    ORL     A,#01H              ;开始计时
    MOVX    @DPTR,A
     
MOV     PWM1_Duty_L, #0FFH   ;占空比50%
    MOV     PWM1_Duty_H, #15H    ;数值越大,占空比越大,=20占空比70%,=14占空比44%,=17占空比50%

;========================================================================
; 函数: F_UpdatePwm
; 描述: 更新PWM占空比值.
; 参数: [PWMn_Duty_H PWMn_Duty_L]: pwm占空比值.
;========================================================================
F_UpdatePwm:
    MOV     A, PWM1_Duty_H      ;设置占空比时间
    MOV     DPTR, #PWMA_CCR1H
    MOVX    @DPTR, A
    MOV     A, PWM1_Duty_L
    MOV     DPTR, #PWMA_CCR1L
    MOVX    @DPTR, A
    RET

;=======================
HEAT:
    MOV A,TEMP_STATE    ;判断加热状态,1为加热,0为不加热
JZ  F_INT0

    CLR C
    MOV A,FLAG_TEMP
    SUBB A,#60  ;设定小于50度关闭输出
    JC  F_INT0
    CLR C  
MOV A,FLAG_TEMP
SUBB A,TEMP_NUB
JNC F_INT1

INC TEMP_DOWN_DATA    ;连续5次温度值高于设定值才关闭,补偿温度不足的问题
MOV A, TEMP_DOWN_DATA
CJNE A,#8,INT_END
MOV TEMP_DOWN_DATA ,#0H
F_INT0:
    MOV     A,#0H             ;关闭PWM输出
    MOV     DPTR,#PWMA_ENO
    MOVX    @DPTR,A            
NOP
NOP
CLR P1.0                  ;输出脚拉低         
    RET
  
F_INT1:

    MOV     A,#01H             ;使能 PWM1P 输出
    MOV     DPTR,#PWMA_ENO
    MOVX    @DPTR,A
INT_END:
RET


;======================================================
DSPLAY_Init:
    MOV DPTR,#P2DR     ;P2DR地址0FE2AH
MOV A,#07H
MOVX @DPTR,A          ; 设置P2.0-2.2强电流输出

MOV DPTR,#COMEN     ;
MOV A,#07H
MOVX @DPTR,A ; //允许3个CO

MOV DPTR,#SEGENL  ;//允许0个SEG 低字节
MOV A,#0H
MOVX @DPTR,A

MOV DPTR,#SEGENH  ;//允许8个SEG 高字节
MOV A,#0FFH
MOVX @DPTR,A
      
MOV DPTR,#LEDCTRL  ;/B7=1: ON,  B5 B4: 0共阴, 1共阳, 2共阴共阳, 3保留, B2 B1 B0: 0占空比100%, 1~7占空比7/8~1/8
MOV A,#011H
MOVX @DPTR,A

MOV DPTR,#LEDCKS   //数码管COM扫描显示的主频时钟数 = 160*9*LEDCKS, 每个COM显示时间=1440*LEDCKS/fosc(MHz) us, COM扫描频率=fosc/(1440*LEDCKS *COM数).
MOV A,#08H    //例如 fosc = 11.0592MHz, 8个COM, LEDCKS = 8, 则每个COM显示时间=1440*8/11.0592 = 1042 us, COM扫描频率=11059200/(1440*8*8)=120Hz.
MOVX @DPTR,A    //已知扫描时间t(us)计算 LEDCKS = t*fosc(MHz)/1440, 比如fosc = 24MHz, 要求1个COM扫描1ms, 则 LEDCKS = 1000*24/1440 = 16.7, 取整数17.
    RET

回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:173
  • 最近打卡:2025-05-06 17:17:05
已绑定手机

90

主题

962

回帖

2326

积分

超级版主

积分
2326
QQ
发表于 2024-3-20 10:24:27 | 显示全部楼层
排除法,先单独测试数码管
截图202403201024249035.jpg
热线19952583534
www.STCAI.com
回复 支持 反对

使用道具 举报 送花

14

主题

33

回帖

216

积分

中级会员

积分
216
发表于 2024-3-20 10:27:42 | 显示全部楼层
国学*** 发表于 2024-3-20 10:24
排除法,先单独测试数码管

只要不开PWM,数码管都是正常显示的
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:292
  • 最近打卡:2025-05-07 00:45:08
已绑定手机

2

主题

183

回帖

1254

积分

金牌会员

积分
1254
发表于 2024-3-20 13:45:31 | 显示全部楼层
本帖最后由 STCAI-32位8051 于 2024-3-21 17:33 编辑

汇编太难了。。。

点评

北京化工大学,何宾教授亲自主讲,STC创始人主持授课,正统权威。从第24集到第30集专业讲解:汇编语言程序设计,可以跟着视频一起学习 [attachimg]39101[/attachimg] 【新提醒】视频教学:《STC32位8051单片机原理  详情 回复 发表于 2024-3-21 10:16
不抛弃,不放弃
回复 支持 反对

使用道具 举报 送花

14

主题

33

回帖

216

积分

中级会员

积分
216
发表于 2024-3-21 09:35:06 | 显示全部楼层
补充说明下,我把数码管的所有寄存器清零后,
开启PWM输出后,仍然有笔画闪烁输出,
但是我把数码管的电源关闭掉(LEDCTRL的B7=0)后,
闪烁的数码管笔端才没有闪烁点亮,
PWM对应的管脚为P1.0,
对应的闪烁笔段的COM口为P2.2,对应的SEG口为P0.0
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:60
  • 最近打卡:2025-05-07 11:01:36

718

主题

1万

回帖

1万

积分

管理员

积分
15682
发表于 2024-3-21 10:02:38 | 显示全部楼层
你这还是不用 仿真器查你程序错在哪的问题 !
用 仿真器 深入进去,看你程序错在哪的手段:
单步运行运行到光标处运行到断点

截图202403211000573282.jpg

仿真STC8,STC-USB Link1D支持STC32/STC8仿真及下载 !视频讲解 - 仿真/编译器/头文件 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)


截图202403211002353427.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:34
  • 最近打卡:2025-05-07 09:55:45

25

主题

1159

回帖

2409

积分

超级版主

积分
2409
发表于 2024-3-21 10:16:42 | 显示全部楼层
李*** 发表于 2024-3-20 13:45
汇编太难了。。。

北京化工大学,何宾教授亲自主讲,STC创始人主持授课,正统权威。从第24集到第30集专业讲解:汇编语言程序设计,可以跟着视频一起学习

截图202403211014033821.jpg

【新提醒】视频教学:《STC32位8051单片机原理及应用》,何宾教授主讲 - 视频教学,《单片机原理及应用》教学改革及实践研讨会,实战技术交流会,会务通知 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区  https://www.stcaimcu.com/forum.p ... &extra=page%3D1

STC官网:https://www.stcai.com/
QQ:2593903262
微信号:18106296598
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:416
  • 最近打卡:2025-05-06 08:57:51
已绑定手机

39

主题

2010

回帖

6859

积分

论坛元老

积分
6859
发表于 2024-3-21 10:43:40 | 显示全部楼层
附件提供一份数码管显示同时PWMA端口输出PWM脉冲例子,这两个功能不会相互干扰。

截图202403211040471550.jpg

演示效果:


参考程序: 4个共阴米字数码管显示-同时PWMA输出.zip (14.24 KB, 下载次数: 106)
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:450
  • 最近打卡:2025-05-06 04:24:11

17

主题

533

回帖

1330

积分

金牌会员

积分
1330
发表于 2024-3-21 11:18:34 | 显示全部楼层
STCAI-32*** 发表于 2024-3-21 10:16
北京化工大学,何宾教授亲自主讲,STC创始人主持授课,正统权威。从第24集到第30集专业讲解:汇编语言程 ...

这两天抽空也要去看一下汇编了
自信就会温和,温和就会坚定!
回复 支持 反对

使用道具 举报 送花

14

主题

33

回帖

216

积分

中级会员

积分
216
发表于 2024-3-21 12:32:36 来自手机 | 显示全部楼层
神农鼎 发表于 2024-3-21 10:02
你这还是不用 仿真器查你程序错在哪的问题 !
用 仿真器 深入进去,看你程序错在哪的手段:
单步运行,运行 ...

仿真过,单步仿真几十个循环,都没有这个现象,怪就怪在这里,程序自己运行的时候就有{:5_271:}

点评

运行到光标处,运行到断点  详情 回复 发表于 2024-3-21 12:37
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-7 14:50 , Processed in 0.196402 second(s), 122 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表