热度 18
2013-12-17 20:56
1805 次阅读|
1 个评论
/*************************************************************************** * * AT89C51 流水灯程序 * 外部晶振频率12MHz * 作者:FAN * 创建日期:2013.12.17 * ****************************************************************************/ #include #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; i120; i++); } } KEIL C51编译时提示 #pragma asm #pragma endasm 这两条伪指令出错,这个参照书标准嵌入汇编的格式,不知道为什么会出错,我是新手,请高手指点 你可以直接复制到你的KEIL C51试试,会不会提示这个两错误, 不知道是不是,我电脑编译问题 也试过不用汇编,全C写的,,调试时,P0端口永远输出都是0x00,AT89C51,开始我想,是不是端口,要初始化配置,我查看过它的数据手册,它的端口好像不要初始化配置啊。 请高手指点,谢谢!