




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章单片机的C语言应用程序设计7.1C语言与MCS-517.2C51数据类型及在MCS-51中的存储方式
7.3C51数据的存储类型与MCS-51存储结构7.4MCS-51特殊功能寄存器(SFR)的C51定义7.5MCS-51并行接口的C51定义7.6位变量的C51定义7.7C51构造数据类型
7.8模块化程序开发过程7.9MCS-51内部资源使用的C语言编程7.10MCS-51片外扩展的C语言编程7.11频率量测量的C语言编程7.12MCS-51机间通信的C语言编程7.13键盘和数码显示人机交互的C语言编程7.1C语言与MCS–51用汇编程序设计MCS–51系列单片机应用程序时,必须要考虑其存储器结构,尤其必须考虑其片内数据存储器与特殊功能寄存器正确、合理的使用以及按实际地址处理端口数据。用C语言编写MCS–51单片机的应用程序,虽然不像用汇编语言那样具体地组织、分配存储器资源和处理端口数据,但在C语言编程中,对数据类型与变量的定义,必须要与单片机的存储结构相关联,否则编译器不能正确地映射定位。用C语言编写单片机应用程序与编写标准的C语言程序的不同之处就在于根据单片机存储结构及内部资源定义相应的C语言中的数据类型和变量,其它的语法规定、程序结构及程序设计方法都与标准的C语言程序设计相同。用C语言编写的应用程序必须经单片机的C语言编译器(简称C51),转换生成单片机可执行的代码程序。支持MCS–51系列单片机的C语言编译器有很多种。如AmericanAutomation、Auocet、BSO/TASKING、DUNFIELDSHAREWARE、KEIL/Franklin等。其中KEIL/Franklin以它的代码紧凑和使用方便等特点优于其它编译器。本章是针对这种编译器介绍MCS–51单片机C语言程序设计。7.2C51数据类型及在MCS-51中的存储方式7.2.1C51的数据类型FranklinC51编译器具体支持的数据类型有:位型(bit)、无符号字符(unsignedchar)、有符号字符(singedchar)、无符号整型(unsignedint)、有符号整型(signedint)、无符号长整型(unsignedlong)、有符号长整型(signedlong)、浮点型(float)和指针类型等。表7县.1Fr责an茅kl回in赏C职51的数稀据类痒型数据类型长度(bit)长度(byte)值域bit110,1unsignedchar810~255signedchar81–128~127unsignedint1620~65535signedint162–32768~32767unsignedlong3240~4294967295signedlong324–2147483648~2147483647float324±1.176E–38~±3.40E+38(6位数字)double648±1.176E–38~±3.40E+38(10位数字)一般指针243存储空间0~655357.摘2.羡2C芬5歪1数眼据槐在M殃C庄S光-洒5轰1中的惨存储胖方式位裂变根量屈(bi冻t)邻:与M枕C锄S逗-坡5桌1硬件杨特性表操作湖有关稀的可济以定执义成面位变剖量。陶位变饲量必爷须定法位在MC艺S-瓦51单片樱机片往内RA坑M的辣位辛寻婶址贸空呈间臣中勾。字符倦变量酱(ch哄ar物):字符义变量惭的长彻度为捐1by蹲te即戏8然位度。踢这储很刚合惊适M我C摔S隆-央5茫1单朽片忙机求,纯因寄为MC虾S-背51单片祥机每棉次可侨处理径8位低数据走。对规于无挤符号撒变量险(u蹄n零s选i遣g血n鸡e教d拴c企h唐a毅r闷)的进值恰域鸟范园围仪是沃0奋~脾2盏5森5邮。时对闲于南有然符抬号帆字瘦符哭变催量沉(s炕i多g点n槽e赏d厉c枪h参a便r息)巡寿,最具粱有重侄要意压义的罚位是态最高裹位上填的符笼号标检志位严(ms旗b)步。此满位忍为荒1葬代溪表稻"蛇负乌"浪,体为尤0男代辉表溪"杯正宏"饲。样有述符炎号泡字束符茄变销量串和孝无擦符单号味字菌符县变立量事在赌表纱示蔽0执~减1矮2焰7侄的签数爪值返时锣,纤其均含慢义塞是榜一仇样削的友,盗都故是袜0餐~羞0x陈7脊F槽。负傅数潮一梁般插用梯补夕码据表免示丈,既即塑用录1爷1水1祸1笨1饼1蜘1利1膊表琴示乞-立1翻,原用底1凡1认1蜻1坐1暗1粘1晓0岸表仪示惨-旋2摔…医…蛙。捉当介进坚行忍乘河除抢法森运括算熄时剪,穗符衔号崖问卷题叔就毯变碌得谋十决分张复士杂留,转而C希5伙1编吉译搜器休会贫自否动锋地筝将膀相男应牧的陕库浊函爪数加调老入搁程衣序普中筐来喜解养决这这啊个徒问唤题联。整赢型写变孙量与(i殊n辱t):整型级变量绞的长守度为豪16逢位。潮与8衬08字0和痛80青86CP剥U系列而不同域,M泄C绩S柳-中5脸1系科列松单巨片稼机示将i姜n绕t型变免量的宁高位蚀字节却数存琴放在雀低地眠址字仍节中狼,低裤位字涂节数县存放垄在高旨地址委字节虚中。桌有符话号整淘型变逢量(si恋gn决edin抛t)也盒使香用ms杏b位溉作壳符些号税标也志英位衰,敞并交使堆用唐二广进兼制叶补臂码兆表约示越数缝值探。嫌可爱直别接片使隐用再几昂种瞧专蜡用乐的放机灵器屋指泻令筹来奖完嗓成俯多逮字店节搞的接加杨、刚减例、装乘仪、惕除呈运锄算咳。开整竟型苗变凶量坏值慰0x1辟23棒4以句图射7浅.邮1辰所疼示盏的宅方氏式糖存柴放崇在季内或存偿中觉。图家7顶.弊1伏整婶型恢数指的美存板储悟结秃构…0x120x34…+0+乞1地青址0x120x340x560x78….+0+1+2+秆3地遣址图素7慈.嫂2酱长坡整微型袍变冒量习的裹存虫储特结阶构浮点庸型变列量(f廊l申o己a酸t洋)食:浮点鸟型变乖量为眉32视位,腹占4陪个字国节,四许多吃复杂症的数虽学表旺达式站都采秃用浮行点变库量数设据类尿型。烟应用爸符号勾位表日示数晃的符偿号,博用阶昨码和掌尾数剑表示沟数的固大小拍。用它弃们进栋行任呀何数停学运扮算都旅需要馆使用茶由编质译器或决定嫌的各茅种不间同效旨率等喉级的阶库函禽数。Fr届an见kl斧in犹C叶51的妇浮女点屯变偿量璃数闭据斤类问型撤的僻使个用萌格谁式立与I仓E壁E像E切-险7蔑5是4标准施有关匀,具维有2瞎4位艺精度堆,尾全数的值高位窄始终孔为"同1"飞,因略而不哀保存健,位倦的分丝式布如往下:●定1党位怒符害号芦位迟。●猪8称位袄指哭数述位仪。●子2尸3位社尾数基。符遥号技位威是袭最汽高张位离,敲尾盼数悼为呜低掠2忘3瞒位敢,婶内掉存梨中鸭按吼字境节答存运储避顺刷序重如浩下惠:地址+0+1+2+3内容MMMMMMMMMMMMMMMMEMMMMMMMSEEEEEEE其吊中蹄,S为企符间号哗位补,岸1拥表望示悠负槽,治0财表础示彩正志;E为灭阶教码际;M为2捎3位舅尾数喷,最精高位德为"葡1"岩。浮点危变量兆值逮-1惜2.魔5的寨十进能制为季:0x像C帮1障4跟8缓0债0蜡0姥0核,它盒按寇图催7笛.课3料所暴示午方盯式鬼存天于闲内减存絮中龄。0x000x000x480xC1….+0+1+轧2+叠3地利址图熔7财.药3阁浮泪点绢数朋的营存性储友结予构在乔编按程身时嚷,涛如杰果草只恐强扔调升运茎算萄速偷度异而栽不帝进死行痒负也数希运旺算朋时坐,怖最虏好锻采违用退无话符遭号菜(u扯n快s笛i仪g帜n仿e行d卵)格式刺。无符喂号字挨符类享型的维使用勒:无往论何低时,景应尽冶可能俗使用除无符戏号字宽符变刺量,军因为泄它能餐直接隐被MC豪S-剑51所接渗受。茄基于佳同样奥的原棕因,卸也应榆尽量闻使用敌位变羞量。零有符厅号字贱符变愤量虽坦然也弯只占妙用一举个字逢节,纹但需虽要进恶行额驱外的席操作筒来进堵行测锋试代缺码的叼符号赤位。中这无含疑会即降低督代码械效率嫂。使用劣简化循形式智定义桂数据骆类型悄。其展方法辟是在首源程腊序开膏头使石用#d刮e类f喝i羽n愚e语句誓自定乓义简赞化的督类型洲标识永符。学例如附:#d严e再f辟i陶n饼euc酸ha膜run顷si辜gn沙ed臭c碗ha技r#旧d仿e论f跪i央n郊eui柱ntu技n坛s市i往g略n惕e轮din露t这样祥,在睬编程词中,梨就可严以用uc搜ha茅r代替un苍si伐gn体ed窑c牢ha且r,用u躲i敏n赶t代存替un婶si秃gn和edi涉n工t来悲定蹈义牌变香量阴。7趣.切3C辽5参1数据跨的存苦储类伸型与M该C仗S锋-誉5瞧1存烛储钉结肿构表爪7检.菜2C5大1存储容类型筋与MC份S-零51存通储酱空茧间争的牙对朋应召关险系存储类型与存储空间的对应关系data直接寻址片内数据存储区,访问速度快(128字节)bdata可位寻址片内数据存储区,允许位与字节混合访问(16字节)idata间接寻址片内数据存储区,可访问片内全部RAM地址空间(256字节)pdata分页寻址片外数据存储区(256字节)由MOV@Ri访问(i=0,1)xdata片外数据存储区(64KB)由MOVX@DPTR访问code程序存储器64KB空间,由MOVC@DPTR访问表7要.3C慢5乎1存哀储脉类泻型迟及身其回数量据醒长当度所和玩值寻域存储类型长度(bit)长度(byte)值域范围data810~255idata810~255pdata810~255xdata1620~65535code1620~65535带存聚储类召型的龙变量砖的定抬义的伞一般纹格式羽为数甜据暖类杆型勺存竭储疫类忠型症变慨量兔名带亲存项储出类狸型枝的称变初量田定访义屑举征例景:c次h者a横r营d忽a杆t锡a序v衣a壤r帐1呈;b笼i汁tbd惹at兼afl穗ag肚s;f孝l夺o术a废ti杆d桐a晋t推ax,返y,杠z;u坡n泼s隶i奔g隙n吓e越di害n贺t符p雕d缴a乔t赤av露a拖r额2畏;u缺n驼s挂i字g皱n串e刺d隶c宝h世a锣r谱v获e额c定t斤o衡r泛[沉3著]田[袜4极]窄;表握7.酸4摸存扒储模师式说懒明存储模式说明SMALL默认的存储类型是data,参数及局部变量放入可直接寻址片内RAM的用户区中(最大128字节)。另外所有对象(包括堆栈),都必须嵌入片内RAM。栈长很关键,因为实际栈长依赖于函数嵌套调用层数COMPACT默认的存储类型是pdata,参数及局部变量放入分页的外部数据存储区,通过@R0或@R1间接访问,栈空间位于片内数据存储区中LARGE默认的存储类型是xdata,参数及局部变量直接放入片外数据存储区,使用数据指针DPTR来进行寻址。用此数据指针进行访问效率较低,尤其对两个或多个字节的变量,这种数据类型的访问机制直接影响代码的长度7块.坡4MC脆S-擦51特右殊刃功吃能毙寄改存拘器岂(SF爱R)的C5泄1定厅义MC径S-章51单片障机中双,除魄了程狂序计谋数器P鱼C和4饮组工桨作寄储存器普组外焰,其咽它所谢有的鼓寄存王器均族为特阔殊功陆能寄佩存器梳(S捕F惠R社)荒,分处散劣在搞片或内RA匪M区靠的铺高静1歼2宪8坝字绪节犹中怠,村地残址欧范绸围丈为爷8顺0H倡~喇0淋F役F柏H显。牲S垮F圣R中号有扛1饶1素个思寄功存箱器裳具稳有跪位返寻际址叨能稍力魔,糟它愉们昂的挣字假节匆地轰址围都怪能强被工8挥整收除饿,艰即茎字巡寿节投地屿址宰是因以熊8辟或亡0侄为朱尾愚数蓬的闻。为凯了赞能开直婶接猪访覆问板这多些SF路R,策Fr挂an语kl奋in抖C莫51提供陷了一吴种自渠主形冒式的边定义细方法你,这继种定巩义方甲法与哄标准C语觉言蠢不叼兼皱容页,雨只拦适孕用兄于突对MC秧S-太51系列缘瑞单片赴机进祖行C语博言怎编循程停。挖特拘殊柏功全能图寄姿存规器C5纽奉1定义最的一刊般语廉法格福式如姥下:sf以r呜s音fr-n得am僚e粥=i透n织tco惹ns鄙ta搞nt滑;"s惑f惯r"是定石义语广句的馒关键据字,慕其后借必须晶跟一和个M讨S中C无-嫩5裤1单湾片亦机狮真遗实疑存诞在知的麻特禾殊捧功扯能环寄朴存轿器究名陪,脱"羞=骑"摩后膨面璃必渠须石是编一挣个矩整慕型诸常洞数田,缘瑞不亲允涌许查带臣有鸭运阁算动符调的望表局达瘦式佛,狼是胡特花殊汽功决能猪寄沉存堆器荣"s横f嚼r-黎n祖a浇m钱e鸦"的砍字引节偿地这址伙,助这仇个买常数数框值渐的后范专围凯必子须哲在SF鼓R地址偏范围婆内,氧位于洗0x伞8浑0崭~糕0午x外F阿F劳。例如袜:sf挂rSC治ON炒=0蹄x9鞭8;棕/*串口我控制佳寄存易器地办址9卷8H迷*/s疑f皇rTM将OD愈=0岛x8底9;闲/凶*定臭时影器组/皇计检数炊器蜻方齐式塑控碍制谈寄平存化器妥地团址榨8跑9H缸*肯/MC话S-爬51系烤列客单似片炎机垃的辜特逝殊危功吗能准寄必存方器岸的柜数蓄量扣与乓类缠型滩不央尽绘相析同朴,嗽因验此沫建隐议俩将霸所川有迫特团殊印的疏"sf罚r"定玩义默放简入旧一敢个蕉头贤文病件喇中净,督该皱文郑件胆应矮包庄括MC挂S-胞51单庙片摄机那系秆列喘机端型针中朴的S谱F结R定义胃。C稀5喜1编译迫器的肚"re茫g5补1.诉h"头文霸件就众是这台样一黄个文扮件。在妙新恩的MC啦S-葬51系镇列喜产忆品做中状,S册F宴R在功爬能上之经常赵组合券为1它6位独值,阴当SF框R的罪高蔽字杜节捏地崭址衣直杠接踏位刺于身低并字翠节患之凑后数时曾,政对稀1开6暗位S围F吸R的值德可以链直接丢进行诱访问扫。例亚如5扑2子犹系列臂的定轧时器社/计应数器反2就仅是这头种情笔况。界为了卸有效娱地访膨问这榆类SF讨R,可使婶用关华键字衡"s骄f腰r塔1或6这"来定与义,杯其定顷义语约句的隔语法泼格式庆与8絮位S奏F搭R相同冈,只抵是"送="京后面摘的地具址必宣须用赏16昨位SF偶R的低稠字节冶地址纺,即罪低字狭节地美址作则为"sf搁r1含6"的宿定态义棚地深址壮。例卧如酱:sf池r1喉6搁T市2政=衔0x坊CC稀/*定讲时轧器若/具计旦数彼器仓2淹:T嘉2低8链位地罩址为同0CC态H,名T2高8啦位地份址为逝0CD土H*裙/这希种籍定端义惭适劣用迷于铲所粉有鸡新五的菠1融6表位SF誓R,但不幕能用抽于定摔时器灾/计编数器捡0和讲1。对于滑位寻辅址的SF守R中的牢位,C测5泡1的扩利充功债能支叶持特础殊位龙的定灰义,泻像S译F窝R一扣样滴不眨与犬标既准C兼容赵,使绍用"s泥b战i馋t"来教定糖义防位转寻淡址啄单鸽元峰。第纹一椒种趁格爪式阻:sb兽itbi暂t-承na饭me判=s嗽f踏r-n谦am娃e^i卵n货tco自ns菜ta垃nt咬;"sb拣it"是当定优义尼语凯句槐的锤关掩键宾字钉,搬后甚跟可一吼个醋寻杯址浆位堪符勿号压名予(威该菌位货符骡号里名蜂必唐须匀是MC逢S-稀51单片胀机中孩规定农的位巩名称芹),毕"=显"后摘的"sf另r-n哄am纺e"必盒须比是葛已雕定碌义刚过勿的S查F抽R的名钓字,咬"^节"后畜的整屯常数捞是寻何址位毅在特聪殊功登能寄秃存器瘦"s回f瓶r-斜n迟a舍m缎e箩"中的屯位号充,必沉须是生0~外7范牛围中农的数直。例傻如:sf肉rPS适W=躲0x机D0辈;扭/跟*定冰义P脉S旱W寄枕存喘器遇地云址铃为D悟0愚H近*撒/s梢b矛i目tO并V享=辟P无S籍W脆^系2典;壶/漫*定义OV位治为P倚S蹲W欲.军2窑,地熊址皂为D粪2尖H模*吸/s玻b直i骂tC浸Y夕=咐P秧S窗W彩^什7到;挂/响*定型义C每Y位为PS唯W.蜘7,地址粮为D7奇H膏*/第二萌种格夕式:s济b劈燕i普tb砌i泥t非-河n皆a婚m驻e搁=i依n就tco丛ns蛾ta辰nt诵^i革n挤tc怨o懂n鸟s付t恶a聪n茂t而;"=舍"后的i友n袭tc星o束n饶s臭t摸a篮n吩t为寻宰址地泰址位窝所在裙的特垄殊功罪能寄错存器版的字怨节地黑址,恨"^爆"符择号后能的i潜n战tco章ns驶ta裤nt为寻辰址位蛾在特逐殊功再能寄丛存器能中的艺位号假。例洋如:s白b盟i化tOV逐=0唉XD伶0^沿2胆;专/撒*定昌义O痒V位地部址是D0竿H字节旺中丈的第脾2位愉*来/s蓄b划i逢tC长Y荒=销0费X能D阵0荡^幻玉7棕;腿/向*定妄义C扶Y位懒地桂址致是D踪蝶0味H字节删中野的第快7位鞠*挤/第售三影种睁格胀式股:sb朱itb苍i短t冶-钱n倡a树m痛e陡=i当n愚tco物ns期ta投nt糊;"茫=桃"后的in栋tco早ns弱ta赤nt为寻马址位刘的绝衔对位硬地址莫。例啊如:s忌b俘i立tO喊V古=战0基X贷D铲2域;葡/术*定义O蜡V位地荷址为D劈燕2堡H咳*批/sb束itC巩Y陪=晕0绢X葬D谣7斜;戒/笛*定禁义CY位驻地误址边为D7滋H饼*/特殊老功能巡寿位代拜表了河一个才独立罪的定君义类绵,不匹能与午其它旗位定甲义和辅位域解互换副。7.饿5MC押S-棋51并行免接口锋的C5碗1定义MC买S-黑51系列叠单片恢机并理行I群/腿O接桌口创除用了得芯牌片煌上击的吴4丹个I掩/练O口熊(P0符~门P威3)外肤,箩还倒可凝以假在灾片盏外治扩启展I蜓/购O口浇。MC露S-各51单霉片深机I/傲O口与尿数据苏存储座器统泉一编倒址,咬即把感一个I/截O口辅当础作齿数庄据芽存冤储间器甜中决的煤一运个蔑单友元显来错看贩待酸。使斯用C裙5承1进顶行迎编指程败时羞,M选C低S贱-物5椅1片经内装的I/仇O口肾与坛片兄外壳扩壤展想的I/宁O可混以秧统低一拨在卫一评个伍头筛文斧件抄中卧定洒义洲,冰也溉可起以淡在妙程希序嫂中亦(记一育般肠在分开裕始炼的喝位控置烤)卖进仙行汉定鹅义胃,念其恩定密义枯方恳法汁如戚下兵:对淡于M洲C稍S您-什5泪1片再内I沙/畅O口完按袄特殖殊敢功盒能应寄恐存理器勒方枪法处定为义抽。言例搅如艳:sf必rP0渠=0丈x8体0龙;牵/颗*定义P高0口抚,粘地酬址给为弟8期0H旗*/s宫f旱rP座1胳=弃0口x闻9昏0至;幻玉/惰*定酒义P俱1口你,潮地切址昏为年9咸0H艳*依/对扇于娘片到外刘扩添展I伍/蛙O口,换则根得据硬帜件译割码地息址,匪将其数视作撕为片阳外数叶据存敞储器脂的一碌个单俘元,铸使用循#d模e羽f遮i誉n韵e语句暂进行玩定义惊。例牙如#i调n厘c悔l麻u看d瓦e拆<ab汤sa肉cc.炉h邪>#d张ef屿in盲e胁PO削RT靠A帜XB师YT招E躲[0欢xF凶FC薯0]ab售sa击cc.h是C好5辈1中虽绝权对协地铜址立访肌问禾函穿数吓的工头炼文仇件意,蔬将PO永RT听A定义催为外护部I/铁O口喘,犁地宝址糊为F司F鲜C者0呆H破,长度际为8却位。一刘旦丑在哀头迈文等件论或洋程难序旱中福对症这挥些丛片幸外I求/附O口刊进抽行县定植义艘后结,提在连程原序电中物就探可星以程自秧由铃使扇用祸变悼量税名笑与广其施实炒际收地蓝址无的缸联扑系盒,单以价便还使屯程阻序亚员袜能黄用令软锡件醉模番拟MC钉S-苦51的硬舱件操窄作。(莫1驱)醋位巾变川量C龄5能1定义棵。使说用C5挨1编桂程哀时彩,津定规义屡了脚位雷变煌量近后判,掏就觉可扣以可用瞧定毒义经了壳的威变败量邀来握表归示MC跨S-才51的咸位局寻穿址逗单促元偿。位兼变度量与的C絮5煮1定义总的一剖般语辩法格看式如虹下:位类漠型标恩识符脑(bi速t)位弯变柿量北名让;例如终:b愧i尖t喇d更i锄r困e木c孙t加i掌o残n耐_晶b坟i扇t狠;融/碌*把di蜜re唱ct易io浊n_底bi名t定义河为位猫变量吧*破/bi垃t煌l成oo键k_纹po遥in田te苹r叔;牙/*把lo咽ok己_p秆oi各nt抛er定咏义夹为询位睁变未量槐*俗/7.励6峡位州变量妹的C5错1定袭义(2置)辆函数夺可包并含类护型为蛾"b侦i破t吉"的参专数,乔也可乱以将深其作阿为返畜回值毛。例叹如:b同i驾tf侨u阶n舰c(茅b盆i蓝t捞b浊0掘,燃b再i坟t海b都1惠)映/陵*变宵量b峡0锡,睬b凝1作为纯函数付的参律数慈*/{r桌e碑t绑u券r屡n损(往b粘1董)劫;烦/点*变量b捷1作判为扛函档数膛的票返蜓回爪值防*装/}注意疏,使杰用(登#pr指ag拴madi蓬sa耻bl还e)或包剪含明伞确的士寄存翅器组遭切换与(u集s且i肢n鞭g霉n犁)的函南数不系能返挺回位扭值,挤否则欢编辑究器将佩会给汉出一葵个错阳误信兰息。…(缘瑞3豪)关对爷位未变更量愿定浆义桑的潜限命制蚀。膏位袖变街量傍不溜能途定卖义粗成遭一沙个垦指品针荣,厉如匪不蒙能贼定胞义药:bi吧t猎*迟b舍it惕_p雹oi梨nt奴er务。不存成在位章数组玻,如绸不能稻定义赶:bi奥t县b鸭_a屈rr半ay骄[放]。在位畏定义体中,熊允许愤定义昼存储礼类型羡,位枕变量般都被胀放入趟一个水位段亦,此气段总鹅位于M梳C尊S闻-斥5而1片直内乒的R昆A致M区孕中圣。具因职此允,晌存僻储蜡类倾型唐限负制起为da歇ta和id枯at城a,如员果伏将置位劲变势量打的公存土储清类鼓型柄定叠义的成世其良它忘存领储爪类薄型软都杜将姓编蓝译沟出税错奴。例犁1先定年义变含量的骡数据兔类型肠和存防储类塔型:b兽d裕a绝t键a感i晌n饭t壳i训b需a遗s团e;跃/甜*定义i材b幻玉a馅s广e为b奔d托a刻t违a整桨型没变辱量奴*忧/b崖d援a发t系ac负h打a使rb尾a微r早y[4盼];帝/*b悠a畏r崖y[4兴]定义恩为bd逐at缎a字渔符脾型产数吧组规*呢/然后沿可使匪用"sb瞒it"定丝式义仍可混独痛立耽寻衡址唱访阶问用的胶对塞象散位校:sb迷itm伸y拦b义i不t置0班=ib车as个e^氏0馅;汗/议*所m继y糠b反i桥t哥0定义则为ib获as吵e的敢第萌0窃位炕*际/sb渴itm刷y签b尊i步t霉1显5丹=ib跪as威e^1咳5;首/缎*留my尘bi在t0定义显为i卖b肺a唯s浪e的第抖15弓位负*/s引b刻i恩tA翻r柄y刚0士7朴=b锁a注r贱y[帐0道]迷^魄7何;惨/捆*级A恋r茧y谱0裹7定直义耐为ab羽ry[贵0崇]的第您7位踪蝶*舍/sb申itAr粉y3抽7这=b枣a件r期y[吸3艰]纯^集7盼;驶/壳*港A板r墓y健3扒7定义饶为a市b粒r钥y[翠3抢]的第鼠7位虽*兄/对掠象ib尼as剖e和ba悟ry也先可规以胡字计节僵寻民址汁:a友r葱y句3惯7仗=床0柱;踏/拨*b森a苗r戴y[3东]的第性7位台赋值底为0岂*气/ba汪ry[竿3冻]锁=流'愧a半'当;恋/启*字节留寻址橡,b姐a悟r偷y[3磨]赋铜值鞠为没'a切'棉*膜/s炊b呀i健t定脖义具要链位猪寻节址腾对妇象级所累在袭字韵节蚂基损址本对链象沉的康存畅储恳类歌型坦为露"bd业at溜a"警,否则迎只有任绝对材的特狸殊位我定义废(s玻b构i抚t)是合延法的求。"钳^"牌操作摔符后础的最球大值糟依赖穷于指寄定的款基类盒型,寻对于c硬h洋a课r校/u店c败h庭a杰r而言铁是0娱~7翻,对波于i害n寄t/u凶i健n祥t而言展是0武~1弄5,傻对于lo添ng纯/ul翁on隙g而言锯是0冤~3驰1。7汗.财7C渗5掏1构里造笼数抱据疗类值型1.劳基于你存储肉器的缠指针基于鸡存储群器的衰指针驻以存务储器疾类型漆为参授量,播它在踩编译枯时才讲被确醉定。乱因此懒,为长指针形选择筛存储逃器的乎方法销可以辜省掉慢,以坚便这这些指廉针的交长度痕为一扇个字姓节(id云at桂a*,罪da恶ta宇*骆,p短d惧a恳t告a*)或咏2矛个冒字模节矿(co撑de援*剃,xd圣at谣a*所)哭。编宪译政时坐,经这诵类飘操爹作伐一触般番被毛"仇行昂内惨"父(i驼n司l域i君n耐e龟)编杂码方,笔而响无庄需既进责行蛋库铁调淡用气。基绣于骡存侄储筛器每的秋指票针估定骄义乖举恼例搬:ch否arx盘d厕a杀t嫌a*px;在xd窑at姜a存储奖器中指定义店了一桥个指赚向字返符型缸(ch碧ar销)的需指嫌针垦变隔量p洒x。指亡针咸自炮身沫在妄默鼠认隙存充储诵区湿(换决脆定惊于畏编幅译扰模絮式壤)腐,锦长陷度哀为冻2目个撇字关节蓝(神值许为蔬0蛙~渠0xF裤FF者F)。ch肤arx博d赛a懂t吧a*d令at追ap钞d罚x;除了尖明确港定义报指针刷位于M贴C厘S妨-汤5桑1内部著存储厘区(da解ta游)外时,佣其踏它乘与巴上或例鞋相级同矛,烫它尊与扣编梅译且模崖式师无响关条。da恒ta宜ch鄙arx侮d伯a斩t阳a*p念d乓x;s足t县r刮u练c键tti窄me{污c怀h巷a职r琴h苏o仔u熊r圆;c剩h挤a孝r昼m饼i户n侧;ch绑ar羽se夜c;s哲t满r漠u旧c路tt奇i忧m克exd吧at法a*px员ti踏me;}在结掠构s骆t神r棍u公c省tti隙me中,伯除了蚀其它碑结构若成员渴外,没还包逆含有出一个押具有裹和st掠ru虎ctti沟me相辟同最的停指俭针px剥ti委me,t吹im令e位于爽外部刮数据浴存储高器(xd颗at察a),指针p币x乘t均i娃m蠢e具朵有助两职个雕字疫节醒长腊度械。st咸ru栏ctt妖i剑m从eid真at洋a*p仗t你i塞m坟e;这个落声明颈定义银了一诊个位旨于默荷认存滋储器夏中的效指针丝式,它滤指向恒结构t向i含m掀e剑,朝t扫i伤m绝e位于id傲at雾a存登储扮器少中笑,造结蕉构渠成骆员湾可朗以扒通反过MC伍S-向51的@R配0或特@R1进行抢间接球访问皇,指拼针p桑t男i遍m扰e为厘1盟个秘字宫节广长滋。pt恢im朽e→p啄x芹t絮i终m焰e→h琴ou喉r造=弱12扁;使用驻上面宇的关瞒于st腊ru途ctti炸me和st回ru捡ct次i贴da辱ta*pt纪im屯e的报定柄义刑,忽指重针通"p屑x迷t槽i策m骑e"被榨从蠢结芦构厌中伤间芝接桑调弊用麻,欧它变指殿向摆位桐于xd债at杆a存宴储卖器领中懂的ti颗me结构奸。结庸构成艳员h猾o住u析r被赋舱值为绸12递。2.困一般捡指针一般富指针惜包括蹈3个闹字节隐:1忙个字奶节存遗储类阔型和部2个搭字节公偏移篇地址侵,即地址+0+1+2内容存储器类型偏移地址高位字节偏移地址低位字节其结中圾,神第筛一衡字视节裹代持表插了迎指只针捷的山存起储吉器戒类次型午,何存寺储拨器漫类爬型隐编晋码粉如借下忽:存储器类型idataxdatapdatadatacode值12345例牧如胀,坟以x吼d狂a宝t减a类职型弯的免0x厚1魄2斧3卵4地侵址港为馋指沙针培可涌以株表衣示代如愿下损:地址+0+1+2内容0x020x120x34当用拐常数仍作指慈针时墓,必诱须注恨意正龄确定纤义存逗储器查类型跑和偏侨移量个。例妨如激,凯将盲常兴数饲值门0x断4震1写入婚地址稻为0x计8姜0裳0延0的蒙外服部僻数妥据改存食储开器廊。#d饥e擦f化i减n针e纠X屈B脊Y演T竞E闪(上(灾c浮h见a指r师*抢)链0樱x丸2忘0龄0咬0推0诉L冲)X泊B债Y钻T灶E家[滴0谜x烈8纺0否0贴0源]蜘=凉0嚷x闪4写1框;其柱中嫩,X爪B介Y反T唇E被定智义为炸(ch前ar偶*凤)0温x2滋00烤00漂L,消0x泛20歌00友0L为球一昨般肚指尚针足,盛其采存迹储拉类觉型轻为萍2蚕,会偏你移婆量看为崇0兴0怠0疯0H,这凳样XB茧YT救E成为群指向xd犬at聋a零地谊址的么指针随。而X炭B挤Y耀T照E脚[模8摊0墓0抱0耽]则是小外部楚数据证存储估器的跑0x表8征0希0桐0绝订对冶地教址结。7.违8册模愤块化警程序僵开发兄过程图7泳.4漫程序赴开发骨过程7仔.奸8朱.每1粱混拼合冷编始程1.们命名封规则表食7重.伙5孔函鸡数著名辉的尼转唇换说明符号名转换规则voidfunc(void)FUNC无参数传递或不含寄存器参数的函数名不作改变转入目标文件中,名字只是简单地转换为大写形式voidfunc(void)_FUNC带寄存器参数的函数名加入“_”字符前缀,表明这类函数包含寄存器的参数传递voidfunc(void)reentrant_?FUNC对于重入函数加上“_?”字符串前缀,表明这类函数包含栈内的参数传递例2用喉汇敲编证语案言辰编草写辟函倡数嚼"t菜o骨u霉p啄p济e破r",参数母传递凶发生海在寄魂存器R7中累。UP贿PE委R资SE材GM欣EN季T缠CO订DE堆;程序浮段P镇U舞B优L保I劫C锋_侄T职O职U弃P柄P大E辫R浙;入围口路地惨址PS轰EG寻UP粘PE文R遍;程祸序络段_TO绿UP晚PE其R:寻M谁OV恨A,驴R7佩;从R轨7中拘取阻参积数CJ宽NE谷A,伶#骄'a考',塌$+碌3JC窗U昂PP葵ER弄ETC械J誓N页E遗A位,揉#咳'级z猜'月+保1疯,栋$味+住3JN娇C哭U涨PP迫ER拳ETCL察R惑AC柱C谁,5UP堆PE裤RE硬T:冤MO届V茄R艺7亭,A仇;返智回歌值台放黄在R脾7中RE粱T;返回余到C2.围参数语传递维规则表7姥.6柴参数卖传递药的寄错存器嫂选择参数类型charintlong,float一般指针第1个参数R7R6,R7R4~R7R1,R2,R3第2个参数R5R4,R5R4~R7R1,R2,R3第3个参数R3R2,R3无R1,R2,R3f羞u键n锋c队1隙(in宁ta跑)跪"冠a打"是膝第直一包个唤参温数满,佣在R6敞,R宋7中剑传撒递常。f刮u屯n汁c必2由(in坦tb赢,in吐tc炎,in版t*d历)呼"b拳"是第等一个讲参数望,在R6泛,R隙7中换传丢递客;母"c剪"是哲第柿二伙个局参醉数平,遇在R4兔,R英5中投传醋递武;凝"d刚"是第墨三个沫参数答,在R1劈燕,R惜2,菌R3中剥传炉递威。f蔬u凯n趴c筒3讽(罚l棉o闹n即g赴e膝,鱼l骆o幕n补g麻f性)薄"弓e商"是搭第氧一杠个摸参田数悉,叠在R最4穷~泪R克7中偶传乞递食;讽"f暴"是第划二个追参数辨,不呢能在命寄存悲器中蒸传递窃,只滔能在弄参数胡传递嚷段中慨传递扰。fu纽奉nc藏4(洒fl耍oa欣t须g冠,苦ch锋ar亿h绢)选"g或"是鱼第屠一悠个灵参筛数炸,碧在R4届~R筝7中汁传俩递消;酷"h"是贤第材二永个遥参矮数叠,桨必粗须占在东参劳数移传繁递樱段欣中响传院递辞。表慎7居.捏7津函坝数扩返材回哈值直的兴寄桶存佳器返回值寄存器说明bitC进位标位(unsigned)charR7
(unsigned)intR6,R7高位字节在R6,低位字节在R7(unsigned)longR4~R7高位字节在R4,低位字节在R7floatR4~R732位IEEE格式,指数和符号位在R7指针R1,R2,R3R3放存储器类型,高位在R2,低位在R1在汇据编子蓬程序启中,舅当前拦选择怨的寄王存器潜组及目寄存娃器A由C为C辜、踩B望、童D川P兄T盘R和PS胞W都可要能改来变。么当被C调吵用晶时侍,待必刘须诊无迷条朽件宏地惰假悠设挽这定些欣寄思存计器铸的麦内反容预已新被别破姥坏体。数如旧果莫已帮在坐连笼接稳/滥定规位歇程啊序糠时荣选乱择功了血覆圈盖辞,丹那稠么耳每传个怕汇遗编码子狱程算序蒜包垄含奖一恢个耀单园独边的钱程闪序符段他是幕必哲要摧的堡,低因宣为裁在缸覆哭盖孩过贞程嗓中德,夕函观数调间页参断量案通葡过丛子祸程确序节各贺自跑的述段钻参淡量卧计烤算艘。挥汇倦编支子畏程颠序鸡的廉数睡据历区搏甚叠至的可袋包殃含眉在总覆暑盖捡部辩分楼中封,歉但籍应它注棉意裙下伴面歪两纤点会:(1仰)畅所有互段名杠必须钳以C5狱1类描似静的方方桌法割建欺立行。(2责)房诚每个殊有局辜部变项量的蜡汇编第程序育必须蚊指定佳自己淡的数娱据段老,这齐个数夕据段仓只能旨为其较它函型数访筝问作爆参数醒传递次用。喉所有悠参数谱一个大接一应个被骂传递府,由责其它亩函数瞧计算届的结旋果保闭存入吵栈。7.梦8.档2蛋覆逝盖和司共享1夕.瞎覆霜盖单却片息机灵片意内莲存揭储仍空简间奔有呀限准,醒连开接嘉器辉/园定斧位遮器渗通客常津重略新趟启右用倾程细序鲜不枕再胁用云的魂位杨置沫。求这咐就槐是光说申,览若邀一潮个术程旁序备不文再缴调悔用生,含也纽奉不为由吃其别它脾程泳序哀调能用苍(应甚回至愧间晨接俗调顶用饲)沫,载那惑么姨在魄其兰它际程殃序插执都行点完扑之贺前井,桨这揪个谣程左序业不懂再野运澡行莫。腊这窗个守程慕序蛛的拍变划量余可起以抱放蠢在烤与宝其龄它测程丧序拒完惊全描相品同别的R胸A钢M空时间席,伞很晕像秧可率重尤用趟的向寄膊存烈器愧。少这自种赢技抄术宋就刊是延覆局盖扫。说在渔汇汤编兴中汇直衡接犹通艘过碰手通工哗完今成看的速这感些窑空播间启分逐配若,C语言派中可棋以由尊连接捆器自枪动管港理。寄若有称几个订不相忆关联渗的程目序时丛,它代可以枝使RA霞M单元弟比手荡工考福虑要翼用的拆少。2.右共享1)跪共萌享变会量类型汇编语言C语言动态变量
y(){intx;}静态变量
staticintx;公用变量PUBLICXX:ds2Intx;外部变量EXTERNDATA(X)MOVDPTR,#Xexternintx;静态子程序/函数Y:…staticy(){…};公共子程序/函数PUBLICYY:y(){…};外部子程序/函数EXTERNCODE(Y)LCALLYy()2抵)挡共些享抚函及数蚀/虚子牺程摘序C中函膀数若划是全堂局的申(公冲用的电),针可以跌放在缎调用聪的函岭数之准后。苗若函赵数是昼模块表专用地的,主它可夹以定宰义为雾静态授函数鞠,这钩样它拉不能羊被其曲它模汪块调洒用。C语附言暑的A唯N抬S揭I标准想建议腰所有蚊函数狗在主案函数撒前要璃有原垮型(律进行宅说明补),恋然后垂实际筒函数停可在汪主函抱数之腿后或货其它热模块萝中。警这符往合自括顶向舅下编藏程的士概念筝。汇编婆语言目中,堵子程附序使驳用标他号可小在给魂定模华块的阴任何睡位置育。汇救编器不首先尽扫描真得到释所有诞的符遍号名顾,然犹后值钢就可仿填入L能C焰A贞L聚L或L恭J摊M聪P苦。一食个谷模吃块氧或纵另停一荷模注块爽共榨享批子球程援序糕,备一巾个汽使远用PU撞BL蜂IC而另继一个猪使用EX牲TE万RN尺。当伶指懒定棕为EX系TE美RN仔,符仇号鲜类税型顽(CO检DE翠,D地AT思A,评XD蝇AT够A,恒ID珠AT摧A,猜BI测T或NU挨MB阵ER臣)必贝须捞特悦别辩加误以锁指仅定弹,摇以滋便窑连仙接储器忆可桑以麦确者定动放会在嘱一鸭起愉的路正意确移类雨型辽。7斩.哥8怀.告3鸭库案和翁连吃接腰器围/逝定氏位芦器1奇.济库表兽7萌.浸9F楚r战a肚n缎k脖l挽i理n板C技5蚀1的编胞译库库说明C51S.LIBSMALL模式,无浮点运算C51FPS.LIB浮点数学运算库(SMALL模式)C51C.LIBCOMPACT模式,无浮点运算C51FPC.LIB浮点运算库(COMPACT模式)C51L.LIBLARGE模式,无浮点运算C51FPL.LIB浮点运算库(LARGE模式)2.全连接植器/逆定位即器1)组围合坊程电序票模仇块将招几蚂个故不贿同拳程池序块模费块皱组萌合勒为朗一耐个痒模蚀块恨,驱并抛自典动准从场库屑中届挑刃选差模侦块暖嵌腥入剃目穷标歼文到件航。趣输划入争文暂件称按春命饶令堡行版中凭出不现拼的梨顺义序兴处祥理谅。言通剪常乞的茶程纺序海模丑块玻是兄由C5召1编译券器或A5意1宏汇协编生查成的香可重兵入的吩目标恭文件命。2庙)劣组丹合首段将蔬具运有绘相技同制段顶名吧的倾可雄重沸定己位她段悄组时合榜成仇单候一冬的对段好。六在肌一薪个筛程迅序忘模适块锐中贷定画义脆的饺一僻个查段虏成蕉为炸部爹分牙段御。跌一叠个肃部鹅分跪段志在向源号文舅件察中因以喉下雅列争形亡式辜指否定混:(猜1乳)扫名忌字仅每畅个葵重百定骆位藏段乓有坊一土个耳名什字仔,却它也可捡与恼来病自赠其顽它雕模都块惰的坑同略名平的监可宫重纪定输位袍段盛组喜合积。阴绝凑对蚀段吧没熊有困名以字剩。(蓝2缎)米类乡丰型槽类肥型炼表同明执段秋所裳属厅的纵地赞址旺空锤间CO弹DE浓,X奥DA饼TA颜,D源AT桌A或BI劈燕T。(比3宰)乒定怠位谈方疯式赴可记重被定疫位握段生的缺定舍位腐方连式抢有PA鹊GE洪,I闷NP揭AG献E,或IN种BL锈OC忧K,解BI胆TA胀DD岁R逗ES榆SA厦BL捞E或UN庙IT巨。I剂NP宝AG仙E表舅明顽段鸣必刑须锁放简入门一舌页扮(与高骗8复位暖地乐址面相钓同扎)华中逮以稍使块用恭短忠转从移给和年调逆用愈指耐令油。IN抢BL冻OC聋K段闸应趟使销用A醉C蛾A伏L溪L庄,必谜须厨放剃在辜2载0依4滑8鞋字缠节住块脉中逢。黎因均为版没脂有谨连后接巡寿器抵可惩以显灵荒活票地镜判罗知鸟调众用件和牙转扣移棉是泰否漆在朋块箱内洪。地可嫂重座定动位鼻的串其资它课限边制奶是裹:PA仙GE兰--不能办超过迷25蛛6字寨节;BI象TA棵DD闹RE耍SS陷AB抚LE宿--必萌须镇放父在市可慈位欣寻教址吵的末内撕部R犁A地M空间魂;U箱N萝I锐T帽-俭-允许剧段从窝任意筹字节米开始我(对愈位变妇量是胃位)廉。(4明)骂长度薪一个琴段的当长度肾。(5与)处基址帝段的浓首址惜。对峰于绝投对段访,地挣址由朵汇编败器赋按予,宅对于窗可重瓣定位蜻段,蒜地址印由L5阵1决定坑。在臂处理拉程序众模块鲜时,L劳5符1自辅动予产念生始段某表桂(MA尽P)修,该表嘉包含陷了每叼个段码的类细型、钻基址疮、长菠度、背可重龄定位愚性和瓦名字唯。L炒5鹊1自动尺将所好具有集相同这名字丸的所协有部哪分段那组合色到单涂一可淹重定怒位段痰中。亭例如渣,三咱个程冠序模诸块包腐含字夸段VA乌R,在闹组蛮合摇时寒,岁三艇个义段恼的影长勾度结相雄加团,逐从值而乒组姿合桶段碗的菊长每度浸也顶增载加禾了幻玉。免对抢组艘合善段穗有挣下规列叔规惨则出:①成所有椒具有秧相同千名的时部分场段必漂须有挤相同个类型恩(C长O呆D闻E疮,泳D增A由T小A零,宜I亡D稻A扣T循A糠,浓X虎D曾A慎T绢A或B救I研T无)炒。②组求合别段向的捞长斯度飞不葵能窑超击过辨存梯储骆区哄的采物游理存长斗度薄。③勇每克个农组担合社的庭部料分狸段怖的锻定粱位据方揉法宏也指必塔须塞相谣同结。④脊绝丸对倡段扎相羡互兼不狗组锤合羽,屯它气们帐被卷直饰接协拷觉贝留到头输葱出励文答件载。3粥)烤存古储谊器墙分绢配物理存储区最大长度地址区段类型程序64KB0~0FFFFHCODE外部数据64KB0~0FFFFHXDATA直接寻址片内数据128字节0~7FHDATA间接寻址片内数据256字节0~0FFHIDATA片内数据的位空间128位0~7FHBIT表庄7望.丹1邻0MC达S-植51系壳列罪的痰物等理仁存呆储萄区4)捐采蝇用覆灰盖技宇术使哈用数惑据存胜储器通耍过暖采炊用贯一松定垮的剩覆妖盖动技宝术站,M锅C程S韵-谈5扬1系列忘少量汉的片首内数六据存缴储器乐可由L5避1有效坊地使亿用。束由C5沉1编弄译精器竿或丹是A5允1汇编凳器生慰成的皇参数追和局举部变僵量(欢若使阵用它劳们的姐函数笑不相别
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度网络安全服务合同解除三方协议原因报告
- 二零二五年度XX大学校园安保设备采购与维护合同
- 2025年度物流园区停车场车位使用权转让及物流配送服务合同
- 搬家服务质量合同模板
- 3D打印居间合同模板
- 上交所质押回购合同范例
- 人事代理劳务合同范例
- 公司新服务合同范例
- 买卖装修工具合同范例
- 做饭务工合同范例
- 2025年兼职销售代表合同样本
- 医院财务知识培训
- 绿植花卉租赁合同
- 2025年内蒙古建筑职业技术学院单招职业适应性测试题库及答案1套
- 部编人教版小学一年级道德与法制教案全册
- DeepSeek从入门到精通进阶科普
- 眼视光行业现状及展望
- 2025年多旋翼无人机超视距驾驶员执照参考试题库500题(附答案)
- 幼儿园学前班春季家长会演讲稿
- 2024年云南省高等职业技术教育招生考试数学试题
- 2025-2030年中国电船行业运行状况及发展潜力分析报告
评论
0/150
提交评论