我是靠谱客的博主 刻苦猫咪,最近开发中收集的这篇文章主要介绍Keil C中 error C141: syntax error near ‘=‘, expected ‘__asm‘,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
1、此段代码为对89C52单片机的定时器T0编程,设计的一段时钟代码。
#include<reg52.h>
unsigned char code ledcode[]={0x3f,0x5b,0x4f,0x66,0x7d,7,0x7f,0x6f}; //共阴极0-9的段选码
unsigned char data hou,min,sec,num,disbuf[]={0,0,10,0,0,10,0,0}; //时分秒,num为T0中断次数,disbuf为显示的各位数
#define codport P0; //显示段码输出口
#define sitport P2; //显示位码输出口
void display() //显示函数
{
unsigned int j; //用于循环
unsigned char i,scan; //scan为输出的控制显示位的位码,也称扫描码
scan=0x01;
for(i=0;i<6;i++)
{
codport=0; //显示新内容前,先清屏,否则在Proteus中会显示错乱
codport=ledcode[disbuf[i]]; //要显示的数送断码口
sitport=~scan; //位码口低电平对应位有效,点亮
scan=(scan<<1);
for(j=0;j<500;j++);
}
}
2、在下列程序中,编译显示报错
clock.c(14): warning C275: expression with possibly no effect
clock.c(14): error C141: syntax error near ‘=’, expected ‘__asm’
clock.c(15): error C141: syntax error near ‘=’, expected ‘__asm’
clock.c(16): error C141: syntax error near ‘=’, expected ‘__asm’
clock.c - 3 Error(s), 1 Warning(s).
定位发现出错的是
codport=0; //显示新内容前,先清屏,否则在Proteus中会显示错乱
codport=ledcode[disbuf[i]]; //要显示的数送断码口
sitport=~scan; //位码口低电平对应位有效,点亮
3、由于对codport和sitport需要进行的是位操作,则将修改宏定义为
#include<reg52.h>
unsigned char code ledcode[]={0x3f,0x5b,0x4f,0x66,0x7d,7,0x7f,0x6f}; //共阴极0-9的段选码
unsigned char data hou,min,sec,num,disbuf[]={0,0,10,0,0,10,0,0}; //时分秒,num为T0中断次数,disbuf为显示的各位数
sibt codport=P0; //显示段码输出口
sbit sitport=P2; //显示位码输出口
4、修改后编译成功
最后
以上就是刻苦猫咪为你收集整理的Keil C中 error C141: syntax error near ‘=‘, expected ‘__asm‘的全部内容,希望文章能够帮你解决Keil C中 error C141: syntax error near ‘=‘, expected ‘__asm‘所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复