单片机原理与接口技术第5章 MCS-51单片机C51:程序设计.ppt

单片机原理与接口技术第5章 MCS-51单片机C51:程序设计.ppt

  1. 1、本文档共146页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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语言设计三个模块程序如下:

文档评论(0)

aena45 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档