找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4517|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

51單片機C語言嵌套匯編的00~60計時器程序設(shè)計

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:328334 發(fā)表于 2018-11-28 21:03 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
由于C語言的結(jié)構(gòu)性與可移植性強,所以主體框架采用C語言
另一方面,由于匯編延時計算比較精準,故采用匯編作為延時程序
首先先看開發(fā)板電路圖
1.138譯碼器,提供片選信號


2.數(shù)碼管,提供位選


程序如下:
#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() /*本函數(shù)延遲為1MS*/
{
  #pragma asm   /*嵌套匯編開始的標識符*/
                DEL3:MOV R0,#1 /*這段為循環(huán)DEL2的次數(shù)*/
                DEL2:MOV R1,#10 /*最內(nèi)層為100微秒,R1的數(shù)為循環(huán)100微秒的次數(shù)*/
                DEL1:MOV R2,#25  
          DEL0:NOP
               NOP
               DJNZ R2,DEL0
               DJNZ R1,DEL1
               DJNZ R0,DEL2
        #pragma endasm /*嵌套匯編結(jié)束的標識符*/
}
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();    /*采用動態(tài)顯示,因為單片機一次操作只能顯示1片數(shù)碼管,1MS交替顯示第一位和第二位數(shù)碼管*/
                                        LSA=0;
                                        LSB=0;
                                        LSC=0;
                                        display(y);
                                        del();
                                        ps=ps+1;
                                }
                                y=y+1;        
                        }
      x=x+1;               
                 }
        }
}

注:C嵌套匯編步驟
1.打開c文件的設(shè)置

2.把這兩項點擊兩次到選項變黑(不是灰)


3.本程序還需在source group里添加另一個文件
該文件在keil下C51文件夾下的lib文件夾,有時需要加其他lib文件,可以看我另一個帖子http://www.torrancerestoration.com/bbs/dpj-143426-1.html

評分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表