打印

51流水灯程序 问题求助

[复制链接]
1324|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fannifu|  楼主 | 2013-12-17 21:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/***************************************************************************
*
* AT89C51 流水灯程序
* 外部晶振频率12MHz
* 作者:FAN
* 创建日期:2013.12.17
*
****************************************************************************/

#include <reg51.h>
#define LED   P0
#define TIME  5000

/* 函数定义 */
void delay_ms(unsigned int ms);  //毫秒延时函数
void led_se (void);    //LED循环流动点亮函数
void rcol(void);   //循环移位函数


/* 主函数  */
void main ()
{
     LED = 0x80;
     while (1)
     {
          led_se();
     }
}


/* LED从左往右循环流动 */
void led_se (void)
{
     delay_ms(TIME);             //延时
     rcol();
   
}


/*      循环移位函数        */
void rcol (void)
{
//循环移位,嵌入汇编
    #pragma asm
        MOV A, LED
        CLR C
        RRC A
        MOV LED, A
    #pragma endasm
}


/*      毫秒延时函数         */
void delay_ms(unsigned int ms)
{
    unsigned char i;
    while(ms--)
    {
        for(i=0; i<120; i++);
    }
}

KEIL C51编译时提示

#pragma asm
#pragma endasm

这两条伪指令出错,这个参照书标准嵌入汇编的格式,不知道为什么会出错,我是新手,请高手指点

你可以直接复制到你的KEIL C51试试,会不会提示这个两错误, 不知道是不是,我电脑编译问题

也试过不用汇编,全C写的,,调试时,P0端口永远输出都是0x00,AT89C51,开始我想,是不是端口,要初始化配置,我查看过它的数据手册,它的端口好像不要初始化配置啊。

请高手指点,谢谢!

相关帖子

沙发
dirtwillfly| | 2013-12-17 21:27 | 只看该作者
估计是配置问题,你试试:
在 Project 窗口中包含汇编代码的 C 文件上右键,选择“Options for ...”,点击右边的“Generate Assembler SRC File”和
“Assemble SRC File”,使检查框由灰色变成黑色(有效)状态

使用特权

评论回复
板凳
fannifu|  楼主 | 2014-1-5 18:38 | 只看该作者
谢谢 我已经做好的,是要P0端口要接上拉。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

56

帖子

1

粉丝