int main(){
int a;
scanf("%p",&a);//16进制数输入%p是输入一个十六进制的数scanf("%llx",&a);也可以输入十六进制并且比较正规
printf("%d",a);//十进制输出%d是输出一个十进制的数
printf("0x%x",a);//16进制输出printf("%llX\n",a);也可输出一个十六进制数如果红色部分大写X则输出十六进制为大写字母否则小写x输出为小写字母
}
参考:
最大数字是15位,没有超过__int64能表达的最大数。__int64最大能表示16位十六进制数。所以直接进行加减就行了,需要注意的是输入输出的格式以及十六进制表达负数的时候显示的是补码。
#include<stdio.h>
int main(void)
{
long long a,b,result;
while(scanf("%llx%llx",&a,&b)!=EOF){
result=a+b;
if(result>=0)
printf("%llX\n",result);
else
printf("-%llX\n",-result);
}
return 0;
}
long long 类型格式字符:
扩展资料:
return用法:
作用是结束正在运行的函数,并返回函数值。return后面可以跟一个常量,变量,或是表达式。
函数的定义一般是这样的,例如:
int a(int i)//第一个int是函数的返回值的类型,也就是return后面跟的值的类型,a是函数的名称,括号里的是传递给函数的参数,int是参数的类型,i是参数的名字
{
...//省略函数体内容
return b;//b必须与函数头的返回值一致(此处为int型)
}
简单函数举例:
int addOne(int b)
{
return b+1;
}
该函数的作用是取得一个数,将这个数加上1,再将结果返回
调用时这样:
int result=addOne(2);//此时result的值为3
函数括号里的参数也可以为变量或能算出值的表达式
以上就是一个基本的函数,一般的函数都有返回值,也就是return后面跟的值,返回值可以为各种数据类型,如:int,float,double,char,a[](数组),*a(指针),结构或类(c++)
但不是所有函数都有返回值,如果某个函数无返回值,那么返回值的位置则为“void”关键字,此时函数体中无返回值,即无return的值。但是函数中也可出现return,即一个空的return句子,其作用是使函数立即结束,如
void print()//括号中为空表示无传递参数
{
printf("a");
printf("b");
return;//函数执行到此处结束
printf("c");
}//该函数只执行到return语句处,即屏幕上输出的为"ab"
stupid、study、student、struggle、strong。
一、stupid
英[ˈstju:pɪd] 美[ˈstu:pɪd]
adj. 愚蠢的; 迟钝的; 乏味的; 晕眩的,昏迷不醒的;
n. <口>傻子,笨蛋;
I'll never do anything so stupid again
我再也不会做这种傻事了。
比较级:stupider
最高级:stupidest
二、study
英[ˈstʌdi] 美[ˈstʌdi]
n. 学习,研究; 课题; 书房; 结论;
vi. 考虑; 沉思; 默想; 努力;
vt. 想出; 详细地检查; 背诵(台词等); 为…费心思;
She gave up her studies to have Alexander.
为了生亚历山大,她放弃了学业。
第三人称单数:studies
复数:studies
现在分词:studying
过去式:studied
三、student
英[ˈstju:dnt] 美[ˈstu:dnt]
n. 中学生; 学生,大学生; 研究者,学者; <美俚>初学者;
Warren's eldest son is an art student, at St Martin's.
沃伦的大儿子是圣马丁学院艺术系的学生。
复数:students
四、struggle
英[ˈstrʌgl] 美[ˈstrʌɡəl]
vi. 奋斗; 搏斗; 努力; 争取;
n. 奋斗; 打斗; 竞争;
They had to struggle against all kinds of adversity
他们不得不同一切困境做斗争。
第三人称单数:struggles
复数:struggles
五、strong
英[strɒŋ] 美[strɔ:ŋ]
adj. 强烈的; 强的; 坚强的; 强壮的;
adv. 强劲地; 猛烈地; 大大地; 坚强地;
He is sharp and manipulative with a strong personality
他个性很强,为人精明且爱指使人。
比较级:stronger
最高级:strongest
1、元音字母Aa:
在f、ss、th前面,读[a:]如:glass,fast,last,ask,father,staff,
在[w]音之后,读作[ɔ] 如:want,wash,what,quality
2、元音字母Oo :
在l、m、n、th和v前面,读[ʌ];词尾是st,ld时读 [əu] ;如:most, post,cold,hold
3、元音字母Uu:在j,l,r之后读[u:],如:true,rule,june,blue
4、元音字母Aa、Ee、Ii、Oo、Uu以及元音字母组合ar、er、ir、or和ur在非重读音节中,读[ə],元音字母Ii在非重读音节中,读[i]。
倍福的嵌入式控制器可以用多种语言来编程!
打开编程软件一看就知道,网络不好我就不上图了,它支持IL,ST,SFC , FBD,CFC,LD这几种编程语言,应该说很多欧美的PLC编程语言是差不多的!
因为倍福也是德国的,所以这些和西门子好像也差不多!
IL语言是指令表,好像西门子200也有这个指令表,但是我没有用过!
ST就是结构化文本就像C语言那样,很多PLC都有这个语言,比如AB,三菱都有,当然西门子300里边叫SCL就是这个结构化文本的意思!当然西门子300里边还有STL是语句表!
SFC就是顺序功能图,应该是类似西门子的GRAPH。
FBD功能图块,这个和西门子是一样的!
CFC是连续功能图编辑器,这个我个人没用过,所以不清楚有没有可以对比的!
最后就是LD梯形图,这个是每个PLC都有的,也是大家最熟悉的!
就简单说这么多了,希望能对你有点帮助,谢谢!
一、PIC汇编语言指令格式
PIC系列微控制器汇编语言指令与MCS-51系列单片机汇编语言一样,每条汇编语言指令由4个部分组成,其书写格式如下:
标号 操作码助记符 操作数1,操作数2;注释
指令格式说明如下:指令的4个部分之间由空格作隔离符,空格可以是1格或多格,以保证交叉汇编时,PC机能识别指令。
1标号 与MCS-51系列单片机功能相同,标号代表指令的符号地址。在程序汇编时,已赋以指令存储器地址的具体数值。汇编语言中采用符号地址(即标号)是便于查看、修改,尤其是便于指令转移地址的表示。标号是指令格式中的可选项,只有在被其它语句引用时才需派上标号。在无标号的情况下,指令助记符前面必须保留一个或一个以上的空格再写指令助记符。指令助记符不能占用标号的位置,否则该助记符会被汇编程序作标号误处理。
书写标号时,规定第一字符必须是字母或半角下划线“—”,它后面可以跟英文和数字字符、冒号(:)制符表等,并可任意组合。再有标号不能用操作码助记符和寄存器的代号表示。标号也可以单独占一行。
2操作码助记符 该字段是指令的必选项。该项可以是指令助记符,也可以由伪指令及宏命令组成,其作用是在交叉汇编时,“指令操作码助记符”与“操作码表”进行逐一比较,找出其相应的机器码一一代之。
3操作数 由操作数的数据值或以符号表示的数据或地址值组成。若操作数有两个,则两个操作数之间用逗号(,)分开。当操作数是常数时,常数可以是二进制、八进制、十进制或十六进制数。还可以是被定义过的标号、字符串和ASCⅡ码等。具体表示时,规定在二进制数前冠以字母“B”,例如B10011100;八进制数前冠以字母“O”,例如O257;十进制数前冠以字母“D”,例如D122;十六进制数前冠以“H”,例如H2F。在这里PIC 8位单片机默认进制是十六进制,在十六进制数之前加上Ox,如H2F可以写成Ox2F。
指令的操作数项也是可选项
PIC系列与MCS-51系列8位单片机一样,存在寻址方法,即操作数的来源或去向问题。因PIC系列微控制器采用了精简指令集(RISC)结构体系,其寻址方式和指令都既少而又简单。其寻址方式根据操作数来源的不同,可分为立即数寻址、直接寻址、寄存器间接寻址和位寻址四种。所以PIC系列单片机指令中的操作数常常出现有关寄存器符号。有关的寻址实例,均可在本文的后面找到。
4注释 用来对程序作些说明,便于人们阅读程序。注释开始之前用分号(;)与其它部分相隔。当汇编程序检测到分号时,其后面的字符不再处理。值得注意:在用到子程序时应说明程序的入口条件、出口条件以及该程序应完成的功能和作用。
二、清零指令(共4条)
1寄存器清零指令
实例:CLRW;寄存器W被清零
说明:该条指令很简单,其中W为PIC单片机的工作寄存器,相当于MCS-51系列单片机中的累加器A,CLR是英语Clear的缩写字母。
2?看门狗定时器清零指令。
实例:CLRWDT;看门狗定时器清零(若已赋值,同时清预分频器)
说明:WDT是英语Watchdog Timer的缩写字母。CLR见上述说明。注意该两条指令无操作数。
3寄存器f清零指令。指令格式:CLRF f
实例:CLRF TMRO;对TMRO清零
说明:在PIC系列8位单片机中,常用符号F(或f)代表片内的各种寄程器和F的序号地址。F取值按PIC系列不同型号而不同,一般为Ox00~Ox1F/7F/FF。TMRO代表定时器/计数器TMRO,所以CLRF对寄程器清零,采用了直接寻址方式直接给出要访问的寄存器TMRO。
4位清零指令。指令格式 BCF f,b
实例:BCF REG1,2;把寄存器REG1的D2位清零
说明:BCF是英语Bit Clear F的缩写。指令格式中的F,同上说明;符号b是表示PIC片内某个8位数据寄存器F的位号(或位地址),所以b的取值为0~7或D0~D7。实例中REG是Register的缩写。实例中的2代表指令格式中的b=2即寄存器REG1的D2位。
通过上述四条清零指令格式和实例,可以说明,学习PIC系列8位单片机的指令时应首先了解指令的助记符意义(功能),再有就是它的表达方式。初学者没有必要死记指令,重要是理解和实践。
三、面向字节、常数与控制操作的指令
1传送立即数至工作寄存器W指令
指令格式:MOVLW k;k表示常数、立即数和标号
说明:MOVLW是Move Literal to w的缩写
实例:MOVL 0x1E;常数30送W
2I/O口控制寄存器TRIS设置指令
指令格式;TRIS f
说明;TRIS f是Load TRIS Register的缩写。其功能是把工作寄存器W的内容送入I/O口控制寄存器f。当W=0时,置对应I/O口为输出;W=1,置I/O口为输入。
实例:MOVLW 0x00 ;把00H送入W
TRIS RA ;置PIC RA口为输出
MOVLW 0xFF ;把FFH送入W
TRIS RB ;置PIC RB口为输入
说明:这是PIC汇编语言中常用的几条指令,即设置某个I/O口(这里是RA口和RB口)为输入或输出的语句。可见,识读指令时,一应充分理解语句格式的功能,二应前后联系阅读。
3?W寄存器内容送寄存器f(W内容保持不变)指令
指令格式:MOVWF f
说明:MOVWF是Move W to f的缩写
实例:MOVLW 0x0B;送0BH送W
MOVWF 6 ;送W内容到RB口
说明:第一条指令0x0B(常数11)送工作寄存器W,第二条指令,把W内容常数11送到寄存器F6中,查表F6即为RB口,所以PORT_B(B口)=0BH=D11
4寄存器f传送指令
指令格式:MOVF f,d
说明:MOVF是Move f的缩写。F代表PIC中的某个寄存器。指令中的d规定:d=0时,f内容送W;d=1时,f内容送寄存器。
实例:MOVF 6,0 ;RB口内容送W
MOVWF 8 ;RB口内容送f8
说明:第一条指令中的6代表寄存器f=6,查寄存器表f=6为RB口;0代表d=0,代表选择的目标为寄存器W。第二条指令中的8代表寄存器f=8。所以两条指令结果是把RB口的内容送f8。至于f8内容是多少?还应在汇编语言开始时附加指令,这里从略。
5空操作指令
指令格式:NOP
说明:NOP是英语No Operation的缩写。NOP无操作数,所以称为空操作。执行NOP指令只使程序计数器PC加1,所以占用一个机器周期。
实例:MOVLW 0xOF ;送OFH到W
MOVWF PORT_B ;W内容写入B口
NOP ;空操作
MOVF PORT_B,W ;读操作
说明:该三条指令是一种对I/O口的B口连续操作的实例,其目的达到写入B口的内容要读出时,应保证写、读之间有个稳定时间,因此加入了空操作指令NOP。
6无条件跳转指令
指令格式:GOTO k
说明:执行该条指令时,将指令转移到指定的地址(跳转)。指令中的k,常与程序中的标号联系起来。
实例:见第9条指令中
7寄存器内容减1,结果为零的间跳指令
指令格式:DECFSZ f,d
说明:DECFSZ是英语Decrement f,Skip of not 0的缩写。符号f,d代表的意义,前述已作说明。该条指令是指寄存器的内容减1存入W(d=0)或f(d=1)中。若指令执行结果减1不为零,指令顺序执行;为零时,就间跳下一条指令后再执行(等效顺序执行一条空指令NOP),实际指令中,当d=1时,该项常被略去。
8寄存器内容加1,结果为零间跳指令
指令格式:INCFSZ f,d
说明:INCFSZ是英语Increment f,Skip of 0的缩写。该条指令与上一条(7)指令差别仅在于“1”上,即执行这条指令时,寄存器f内容加1,若结果不为零,则指令顺序执行;为零则指令间跳执行。执行这条指令的其它逻辑关系与上条相同。
9子程序返回指令
指令格式:RETLW k
说明:RETLW是Return Literal to W的缩写。该指令代表子程序返回,返回前先把8位立即数送W。
实例:PIC某个汇编语言的延时子程序(摘要):
(1)BELY MOVLW 0xC5 ;送延时常数0C5H入W
(2) MOVWF COUNT2;0C5H送入计数器2
(3) CLRF COUNT1;对计数器1清零
(4)LOOP INCFSZ COUNT1;计数器1加1计数器1加
1结果不为零,跳转循环
(5) GOTO LOOP ;
(6) DECTSZ CPUNT2 ;计数2减1计数器2减1
结果不为零,跳转循环重
复执行第4条指令
(7) GOTO LOOP ;
(8) RETLW 0 ;子程序执行结束返回
说明:程序中的注释已分别对每条指令的功能作了说明,补充说明1?当执行第(4)条加1指令结果为零时,就间跳转到执行第(6)条指令。2?当执行第(6)条减1指令结果为零时,就间跳转到第(8)条子程序返回,整个延时指令才算完成。3?计数器1或2代表PIC中某个寄存器,该寄存器由程序开始的伪指令赋值决定(关于伪指令今后将作专门介绍)。
本文关于指令的注释将与前述指令中的略有不同。前述指令注释时是对指令具体完成的功能给以说明,这种注释方法对初学者确实易于接受和理解,但是实际应用中的PIC产品汇编语言的注释通常是以程序要做什么(或指令的作用)而不是说指令的直接功能。鉴于上述原因,下述的指令注释将改变过去的注释方法,用程序应起的作用作注释。
10寄程器半字节交换指令
指令格式:SWAPF f,d
说明:SWAPF是Swap f的合写。符号f、d的意义与前述的相同。该条指令的功能是寄存器f的高4位与低4位交换,即指令执行前,若寄存器f的8位状态为D7、D6、D5、D4、D3、D2、D1、D0,执行后的8位状态变为D3、D2、D1、D0、D7、D6、D5、D4,其结果存入W(d=0)或f(d=1)中。
实例:中断现场保护是中断技术中重要部分。由于PIC16C××指令系统中没有进栈PUSH和出栈POP指令,所以只能用其它指令来实现。因为在主程序中常常用到工作寄存器W和状态寄存器STATUS,所以中断现场保护常要保护寄存器W和STATUS。
下面是对PIC16C7×系列芯片中断现场保护的实例程序。
MOVWF W_TEMP ;将W内容存入到临时寄存器
W_TEMP中
SWAPF STATUS,W ;交换STATUS与W内容
MOVWF STATUS_TEMP ;将STATUS的内容存入到临
… 时寄存器STATUS_TEMP中
中断服务程序
…
SWAPF STATUS_TEMP,W;交换STATUS_TEMP与W
的内容
MOVWF STATUS ;STATUS复原成原来的状态
SWAPF W_TEMP,F ;交换内容
SWAPF W_TEMP,W ;W复原成原来的状态
说明:上述程序中各条指令的注释基本上都是以程序应达到的目的而注释的,对每条指令的功能几乎未涉及。这是初学者应特别注意的。
11子程序调用指令(Subroutine Call)
指令格式:CALL k;k为立即地址
说明:子程序调用,不同型号芯片的实现方法不尽相同,其共同点是首先将返回地址((PC)+1)压栈保护,再转入所调用的子程序入口地址执行(与MCS-51指令功能相似)。
指令格式模式:HERE CALL DELAY;调用延时子程序
…
DELAY MOVLW 0x80 ;延时子程序
RETLW 0
说明:调用指令执行前,PC=地址HERE
调用指令执行后,PC=地址DELAY(标号),堆栈指针TOS=HERE+1(返回地址)。
实例:见下条指令的实例
12寄存器内容取反指令
指令格式:COMF f,d
说明:COMF是Complement f的缩写。其中d=1时,操作(f)→f;d=0时,操作(f)→w。
功能:寄存器f内容取反后送入W(d=0)或f自身(d=1)。
实例: ORG 0x1FF
GOTO MAIN
ORG 0
DELAY …
MAIN MOVLW 0 ;主程序开始
TRTS 5 ;设置RA口为输出
BCF 5,0 ;置RA口0位为0
LOOP CALL DELAY;闪动延时
COMF 5? ;RA口求反(亮—灭—
亮……控制)
GOTO LOOP ;循环
…
说明:上述指令是一种PIC16C54 LED发光控制实验部分程序。其中延时子程序DELY未列出,但不影响本条指令的识读。程序中的主程序开始的三条指令,均已介绍过,紧跟着的CALL指令是调用执行子程序,其入口地址为标号DELAY。子程序执行结束后,又执行COMF 5的LED发光亮—灭…亮—灭……控制指令。后面一条GOTO LOOP指令是达到LED循环点亮目的。
13面向位的操作指令(共4条,PIC高级产品多增一条)
该类指令除一条位清零外,另有一条寄存器f位b的置1指令和另外两条位跳步指令(PIC高级产品多增一条f的b位触发转换指令)。
(1)位置1指令。指令格式 BSF f,b
说明:BSF是Bit Set f的缩写。F和b的意义与前述相同,该条指令的功能是将寄存器f的b位置1。
(2)位测试、为零间跳指令。指令格式 BTFSC f,b
说明:BTFSC是Bit Test,Skip if Clear的缩写。指令功能是测试寄存器f位“b”,如为0,跳过下一条指令;为1顺序执行,即当f(b)=0时,就不执行当前指令而执行下一条指令(间跳),即用一条空指令NOP代替它,所以该条指令占用2个指令周期。
(3)位测试、为1间跳指令。指令格式 BTFSS f,b
说明:BTFSS是Bit Test,Skip if Set的缩写。其指令的逻辑功能与上条相反,位测试f(b)=1就间跳执行,f(b)=0顺序执行。
1,新建结构化工程,使用ST语言编程。
2,新建简单工程,勾选使用标签,大部分的程序还是用梯形图来编程,在编程窗口要插入的位置,点击鼠标右键→编辑→内嵌ST框插入,或者输入“STB”按回车即可。
ST语言的特点:
条件判断以及四则运算有强大的优势,逻辑顺控不如梯形图直观好用,用梯形图语言插入ST语言可以很方便的写大型模拟量、定位算法的程序。
可以使用ST语言编程,需要使用GX Works软件。
都说ST语言适合做算术运算,那么一起来看一下加、减、乘、除和求余数运算吧。操作符分别是+、-、*、/、MOD。
后缀名ST文件是一种文本格式的文件,是一种较新的文件格式。此格式文件综合了Doc文件和txt文件的优点而形成的一种新文本格式。
文件概述
ST文件来源
ST文件由完美记事软件产生,是一种新型的文本文件格式,兼顾了Doc和TXT文件的优点,这也是完美记事软件的开发宗旨。
ST文件特点
ST文件只能由完美记事软件打开,是完美记事软件的独有格式,有时也可由记事本打开。当然,这种文件有比较特色的优点。优点如下:
1.支持文本直接加密,且只能由完美记事软件才能打开,部分可由记事本打开。
2.文件占有存储空间很小,支持带格式的文本和图片,还支持网址直接访问。
3.支持完美记事软件的直接云同步支持,直接上传到云服务器和同步到本地。
ST文件后缀
文件后缀名为:.st
相关软件
软件名为完美记事,至今为3.1版,集合了ST文件加密解密、个性主题设置和云同步服务,界面友好,操作简单,设计人性化。
加密模式很人性化,模式为:一机一码,一键加密,一键解密。
支持生成txt文件和st文件,但st文件不支持其他同类软件正常打开。
支持文本中网址的直接访问。[1]
软件出品网站为:完美娱乐网站
软件宗旨:为用户开发最方便最人性化最个性化的记事本软件。
软件发展方向:兼容PDF、Doc格式文件,多设备支持以及文件同步。