找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4109|回复: 0
收起左侧

51单片机C语言嵌套汇编的00~60计时器程序设计

[复制链接]
ID:328334 发表于 2018-11-28 21:03 | 显示全部楼层 |阅读模式
由于C语言的结构性与可移植性强,所以主体框架采用C语言
另一方面,由于汇编延时计算比较精准,故采用汇编作为延时程序
首先先看开发板电路图
1.138译码器,提供片选信号
s.png

2.数码管,提供位选
d.png

程序如下:
#include "reg52.h"
#include<intrins.h>        
sbit beep=P1^5;
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
unsigned char tbs[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void del() /*本函数延迟为1MS*/
{
  #pragma asm   /*嵌套汇编开始的标识符*/
                DEL3:MOV R0,#1 /*这段为循环DEL2的次数*/
                DEL2:MOV R1,#10 /*最内层为100微秒,R1的数为循环100微秒的次数*/
                DEL1:MOV R2,#25  
          DEL0:NOP
               NOP
               DJNZ R2,DEL0
               DJNZ R1,DEL1
               DJNZ R0,DEL2
        #pragma endasm /*嵌套汇编结束的标识符*/
}
void display(int i)
{
        P0=tbs[ i];        
}
void main()
{
        int x,y,ps;
        while(1)
        {
                 x=0;
     while(x<=5)  
                 {
                  y=0;
                        while(y<=9)
                        { ps=0;
                          while(ps<500) /* 500*2*1ms=1s 即延迟一秒y值+1 */
                                {
                                       LSA=1;
                                        LSB=0;
                                        LSC=0;
                                        display(x);
                                        del();    /*采用动态显示,因为单片机一次操作只能显示1片数码管,1MS交替显示第一位和第二位数码管*/
                                        LSA=0;
                                        LSB=0;
                                        LSC=0;
                                        display(y);
                                        del();
                                        ps=ps+1;
                                }
                                y=y+1;        
                        }
      x=x+1;               
                 }
        }
}

注:C嵌套汇编步骤
1.打开c文件的设置
a.png
2.把这两项点击两次到选项变黑(不是灰)
b.png

3.本程序还需在source group里添加另一个文件
3.png 该文件在keil下C51文件夹下的lib文件夹,有时需要加其他lib文件,可以看我另一个帖子http://www.51hei.com/bbs/dpj-143426-1.html

评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表