资源描述:
《单片机c51程序设计数码管显示》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C51内部函数有一些函数,用汇编语言编写非常直接、简单、目标代码短,而用C编写却很长。对于用汇编语言编写的这类库函数叫内部函数。内部函数在C51中已按C的规范用汇编语言写好。用户右以直接当作C语言函数调用。内部函数原型说明放在intrans.h文件中。左/右移多位函数格式:_crol_/_iror_/_lrol_(参数表);原型说明:unsignedchar_crol(unsignedcharval,unsignedcharn);unsignedint_irol(unsignedval,unsignedcharn);unsignedlong_lrol(unsignedl
2、ongval,unsignedcharn);第一个参数是被移位的变量,第二个是欲移位位数:无符号字符型变量为0-7;无符号整型为0-15(右移为0-32);无符号长整型是0-31。例:#includevoidmain(){unsignedinty;y=0x00FF;y=_irol_(y,4);}空操作函数格式:void_nop_(void);作用:产生单一汇编指令nop.执行该函数实际上无实质性操作,仅是延时一个机器周期.例:从P0.7输出三个机器周期宽的正脉冲P0&=~0x80;P0
3、=0x80;_nop_;_nop_;P0&=~0x80;位测试
4、函数格式:bit_testbit_(bitx);说明:参数和返回值必须是位变量.该函数产生汇编指令JBCX,--。用于测试位变量是X,是0,还是1,并将其值经CY返回.例:#includebitflag;charval;voidmain(){if(!_teatbit_(flag))val--;}JBCflag?C002DECvalC002:RET函数式宏定义行末标志前加"",则其后语句将作为单个预处理命令.函数式宏定义声明正式参数名,放在括号中,用逗号分隔;左括号与宏名之间不能有空格,如果出现空格,则定义成不带参数的宏和以左括号开始的宏体.正式参
5、数名应为标识符,参数不能重名,宏体中不一定要出现这些参数名.宏参数中可出现花括号和下标方括号,但不能包含逗号.#defineWR573(dat){P0=dat;LE573=1;_nop_();LE573=0;}中断源的符号、名称及产生的条件INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起。INT1:外部中断1,由P3.3端口线引入,低电平或下跳沿引起。T0:定时器/计数器0中断,由T0计满回零引起。T1:定时器/计数器l中断,由T1计满回零引起。TI/RI:串行I/O中断,串行端口完成一帧字符发送/接收后引起。第一个任务:流水灯以74HC573
6、扩展输出端口的方法驱动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显示器提供的编码正好是一个字节。0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0123456780x6f0x770x7c0x390x5e0x790x710x009ABCDEF无显示静态显示方式
7、LED显示器工作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。动态显示动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流
8、电阻时应略小于静态显示电路中的。定时器初值计算设单片机晶振频率为6MHZ,求方式1时的定时器初值.定时时间=(2X-初值)×机器周期X由定时器工作方式决定,分别为13、16、8.机器周期=12/单片机晶振频率fosc。由以上公式可知:定时lms所需的机器周期为2us.个数为500D,即0lF4H,工作方式为1(16位方式)时定时初值是01F4H.定时/计数器编程应用初始化程序应完成如下工作:1.对TMOD赋值,以确定T0和T1的工作方式。2.计算初值,并将其写入TH0、TL0或TH1、TL1。3.中断方式时,则对IE赋值,开放中断。4.使