网站大量收购独家精品文档,联系QQ:2885784924

第03章单片机C语言程序设计详解.ppt

  1. 1、本文档共107页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第03章单片机C语言程序设计详解

授课教师:左敬龙 单片机C语言程序设计 单片机C语言程序设计 上节回顾 单片机C语言程序设计 单片机C语言程序设计 单片机C语言程序设计 例:写个跑马灯程序! 这个简单易懂,也很好说明典型的常量及数组用法。电路图如下所示也就是用P1口的全部引脚分别驱动一个LED ,共8个LED组成的。 #include reg51.h //预处理文件里面定义了特殊寄存器的名称如P1口定义为P1 void main(void) { //定义花样数据 unsigned char design[32]={0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F, 0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF, 0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x0, 0xE7,0xDB,0xBD,0x7E,0xFF}; unsigned int a; //定义循环用的变量 unsigned char b; //在C51编程中因内存有限尽可能注意变量类型的使用 //尽可能使用少字节的类型,在大型的程序中很受用 do{ for (b=0; b32; b++) { for(a=0; a30000; a++); //延时一段时间 P1 =design[b]; //读已定义的花样数据并写花样数据到P1口 } }while(1); } 练习:写个流水灯的程序! 电路图如下所示也就是用P1口的全部引脚分别驱动一个LED ,编写程序,实现一个LED灯从P1.0~P1.7轮流点亮,实现LED亮灯的循环传递。 using n 修饰符 修饰符using n用于指定本函数内部使用的工作寄存器组,其中n的取值为0~3,表示寄存器组号。(一般用在中断函数中) 【例4-22】编写一个用于统计外中断0的中断次数的中断服务程序 extern int x; void int0() interrupt 0 using 1 { x++; } extern void int0() interrupt 0 using 1 中断函数不能作为外部函数使用 二、 函数的调用与声明 1.函数的调用 函数调用的一般形式如下: 函数名(实参列表); 对于有参数的函数调用,若实参列表包含多个实参,则各个实参之间用逗号隔开。 printf(“max is:%d\n”,max(a,b) ); int max(int x,int y) { int z; z=xy?x:y; return(z); } max函数的定义 max函数的调用 2.自定义函数的声明 [extern] 函数类型 函数名(形式参数表); 函数的声明是把函数的名字、函数类型以及形参的类型、个数和顺序通知编译系统,以便调用函数时系统进行对照检查。函数的声明后面要加分号。 如果声明的函数在文件内部,则声明时不用extern,如果声明的函数不在文件内部,而在另一个文件中,声明时须带extern,指明使用的函数在另一个文件中。 函数的定义若在调用该函数的语句后面,则需要事先声明 【例3-23】函数的使用 #include reg52.h //包含特殊功能寄存器库 #include stdio.h //包含I/O函数库 int max(int x,int y); //对max函数进行声明 void main(void) //主函数 { int a,b; SCON=0x52; //串口初始化 TMOD=0x20; TH1=0XF3; TR1=1; scanf(“please input a,b:%d,%d”,a,b); printf(“\n”); printf(“max is:%d\n”,max(a,b)); while(1); } int max(int x,int y) { int z; z=(x=y?x:y); return(z); } #include reg52.h //包含特殊功能寄存器库 #include stdio.h //包含I/O函数库 extern serial_initial(); void main(void) #include reg52.h //包含特殊功能寄存器库 #include stdio.h //包含I/O函数库 void serial_initial(void) //主函数 { SCON=0x52; //串口初始化 TMOD=0x20; TH1=0XF3; TR1=1; } 【例

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档