久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1403|回復: 2
打印 上一主題 下一主題
收起左側

求大佬幫忙把下面單片機程序改成非中斷函數

[復制鏈接]
跳轉到指定樓層
樓主
ID:418072 發表于 2018-10-31 11:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include <reg51.h>

sbit wei1=P3^4;
sbit wei2=P3^5;
sbit wei3=P3^6;
sbit wei4=P3^7;
sbit led=P1^0;

unsigned char segdat[16]=
{0xc0,
0xf9,
0xa4,
0xb0,
0x99,
0x92,
0x82,
0xf8,
0x80,
0x90,        };

unsigned int cnt=0,kevval;
void delay(unsigned int x);
void display_seg4(unsigned int dat,unsigned char tim);
void INIT_int0(void);

unsigned int js=0;
unsigned char flag=0;

void main(void)
{
INIT_int0();
while(1)
{
   if(flag==1)
   {
  js++;
  if(js>=10000)
  {
    js=0;
  }
}
  if(flag==0)
  {
     js=0;
  }
  display_seg4(js,2);
}
}

void zduan(void) interrupt 0
{
flag++;
if(flag==3)
flag=0;
}

void delay(unsigned int x)
{
unsigned int i,j;
for(i=0;i<x;i++)
{
   for(j=0;j<100;j++)
   {
     ;
   }
}
}

void INIT_int0(void)
{
IT0=1;
IE0=0;
EX0=1;
EA=1;
}

void display_seg4(unsigned int dat,unsigned char tim)
{
unsigned char tmp;
tmp=dat/1000%10;
P2=segdat[tmp];
wei1=1;
delay(20);P2=0xff;wei1=0;
tmp=dat/100%10;
P2=segdat[tmp];
wei2=1;
delay(20); P2=0xff;wei2=0;
tmp=dat/10%10;
P2=segdat[tmp];
wei3=1;
delay(20); P2=0xff;wei3=0;
tmp=dat%10;
P2=segdat[tmp];
wei4=1;
delay(20); P2=0xff;wei4=0;

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

使用道具 舉報

沙發
ID:277550 發表于 2018-10-31 23:21 | 只看該作者
這是外部中斷,不要外部中斷,就改成主循環中自動計數、延時累加,,,,,,,,,,,
回復

使用道具 舉報

板凳
ID:149144 發表于 2018-11-1 12:12 | 只看該作者
不知道你的具體意思,附件里有仿真,希望對你有幫助按鍵表示開始和清零

#include <reg51.h>

sbit wei1 = P3^4;
sbit wei2 = P3^5;
sbit wei3 = P3^6;
sbit wei4 = P3^7;
sbit ledA  = P1^0;
sbit ledB  = P1^1;

sbit ButtonA = P3^2;        // * *
sbit ButtonB = P3^3;        // * *

#define Seg_7_4 P2                // * *

unsigned char segdat[10]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 };

//unsigned int cnt = 0,kevval = 0;

void delay(unsigned int x);
void initTimer(void);
void display_seg4(unsigned int dat);//,unsigned char tim

void INIT_int0(void);

unsigned int js = 0;
unsigned char flag  = 0;
unsigned char times = 0;
void main(void)
{
        initTimer();
        INIT_int0();
        TR0 = 1;
        ET0 = 1;
        EA  = 1;
        ButtonA = 1;
        ButtonB = 1;

        while(1)
        {       
                display_seg4(js);//   *  *       
                if(flag == 0)
                {
                        times = 0;//清零
                        js = 0;//清零  JS 計數 ? 還是劍圣 ?
                }
        }
}
//  * *
void timer0(void) interrupt 1// 50 000 us = 50ms
{
        TH0=0x3c;
        TL0=0xb0;
        if(flag == 1)
        {
                if(++times > 20)// 50ms * 20 = 1s  想看效果 這個改小
                {
                        times = 0;
                        if(++js > 9999)
                        {
                                js = 0;
                        }                       
                }
        }       
}
       
void zduan(void) interrupt 0//**
{
        delay(2);
        if(ButtonA == 0)
        {
                if(++flag >1 )flag=0;//        * *   改成 2   2的時候就是暫停 3=0
        }       
}

void initTimer(void)//  *  *
{
TMOD=0x1;
TH0=0x3c;
TL0=0xb0;
}

void delay(unsigned int x)
{
        unsigned int i,j;
        for(i=0;i<x;i++)
        {
                 for(j=0;j<100;j++)
                {
                        ;               
                }
        }
}

void INIT_int0(void)
{
        IT0=1;
        IE0=0;
        EX0=1;
        EA=1;
}

void display_seg4(unsigned int dat)//,unsigned char tim  //        * *
{
        unsigned char tmp;
        tmp = dat/1000;
        Seg_7_4 = segdat[tmp];
        wei1 = 1;
        delay(2);//        *        *
       
        Seg_7_4 = 0xff;
        wei1 =0;
       
        tmp = dat/100;
        Seg_7_4  = segdat[tmp];
        wei2 = 1;
        delay(2);
       
        Seg_7_4 = 0xff;
        wei2 = 0;
       
        tmp = dat/10;
        Seg_7_4 = segdat[tmp];
        wei3 = 1;
        delay(2);
       
        Seg_7_4 = 0xff;
        wei3 = 0;
       
        tmp = dat%10;
        Seg_7_4 = segdat[tmp];
        wei4 = 1;
        delay(2);
       
        Seg_7_4 = 0xff;
        wei4 = 0;

}


51.rar

54.2 KB, 下載次數: 6

回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 黄网站免费在线看 | 国产成人综合在线 | 欧美日韩一区二区三区不卡视频 | 国产成人精品一区二区三区在线 | 国产精品jizz在线观看老狼 | 国产一级片91 | 成人免费网站 | 嫩草视频在线免费观看 | 黄a在线播放 | 国产伦一区二区三区 | 国产精品爱久久久久久久 | 久久亚| 亚洲日本一区二区 | 国产精品久久久久久久久动漫 | 久久精品欧美一区二区三区麻豆 | 久久国产成人 | 9久久精品| 国产精品国产馆在线真实露脸 | 资源首页二三区 | 日韩精品免费看 | 久久久久精| 欧美电影免费观看高清 | 成人影视网 | 久精品久久 | 精品国产一区二区三区久久久蜜月 | 暖暖日本在线视频 | 九九热最新视频 | 国产精品久久久久久久久久久久久 | 国色天香成人网 | 中文字幕国产在线 | www.男人天堂.com| www.啪啪.com| 免费一级大片 | 久久亚洲国产 | 久久久久久久av | 欧美黑人狂野猛交老妇 | 天天干com | 国产一区二区视频免费在线观看 | 国产精品日韩欧美一区二区 | 99re国产视频 | 国产免费福利小视频 |