- 1、本文档共40页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.1.5计算程序的设计和库函数的调用 一、计算程序的设计 二、库函数的调用 4.1.6主函数和中断函数的设计 一、主函数 二、中断函数 例4.13 报警的申请和处理 设1个系统的日常事务仅仅为,定时将P2口、P0口输出状态取反,当外部中断0引脚上(p3.2)输入报警信号(负脉冲)p3.6引脚上接地蜂鸣器响4次。 (a)主函数 图4-13 例4.13的程序框图 (b)报警函数 (c)外部中断0函数 图4-13 例4.13的程序框图 #include reg52.h #include stdio.h #define uint unsigned int #define uchar unsigned char sbit BEEP=P3^6; bit WARM; sfr LED_A=0xa0; sfr LED_B=0x80; void sonic_2(unsigned long x,uchar i) { unsigned long y; for(;i0;i--) { y=x; BEEP=0; for(;y0;y--); y=x/2; BEEP=1; for(;y0;y--); } } init_sys() { LED_A=0x55; LED_B=0xaa; IT0=1; EX0=1; EA=1; WARM=0; } p_LED() { unsigned long i; LED_A=~LED_A; LED_B=~LED_B; for(i=10000;i0;i--); } p_warm() { WARM=0; sonic_2(20000,4); } main() { init_sys(); for(;;) { P_LED(); if (WARM==1) p_warm(); } } void inter_0() interrupt 0 { unsigned long i; for(;INT0==0;); for(i=10000;i0;i--); WARM=1; IE0=0; } 第4章 C51程序的设计和调试 C51程序设计就是用C51语言把所要解决的步骤描述出来,生成C51源程序文件,经编译生成单片机能执行的机器语言,调试后将符合设计目标的机器语言固化到单片机的程序存储器中。 4.1 C51程序设计方法 4.2 C51程序调试-KEILC51基本使用方法 4.3 实验过程和方法 4.1 C51程序设计方法 4.1.1程序设计步骤 编写一个程序过程大致分为以下几个步骤: (1)需求分析; (2)功能分割; (3)确定程序架构,划分程序模块; (4)根据程序模块,设计程序流程图; (5)编写代码; (6)编译、调试; (7)优化程序; (8)固化程序。 4.1.2程序框图和程序结构 一单片机应用系统的程序,一般由一个主程序和若干个子程序和中断程序组成。 一、程序框图 (1)执行框 (2)判断框 (3)开始框 (4)结束框 二、程序结构 (1)条件满足才执行某个操作,条件不满足不执行该操作。 { if(表达式1) { 语句1; } } (2)条件满足执行操作1,条件不满足执行操作2。 { if(表达式) { 语句1; } else { 语句2; } } (3)根据表达式可能有地n种不同值,执行不同的操作。 switch (表达式) { case 常量表达式1:{语句1;break;} case 常量表达式2:{语句2;break;} …… case 常量表达式n:{语句n;break;} default:{语句n+1;} } 三、循环结构程序 在程序处理过程中,有时需要某一段程序重复执行多次,这时就需要循环结构来实现,循环结构就是能够使程序段重复执行的结构。 1.预知循环次数 例4.1 设小组10个学生的语、数、英成绩已输入到数组chin、math、eng中,试计算学生3门课的平均成绩存于数组avg中。 #define uint unsigned int #define uchar unsigned char uchar chin[11]={80,85,95,70,65,80,82,78,90,95,0}; uchar math[11]={100,90,80,85,75,85,85,90,90,95,0}; uchar eng[11]={100,100,85,80,95,90,95,90,90,95,0}; uchar avg[11]; p_person() { uchar i=0
您可能关注的文档
- 新华保险洋县现场理赔会简报.ppt
- 新世纪大学物理活页习题集(1-9).doc
- 《口技》知识点梳理.doc
- 甲午战争与列强瓜分中国的狂潮(新教材).ppt
- 9《海伦凯勒》ppt课件(1).ppt
- 管理科室员工考核实施细则.doc
- 第9章-聚合物的化学反应(2016).ppt
- 世界地理第一节世界的陆地和海洋第一二课时.doc
- 演讲与口才知识点总结..doc
- 四下园地四宽带网《战争中的英雄人物》.ppt
- DB12 046.89-2011 产品单位产量综合电耗计算方法及限额 第89部分:手机 .docx
- DB12 046.88-2011 产品单位产量综合电耗计算方法及限额 第88部分:晶振 .docx
- DB12T 419-2010 无公害农产品 核桃栽培管理技术规范 .docx
- DB12T 417-2010 沙化和荒漠化监测技术规程.docx
- DB12T 449-2011 民用建筑四防门通用技术条件.docx
- DB12 046.100-2011 产品单位产量综合能耗计算方法及限额 第100部分: 果汁饮料 .docx
- DB12T 427-2010 葱姜蒜中205种农药多残留测定方法-GCMS法.docx
- DB12T 421-2010 有机农产品 甘薯有机栽培技术规范.docx
- DB12T 426-2010 蔬菜水果中205种农药多残留测定方法-GCMS法 .docx
- 《老年人身体康复》精品课件——项目6 中国传统康复技术.pptx
文档评论(0)