- 1、本文档共146页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机原理与接口技术第5章 MCS-51单片机C51:程序设计
* * void disp(char ch1) /*显示函数*/ {static char ch=0x01; P2=ch; P1=dis_data[ch1]; ch=ch1; if(ch= =0x10) ch=0x01; } main( ) {char ch1; TMOD=0x01; /*T0为16位定时工作方式*/ while(1) {for(ch1=0; ch14; ch1++) /*对四位LED扫描一遍*/ {disp(ch1); delay( ); } delay( ); delay( ); } } 5.6.1 单片机内/外部资源应用程序设计 第5章 C51程序设计 * * 例5-26 如图5-10所示为扩展A/D转换电路。对8个通道轮流采集一次,采集的结果放在数组ad中。 5.6.1 单片机内/外部资源应用程序设计 第5章 C51程序设计 * * #include “reg51.h” #include “absacc.h” sbit ad_busy=P3^2; main( ) {static char idata ad[8]; char i; char pdata *ad_ch; 5.6.1 单片机内/外部资源应用程序设计 第5章 C51程序设计 * * ad_ch=0x78; /*设置初始通道地址*/ for(i=0; i8; i++) {*ad_ch=0; /*启动A/D转换*/ i=i; /*延时等待EOC信号变低*/ while(ad_busy= =1); /*查询*/ ad[i]=*ad_ch; /*存放结果*/ ad_ch++; } } 5.6.1 单片机内/外部资源应用程序设计 第5章 C51程序设计 * * 例5-27 5.6.1 单片机内/外部资源应用程序设计 如图所示为扩展D/A转换电路。要求DAC0832输出锯齿波电压信号,信号周期自由。程序如下: 第5章 C51程序设计 * * 例5-27 #include “reg51.h” #include “absacc.h” #define DA0832 PBYTE[0x7f] main( ) {char i; do {for(i=0; i255; i++) {DAC0832=i;} }while(1); } 5.6.1 单片机内/外部资源应用程序设计 第5章 C51程序设计 * * 5.6.2 C51语言和MCS-51汇编语言混合编程 C51高级语言一般用来编写主程序和运算程序比较方便,用汇编语言编写与硬件有关的子程序更直接而速度快。 在混合编程中,关键是传递参数和函数的返回值,它们必须有完整的约定。 第5章 C51程序设计 * * C51程序调用汇编语言程序要注意以下几点 1) 被调函数要在主函数中说明,在汇编程序中,要使用伪指令使CODE选项有效并声明为可再定位段类型,并且根据不同情况对函数名作转换,见表5-6所示。 5.6.2 C51语言和MCS-51汇编语言混合编程 第5章 C51程序设计 * * 2) 对为其他模块使用的符号进行PUBLIC声明,对外来符号进行EXTRN声明。 3) 参数的传递。在混合语言编程中,关键是入口参数和出口参数的传递,C51编译器可使用寄存器传递参数,也可以使用固定存储器或使用堆栈,由于MCS-51的堆栈深度有限,因此多用寄存器或存储器传递。用寄存器传递最多只能传递三个参数,需选择固定的寄存器,见表5-7所示。 5.6.2 C51语言和MCS-51汇编语言混合编程 第5章 C51程序设计 * * 例如:func1(int a),“a”是第一个参数,在R6、R7传递,func2(int b, int c, int *d),“b”在R6,R7中传递,“c”在R4,R5中传递,“d”在R1,R2,R3中传递。如果传递参数寄存器不够用,可以使用存储器传送,通过指针取得参数。 汇编语言通过寄存器或存储器传递参数给C51程序。通过寄存器传递返回值给C51程序,返回值使用寄存器见表5-8所示。 5.6.2 C51语言和MCS-51汇编语言混合编程 第5章 C51程序设计 * * 例5-28 用P1.0口产生周期为4ms的方波信号,同时用P1.1口产生周期为8ms的方波信号。分别用汇编语言和C语言设计三个模块程序如下:
您可能关注的文档
- 佛山市顺德区第一人民医院进修人员申请表.doc
- 佛山市顺德区陈村新墟百惠新村段污水管道工程.doc
- 佛教“无我”哲学思想的形成和发展[试题].doc
- 低碳生活_从我做起_环保_节能减排_班会[新版].ppt
- 侗族风情文化村项目建议书.doc
- 佛罗伦萨金融论文范文-探索王巍金融观念史之二十一word版下载.doc
- 低碳生活_从我做起_环保_节能减排_班会_1482086541[新版].ppt
- 俄罗斯煤炭买卖合同范本中英文【可编辑版】.doc
- 促进幼儿同伴交往的有效方法与途径研究 课题研究报告.doc
- 储备店长求职简历模板.doc
- 10《那一年,面包飘香》教案.docx
- 13 花钟 教学设计-2023-2024学年三年级下册语文统编版.docx
- 2024-2025学年中职学校心理健康教育与霸凌预防的设计.docx
- 2024-2025学年中职生反思与行动的反霸凌教学设计.docx
- 2023-2024学年人教版小学数学一年级上册5.docx
- 4.1.1 线段、射线、直线 教学设计 2024-2025学年北师大版七年级数学上册.docx
- 川教版(2024)三年级上册 2.2在线导航选路线 教案.docx
- Unit 8 Dolls (教学设计)-2024-2025学年译林版(三起)英语四年级上册.docx
- 高一上学期体育与健康人教版 “贪吃蛇”耐久跑 教案.docx
- 第1课时 亿以内数的认识(教学设计)-2024-2025学年四年级上册数学人教版.docx
最近下载
- 7.2 类比推理及其方法-高中政治课件 (统编版选择性必修3).pptx VIP
- 《数学物理方程-福州大学-江飞》作业chapter1.pdf VIP
- 重庆渝北中交·中央公园 C96, C98-1 地块山地新中式商业街项目 GOA.pdf
- 2024年江苏省高考物理真题试卷含答案.pdf VIP
- 《数学物理方程-福州大学-江飞》数学物理方程A.doc VIP
- 《数学物理方程-福州大学-江飞》作业chapter2.ppt VIP
- 《数学物理方程-福州大学-江飞》第四章.doc VIP
- 《数学物理方程-福州大学-江飞》数学物理方程A答案.doc VIP
- 2023年辽宁省检察系统招聘聘用制书记员考试真题及答案.docx VIP
- 2024年高考真题——物理(河北卷)含答案.pdf VIP
文档评论(0)