- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言编程自我总结
编译器选择8级优化时,可能会出现错误。刚写好的程序,建议先用0级优化看能否正常运行,再用更高的优化等级进行优化。
a、写中断程序一定要用using语句指定寄存器组。第1、2、3组都可以,不能是0,否则可能会main()函数冲突。从一个中断程序中调用函数必须和中断使用相同的寄存器组(摘自《Keil Cx51 编译器用户手册中文版》P129)。建议把原本中断函数需要调用的函数直接写在中断函数里,无须调用。??b、51单片机的中断有两个优先级。一个中断不会打断另一个相同优先级的中断。这样相同级别中断可以使用同一个组。比如:低优先级的中断函数都用 using 1,高优先级的中断都用 using 2 。这样不会冲突。
C语言无符号数容易犯的错误。若定义成有符号数char,则不会陷入死循环。
main(){unsigned char i;for (i = 2; i=0; i--){????printf(%d,i);??}}
C51忌讳使用绝对定位_at_,因为只要定义变量和变量的作用域,编译器就会把一个固定地址给这个变量,无须人工将其绝对定位,这样可能引发其他问题。
bit与sbit的区别:bit定义的位标量的地址是随机的,而sbit定义的位标量的地址是确定的。bit只能访问芯片内部RAM中的可寻址位20H-2FH,而sbit可以访问芯片内部RAM中的可寻址位和特殊功能寄存器中的可寻址位。注意不能直接在程序里用P1^0等位变量,需要经过sbit定义才可以使用。
例如:
bit tem ;
sbit led=P1^0 ;
tem的地址是随机分配的,而led的地址则固定为0x90.0 。sbit变量后面需要跟等号=。
为了避免由于使用参数宏而带来意外的错误,需要注意以下几点:
宏的参数必须带括号,例如 #define CIRCLE_SQUARE(R) 3.141*(R)*(R)
对所使用的参数宏进行简单地展开检查;
使用简单表达式、对参数加括号、避免节外生枝的使用方式(例如“++”、“--”一类都属于不必要的附件运算);
在参数宏定义时,对于运算顺序通过括号进行明确的限定,只要遵循以上几点,就可以避免大多数应用场合的意外错误。
手把手教你写程序内容:从最简单的程序入手,手把手教你写程序,让同学们拿到一个复杂的程序或者任务,能快速找到切入点,写出程序,再在此基础上优化程序。当拿到一个单片机任务时,不要急于动手写程序,先仔细分析它的以下几个点:1、它要单片机整体实现什么功能2、功能细分(模块化),先干什么,再干什么,最后干什么3、画初步流程图,(把几个模块画出即可)4、模块之间的分析:一个模块到另一个模块之间,怎么变换,怎么连接(优化流程图)5、单个模块分析:每个模块要做什么(流程图细化)6、所有模块结合连接,细化所有流程图7、分析单个模块每步要用到的方法或者指令8、总流程图定型9、纸上写程序,对照流程图分析其可行性,若不可行则返回10、上机调试,加注释
11、从小到大,一个功能一个功能地调试; 以上十一步,缺一不可(小程序例外)切记:流程图的确定很重要,需反复修改大忌:拿到任务,不仔细分析就写程序。即使是小程序,我们也要养成良好的编程习惯,不要一味的追求结果。写小程序可能比别人快,若是大程序,一旦出现思维混乱,或者出现程序调试不出结果,那么你花在调试上的时间,要比别人的多。???????????!!!!!!磨刀不误砍柴工!!!!!!程序的优化:属于后期工作,只有调试出来后,才去优化,如果一开始优化和写程序同时进行,一是加重你的思考量,二是出现问题无从下手。无疑增加了写程序的难度。对于一个初学者,写一个程序,本身头脑就处于紧张的状态,思考的问题就很多,如果此时把优化程序也考虑进去,你脑袋的负荷无疑加重,若你头脑精明,你可以把优化的地方,先在纸上记下来,等到调试结果正常,再把你想到的,优化的地方加进去。
7、如果在中断程序中改变了多字节类型的变量,那么中断程序以外的程序中(主程序,子函数)要使用该多字节类型变量的话,读写前要关中断,读写后再开中断。否则会导致偶尔读写错误。(实质为资源冲突)举一反三:其他的数据类型也可能有这种影响。例如:长整型、浮点型。例如:
unsigned?int?ms_counter;??????????????????????void?T0(){???????????//定时器程序每100毫秒中断一次,程序略?????????if?(ms_counter1000)?ms_counter++;}void?main(void){//初始化定时器程序每100毫秒中断一次,程序略???????????????????????????unsigned?cha
您可能关注的文档
- 电气画图知识.doc
- 电气防火防爆.ppt
- 电波学报格式.doc
- 电流和电流表的使用 电压和电压表的使用.doc
- 电站施工现场安全技术交底.doc
- 电气项目划分表1.doc
- 电能表的表盘如图所示.doc
- 电算化多选题.doc
- 电气防爆检查工第三章.ppt
- 电脑中各种文件后缀名的含义.doc
- 2025年教育硕士题库及完整答案详解【历年真题】.docx
- 河北省保定市高碑店市2023-2024学年五年级下册期末调研监测数学试题(有答案).docx
- 2025年教育硕士题库及参考答案详解(综合题).docx
- 2025年教育硕士题库及参考答案详解(黄金题型).docx
- 2025年教育硕士题库及参考答案详解(B卷).docx
- 2025年教育硕士题库及参考答案详解【精练】.docx
- 2025年教育硕士题库【培优A卷】附答案详解.docx
- 2025年教育硕士题库【综合题】附答案详解.docx
- 河北省保定市曲阳县2023-2024学年五年级下册期末调研监测数学试题(有答案).docx
- 河北省保定市曲阳县2022-2023学年五年级下册期末调研监测数学试题(有答案).docx
最近下载
- 2025年台湾AI行销趋势报告(繁体版)-Kolr.docx VIP
- 湖北办公楼监控及电子围栏系统施工组织设计.doc VIP
- 围栏(施工组织设计围栏(施工组织设计).doc VIP
- 2024年台湾YouTube年度社群内容趋势报告(繁体版)-Kolr.pptx VIP
- 诺尔起重设备(中国)有限公司RTG&RMG中国福建招商局漳州开发区363105.pdf VIP
- 小区沥青道路设计做法.doc VIP
- 2025年台湾AI行销趋势报告(繁体版)-Kolr.pdf VIP
- 防雷安全知识试题及答案.doc VIP
- 智能体协议:MCP、A2A、ANP-智能体互联网的黎明之前.docx
- 国有企业收购合同协议.docx VIP
文档评论(0)