
sbit led_en_port = P2^5; /定义发光二极管控制脚/
sbit led_ch_en_port = P3^7; /定义发光二极管通道控制脚/
这两句是什么意思??定义它有什么用?
这两句的意思是:定义P2^5引脚,程序中只要对led_en_port赋值,就是对P2^5引脚控制,P3^7同理。
uchar sled_disp_buff[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
这些数据时怎样得到的
这个是数码管的码表,根据数码管的共阴共阳,选择点亮数码管的哪几段,才可以显示出1,2,3,4。。。这样的数字。 可以自己花个图写出来,或者去网站上下载数码管小工具。
SET //将RLO(逻辑运算结果保存位)位置1,
SAVE //将RLO结果保存到BR位,以保证下面的程序可以执行。
= L 01 //将RLO位保存到L01临时存储区位
L #IN3 //装载#IN3这个变量到ACC1
SAVE //将RLO结果保存到BR位,以保证下面的程序可以执行。
ITD //将ACC 1中的数值转换为双整数
DTR //将ACC1的双整数转为浮点数,最终#IN3变成了浮点数,保存在了ACC1
SAVE //将RLO结果保存到BR位
L 1000000e+001 //装载100到ACC2
/R //ACC2除以ACC1,也就是100除以#IN3变量,结果保存在ACC1
JO M001 //如果有溢出那么跳转到M001
JU M002 //如果没有溢出那么跳转到M002
M001: CLR //清除RLO位
= L 01//RLO结果暂存到L01临时存储区
M002: T #IO9 //将ACC1的数据传送给#IO9变量
CLR //清除RLO位
A #STAT65 //检查#STAT65是否为1
NOT //对RLO取反
A #IN0 //检查#IN0是否为1
JCN M003 //如果以上逻辑运算结果为0跳转到M003
L #IO9 //如果逻辑运算结果为1,那么装载#IO9
T #STAT66 //将#IO9传送给#STAT66
L #IO9 //装载#IO9
T #IO10 //将#IO9传送给#IO10
L 0000000e+000 //装载00
T #STAT67 //创送00给#STAT67
M003: CLR //清零RLO
import javautilDate;//导入jar里面日期路径
import javautilList; //导入jar里面List集合路径
import javautilArrayList;//导入jar里面ArrayList集合路径
public class ArrayListTest { // 创建类
public static void main(String[] args) {//添加程序入口方法
// TODO Auto-generated method stub//方法注解
News news1 = new News();//实例化News对象 并起个别名news1
news1setId(1); //调用news1 对象setId方法给news1对象的id属性赋值
news1setTitleName("F4"); //同上
news1setCreater("英皇集团");//同上
news1setCreateTime(new Date());//同上
News news2 = new News(); //实例化News对象 并起个别名news2
news2setId(2); //调用news1 对象setId方法给news1对象的id属性赋值 news2setTitleName("披头士"); //同上
news2setCreater("BBC集团");//同上
news2setCreateTime(new Date());//同上
//集合添加对象
//泛型
Systemoutprintln("----------jdk 15 泛型---------------------");//输出控制台信息
List<News> list = new ArrayList<News>(); //实例化一个ArrarList集合对象 别名list
listadd(news1);
listadd(news2); //分别把上面创建并已经赋值过的两个对象存放在list集合对象中
// listadd(new Date()); //注释 再添加一个当前日期到list集合中
News news3 = new News(); //实例化一个News对象 别名news3
news3setId(333);
news3setTitleName("333披头士");
news3setCreater("333集团");
news3setCreateTime(new Date());
listadd(1,news3);
Systemoutprintln("长度 :"+listsize());
Systemoutprintln(list);
if(listcontains(new News())){ //调用list集合listcontains()这个方法,去比较当前list里面存放的内容是不是new News这个类的实例
Systemoutprintln(news3getId()+" : id "+news3getTitleName()+" : name " +news3getCreateTime()toLocaleString()); /输出new3对象的相关信息到控制台
}
for(int i=0;i<listsize();i++){//使用for循环对list进行遍历
News n=(News)listget(i);//循环取值
Systemoutprintln(ngetId()+" : id "+ngetTitleName()+" : name " +ngetCreateTime()toLocaleString());//循环打印输出到控制台
}
Systemoutprintln("-------------------------------");
// listremove(2);
Systemoutprintln("-------------------------------");
for(int i=0;i<listsize();i++){
News n=(News)listget(i);
Systemoutprintln(ngetId()+" : id "+ngetTitleName()+" : name " +ngetCreateTime()toLocaleString());
}
Systemoutprintln("---------for新特性----------------------");
for(Object obj :list){ //使用增强for循环去遍历list
News n=(News)obj;
Systemoutprintln(ngetId()+" : id "+ngetTitleName()+" : name " +ngetCreateTime()toLocaleString());
}
}
}
首先你的代码有两处错误
#include <stdioh>
int main() //这里的int指返回类型为:int,即整数类型,但是你在这个函数最 //后没有返回任何数据,所以错误
//修改方式有两种①:吧int改为void,即无返回类型
//②:在 printf("\n");后面加一句 return 0;
{
int i=5;
void palin(int n);
printf("请输入5个字符:");
palin(i);
printf("\n");
}
void palin(n) //这里palin()括号内的变量n需要定义一个类型,但是你吧它写在了下面
int n;
{
char next;
if(n<=1) {
next=getchar();
printf("相反顺序输出结果:");
putchar(next);
} else {
next=getchar();
palin(n-1);
putchar(next);
}
}
-------------------------------------------分割线-----------------------------------------
下面是正确的代码及注释
#include <stdioh> //编译预处理
int main() //main函数声明
{
int i=5; //定义一个变量i,并赋初值5
void palin(int n); //声明palin函数,无返回值,定义整型参数n
printf("请输入5个字符:"); //输出语句,输出一句话:请输入5个字符:
palin(i); //调用palin函数
printf("\n"); //输出语句,\n代表换行,dos窗口程序走到这里光标会换行
return 0; //返回0,
}
void palin(int n){ //函数实现,{ }里的代码是函数体
char next; //定义一个char类型变量
if(n<=1) { //分支判断语句,如果n<=1就执行 { }里的代码,否则就 //执行 else { }里的代码
next=getchar(); //吧从控制台输入的字符赋值给next字符变量
printf("相反顺序输出结果:"); //输出一句话,没什么好讲的,同上
putchar(next); //吧next的值输出
} else {
next=getchar(); //吧从控制台输入的字符赋值给next字符变量
palin(n-1); //调用palin函数,注意这里是palin函数调用palin函数, //即:调用自身,在数学上这叫递归,有兴趣可以百度一下
putchar(next); //吧next的值输出
}
}
最后解释一下palin函数:
刚开始n=5, 走else,next=getchar(); 然后palin(4);还走else,next=getchar();直到n=1,走if,next=getchar(),所以next=getchar()调用了5次,吧输入在dos命令行的字符放入缓冲区,执行printf("相反顺序输出结果:"); 再然后 putchar(next); 输出字符,此时的字符是n=1时的字符,即:你输入的最后一个字符;再然后程序会回到n=2时else里剩下的putchar(next); 输出字符,此时的字符是n=2时的字符,即:你输入的倒数第二个字符;以此类推,输出5个字符。这样就完成了顺序输入,倒序输出的算法
#include <stdioh>//包含标准输入输出头文件
#include <stringh>//string声明头文件
void reverse(char str)//函数
{
char p = str + strlen(str)-1;//p指向str的最后一个字符
char temp;//char型临时变量
while(str<p)//如果str所指向的字符小于p所指向的字符
temp=p, p--=str, str++=temp;//交换,并且各自指向下一个字符
}
void main()
{
char str[81];//字符数组
gets(str);//从终端输入一个字符串保存到str中
reverse(str);
printf("%s\n", str);
}
正在写解释LZ等待
while((len = gtline(line, MAXLINE))>1)
{
if(line[len - 1] != '\n')//gtline函数输入第19个字符的时候不是\n则此if语句成立
{
if(getmore == 0)
copy(temp, line);
prevmax += len;//一次输入30个字符 20+10 len的最大值是20
if(max < prevmax)//把大者赋给max
max = prevmax;
getmore = 1;//记录有超出数组的输入
}
else
{
if(getmore == 1)//getmore起标记作用。因为输入的30个大于20所以分2次累加
{
if(max < prevmax + len)//prevmax + len 意思就是20+10,一共输入的数量比max大则执行
{
max = prevmax + len;
copy(longest, temp);//temp存放着这个30个字符的前20个,后面的都忽略了
longest[MAXLINE - 2] = '\n';
}
getmore = 0;//恢复标记
}
else if(max < len)//gtline输入没有超出范围,则判断大小
{
max = len;
copy(longest, line);//直接送给打印数组
}
prevmax = 0;
}
}
有时间最好是用聊天工具说问题,我感觉我写的这个你看不懂QQ359627596
以上就是关于单片机程序 每句都是什么意思全部的内容,包括:单片机程序 每句都是什么意思、西门子S7-300程序中语句表每一句都是什么意思,求大神帮忙!、Java程序每个语句都是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)