单片机C编程与应用系统设计_第1页
单片机C编程与应用系统设计_第2页
单片机C编程与应用系统设计_第3页
单片机C编程与应用系统设计_第4页
单片机C编程与应用系统设计_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.基本示例分析2.单片机应用系统设计单片机C语言编程与设计一、基本示例分析:例1、LED的控制

使用805l的Port1连接8个LED,以产生跑马灯的效果。连接好电路并且完成程序之后,您将可以看到8个LED依次轮流闪烁。在这次练习中,您将学会如何使用I/OPort输出数据,以及如何使用循环实现时间延迟。

电路图#include<REGX51.H>voiddelay(void)

/*delay函数*/{unsignedchari,j;/*这个函数执行时间的延迟*/for(i=0;i<255;i++)for(j=0;j<255;j++) ;}voidmain(void)

{unsignedcharj=0XFE;/*声明变量j*/while(1) /*无穷循环*/{/*依次让LED0,1,2,3,4,5,6,7闪烁*/ j=(j<<1)|0x01; if(j==0XFF)j=0XFE;P1=j;/*将数值输出到Port1,控制LED亮或灭*/delay();/*调用delay函数*/}}例2、指拨开关的输入目的是使用8051的Portl连接到8个LED,Port2则连接到1个指拨开关,当用户拨动指拨开关时,相对应的LED就会亮或灭。在这次练习中,您将学会如何使用8051输入数据。

例如,您要从Port2输入数据给变量temp时,可以执行temp=P2;

电路图#include<REGX51.H>voiddelay(void)/*delay函数*/{unsignedchari,j;/*这个函数执行时间的延迟*/for(i=0;i<255;i++)for(j=0;j<255;j++) ;}voidmain(void){unsignedchartemp;/*声明变量temp*/while(1)/*无穷循环*/{temp=P2;/*将P2输入的数据直接放入变量temp当中*/P1=temp;/*将变量temp中的数据直接输出到Port1*/delay();}}例3、七段显示器的控制

目的是使用8051的Port1连接到一个共阳的七段显示器,然后让8051轮流显示0~9。当您连接好电路,并且完成程序之后,您将看到七段显示器依次显示0~9。在这次练习中,您将学会如何使用805l控制共阳七段显示器的显示。

一个共阳七段显示器的外观和引脚如图所示。这个共阳七段显示器的引脚分别连接到805l的Portl引脚。

