找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 11310|回复: 10
打印 上一主题 下一主题
收起左侧

[求助]单片机初级的一些程序.帮忙写写..

[复制链接]
跳转到指定楼层
楼主
ID:2631 发表于 2008-6-10 20:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、运用定时器,编写流水灯程序,交叉闪烁四次,然后全闪烁2次,每次闪烁时间为0.5S。
2、数码管由0~9循环显示,每次显示时间为0.5 秒。

就两个.非常简单.但是我都不懂..

尽量都把每一步都说明..

可加我QQ:925233107

麻烦各位了!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:2631 发表于 2008-6-12 17:26 | 只看该作者

各位救救我吧.好吗?

回复

使用道具 举报

板凳
ID:2006 发表于 2008-6-12 23:44 | 只看该作者
1、解答:流水灯接在P1口,编写汇编程序如下
START:MOV    R7,#4
LOOP:MOV    P1,#0AAH
     ACALL    DELAY
     MOV    P1,#55H
     ACALL    DELAY
     DJNZ    R7,LOOP
     ACALL    DELAY
     MOV    P1,#0
     ACALL   DELAY
     MOV    P1,#0FFH
     ACALL  DELAY
     MOV    P1,#0
     ACALL    DELAY
     MOV    P1,#0FFH
DELAY:MOV    R6,#10
      MOV    TMOD,#01H
      MOV    TH0,#3CH
      MOV    TL0,#0B0H
      SETB   TR0
LP:JBC    TF0,LP1
   SJMP    LP
LP1:MOV    TH0,#3CH
    MOV    TL0,#0B0H
    DJNZ    R6,LP
    CLR    TR0
    RET
END


好困呐,第二题明天帮你解答,其实你仔细想想也不难,呵呵
回复

使用道具 举报

地板
ID:1 发表于 2008-6-12 23:45 | 只看该作者

很好 ,很不错

回复

使用道具 举报

5#
ID:2006 发表于 2008-6-14 14:42 | 只看该作者

2、解答:由于数码管的接法不同会出现编码也不同,这里数码管是共阳接法,a~h分别对应P0.0~P0.7,位控端接在P2.7,如果编码改变直接改变TABLE的值即可,位控端也可按实际硬件电路连接来修改,编写程序如下
ORG    0000H
AJMP    START
ORG    0030H
START:MOV  R7,#10
      MOV  R6,#0
      MOV  A,#TABLE
LOOP:MOV  A,R6
     MOV  A,@A+DPTR
     MOV  P0,A  
     CLR  P2.7
     LCALL  DELAY
     MOV  A,R6
     INC  A
     DJNZ  R7,LOOP
     AJMP  START
DELAY:MOV    R6,#10
      MOV    TMOD,#01H
      MOV    TH0,#3CH
      MOV    TL0,#0B0H
      SETB   TR0
LP:JBC    TF0,LP1
   SJMP    LP
LP1:MOV    TH0,#3CH
    MOV    TL0,#0B0H
    DJNZ    R6,LP
    CLR    TR0
    RET
TABLE:DB 12H,0D7H,31H,91H,0D4H,98H,18H,0D3H,10H,90H

END

[此贴子已经被作者于2008-6-15 10:32:13编辑过]
回复

使用道具 举报

6#
ID:2002 发表于 2008-6-18 20:36 | 只看该作者
START:MOV  R7,#10
      MOV  R6,#0
      MOV  A,#TABLE
  这段程序的 A 是不是要用 DPTR来代替啊
回复

使用道具 举报

7#
ID:2006 发表于 2008-6-19 23:35 | 只看该作者
楼上的说的非常对啊,写的时候太大意写错了,歹势啊

改为:
START:MOV  R7,#10
           MOV  R6,#0 
           MOV  DPTR,#TABLE
回复

使用道具 举报

8#
ID:2508 发表于 2008-6-25 23:23 | 只看该作者
以下是引用yysmcu在2008-6-19 23:35:54的发言:
楼上的说的非常对啊,写的时候太大意写错了,歹势啊

改为:
START:MOV  R7,#10
           MOV  R6,#0 
           MOV  DPTR,#TABLE



支持yysmcu,论坛高手要都向你那样有多好啊 ~希望潜水的都多多出来参与

回复

使用道具 举报

9#
ID:3271 发表于 2008-7-15 14:24 | 只看该作者
回复

使用道具 举报

10#
ID:19203 发表于 2009-12-7 17:12 | 只看该作者

#include<at89x52.h>

sbit LE=P2^2;
unsigned char i;
unsigned char table[6]={0xcc,0x66,0xcc,0x66,0x00,0x00};
unsigned char j;

void main()

  {
    LE=0;
    TMOD=0x10;
    TH0=(65536-5000)/256;
    TL0=(65536-5000)%256;
    TR0=1;
    EA=1;
    ET0=1;
 while(1); 
  }

void time() interrupt 1 using 0

  {
    i++;
    if(i==100)
      {
        P0=table[j];
        LE=1;
        LE=0;
        i=0;
        j++;
        if(j==6)
          {
            j=0;
          }
       
      }
  }

回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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