如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
会计学关键字:单片机特有(tèyǒu)的数据类型表5.1C51数据类型5.1.2C51的存储(cúnchǔ)类型表5.251单片机存储(cúnchǔ)类型及存储(cúnchǔ)区5.1.38051特殊功能(gōngnéng)寄存器的C51定义(3)sbit:声明(shēngmíng)可位寻址的特殊功能寄存器和别的可位寻址目标。“=”号后将绝对地址赋给变量名,其声明(shēngmíng)形式又有以下3种:②用一个(yīɡè)整数常量作为基地址^后一个(yīɡè)整数常量作为指定位,例如:③直接用一个整数常量作为绝对地址(dìzhǐ),例如:5.1.48051并行接口及位变量(biànliàng)的C51定义sfrSEGDATA=P0;/*数码管数据端口*/sbitSEL0=P1^0;/*数码管0片选端口*/sbitSEL1=P1^1;/*数码管1片选端口*/…sbitKEY_SET=P1^7;/*设置(shèzhì)按键*/5.2C51运算符、表达式及其规则(guīzé)/5.2.2算术(suànshù)运算符5.2.3自增和自减运算符5.2.4关系(guānxì)运算符5.2.5逻辑(luójí)运算符5.2.6位运算符(1)设置(shèzhì)位:5.2.7条件(tiáojiàn)运算符5.2.8指针(zhǐzhēn)和地址运算符unsignedintdataA_at_0x0028;//变量A存放在地址0x0028unsignedintdataB_at_0x002A;//变量B存放在地址0x002Aunsignedintdata*P_at_0x002C;//指针变量P存放在地址0x002CA=10;//变量A初值为10B=20;//变量B初值为20P=&B;//指针P现在(xiànzài)指向变量B*P=100;//指针P所指变量(变量B)存放内容更改为100P=&A;//指针P现在(xiànzài)指向变量AB=*P;//变量B的值现在(xiànzài)更改为105.2.9优先级和结合(jiéhé)性2.选择(xuǎnzé)结构及其流程图(2)并行多分支(fēnzhī)结构3.循环(xúnhuán)结构及其流程图(2)dowhile型循环(xúnhuán)结构5.3.2选择(xuǎnzé)语句5.3.3循环(xúnhuán)语句5.4C51构造(gòuzào)数据类型5.5函数(hánshù)对被调用函数的说明(shuōmíng)(3)如果(rúguǒ)程序使用自定义函数,且该函数与调用它的函数同在一个文件中,则应根据主调函数与被调函数在文件中的位置,决定是否对被调用函数作出说明。5.5.3函数(hánshù)的嵌套调用与递归调用2.函数(hánshù)的递归调用5.5.4中断服务(fúwù)函数①中断函数不能进行参数传递;②中断函数没有返回值;建议定义为void类型③在任何情况下都不能直接调用中断函数,否则会产生编译错误。④如果(rúguǒ)在中断函数中调用了其它函数,则被调用函数所使用的寄存器必须与中断函数相同。否则会产生不正确的结果。⑤C51编译器对中断函数编译时会自动在程序开始和结束处加上相应的内容,具体如下:在程序开始处对ACC、B、DPH、DPL和PSW入栈,结束时出栈。中断函数未加using修饰符的,开始时还要将R0~R1入栈,结束时出栈。如中断函数加using修饰符,则在开始将PSW入栈后还要修改PSW中的工作寄存器组选择位。⑥C51编译器从绝对地址8×中断号+3处产生一个中断向量,中断号即是修饰符interrupt后面的数字。该向量包含一个到中断函数入口地址的绝对跳转。⑦中断函数最好写在文件的尾部,并且禁止使用extern存储类型说明。防止其它程序调用。2.修饰符interrupt3.修饰符using举例(jǔlì):用函数的指针变量调用函数关于变量:①主函数中定义的变量也只能在主函数中使用,不能在其它函数中使用。同时,主函数中也不能使用其它函数中定义的变量。因为主函数也是一个函数,它与其它函数是平行关系。这一点是与其它语言不同的,应予以注意。②形参变量是属于被调函数的局部变量,实参变量是属于主调函数的局部变量。③允许(yǔnxǔ)在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的单元,互不干扰,也不会发生混淆。如在前例中,形参和实参的变量名都为n,是完全允许(yǔnxǔ)的。④在复合语句中也可定义变量,其作用域只在复合语句范围内。5.6C51的库函数表5.4流输入(shūrù)和流输出函数5.6.2字符(zìfú)函数库string.h5.6.3标准(biāozhǔn)函数库