电路穴图#in乓cl织ud货e猛<A坚T8胁9S亦51竿.h常>co酿de臣se政ve欲n_se狸g[1焰0]曲={拣0X咱C0坏,株0X仪F9触,泡0X身A4及,塘0X景B0勺,估0X知99皂,陡0X桃92装,姜0X甚82兴,汤0X脸F8宿,编0X蒙80熄,凝0X晨90扮};vo些id志d坛el辱ay用(攀vo驾id欠)/*时间放延迟复的函园数园*/{剪u历ns瞒ig趁ne师d淡ch匙ar陆i诸,j睬;fo醉r扁(i置=0涛;i摧<2浆55直;i星++搭)fo架r(捷j=摆0;盛j<砖25拢5;端j+唯+);}vo键id逝m妹ai笼n露(v播oi怨d){铲u船ns清ig酱ne罩d落ch滔ar仅i霉;/*变量i用来脑储存屈0阿~9初*搅/wh袋il坐e舌(1京)/*无穷引循环窄*黎/{热fo桃r友(i倦=0举;拘i<白10希;水i+短+){挺P1难=瞧s快ev探en蜓_se加g[i稠];/*输出辩0郑~9馅到轰共阳正七段续显示废器*之/de率la局y(觉);/*调用猛时间勉延迟托函数de壤la圈y*丽/}}}共阳选七段门显示纳器有撤一共帮同接鼠点连钳接到摇5V,其余闪的七泄支引饮脚分仙别如期图所侵示因此朴如果钞要让塌所指凭定的LE员D发光火时,烫就必失须输凉出0,反之慎则输女出1槽,所理以我第们可候以用鹊下表排走列出猫所要纲显示询字符坡和必衫须输捞出的扮信号喇。下摩表中没,假晒设do晌t点接毙在最党高位航,而身且不岂点亮炉,所以烂一直敲都是驶1。将以列上的级信息步编成选16梁进制四码,厉然后邀存放计在定分义为se晕ve奥n_se安g的数坟组中胀。我们携将共劲阳七怒段显从示器冠显示因出0~9的字拴型码派储存陕在程饥序存旁储器贤中。当用仁户有勤固定冈不变甩的数传据时则,就窜可以拐储存挑在程骂序存员储器技中。槐储存夫在程倡序存垫储器待的数摘据必牲须存拾声明鲁的变缸景附叙加上co果de沸,如以自下的疏声明克方式迷:co绿de进se伙ve禾n_se豆g[1燥0]铃={促0X关C0跃,抬0X仓F9唇,巡寿0X搅A4脸,售0X责B0苹,酒0X匹99澡,置0X竭92拌,热0X恶82寒,斜0X看F8邮,匀0X绑80尽,轰0X倍90滩};例4、计晶时器Ti窃me双r0的溢汪出中头断控配制在前佳面,洪我们造曾经绳捉到劝过使汽用fo伍r循环乱实现尝时间距延迟州并不木是很蝴精确述,例冠如,邮程序冒会受诊到中齿断的陷执行刺而影炸响延交迟时耗间。磨在这耐次实君习中镰,您店将学婶会如肆何使钳用8困05闷1的Ti散me通r0计时尊器溢漆出中晃断实直现准意确的气时间榜延迟橡。本练习使用勒80屡51支的Po餐rt渔1连接并到一以个共跟阳七难段显唇示器沟,然叫后利距用计编时计粪数器Ti茄me上r巷l,让8糊05非1在孤指定服的时尸间间玩隔内葵显示狭出0~9蛇。当您线连接不好电餐路,英并且节完成窝程序钥之后盒,您岛将可询以看代到七事段显豆示器车依次点显示义0~深9被。#in狡cl笔ud冬e呀<R包EG皆X5义1.体H>#d多ef量in债e默TI赢ME时R0倒_C刃OU件NT浪0选xE冶E1辽1co剥ns郊t闲se穗ve浮n_se句g[1洗0]骡={氧0X管C0业,载0X顺F9疼,岛0X浙A4区,原0X蜜B0役,退0X怀99悠,声0X加92冬,铃0X位82哨,盆0X找F8形,拔0X匪80遗,尽0X俘90邮};un是si欺gn量ed甜c脾ha宽r辆ti税me草r0开_t龄ic像k,烈i=姿0;st怠at疮ic拴v弓oi引d喘ti嫁me毅r0军_is较r(v龄oi返d)耳i眨nt见er趴ru焰pt爆T奶F0核_V峡EC口TO应R甘us帽in爷g闭1{顺TR源0=筝0;TL稿0=斜(T乒IM戴ER冬0_咬CO趁UN住T腰&读0x金00锅FF跪);TH勿0=样(T傲IM鼠ER弦0_够CO疼UN赚T际>>惧8壁);TR谨0=崭1;ti轧me嗓r0桐_t仓ic威k+绳+;if且(咐ti考me钳r0浅_t动ic赵k=警=2盼00栽){i+心+;if赔(i抖==矮10好)决i=问0;ti计me裂r0他_t滋ic遇k=眉0;P1亮=s露ev艇en炕_se惭g[i葵];}}st惧at类ic畏v廊oi代d震ti着me饱r0谅_i亏ni腔ti养al松iz渣e(布vo顾id矩){EA喝=0汽;/*设定取系统思不接繁受所业有的颂中断铁*丽/ti抖me纷r0位_t筋ic议k=庄0;TR呼0=库0;/*关闭Ti宜me万r0启*符/TM始OD愧=纱0x扇01汇;/*设定给计时柔器0撑为1戴6位美的工授作模斧式存*/TL湖0=勉(T扔IM袄ER喷0_眨CO雾UN腥T拉&尖0x话00掩FF紧);/*设定TL梦0的数似值恩*/TH墨0=值(T候IM发ER选0_馒CO誓UN辰T胶>>早8私);/*设定TH像0的数撞值节*/PT披0=各0;/*设定扭计时翅器0盏有比腔较高宏的优淋先级反*雅/ET绝0=接1;/*设定荡接受Ti梢me好r0的中邻断蝴*/TR侧0=席1;/*启动Ti躁me项r0考*绘/EA起=1秋;/*设定恒系统趴接受师中断拘*絮/}vo暖id恋m掏ai虚n极(v池oi堵d){浇t土im捕er牵0_仔in荒it耗ia笼li早ze及()酿;wh晕il货e尖(1捎);/*无穷示循环笛*/}使用狡计时羽计数夫器Ti情me晌r0之前家,必必须先龄执行Ti药me吵r0的初呀始化毛功能既。Ti水me具r0初始坟化按雹照以熄下的撒步骤弯:(1型)先苗暂停淹接受怪所有岛的中绕断。(2品)关干闭Ti贤me谦r0薪。(3弟)设置题计时鸣器0险的工踢作模苗式。(4榜)设帮置计折时器隐0的旨计数雾器数库值(TL赴0和TH泉0数值舍)。(5去)设艳置计薯时器皂0有辟比较叠高的惰优先访级(炕这一魂个步锁骤可溪以省流略)惨。(6歼)设符置接恨受Ti缴me束r0的中肌断。(7敬)启包动Ti佛me芦r0骑。(8颗)设置努系统厌接受甩中断皱。中断际定时倦时间哪计算船:如果桐外接赵石英哄晶体先的频宁率是窑12MH大z时,鞋因为存80浇51躁的一烦个机临械周王期需弊要1胶2个妨石英枪晶体四的振葱荡周倾期,奸所以碑每秒齿就有插10炎00祖0休00续次的固机械哗周期巧,换转言之因机械歌周期执是1us态。如果羞我们坝希望Ti叛me乡丰r0每秒色中断尸20收0次旬,那约么我才们就誓必须赖让Ti蒙me皆r0每数押5拳00闪0次肺就中幕断1单次(牙1冒00及0牵00秃0/银20幻玉0=不50匠00齿)。睛因为Ti歼me退r0的溢到出中陡断是Ti跪me亏r0数到滑65竟53烦6(俯16涝进制罢表示补时是坝10霜00瞎0H)就产抵生中循断,研因此径要让Ti稠me店r0数5樱0晋00课次就泼中断告1次特时就向必须善设置Ti范me滚r0等于摄10衰00闷0H-本-(殊(1摸20毫00甜00别0/角(1惕2×圈20造0)框),也就钉是0xE惕E1族1。接下高来我免们可戏以利额用以亦下的吩指令欢分别贫设置Ti固me演r0计数驱器的逐低8到位和Ti遇me退r0的高露8位腰。TL欧0=仓(T亡IM穿ER兽0_惰CO己UN零T毫&锐0x荣00昏FF软);/*设定TL胡0的数悠值梢*/TH欣0=哨(T鸭IM窑ER稀0_饥CO灾UN朗T树>>划8巩);/*设定TH梨0的数触值苦*/Ti咬me糕r0的溢谈出中遇断服精务程停序格体式如瓣下所丸示:st厘at抄ic分v功oi扣d立ti填me悦r0狂_is少r(v驼oi漠d)主i位nt既er颜ru吹pt烤T恨F0摘_V供EC棵TO零R碑us保in受g壤1{加入浇中断辰之后甘必须育处理起的程若序}其中TF铺0昂VE幕CT洪OR是定纪义在互文件re破gx呆51针.h中的谅常量柔,其蜘数值校是1壮,这相是因确为Ti贡me斜r0的中君断向蜓量是穷1。TF交0_巧VE插CT别OR后面拼所接发的us妥in蛛g怖1,表示拿进入Ti翅me统r0的溢根出中电断服闸务程糕序之奔后会苦使用姥寄存喇器组额1(Re临gi锹st父er婚B命an压k填1)掀,而离颈开Ti闹me凶r0的溢载出中负断服被务程母序时乔编译救器也猪会自霸动恢怀复使烂用原域先的池寄存互器组80礼51吃中有城4个勇寄存示器组睬,分鼻别是蚕寄存着器组允0到莫寄存和器组平3,枪当8首05馒1开趁始执声行时凑会自关动采朗用寄劝存器库组0。进入仰中断柜服务松程序童时采议用不避同的拘寄存艺器组挨,可闷以避爆免破幸坏原掘先尚撞未进疤入Ti争me莲r0溢出焦中断望服务昂程序酸时所腥使用猫的寄库存器崭内容率。用户赢当然照也可盛以采延用原靠先的畅寄存辽器,闸但是赵此时猾就必谋须维驱护寄择存器赴的内符容,平一般吩足存淋进入欧中断跨服务厘程序及前先狭将使途用到劝的寄倒存器地放入左堆栈席中,见等到标要离贞开之祝后冉味重新忧由堆渴栈取仁出,贡并恢由复原背先的忙数值敏,这远种做务法在姨维护筝管理疼上要话小心邪。例5、外训部中还断IN本T0本实城验使预用AT急89篇S5身1的Po都rt蔽1连接禾到8组颗LE源D,让Po流rt袄1在正港常状挑况下宵会输花出跑杨马灯幻玉,然微后通镇过用坚户触用动外紧部的抬硬件健来中特断IN右T0桌,当IN触T0引脚灵有低微电位客的脉筑冲出阶现时岗,8苦个LE容D会一谈闪一愉灭4伪次。在这殖次练滴习中朗,您掠将学鸡会如蛋何使骑用外罪部中垒断IN泪T0备。电路嫌图#in莫cl体ud初e捆<R墓EG霜X5哲1.搜H>vo年id苹d麦el凉ay潮(勺vo提id华)/*姻d冷el丝式ay函数摇*刺/{择un宫si狮gn闯ed句c增ha轮r鄙i,深j;/*这个躁函数肠执行曾时间埋的延棒迟郊*/fo糕r贞(i僻=0洲;i浆<2罩55积;i蜓++昂)fo鸟r(维j=格0;奋j<森25眯5;穷j+蛛+);}vo间id是d盒el妇ay兄_4此is攀r炸(v躬oi今d)/*撞d凯el塌ay唐_4段is迟r函数圆*招/{接un鼠si谷gn站ed敌c窑ha泄r或i,顾j;/*这个康函数留执行帖时间循的延芬迟夫*/fo简r醒(i昌=0尺;i喘<2成55亲;i稳++饥)fo薄r(蕉j=升0;厅j<论25称5;挑j+事+);}st走at粪ic闷v山oi木d门xi闭nt名0_is勺r(v贝oi序d)鸭i望nt友er痒ru法pt叠I配E0宋_V照EC奴TO哀R{糟un冶si楼gn循ed渴c箩ha兔r泰i,啊j=滋0X远FF芝;/*变量j符*/fo店r(南i=再0;乌i<炸16样;i门++故){j=安~j弱;P1财=椅j言;/*将数潜值输趟出到LE息D输出真端口泡*蛾/de沟la待y_问4i禁sr录(淘);}}vo旷id贤m唤ai鸭n迷(v粱oi堵d){载un规si继gn庭ed懂c搂ha寇r谨j=伸0X腔FF刑;/*变量j肢*/EA馒=0袄;/*设定何系统句不接盟受所讲有的寒中断信*洋/EX祸0=脾1;/*设定愧接受IN劝T0的中伟断权*/PX辣0=遥1;EA腐=1叠;/*设定餐系统菠接受驴中断姑*惩/wh罩il壳e鱼(1宗)/*无穷球循环眼*峡//*弟依伙次让LE唤D乘0,占1,盯2,懂3,置4,纽奉5,吵6,米7闪烁钩*纱/{j=从(j超<<陈1)菊|借0两x0药1;if烫(j铁==雅0X妨FF庭)石j=迎0X遇FE糠;P1辜=裂j差;/*将数乌值输羊出到LE闷D输出遇端口病*种/de僚la据y(责);/*调用de饥la较y函数鲁*/}}例6、按耀钮检米测1目的坚是使跑用8配05扔1长的PO画RT灭2连接啊到一镰个弹雕跳式塞按钮厌作为巾输入占,PO秩RT仿1则连火接到致1个次共阳宫七段除显示浮器。砍程序分执行柄时,临共阳悦七段逆显示旱器会上先显杜示0,之后帮当用撇户每初按一帆次弹挂跳按密钮,凭共阳休七段败显示铸器所宜显示申的数忙字就稍会加苗1,穗直到捎9之回后又耳会恢榨复到锤0。电路燃图#in械cl勇ud厘e涌<R妥EG锄X5漏1.蛇H>#d盘ef孤in杠e吉TR脸UE件1#d所ef紧in杏e仿FA歪LS翼E纽奉0co垦de鸣se熔ve龙n_se籍g[1屠0]苍={膨0X洲C0第,雄0X谈F9健,丢0X眠A4落,疼0X单B0喇,推0X喘99阁,歌0X脚92痕,猜0X饮82坝,逝0X政F8她,勇0X圈80留,衫0X刘90枣};vo裹id蚕d圈el高ay秘(矮vo械id体)总/*盲w虾ai弱t管fu旷nc雨ti凭on给*纱/{un鸽si例gn国ed授c减ha玻r皱i,径j;/*愉o掀nl计y劫to夸d只el煎ay宏f锋or稼L悲ED骡f仆la孕sh箭es筹*无/fo这r沟(i匆=0铃;i鸭<9趣6;捉i+锦+)fo壳r(坏j=纯0;碎j<框25灿5;珠j+责+);}//函数ke占yp南re伟ss微ed检查包是否却有按信键按厘下in我t临ke捏yp缘瑞re葛ss闲ed(){do稼{wh繁il移e胁(P摔2_旱0=饿=1抛);de窄la丸y(拉);if塑(P俗2_垒0=彻=0往)泄{de慕la普y(董);if疑(私P2层_0鞋==鸡0)re激tu谁rn董T鸭RU悬E;}}灶wh畜il诞e(宵1)诊;}vo攻id纳m基ai甜n锦(v江oi杰d){in份tc;P1币=s科ev岂en驼_se洋g[c影];do刻{if揪(ke悲yp只re详ss盐ed()舟)浸c演++慕;if缎(c股==编10悬)随c=茅0;P1促=s拼ev骑en愧_se丈g[c丘];}唱wh逆il择e(贤1)慢;}在这毅一个咬程序孔中,且我们绝写了欺一个静判断睛按钮妨是否涝被按蠢下的垦函数ke替yp弄re屋ss惠ed,这一或个函抄数在谱用户跪按下堂按钮雁时就浓返回TR续UE页(1炮)。因为净按下信按钮虽时,贯必须迟消除塞按钮辉弹起摄的时积间,沉因此防当程骗序检斑测到智按钮慈事件瞎时(P2锻0等于酱0时得),填必须蒜延迟销一段滔时问供之后塑再检煎查P2总_0是否和还是夏0,如果那还是水0,就表决示按斜钮确故实被葡按下斥,否丑则就拌表示胡只是漫无效畜信息愿而已音。根尿据这结个原支理,坡所以堵设计层出函笼数ke革yp林re快ss爹ed的流廊程图伸,如嚷图所拒示。例7、按蓬钮检香测2上一搬节的利按钮厌检测剃程序忠中,糕消除挽弹起似的时肥间是羡利用抱循环唱来延著长一渣段时废间之糠后,迅然后放再检剑查按踪蝶钮,星这种贿做法筑虽然科可以员消除聋弹起踩时间晴,但遵是却吵也造赖成循通环执哨行时域其他危工作事无法房诚进行丸的缺追点,狠所以绢在这喇一节旅中,割我们帆把时黎间延样迟的亭部分蓝交给Ti喂me僵r0来处良理,颤如此神一来真,就谦可以斑让CP贫U处理速其他页事情背了。本练习使用钉80俗51考的PO灵RT播2连接敏到2祸个弹党跳式茅按钮盯作为通输入叛,其纽奉中一雹个是永上数趴的弹看跳按即钮,莫另一汉个则争是下寻数的准弹跳喉按钮示。PO块RT霸l则连龟接到冠1个临共阳掏七段警显示雀器。割程序塑执行归时,汪共阳亚七段眨显示埋器会挂先显汉示出贿0,之后办每当沾用户斯单击公一次浙上数绝的弹役跳按励钮,嫂共阳爬七段土显示涨器所拼显示秆的数劝字就只会加宏1,跪直到向9之凭后又边会恢艘复到咳0。而每嗽当用鲁户按卵一次茅下数笼的弹用跳按害钮,暂共阳堪七段招显示拘器所多显示类的数避字就显会减蜜1,治直到宇0之旨后又珠会恢虚复到允9。电路匹图#in稳cl义ud盟e稳<R泼EG伍X5肉1.讽H>#d办ef棉in圣e劫T编IM睁ER套0_仿CO威UN扫T逆0X增EE行11#d例ef午in颜e由T弊RU耻E阵1#d告ef乎in霉e期F混AL阅SE练0#d傍ef就in民e讯T劣IM减ES资25co温dese达ve撑n_se靠g[1阁0]华={徐0X芹C0墙,酸0X刺F9言,纽奉0X许A4射,启0X芦B0王,凤0X跑99右,涉0X道92塌,筛0X烛82触,再0X方F8论,聋0X总80倒,紧0X刺90救};in借tc,替u姿ps倘,观do盼wn采s;st辅at巷ic汤v甚oi尝d馅ti躺me央r0律_i甚ni显ti规al华iz瞒e(盛vo尽id栋){糊EA哥=0井;TR筛0=心0;TM雀OD吴&牌=浴0X眉F0夹;TM漆OD凳|政=0稍x0寺1;TL厨0=某(T买IM得ER项0_弓CO欺UN吨T签&伟0x声00骆FF非);TH砖0=鹿(T志IM土ER喇0_厕CO凶UN垦T胖>>准8厘);PT扫0=访0;ET隔0=炒1;TR短0=趴1;EA浴=1运;}vo源id晓m胖ai什n号(v添oi苦d){c=尤0;up讯s=抄0;do野wn廊s=咱0;ti讲me纸r0饰_i神ni避ti插al魄iz金e(蹲);P1券=s纲ev棍en疯_se散g[c品];wh今il鸽e(响1)炸;}//函数ti酸me吩r0判_is胸r检查驱是否肿有按涨键按剧下st浪at脏ic毯v翁oi棋d已ti肚me碰r0艺_is劈燕r(v冻oi某d)萌i疗nt请er至ru做pt株T姜F0佳_V服EC赌TO方R扁us止in帆g政1{青T颂R0指=0考;TL嘱0=麦(T托IM储ER错0_借CO祥UN烦T公&灯0x圆00旷FF凯);TH款0=摄(T顷IM傅ER摩0_膨CO腿UN泰T楼>>扇8牢);TR奶0=归1;if智(给up朴s认!=章0)//检查up钻s等于诱0吗糊?{up共s-父-;//如果up追s不等伐于0漂,就各将up什s减1if拖(月up膨s=薯=0讽&脆&购P2除_0徐==增0)//如果up覆s减到责0,爷就检坡查P2馅_0浅==皂0{c+辫+;//如果P2伞_0是0叠就表练示上阵数的拢弹跳施按钮溪被按本下,杠所以c加1if她(c求==墓10屡)输c互=0历;//如果c加到鼻10溉,就仓将c恢复袍为0}}el漫se茅i览f锹(P蝇2_忠0=进=0贞)up奇s=陵TI研ME瞒S;//如果up自s=稳0且P2江_0覆=0就将up虎s设为尤25if揉(虏do绿wn臭s筛!=喉0)//检查do快wn捏s等于煎0吗档?{do彩wn单s-踢-;//如果do密wn宿s不等洞于0扣,就穿将do乞wn爱s减1if陡(低do厉wn波s=多=0央&菊&专P2匹_1樱==腿0)//如果do归wn绍s减到虹0,谣就检之查P2佩_1扒=0{c-婆-;//如果P2捆_1是0歼就表祖示下菜数的壳弹跳彻按钮饱被按剩下,趣所以c减1if首(c怠==涛-1桐)逐c=菠9;//如果c减到系-1骆时,骑就将c恢复攻为1斑0}}el裤se汪i戚f暮(P绕2_况1=斥=0到)do把wn浴s=剥TI府ME穷S;//如果do弦wn忘s=错0且P2副_1奸=学0//就将do佣wn瞒s设为州25P1牧=s时ev配en晒_se纹g[c汗];}如何怒计程踢序可妄以使合用Ti趁me分r0延迟舌一段漆时间浅呢?咐在此棕我们陆利用贯变量up再s,当第洋一次棒检查给到P2雨_0等于受0时惰就设典置up鼓s=披25垫,然后邀每一炕次Ti怨me凉r0中断栽之后兴,就地将up貌s减1店,直传到0筛为止翠,刚蔬好经篮历2面5/身20抄0秒丘,接碑下来逝再检否查P2量_0是否励依然吃等于哲0,就可棵以判遭断上扭数的傻弹跳岂按钮蠢是否被单书击。互程序范部分钓如下妈所示盖:if某(婚up书s舍!=谜0)//检查up岛s等于炉0吗准?{up念s-闸-;//如果up防s不等他于0辱,就勿将up疫s减1if喊(仿up颗s=雅=0犁&聚&剪P2码_0君==贯0)//如果up典s减到牢0,昆就检孤查P2升_0盘==瓜0{c+莲+;//如果P2沫_0是0骡就表肢示上耗数的译弹跳桑按钮烧被按誓下,极所以c加1if骂(c屿==浙10嚷)圈c适=0训;//如果c加到只10乱,就齿将c恢复导为0}}el律se夺i灭f着(P怜2_避0=糕=0筹)up幼s=穷TI举ME逃S;//如果up深s=漏0且P2金_0娃=0就将up疫s设为珠25例8、四穗个七骄段显接示器老的显毅示控膊制本练习使用涝80钟5l的Po想rt宫1连接鲜到四斜个七德段显变示器烤。这卸四个绍共阳脊七段鬼显示脾器的a、扎b、罗c、内d、吸e、独f和g全部洒都连抗接在竞一起裹,因颠此PO冲RT羽1所输微出的线数据溜按理饿说应手该会盛在四蓝个共剪阳七幕段显拥示器凝都显际示出凯来。缠但足觉我们乖利用PO瘦RT垫0的低程4位究分别料控制靠这四枯个共秀阳七降段显窜示器枯,让弃四个零共阳仔七段怪显示替器使统用扫锡描的草方式齿轮流至显示猫数字求,因跟此PO键RT膏1每一蔑次输妄出的纺数据抖恰好即只会夹在其抚中一蚁个共牢阳七孙段显忍示器笛显示陡数字动。当初您连址接好障电路巾,并隔且完讨成程抱序之鹅后,宿您将返可以对看到宽这四肺个七锯段显帜示器疯上显茶示0送~9届99描9。定在这暖次实笔习中哭,您鼻将学触会如险何使阵用轮察流驱招动的侄方式侧,让茅四个共原阳七甲段显砍示器召轮流显显示抛数字古。电路锈图程序庭描述取:说帅明如口何使纯用8构05伟1石的Po信rt安1连接摸到四雀颗七挥段显悉示器傅,PO锁RT摆0的低商4位刃分别至控制傲这四永颗共燥阳七粮段显寸示器洗,让识四颗绝共阳练七段洗显示杨器使东用扫肠描的攀方式蚂轮流折显示冈数字索。这四割颗七渴段显着示器苦将显卧示0仅到耗99李99马。#in到cl声ud翻e颜<R字EG欢X5烘1.敢H>#d宰ef主in够e诉TI仆ME廉R0纤_C掘OU吨NT仁0锻xF点C1悲8co圆de第se然ve御n_se邪g[1锈0]忌={悦0X芽C0推,确0X哨F9期,卸0X惠A4副,验0X引B0而,乓0X滔99善,宅0X抬92作,继0X凑82份,石0X推F8颤,葵0X江80勺,即0X睡90住};co江de岁s伟ca停n[饼4]层={桂0X贴0E挥,约0X芦0D圾,泡0X梁0B请,逃0X秩07伪};un甘si剑gn职ed摄c泊ha羡r勒co侄un企te哨r[凤4]标={盲0,漠0,棒0,稼0}籍;un稍si亩gn廉ed叹c枯ha谢r拨i=黎0;in吊tti斜me庙r0并_t虫ic该k;st看at沙ic依v铜oi标d跑ti弊me福r0驳_i完ni义ti械al透iz独e(鬼vo姜id促){EA估=0龙;ti叮me倍r0偷_t剑ic则k=冰0;TR难0=士0;TM续OD鲁&毙=姨0X萍F0肚;TM沫OD候|羊=0抖x0躬1;TL侨0=读(T奸IM陡ER致0_滋CO琴UN绩T夏&森0x泡00梅FF河);TH枝0=弄(T本IM样ER念0_蒜CO礼UN其T母>>歌8盘);PT冷0=薪0;ET纱0=兴1;TR昼0=缘瑞1;EA武=1系;}vo默id婶m面ai页n誓(v见oi融d)榆{ti烛me递r0鱼_i结ni左ti匠al眨iz芳e(脚);wh度il烛e吵(1剧);/*无穷步循环照*千/}st索at但ic仍v烟oi怀d休ti序me黄r0构_is凶r(v装oi坑d)描i粘nt蹈er旷ru鞋pt础T垄F0茅_V训EC记TO钉R盘us妇in搭g慈1{很T篮R0易=0客;TL辩0=忠(T求IM姜ER户0_炼CO酷UN易T阴&绣0x夸00挣FF串);TH鸣0=珍(T重IM撞ER输0_帽CO舒UN验T倚>>例8祝);TR诵0=旅1;P1光=s晨ev路en蹦_se井g[c阁ou脱nt暴er爪[i茧]]搏;P0活=s隆ca臂n[粪i]侦;i+殿+;if利(i纺==域4)负i外=0硬;ti纠me奥r0解_t厕ic柴k+倡+;if崭(避ti少me茎r0乞_t慢ic蜂k=胃=1冶00缎0)巧{ti撤me照r0渠_t文ic浴k=盆0;co凳un讯te敬r[捐0]谦++展;//个位熟数加镰1if驱(捐co夜un址te应r[讯0]箭==母10扶)贴{//如果每个位膊数等轿于1甚0,嫂则执狮行以觉下的晶部分co合un演te殃r[扎0]抽=0克;//个位肾数变劳成0co群un袄te滨r[喇1]甜++由;//十位做数加今1if吃(c怨ou懒nt己er还[1晃]=短=1赤0)纤{//如果钥十位握数等揭于1打0,印则执蔬行以仔下的何部分co推un郑te龙r[饭1]誉=0脸;//十位泄数变月成0co语un镇te咸r[巷2]子++崖;//百位皆数加乓1if枪(c括ou查nt喉er赖[2惰]=款=1鹊0)只{//如果浮百位分数等性于1烫0,贺则执贼行以职下的铜部分co巧un纪te手r[战2]病=0灶;//百位码数变神成0co园un钉te想r[嗽3]群++建;//千位渣数加俩1if亚(c巾ou紫nt晋er稀[3趋]=畅=1泻0)尝c猎ou早nt疑er忆[3私]=介0;//如果损千位烈数等罪于1计0,蚕则变甲成0}}}}}0数暗到9晓99各9的里程序检部分夏说明好如下膏。我非们利咏用co茧un稠te身r[每0]批、c苹ou取nt雷er炒[1搂]、冒co挣un旗te集r[衰2]孟~c杠ou毅nt锐er坚[3奴]分别改来储挪存个芽位数证、十找位数业、百愤位数盟和千棉位数默。所滨以每玩隔一乏秒就吩将co戏un落te泉r[岩0]加1仔,如落果co脱un庭te族r[盖0]等于临10蜂就必弊须进政位,烈于是托将co长un疑te扇r[蔑0]设为0,同时co院un凉te译r[暴1]加1强。co丑un叙te竿r[控1]等于或10仇的时厚候也从是同爪样的醒道理慢,依控次进萝位到co吃un牺te为r[推2]哨~c谷ou蹈nt声er嚷[3辨],程序霸如下所奴示:例9、4霜*4蓬小违键盘毅输入本练尾习使双用前还一节弦的4炒个七窄段显盲示器幕电路暗,然权后外尝加一歉个4夹×4桂的小牢键盘卸,其版中8雾05别1的PO类RT股2连接虑到4犬×4败小键推盘输悉入。铸程序探执行坡时,容用户仿可以用从4宜×4杨小键箭盘输控入数末据,闭而所航输入的数何据会洲显示烘在4之个七首段显证示器孤上。电路六图函数吊描述度:ch伞argo孟tk蛙ey(v暂oi虹d)从4礼×4陪小键培盘输灾入数款据,逮返回宴0~1艰5小键窜盘的途连接己方式煤:主程巡寿序:ex王-9勺.c#d躺ef序in良e绝TI昆ME障R0着_C钥OU抢NT项0义xE东E1坚1co锹de升s若ev殊en腿_s粉eg腾[1喉6]捎={堆0X岛C0钱,娱0X疗F9率,结0X茂A4腹,事0X滥B0奇,缝0X贡99报,雕0X瞎92遮,获0X舌82予,扶0X谈F8姥,厉0X崭80体,赏0X昂90货,0睡X8领8,傲0X跑83庙,0巧XC堤6,亩0X总A1合,0须X8勿6,摧0X巧8E棍};co工de俗s齐ca籍n[弟4]亮={龄0X月0E帅,材0X目0D劲,隐0X鸣0B街,煌0X救07种};un究si骗gn鸟ed四c讨ha吩r截co吼un蓄te杂r[瓜4]统={状0,臂0,亚0,鼠0}只;un妻si灭gn苍ed皆c显ha忍r邻ti山me井r0抬_t鞋ic详k,愧k=铃0;st基at续ic谋v框oi叔d术ti遭me尖r0行_i跳sr戚(v途oi兼d)货i思nt捎er洒ru缸pt1us减in榨g败1{TR哑0=铲0;TL耽0=马(T波IM归ER腾0_约CO顷UN职T羡&因0x驼00调FF秋);TH萄0=四(T璃IM聪ER讽0_超CO恒UN部T顽>>源8桥);TR夸0=问1;P1喷=se岛ve烂n_拨se豪g[夜co环un抄te益r[牺k]]肤;P0苹=s峰ca塌n[递k]脚;k+烟+;if留(k除==挪4)柱k熟=0谦;ti恼me序r0笑_t蚊ic背k+乏+;if取(如ti剖me掌r0穗_t洋ic祝k=免=2具00掩)隐ti隆me槐r0用_t删ic尊k=摇0;}st虚at疫ic衔v抢oi窝d抬ti慎me逮r0就_i校ni眠ti盯al给iz野e(煮vo魔id锯){EA瘦=0置;ti偷me尺r0宝_t国ic妨k=摇0;TR熊0=阻0;TM重OD脾&捞=睬0X苗F0蝇;TM期OD寇|把=0询x0蒙1;TL雪0=喘(T护IM赶ER活0_机CO列UN制T烤&广0x滚00辟FF逼);TH仰0=娇(T关IM黄ER牢0_欲CO挑UN界T象>>造8屠);PT登0=粱0;ET玩0=基1;TR掉0=旗1;EA抱=1近;}vo敏id栋m栽ai道n关(v满oi凭d){un章si西gn叔ed左c升ha植r统c=买0;ch寒arch;ti睡me豪r0肌_i邀ni斤ti魄al油iz盛e(灵);do嚷{ch=go坐tk甜ey()艘;fo劳r(仅c=遇3;过c>盒0;园c-熔-)co曾un辈te杯r[凉c]图=c码ou雅nt婆er廊[c乐-1失];co榨un尿te河r[艘0]枪=ch;}士wh拼il桂e(纺1)榆;}小键润盘的蝴输入难函数广:ke据yp瞒ad羞.c#in近cl自ud镰e匹<R部EG已X5背1.包H>co屋de栗c供ha排r倚ke赔y_碧co宇de兔[]妇={叛0x箱7E债,巨0X龟BE差,棵0X集BD确,伶0X倡BB话,被0X止DE四,鸟0X荷DD枣,电0X验DB存,俊0X倍EE缠,令0X姐ED册,衬0X浓EB卷,宜0X惜7D流,恨0X蝴7B庭,康0X达E7捉,侧0X叉D7环,龄0X加B7俗,有0X需77丧};co冤deks流p[4个]=厦{0吗x7盯F,朝0x逐BF崭,0科xD雅F,蒙0x剂EF从};vo疲id仅d树el园ay原(哀vo爸id拿)冰/*时间开延迟暗函数懂*径/{un饼si孕gn休ed成c项ha刮r臭i,成j;fo浪r询(i涝=0箭;i该<5槐;i道++绞)fo诱r(乏j=园0;君j<善25构5;杜j+欺+);}ch祝ar戴k伤ey谨pa桃d_帝sc规an匙(){ch厨ar侦k大ey炕,i代;P2澡=0版xF视0;wh蜡il饶e西(P扛2!逝=0河xF蔑0)涉;do眉{fo士r(具i=裁0;畏i<正=3偷;i蚁++敲){P2部=ks怎p[i妹];if攀(P吼2!锐=ks桐p[i碗]){de趴la梢y(焦);ke务y=宋P2剃;if辽(k目ey壶!=ks损p[i胶]){施r恐et遭ur走n(胶ke翻y)辱;狐}}}}粱wh萍il咐e(将1)绵;}//检查纳是否滚有按以键按照下ch投argo袖tk窄ey(){ch宰ar脚t贴em避p,龙i;te梁mp应=k牲ey变pa茂d_缺sc悉an牺()惹;fo宫r绪(i税=0永;i长<=倾15绘;i士++周)负{if肿(t补em抄p=柿=k茅ey灯_c絮od艘e[衬i]母)政re瓣tu洋rn制(i谱);}re漂tu研rn丝式(1为6)讽;}1.赛1单片认机应攀用系泽统的舅基本赴结构1.钟1.暖1单片摔机应览用系俭统的沈硬件采组成被控对象单片机光电隔离A/D光电隔离光电隔离D/A扩展存储器显示器、键盘接口功能芯片接口数字量输入模拟量输入开关量输入开关量输出模拟量输出输入输出接口I/O接口二.单片础机应看用系馒统设贤计1.麻1.协2单片饱机应躺用系叼统开财发的炉基本较过程一.仆系统缘瑞需求暗与方枯案调头研系统潮需求毁与方下案调爪研的六目的舰是通助过市壮场或衰用户了解用户屈对拟开发蓄应用捡系统嚷的设计过目标和技术殊指标。通责过查阻找资肤料,摩分析挎研究肠,解野决以撕下问戏题:1)了解高国内芽外同袭类系绒统的愚开发讽水平塑、器病材、温设备津水平脉、供除应状土态;谅对接鹅收委释托研缸制项左目,冤还应触充分幻玉了解榜对方歇技术按要求忌、环淹境状厨况、寺技术争水平冶,以金确定往课题垄的技争术难菌度。2)了解餐可移欣植的护硬、算软件猛技术丹。能麻移植护的尽家量移雹植,关以防粉止大版量低款水平钢重复亮劳动鉴。3)摸清扣硬、兴软件墨技术歇难度市,明扛确技吊术主黄攻方待向。4)综合粪考虑历硬、伸软件茅分工趴与配吓合方仪案。尊单片设机应笨用系惩统设达计中亭,硬弃、软炎件工商作具味有密肿切的欧相关仁性。可行思性分谜析的岭目的她是对司系统尺开发品研制饥的必同要性晃及可碑行性短作出明确的判亮定结遭论。巩根据否这一敬结论宵决定削系统伴的开白发研培制工哄作是御否进剧行下阻去。可行因性分皆析通常纲从以袄下几巡寿个方邮面进权行论弦证:1)市劲场或剪用户殊的需傍求情案况。2)经这济效给益和辫社会协效益星。3)技筐术支但持与情开发翠环境谢。4)现韵在的册竞争微力与寇未来扎的生腊命力巷。二.才可行肌性分震析系统赵功能鞭设计包括系统镰总体来目标萌功能运的确铁定及系统刃硬、秀软件完模块傍功能赛的划帖分与去协调插关系。系统摩功能竟设计是根透据系劈燕统硬枪件、衬软件武功能血的划怖分及岔其协筋调关咸系,季确定磨系统粉硬件筹结构拌和软其件结竹构。系统硬件结构吨设计叮的主吃要内总容包宪括单未片机鹊系统顶扩展耻方案正和外里围设素备的融配置务及其吓接口压电路苗方案各,最棋后要遥以逻隔辑框握图形烤式描渔述出捉来。系统软件结构假设计施主要榆完成绕的任畏务是剥确定尘出系绘统软捎件功余能模谷块的喉划分见及各踏功能免模块蔑的程完序实厌现的杏技术味方法行,最赢后以运结构狡框图贫或流鱼程图段描述征出来属。三.鱼系统盾功能左设计系统抽详细享设计怠与制仓作就站是将储前面到的系偏统方签案付北诸实衰施,提将硬恨件框访图转异化成箭具体匪电路葡,并乘制作科成电彻路板穗,软僻件框席图或佩流程妇图用博程序爪加以峰实现旱。四.愚系统倍详细公设计狱与制笑作系统擦调试孕是检腥测所录设计隙系统腔的正缩慧确性庸与可诸靠性恼的必碗要过姓程。拣单片简机应柳用系汤统设语计是栏一个浊相当猫复杂给的劳辨动过逆程,跳在设再计、赔制作壳中,骨难免势存在难一些撇局部认性问祖题或舱错误礼。系恋统调激试可妈发现如存在掠的问谊题和第错误集,以彻便及掀时地购进行陡修改杯。调必试与喷修改韵的过言程可瞎能要尘反复与多次上,最根终使弓系统究试运介行成啊功,咸并达性到设穗计要爹求。五.克系统倦调试赢与修拉改系统逼硬件暖、软胜件调畅试通纠过后缠,就转可以杆把调倦试完蚀毕的副软件皇固化呀在EP磨RO伪M中,剖然后印脱机惰(脱淋离开支发系瓶统)夹运行慰。如戴果脱劣机运残行正羞常,床再在春真实缘瑞环境庆或模荡拟真药实环役境下刊运行爷,经聪反复胜运行俘正常链,开偿发过枕程即糊告结惑束。六.候生成旺正式紫系统浅或产搁品1.双2单片偏机应邪用系婆统的根硬件虏设计1.俩2.迅1硬件僻系统逃设计躺原则一个豆单片静机应茂用系域统的绑硬件匪电路碧设计劈燕包括求三个毯部分精内容诱:一是单片砍机芯符片的保选择牵,二是单片断机系当统扩鸣展,三是系统篮配置浅。一、起单片杜机芯床片的赢选择二、条单片拔机系恳统扩设展单片污机系各统扩罗展是饭指单府片机吴内部芽的功四能单述元(如程通序存修储器坦、数潜据存抛储器洲、I/骨O口、陡定时假器/计数津器、穿中断谢系统列等)的容栽量不凶能满诞足应俩用系吵统的剖要求案时,烫必须被在片气外进剖行扩裹展,检这时禾应选债择适掀当的撞芯片被,设柏计相臣应的绕扩展嫌连接躬电路弊;系场统配摊置是追按照币系统曲功能佛要求科配置舞外围扔设备殿,如删键盘蜻、显浙示器仇、打社印机红、A/筑D转换谅器、D/免A转换纯器等晴,设窄计相事应的让接口泽电路络。三、读系统悦扩展庄和配康置设肃计遵史循的客原则系统寺扩展条和配删置设成计遵爷循的富原则恩:(1)尽可侨能选扇择典虽型通克用的挑电路丈,并健符合救单片须机的诵常规滴用法喇。(2)系统香的扩骄展与拉外围吐设备毁配置膨的水甩平应培充分涝满足瘦应用示系统刻当前铅的功颈能要水求,芦并留饼有适运当余脆地,纯便于凤以后贺进行底功能骗的扩先充。(3)硬件弓结构羽应结烧合应方用软召件方雁案一喇并考潮虑。(4)整个远系统拖中相对关的及器件增要尽翻可能椒做到拖性能披匹配踩。(5)可靠射性及桑抗干宜扰设井计是宏硬件盏设计察中不翁可忽酱视的阳一部燃分。(6)单片滚机外茂接电轰路较榨多时堡,必结须考没虑其滋驱动绕能力胡。1.补2.还2硬件绑设计一.甜程序脉存储宝器二.抓数据困存储业器三.I/棚O接口四.趣译码您电路五.疯总线重驱动理器六.乒抗干续扰电开路1.彩3单片驰机应创用系德统的沸软件妻设计一个躺应用棉系统宪中的座软件酱一般犬是由系统证监控玩程序和应用诉程序两部丙分构念成的衣。其助中:应用笼程序是用抽来完块成诸魄如测喂量、天计算闯、显祸示、果打印设、输海出控振制等涨各种艳实质目性功嚷能的轧软件雷;系统腔监控做程序是控粥制单亮片机娃系统庙按预缘瑞定操蛾作方基式运绿行的惭程序费,它妄负责单组织俭调度糕各应辜用程李序模军块,拴完成子系统测自检注、初杯始化及、处镜理键捡盘命逃令、延处理栏接口项命令嫩、处鸣理条本件触勒发和高显示创等功期能。软件居设计中时,域应根多据系吐统软绣件功惭能要市求,烫将软肠件分胆成若床干个企相对田独立潮的部暗分,贱并根宴据它糖们之漆间的砌联系锹和时建间上铅的关绢系,没设计齐出软钳件的其总体竖结构软,画菊出程新序流杀程框层图。阳画流羞程框留图时仓还要经对系稼统资维源作迁具体康的分站配和筛说明绩。根有据系败统特直点和绑用户修的了粱解情瞧况选笛择编俩程语称言,龙现在贷一般摇用汇信编语当言和C语言组。汇编消语言轻编写待程序蓬对硬虽件操遭作很折方便萌,编剪写的喂程序蝴代码违短,和以前闸单片挺机应鞭用系要统软断件主魂要用纯汇编酸语言孔编写摩;C语言技功能贪丰富白,表皆达能蒙力强呜,使敬用灵粮活方钳便,秧应用筑面广铺,目魄标程脂序效馅率高万,可艰移植攀性好限,现在经单片驴机应贤用系读统开雹发很捕多都证用C语言挎来进追行开部发和浑设计。1.牌3.更1软件肥设计流的特币点一个英优秀病的应痒用系叛统的悔软件灭应具优有以泥下特捡点:(1)软件鸦结构杨清晰推、简亭捷、翅流程诉合理撞。(2)各功拿能程包序实楼现模垫块化管,系其统化敢。这居样,柔既便装于调财试、桨连接裹,又遣便于邪移植辞

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论