- 11
- 0
- 约 31页
- 2016-12-26 发布于贵州
- 举报
单片机软件系统设计教程 基础要求 熟练运用C语言编程。 熟练掌握和运用一款单片机。包括硬件结构、寄存器、外设、了解基本汇编指令等。 熟悉一款集成开发环境及编译器。 独立编写并调通2000行以上的小型程序。 一、如何编写高质量软件 合理划分函数功能,合并常用函数 严格的函数、变量命名方法 合理划分软件层次。如硬件隔离层、驱动程序层、功能函数层、应用层。 合理运用宏定义,提高程序可移植性 经常查看反汇编代码,练习优化指令。 函数划分 常用的功能集合,可以合理合并成一个函数 利用参数传递,将多个函数合并。 例如:某菜单需要将选中的菜单条反色显示,因此需要2个中文显示函数: DisplayString(char *ptr,char x,char y); DisplayStringInvert(char *ptr,char x,char y); 可以合并成一个函数 DisplayString (char *ptr,char x,char y,bool InvertFlag); 注意函数过分合并会造成运算性能下降。 函数与变量命名 严格按照 模块名_功能名 的方法命名,按正确的英文(甚至拼音也可)命名 单词首字母大写 例如:ADC_CailbrateZero() CPU_SleepDelay(int Time_ms) Flash_WriteWord(int Addr,int Word) 软件层次划分 合理划分软件层次,将使程序结构清晰 层次良好的软件,移植性强 对软件开发者来说,便于管理和维护,甚至可实现“代码免维护” 大大提高开发速度。 例:在某液晶上需要做中文菜单、数字显示、波形显示、滚动条等。为该应用编写液晶驱动函数。 LCD驱动层划分范例 每一层含义明确,功能完整独立 每一层只调用其下一层的函数,禁止跨层调用函数。 所有变量对于非其它层函数不透明。禁止跨层使用全局变量 层次划分越多,执行效率越低 更改或更换任何一层的函数,不影响其它层函数的执行。 合理运用宏定义 1.用宏定义作硬件隔离 #define LED1_POUT P1OUT #define LED1_PDIR P1DIR #define LED1_BIT (BIT2) /*更换IO只需改以上3行*/ #define LED_ON LED1_POUT |= LED1_BIT /*亮*/ #define LED_OFF LED1_POUT = ~LED1_BIT /*灭*/ /*更换单片机只需修改以上2行*/ 用宏定义自动运算 #define OSC (1000) #define BAUD (9600) ... UBR00 = ((long)OSC*1000/8)/BAUD; UBR10 = 0x00; ... #define TIMER_PERIOD 12000 ... TH1=(unsigned int)(65536-TIMER_PERIOD)/256;/*51单片机*/ TL1=(unsigned int)(65536-TIMER_PERIOD)%256; ... 用宏定义作编译开关 用宏定义作功能开关 #define ON 1 #define OFF 0 #define HI_LO 2 #define LEV_2 1 #define NONE 0 #define MINORCUT OFF /*是否打开小值切除功能*/ #define RS485 ON /*是否打开RS-485通讯功能*/ #define DAC ON /*是否打开变送功能*/ #define DEFAULT OFF /*是否打开参数备份功能*/ #define ALARM_MODE NONE /*报警模式 NONE=无报警 LEV_2=双限 HI_LO=高低限 */ #define OFFSET ON /*是否打开偏移补偿功能*/ #define KEYTONE ON /*按键音*/ 程序优化 打开编译器自带的优化选项。注意高级别优化会删除部分“冗余”代码,或改动程序结构,应注意挥发性变量(volatile) 查看反汇编代码,看汇编代码是否有冗余操作,合理修改。 二、软件结构 如何让CPU尽可能多地执行多项任务 如何让CPU尽可能快地响应各个事件 如何让程序尽可能少地占用RAM 如何让程序具有尽可能强的可扩展性 如何让编出的程序尽可能通用 如何减少编程工作量?如何减少错误概率和调试工作量
您可能关注的文档
- 大学生心理健康课件01.ppt
- 大学生涯与职业生涯规划书(空白) (自动保存的).doc
- 大学生找工作如何面试才能成功100&.docx
- 大学生心理健康教育-湖南工学院(教学大纲).doc
- 大学生心理健康教育 绪论.ppt
- 大学生职业规划要思考的十大问题.doc
- 大学生职业规划-大学生职业生涯规划.doc
- 大学生涯规划与管理(后记).ppt
- 大学生职业规划作业 生涯人物访谈.doc
- 大学生职业生涯规划 2012.doc
- 2026年及未来5年内中国液体氩气行业投资前景及策略咨询研究报告.docx
- 2026年及未来5年内中国黄铜合页行业投资前景及策略咨询研究报告.docx
- 2026年及未来5年内中国竹工艺家具行业投资前景及策略咨询研究报告.docx
- 2025年中国微机数显自动分析仪市场调查研究报告.docx
- 2026年及未来5年内中国微尘白色粉笔行业投资前景及策略咨询研究报告.docx
- 2025年中国微电脑型压胶机市场调查研究报告.docx
- 2026年及未来5年内中国数字化等功游泳训练测试系统行业投资前景及策略咨询研究报告.docx
- 2025年中国圆形花瓶市场调查研究报告.docx
- 2026年及未来5年内中国植物纤维静淀过滤器行业投资前景及策略咨询研究报告.docx
- 2025年中国超音波手套机市场调查研究报告.docx
最近下载
- 医院财务管理制度.docx
- 2025年2月26日西安市军队文职面试真题及答案解析(计算机岗).doc VIP
- (苏教版)数学五年级上册寒假“天天练”作业设计,含30份题组,附参考答案.pdf
- 鸡胴体等级及要求、鸡分割肉等级及要求.pdf VIP
- 2025年青岛酒店管理职业技术学院单招语文考试题库及答案解析.docx VIP
- 北师大版高中英语选择性必修第二册unit6 lesson3课文英汉对照.docx VIP
- 水利厅水利工程招投标管理工作手册(标准版).doc VIP
- 山东单招语文题库及答案.doc VIP
- 八项基本管理技能.pdf VIP
- 深度解析(2026)《YST 1777-2025微纳米铜粉》:新材料产业精细化、高端化发展的权威指南与未来展望.pptx VIP
原创力文档

文档评论(0)