一乐电子

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

QQ登录

只需一步,快速开始

微信扫码登录

搜索
楼主: 社建电子

[其他综合] 做个定时插座 单片机晶振不一样怎么改程序?现在好快

[复制链接]
发表于 2013-6-11 21:56 | 显示全部楼层


强烈要求王老板把单片机板块回复加乱码的功能去掉,最多弄成注册用户可以访问单片机板块算了。
本来就是要复制粘贴代码使用的,这里弄得费功夫,贴出代码也没有参考可言了。

你是需要比原来慢,给个方便的思路你,

把原来的延时代码改成

void delay_12mhz(uchar z) }
         {
5 ?5 ^# T. I7 L9 h0 w4 a5 J//原来的代码。
          }

void delay(uchar z)
         {
5 ?5 ^# T. I7 L9 h0 w4 a5 J          uchar x;
% W' h0 s$ i$ Q) G( K. l( R' H             for(x=12;x>0;x--)//这样就是比原来多延时了12次,就慢12倍。
% P* J, W+ u3 Z              {
delay_12mhz(z)
               };
          }




点评

乱码真讨厌啊。  发表于 2013-6-11 22:53
回复

使用道具 举报

发表于 2013-6-11 22:24 | 显示全部楼层
不会STC,只会AVR+STM32!~
回复

使用道具 举报

发表于 2013-6-11 22:32 | 显示全部楼层
40560335 发表于 2013-6-11 22:24
不会STC,只会AVR+STM32!~

这有多大区别啊,还需要打个惊叹号?
回复

使用道具 举报

发表于 2013-6-11 22:45 | 显示全部楼层
本帖最后由 文句子 于 2013-6-11 22:49 编辑

delay是控制数码管扫描显示用的普通延时,只要显示还算正常就不需要改

计时由T0定时器中断直接控制,原来的是8位自载入工作方式,所以别指望(255-240)先乘后除就能搞定,8位早溢出了……要么,
在定时中断处理里重新设计合适的最小时间片,并做对应修改
要么,
改用16位工作方式,手动完成重新载入动作


回复

使用道具 举报

 楼主| 发表于 2013-6-12 08:33 | 显示全部楼层
void delay(uchar z)
        {
          uint x,y;
             for(x=z;x>0;x--)
                //for(y=74;y>0;y--);
                 for(y=123;y>0;y--); // 12/7.2
         }
...
             //TH0=(256-240);
              //TL0=(256-240);  400us中断一次
             TH0=0x38;
             TL0=0x38; //200us
...
       void t0_time() interrupt 1
       {
              b=b++;
              if(b>=2500) //if(b>=1250)  
                     //400*1250 = 0.5ms
                      {
                              b=0;
                              c=c++;
                      }





数码之家有人帮忙改的:
回复

使用道具 举报

 楼主| 发表于 2013-6-12 10:01 来自手机 | 显示全部楼层
本帖最后由 社建电子 于 2013-6-12 10:14 编辑
社建电子 发表于 2013-6-12 08:33
void delay(uchar z)
        {
          uint x,y;


程序有问题,不能正常工作,烧写原来的hex可以正常工作,只是快,看来还是找个一样的晶振算,不是想象的那么简单啊。
看看视频,后面的是烧写原来的程序。
回复

使用道具 举报

发表于 2013-6-12 11:05 | 显示全部楼层
文句子 发表于 2013-6-11 22:32
这有多大区别啊,还需要打个惊叹号?

区别大了去了,对51毫无任何概念,还有,你小题大做,叹号+虚线是我打字的习惯!~
回复

使用道具 举报

 楼主| 发表于 2013-6-12 11:13 | 显示全部楼层
失败告终。。。。。
回复

使用道具 举报

发表于 2013-6-12 12:48 | 显示全部楼层
还是直接找一个原来频率的晶振算了,
回复

使用道具 举报

 楼主| 发表于 2013-6-26 17:19 | 显示全部楼层
另外请问,驱动数码管段码怎么改在别的接口上,原来是
P1接abcdefg.
现在我想把数码管直接焊接在单片机引脚上,那样接口就不能一一对应了,可是看了半天程序,没发现哪里定义的,位码有定义引脚,段码没有。
回复

使用道具 举报

本版积分规则

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

GMT+8, 2025-8-19 12:24 , Processed in 0.032758 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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