一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 3260|回复: 9

【求助】请问草版翻页钟的程序,怎样修改流动的速度?

[复制链接]
发表于 2012-2-24 19:50 | 显示全部楼层 |阅读模式
可能因为我功力不够,翻看了几次程序都看不出在哪修改?我想把流水的速度改慢一点,不知怎样修改?请大家指点下,谢谢!!
发表于 2012-2-24 20:47 | 显示全部楼层
这个。。。不翻一下程序还找不出来哪里能改,
你先找找offset,offset变了就移位了,看下它变化的条件,找那地方改。
回复

使用道具 举报

发表于 2012-2-24 20:48 | 显示全部楼层
这个。。。不翻一下程序还找不出来哪里能改,
你先找找offset,offset变了就移位了,看下它变化的条件,找那地方改。
回复

使用道具 举报

发表于 2012-2-24 21:10 | 显示全部楼层
好像改哪个定时器初值可以变,但翻页速度也会变快。
回复

使用道具 举报

发表于 2012-2-24 21:27 | 显示全部楼层
本帖最后由 wckwok99 于 2012-2-24 21:30 编辑

刚刚将晶振改为12M, 测试有什么效果,

流动速度减慢了, 但显示闪烁, 个位秒不能翻页, 其余是可以翻页, 可能是速度不足, DS18B20当然不能取得数据, 显示85.

相信要在程序中加入流动速度延迟时间才可达到.

回复

使用道具 举报

发表于 2012-2-24 22:14 | 显示全部楼层
本帖最后由 wckwok99 于 2012-2-24 22:19 编辑

试了简单笨的修改方法, 流动速度减慢, 但显示有小许闪烁,

相信要在主程序中加入流动速度延迟时间才可达到.


///////////////////////////////////////////////////////////////////////////////////////////////////
void display_delay(unsigned char i){
while(i){
  display(disp_mode);
  i--;
}
}

///////////////////////////////////////////////////////////////////////////////////////////////////

void main(void)
{
Initial_DS1302();
time_to_buff_all();
    ReadTemperature(&date,39);
Timer_init();

while(1)
{
        update_buff();
        
   for(disrow=0;disrow<16;disrow++)    //disrow,
  {   
   L_STB=0;
   set_row(disrow);  //

//   display(disp_mode);
   display_delay(2);   <改数字做速度延迟


回复

使用道具 举报

 楼主| 发表于 2012-2-25 21:07 | 显示全部楼层
好像改哪个定时器初值可以变,但翻页速度也会变快。
199003326 发表于 2012-2-24 21:10 https://www.yleee.com.cn/images/common/back.gif



翻页速度变快的话,那走时就不准确了。
回复

使用道具 举报

发表于 2012-2-25 22:33 | 显示全部楼层
翻页速度变快的话,那走时就不准确了。
maxking 发表于 2012-2-25 21:07 https://www.yleee.com.cn/images/common/back.gif

    此话怎讲?走时准确性是由DS1302及其外围电路决定的,和单片机定时器没一毛钱关系。
回复

使用道具 举报

发表于 2012-2-25 22:35 | 显示全部楼层
试了简单笨的修改方法, 流动速度减慢, 但显示有小许闪烁, 相信要在主程序中加入流动速度延迟时间才可达到.
...
wckwok99 发表于 2012-2-24 22:14 https://www.yleee.com.cn/images/common/back.gif

    最好不要用软件延时,否则容易出问题。
回复

使用道具 举报

发表于 2012-3-3 13:14 | 显示全部楼层
本帖最后由 wckwok99 于 2012-3-3 13:18 编辑

回复 9# 199003326

刚测试基本可以任意调节移动速度, 并没有闪烁现象, 感觉几舒服, 大家一起研究, 红色是新修改程序,
修改如下.

bit add_flag=0;

bit dec_flag=0;

bit adj_flag=0;

bit esc_flag=0;

unsigned char ka=0,kb=0,kc=0,kd=0;
//
按键用

unsigned char speed = 5; //设定移动速度,数值越大越慢

///////////////////////////////////////////////////////////////////////////////////////////////////

void main(void)
{

unsigned char sp;


Initial_DS1302();

time_to_buff_all();

ReadTemperature(&date,39);

Timer_init();


while(1){

update_buff();


for (sp=0;sp<speed;sp++) {

     for(disrow=0;disrow<16;disrow++){    //disrow,
当前扫描的行

L_STB=0;
       set_row(disrow);   //
595的输出.依次点亮1~16.

display(disp_mode);
        L_STB=0;

       L_STB=1;

       OE=0;   //
595输出

delay_nms(1);   //此处延时,请根据点阵闪烁状况加以调整,仿真时候无法仿真闪烁.

OE=1;
}

   

回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2026-3-13 18:30 , Processed in 0.038602 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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