| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1381 人关注过本帖
标题:请单片机高手帮忙看看这个控制电路怎么用C语言来写程序?急急急!!!在线等~~
只看楼主 加入收藏
lavigne927
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-3-22
收藏
 问题点数:0 回复次数:3 
请单片机高手帮忙看看这个控制电路怎么用C语言来写程序?急急急!!!在线等~~
】 信号灯控制电路如下图(在附件中)所示,其功能是当按下不同的键时发光二极管有不同的亮灭规律。按1号键LED从左到右依次亮,按2号键从右到左依次亮,按3号键闪烁,按4号键呈流水追逐效果。
解:电路图中P1口分别接了4个开关,每个开关都有相对应的功能,当某一开关闭合时,相应的口线变为低电平,而其他口线依然为高电平,因此,可以用4条JNB指令对开关状态进行检测。如果某一按键按下,则跳转执行其所对应的控制功能。八个发光二极管经74LS04接P2口,主要因单片机的驱动能力较差,故用74LS04来加大驱动能力。P2口输出控制信号控制发光规律。
    程序设计流程图在附件里
       ORG   0000H
         MOV   SP, #60H
         MOV   P2, #00H
         MOV   P1, #0FH
  START: JNB    P1.0,  A0     ; 如P1.0键按下,就跳至A0
         JNB    P1.1,  A1     ; 如P1.1键按下,就跳至A1
         JNB    P1.2,  A2     ; 如P1.2键按下,就跳至A2
         JNB    P1.3,  A3     ; 如P1.3键按下,就跳至A3
         SJMP   START
 ********** 左移 *******************************
    A0:  MOV    DPTR, #TAB    ; 左移常数表首地址送DPTR
         ACALL  DISP
         SJMP    START
 ********* 右移 ********************************
    A1:  MOV    DPTR,  #TAB1  ; 右移常数表首地址送DPTR
         ACALL  DISP
         SJMP    START
 ********* 闪烁 ********************************
    A2:  MOV    DPTR, #TAB2   ; 闪烁常数表首地址送DPTR
         ACALL  DISP
         SJMP    START
******** 流水追逐 *****************************
    A3:  MOV    DPTR, #TAB3  ; 流水追逐常数表首地址送DPTR
         ACALL  DISP
         SJMP    START
 ********* LED显示控制子程序 *****************
  功能:根据常数表控制P2口的LED发光
  入口:常数表的地址送到DPTR
  出口:无
********************************************
  DISP:  CLR    A
         MOVC  A, @A+DPTR
         CJNE   A,#0AH,LOOP1
         RET
 LOOP1:  MOV  P2,A
         MOV    R3,#20
         ACALL  DELAY
         INC     DPTR
         JMP    DISP
 

  DELAY:  MOV   R4,#20
    D1:  MOV   R5,#248
         DJNZ    R5, $
         DJNZ    R4, D1
         DJNZ    R3, DELAY
         RET
  TAB :  DB 01H,03H,07H,0FH,1FH,3FH,7FH,0FFH,0AH          ; 左移
  TAB1:  DB 80H,0C0H,0E0H,0F0H,0F8H,0FCH,0FEH,0FFH,0AH    ; 右移
  TAB2:  DB 0FFH,00H,0FFH,00H,0FFH,00H,0FFH,00H,0AH       ; 闪烁
  TAB3:  DB 01H,02H,06H,08H,10H,20H,60H,80H,0AH           ; 流水追逐
         END
以上是汇编代码,但是用C语言怎么写啊?

[[it] 本帖最后由 lavigne927 于 2008-5-25 10:06 编辑 [/it]]

图片1.png (10.88 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册


图片2.png (16.69 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 单片机 C语言 控制电路 发光二极管 
2008-05-25 10:04
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
这种单片机的程序好象跟电脑的不一样啊

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-05-25 17:56
wuyisheng
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-5-25
收藏
得分:0 
我帮不了你,但是你的程序我收藏了!
2008-05-27 11:32
andalin
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-3-16
收藏
得分:0 
看看这个,没编译过,不过你可以参考代码如何写

at89c51_test.rar (1.03 KB)
2008-05-30 02:35
快速回复:请单片机高手帮忙看看这个控制电路怎么用C语言来写程序?急急急!!!在线 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023391 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved