[计算机]C51内部函数等.ppt_第1页
[计算机]C51内部函数等.ppt_第2页
[计算机]C51内部函数等.ppt_第3页
[计算机]C51内部函数等.ppt_第4页
[计算机]C51内部函数等.ppt_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C51内部函数,有一些函数,用汇编语言编写非常直接、简单、目标代码短,而用C编写却很长。对于用汇编语言编写的这类库函数叫内部函数。内部函数在C51中已按C的规范用汇编语言写好。用户右以直接当作C语言函数调用。内部函数原型说明放在intrans.h文件中。,左/右移多位函数,格式:_crol_/_iror_/_lrol_(参数表); 原型说明: unsigned char _crol(unsigned char val,unsigned char n); unsigned int _irol(unsigned val,unsigned char n); unsigned long _lrol(unsigned long val,unsigned char n); 第一个参数是被移位的变量,第二个是欲移位位数:无符号字符型变量为0-7;无符号整型为0-15(右移为0-32);无符号长整型是0-31。,例:#include void main() unsigned int y; y=0x00FF; y=_irol_(y,4); ,空操作函数,格式:void _nop_(void); 作用:产生单一汇编指令nop.执行该函数实际上无实质性操作,仅是延时一个机器周期.,例:从P0.7输出三个机器周期宽的正脉冲 P0 ,位测试函数,格式: bit _testbit_(bit x); 说明:参数和返回值必须是位变量. 该函数产生汇编指令JBC X,- -。用于测试位变量是X,是0,还是1,并将其值经CY返回.,例: #include bit flag; char val; void main() if(!_teatbit_(flag) val- -; ,JBCflag ? C002,DECval,C002: RET,检查浮点数类型函数,格式:_chkfloat_(float val); 作用:检查浮点数val的类型。,函数式宏定义,行末标志前加“,则其后语句将作为单个预处理命令.函数式宏定义声明正式参数名,放在括号中,用逗号分隔;左括号与宏名之间不能有空格,如果出现空格,则定义成不带参数的宏和以左括号开始的宏体.正式参数名应为标识符,参数不能重名,宏体中不一定要出现这些参数名.宏参数中可出现花括号和下标方括号,但不能包含逗号.,#define WR573(dat) P0 = dat; LE573 = 1; _nop_(); LE573 = 0; ,中断源的符号、名称及产生的条件,INT0:外部中断0,由P32端口线引入,低电平或下跳沿引起。 INT1:外部中断1,由P33端口线引入,低电平或下跳沿引起。 T0:定时器计数器0中断,由T0计满回零引起。 T1:定时器计数器l中断,由T1计满回零引起。 TIRI:串行IO中断,串行端口完成一帧字符发送接收后引起。,第一个任务:流水灯,以74HC573扩展输出端口的方法驱动8只LED,低电平点亮74HC573 输入接P0端口,输出接8只LED,P1.4控制LED.,第二个任务:动态数码管扫描,两片74HC573驱动动态数码管,输入端都接到P0端口,I/O方式控制。P1.2和P1.3分别控制两个74HC573的LED信号,P1.2对应位选、P1.3对应段选。,基础知识,七段数码管加上一个小数点,共计8段。因此LED显示器提供的编码正好是一个字节。,0x3f 0x06 0x5b 0x4f 0x66 0x6d 0x7d 0x07 0x7f 0 1 2 3 4 5 6 7 8 0x6f 0x77 0x7c 0x39 0x5e 0x79 0x71 0x00 9 A B C D E F 无显示,静态显示方式,LED显示器工作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。,动态显示,动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。,定时器初值 计算,设单片机晶振频率为6MHZ,求方式1时的定时器初值 定时时间=(2X-初值)机器周期 X由定时器工作方式决定,分别为13、16、8. 机器周期12/单片机晶振频率 fosc。 由以上公式可知:定时lms所需的机器周期为2us.个数为500D,即0lF4H,工作方式为1(16位方式)时定时初值是01F4H.,定时/计数器编程应用,初始化程序应完成如下工作: 1.对TMOD赋值,以确定T0和T1的工作方式。 2.计算初值,并将其写入T

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论