单片机应用开发 单片机函数与数组应用 1-1-8单片机的基本概念(函数和数组的几个应用).pptVIP

  • 13
  • 0
  • 约2.21千字
  • 约 10页
  • 2020-08-29 发布于北京
  • 举报

单片机应用开发 单片机函数与数组应用 1-1-8单片机的基本概念(函数和数组的几个应用).ppt

Application and Development of Microcontroller 《单片机应用开发》课程 主讲教师 刘德新 移动通信技术专业教学资源库 深圳信息职业技术学院电子与通信学院 单片机的 函数和数组应用 目录 01 C51的本征函数 02 延时函数 03 数组的应用 1.C51的本征函数 EDITED BY LIU DEXIN * 单片机应用开发 C51提供的本征函数,是指编译时直接将固定的代码插入当前行,而不是用汇编语言的ACALL和LCALL语句来实现。这样就大大提供了函数访问的效率,而非本征函数(内部函数)则必须由汇编语言的ACALL及LCALL调用。 C51的本征库函数只有9个,分别如下: _crol_,_cror_: 将char型变量循环向左(右)移动指定位数后返回 _iror_,_irol_: 将int型变量循环向左(右)移动指定位数后返回 _lrol_,_lror_: 将long型变量循环向左(右)移动指定位数后返回 _nop_: 相当于插入NOP _testbit_: 相当于汇编语言的JBC bitvar,测试该位变量并跳转同时清除 _chkfloat_: 测试并返回源点数状态 1.单片机的函数格式 EDITED BY LIU DEXIN * 单片机应用开发 其函数的全部结构如下: extern void _nop_(void); extern bit _testbit_(bit); extern unsigned char _cror_(unsigned char, unsigned char); extern unsigned int _iror_(unsigned int, unsigned char); extern unsigned long _lror_(unsigned long, unsigned char); extern unsigned char _crol_(unsigned char, unsigned char); extern unsigned int _irol_(unsigned int, unsigned char); extern unsigned long _lrol_(unsigned long, unsigned char); extern unsigned char _chkfloat_(float); 使用时,必须包含 #include intrins.h 2.延时函数 EDITED BY LIU DEXIN * 单片机应用开发 void delay(unsigned char x) { unsigned chan k; while(x--) for(k=0;k125;k++); } 上述延时程序在晶体振荡器为12MHz时,大约延时x毫秒。注意类型的取值范围,最长延时时间是255ms。若晶体振荡器不是12MHz,则根据晶体振荡器的不同而计算。 EDITED BY LIU DEXIN * 单片机应用开发 3.数组的应用 当程序中定义了一个数组时,C编译器就会在存储空间中开辟一个区域用来存放该数组的内容。 对字符数组,每个元素放1个字节,一般整型放2个字节,对长整型和浮点型的元素放4个字节,所以,若定义一个三维浮点型的数组a[10][10][10],则占用存储空间是10*10*10*4,即近4K的存储空间; 若定义一个三维浮点型的数组a[25][25][25],则占用存储空间是25*25*25*4,即近64K的存储空间 EDITED BY LIU DEXIN * 单片机应用开发 3.数组的应用 试用数组设计一个对数表,要求: 数据以一个字节为单位,即设计从0到255即可; 数据要求放在程序区中; 编写一程序根据给定的值查找对数表。 EDITED BY LIU DEXIN * 单片机应用开发 3.数组的应用 对数 函数值 LOG(1) 0.000 LOG(2) 0.301 LOG(3) 0.477 …… …… LOG(100) 2.000 …… …… LOG(255) 2.407 unsigned

文档评论(0)

1亿VIP精品文档

相关文档