文档介绍:Forpersonaluseonlyinstudyandresearch;mercialuse螄51单片机学****心得肃 以下为本人学****51内核的个人心得,并且表达能力不是很好,若各路高手发现小弟说的不对的地方,请多指教!蒂 为什么要用51单片机,51到现在算衰落的产品,但是它还是有很大的市场,这是为什么?用性价比来说这个问题。一套产品用1块钱能解决的问题如果搞成10块,在批量生产10W套后,,现在就利用KEIL2编程心得。个人还是想说一句话:成才主在己,有难先网络。师傅再强自己不下工夫是不能成功的,别人自学也能成才。并且基本上我们能遇到的方向性问题网上基本都有答案了。为什么说方向性的问题呢?比如:你可以在网上问如何做饭,但是你不能问:为什么我的饭做得不好吃。袄 很多51单片机是没有在线仿真的,这样就需要我们想方设法做调试,指示灯,蜂鸣器,串口等等。可以通过串口发送一些内容到上位机便于观察。当然串口还是没有仿真器实在,比如:蒃 Unsignedchara,b;//我想将A左移8位后加上b得到一个16进制的数。这是针对于c语言问题。袀 Unsignedshortc;袆 A=0xaa;b=0xbb;羄 C=(Unsignedshort)a<<8+b;袄请问C的值是多少?对于新手来说可能会犯的错误,可能我们会答成0xaabb。其实并不是这样的,<<要比+的优先级低。所以正确的写法为c=(Unsignedshort)((a<<8)+b)。这种情况下没用用仿真器来看,经验不足是很难发现这段代码有问题的。If(0x50&0xf0==0x50),请问该语句为真还是为假?还是优先级问题。蚂在不确认优先级的情况下,大家一定要知道:()优先级是最高的。衿附录2C语言中的运算符及其优先级肄优先级羁运算符肀名称或含义蚈使用形式膃结合方向莂说明螂1蒇[]蒇数组下标螃数组名[常量表达式]芀左到右蒀膄()羂圆括号艿(表达式)/函数名(形参表)(对象)->蕿成员选择(指针)衿对象指针->成员名薃芁2薈-羇负号运算符羄-表达式蝿右到左莇单目运算符肁(类型)蒁强制类型转换膆(数据类型)表达式蒂腿++芆自增运算符袃++变量名/变量名++羈单目运算符芄--聿自减运算符蚇--变量名/变量名--蚅单目运算符螀*薆取值运算符袁*指针变量蒈单目运算符节&羀取地址运算符芇&变量名蚃单目运算符肆!螆逻辑非运算符肄!表达式聿单目运算符膁~袂按位取反运算符袈~表达式薂单目运算符薇sizeof肅长度运算符羃sizeof(表达式)蚀膅3莄/葿除葿表达式/表达式膅左到右螅双目运算符****芅乘袁表达式*表达式羆双目运算符莂%莁余数(取模)螁整型表达式/整型表达式蒅双目运算符蚁4薀+莇加羆表达式+表达式莃左到右荿双目运算符莇-袁减莂表达式-表达式蒄双目运算符薃5膁<<薆左移袅变量<<表达式芅左到右袀双目运算符芆>>蚃右移虿变量>>表达式蚇双目运算符蒄6蚂>袆大于螃表达式>表达式袂左到右蒀双目运算符膄>=薄大于等于艿表达式>=表达式薅双目运算符节<荿小于羆表达式<表达式肁双目运算符莇<=节小于等于螀表达式<=表达式薄双目运算符羄7蕿==虿等于羅表达式==表达式莁左到右蚂双目运算符莆!=肃不等于莀表达式!=表达式螆双目运算符薁8腿&衿按位与袃表达式&表达式芃左到右羈双目运算符罿9芄^螁按位异或羁表达式^表达式肈左到右蚅双目运算符蒃10螀|膈按位或肆表达式|表达式袁左到右葿双目运算符芈11蒇&&蚃逻辑与薂表达式&&表达式莈左到右蚄双目运算符莅12芁||莈逻辑或肅表达式||表达式螂左到右聿双目运算符蒈13蒅?:蒄条件运算符袈表达式1?表达式2:表达式3薈右到左袆三目运算符羂14袁=蚈赋值运算符羃变量=表达式蚄右到左蚀莄/=膂除后赋值荿变量/=表达式螅蒂*=羇乘后赋值膆变量*=表达式膁薇%=肄取模后赋值羀变量%=表达式蚄螈+=***加后赋值肄变量+=表达式螁蒅-=蚁减后赋值薀变量-=表达式莈螁<<=袈左移后赋值蝿变量<<=表达式袄羆>>=羅右移后赋值薃变量>>=表达式莇莂&=膈按位与后赋值螈变量&=表达式膀膈^=袆按位异或后赋值膃变量^=表达式芅羂|=莈按位或后赋值蚆变量|=表达式蚁螁15肇,薄逗号运算符螄表达式,表达式,…袁左到右蒈从左向右顺序运算芆以下问题:蒃Unsignedchara,b;羁Floatc;衿A=0xea;蚄B=0x60;节C=(float)(a*256+b)/100;肁C=600?还是-=(float)(usignedshort)(a*256+b)/100;一定是600。莆但是C=(float)(short)(a*256+b)/100;一定是-