请教高手

2019-03-24 19:43发布

本人做了个光源,遇到疑问请各位高手不吝赐教。此光源采用PWM调光,采用STC12CLE5A48S2单片机,LCD显示LED光源的亮度,定时器1作为串口波特率发生器,定时器0用来产生PWM方波。程序在不加EEPROM读写子程序,光源能正常通过按键进行调光,但是在加了EEPROM读写子程序,在有调光按键按下时,光源都会产生闪烁。听别人说,是EEPROM子程序和其他程序在占用硬件上有冲突,但是还是不懂,不知道哪边有冲突。麻烦高手指点一下,谢谢喽。如果需要程序我可以把程序附上,如果我有什么说不清楚的地方,请指出了,我可以详细再说下。再谢。 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
whwshiyuan1984
1楼-- · 2019-03-26 05:41
主函数部分
#include<STC12LE5A48S2.H>
#include<string.h>
#include<intrins.h>
#include"./INC/foreal.h"
#include"./SRC/FOREAL.c"



void InitialSystem()
{
         InitialIO();

         Initial_timer0();

         Initial_Serial();

}

void display ()
{
        display_WORD(3,1,gong);   
                  display_WORD(3,2,lv);
                power=count_up-count_down;  
                  display_digit(power);
                guangzhu (power);
}

void main()
{
         InitialSystem();
         LCD_Reset();
         NT75451_INIT();
         clear();
         Delay(600);
         EEPROM_read();
         if(count_up-count_down)
         {;}
         else
         {PCA_PWM0=0x03;}
         PWM_P13(256-(count_up-count_down)*256/100);


         while(1)
         {
          
           Key1_scan();

           Key2_scan();
           Upkey();
           Downkey();

           display ();
                          
         }

}
whwshiyuan1984
2楼-- · 2019-03-26 06:09
P1.3口实PWM输出口,输出PWM信号给LED驱动,通过按键P1.5和P1.6调节PWM的占空比对LED调光。LCD显示LED的亮度,显示的字符为“功率 50%  光柱”(像手机信号一样的光柱),在整个程序中,我把下按键处理子程序和上按键处理子程序中的EEPROM_program();给屏蔽掉,则LED能正常进行上下调节亮度,但是如果不屏蔽,则在每次调节时LED都会有闪烁,好像有了冲突,不知道为什么,麻烦讲解下,谢谢。
chunyang
3楼-- · 2019-03-26 09:35
这不叫冲突而是时间占用问题,看4楼的解释。
小小白
4楼-- · 2019-03-26 15:29
 精彩回答 2  元偷偷看……
whwshiyuan1984
5楼-- · 2019-03-26 17:01
谢谢,chunyang老师,您能帮我再详细分析下吗?我不懂具体应该怎么解决。是精简程序吗,还是怎么办?谢谢。
辛昕
6楼-- · 2019-03-26 22:27
可有软件手段回避或者减轻?

一周热门 更多>