请大侠帮助单片机学习

[复制链接]
2231|3
 楼主| xiaoalex6 发表于 2010-12-15 17:36 | 显示全部楼层 |阅读模式
我学的很烂,请帮忙用C51设计定时/计数产生定时时钟,由P1口控制8个灯亮灭,使八个灯一次亮灭,每个灯亮一秒,要求每个灯闪五次,也就是说0.2S闪一次。
谢谢大侠,能告诉我,程序和流程图,这样能更好的学习。谢谢
yizhonglin86 发表于 2011-3-20 22:25 | 显示全部楼层
我不是大侠,不过这个比较简单,感觉你可以看下那个郭天祥的那个视频,自己了解了会比较深刻一点
yizhonglin86 发表于 2011-3-20 22:27 | 显示全部楼层
如果你这个还不会的,可以联系我,我也是初学者,可以相互交流
tcc8073 发表于 2011-3-21 17:37 | 显示全部楼层
本帖最后由 tcc8073 于 2011-3-21 17:40 编辑

随便写了个定时器T0方式1(中断方式)从P1.0口输出周期为0.2S的方波程序给你,按照思路自己再想想;其实程序不用老是叫人给,找本书看看,非增强型普通51中断方式也就5个,把特殊功能寄存器搞明白了就可以用了,其他的也就是个延时子程序什么的应用.
//89c52
//12M
#include<reg52.h>
sbit led=P1^0;
char tim0;
void time()interrupt 1 using 1//定时器T0中断,每50MS中断一次
  {
     EA=0;
         tim0=++tim0;
     if(tim0==2)//每0.1S做一次显示
         {
                 tim0=0;
            led=~led;
          }
         TMOD=0X01;
         TL0=(65536-50000)%256;        //50MS定时给初值
     TH0=(65536-50000)/256;        
         TR0=1;//启动定时器
         ET0=1;//开定时器中断
         EA=1; //开全局中断
  }
  void main()
   {
     
         tim0=0;
         P1=0;
     TMOD=0X01;
         TL0=(65536-50000)%256;
     TH0=(65536-50000)/256;
         TF0=0;
         TR0=1;
         ET0=1;
         EA=1;
         while(1);

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

本版积分规则

0

主题

1

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部
0