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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

一打開單片機定時器中斷數碼管就不顯示?附程序

[復制鏈接]
回帖獎勵 2 黑幣 回復本帖可獲得 2 黑幣獎勵! 每人限 1 次
跳轉到指定樓層
樓主
ID:773929 發(fā)表于 2022-12-11 02:16 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
不打開定時器一切正常,求大佬提示!感謝!!


單片機源程序如下:
#include <reg51.h>
#include <stdio.h>
#include <intrins.h>

#define uchar unsigned char
#define uint unsigned int

#define DU  P0

unsigned char  ledchar[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; // 0~9
uint Temp;

uint t;
uchar Flag_connect ; //掉線標志位
uint MAX6675_temp;
uint BJ_temp;                //報警值
uchar Flag_Bj;  //報警標志位

uint p;


sbit xz = P2^7;    //按鍵
sbit jia = P2^6;
sbit jian = P2^5;


sbit WEI_1 = P2^0 ;
sbit WEI_2 = P2^1 ;
sbit WEI_3 = P2^2 ;
sbit WEI_4 = P2^3 ;

sbit so = P1^5;
sbit sck = P1^6;
sbit cs = P1^7;

sbit baojing = P3^7;

sbit key1 = P2^5;
sbit key2 = P2^6;
sbit key3 = P2^7;
sbit baocun = P2^4;

sbit led = P3^0;


void xianshi(uint shuzhi);
void DelayMs(unsigned int i);
unsigned int MAX6675_Read();//讀溫度;
uint MAX6675_Oper();//溫度運算
void Timer_Init();//定時器0初始化
void shezhi();  //按鍵設置
void UartInit(void);//串口初始化
void SendDate(unsigned char dat);

uchar a;
void Timer0() interrupt 1
{
        a++;
        TH1 = (65536-50000)/256;
        TL1 = (65536-50000)%256;
        if(a >= 10){
                led =~ led;
                a = 0;
        }
               
}

void Start()
{
         DU = 0x00;
         WEI_1 = 1;
         WEI_2 = 1;
         WEI_3 = 1;
         WEI_4 = 1;        
                Flag_Bj = 0;        
}


void main(void)
{
        Start();
        Timer_Init();
        DelayMs(1000);
        baojing = 0;
        BJ_temp = 145;
        
   while (1){
           EA = 0;
           MAX6675_Oper();
           EA = 1;
           
           shezhi();
           
           if(MAX6675_temp >= BJ_temp ) //報警判斷
           {
                   baojing = 1;
                }else{baojing = 0;}

}
}

void xianshi(uint shuzhi){     //數碼管顯示函數,只顯示三位數
         uchar ge;
         uchar shi;
         uchar bai;
         ge = shuzhi%10;
         shi = (shuzhi/10)%10;
         bai = shuzhi/100;
         
         WEI_1 = 1;
         WEI_2 = 1;
         WEI_3 = 1;
         WEI_4 = 1;
         WEI_2 = 0;
         DU = ledchar[bai];
         DelayMs(3);
         WEI_1 = 1;
         WEI_2 = 1;
         WEI_3 = 1;
         WEI_4 = 1;
         WEI_3 = 0;
         DU = ledchar[shi];
         DelayMs(3);
         WEI_1 = 1;
         WEI_2 = 1;
         WEI_3 = 1;
         WEI_4 = 1;
         WEI_4 = 0;
         DU = ledchar[ge];         
         DelayMs(3);
         
}

void DelayMs(unsigned int i)        //一個延時函數,這個函數在11.0592M晶振下的延時時間大概為1ms
{
        unsigned int j,k;

        for(j=i; j>0; j--)
                for(k=114; k>0; k--);
}

unsigned int  MAX6675_Read(void)   //max6675讀十六位數值
{
        //EA = 0;
        
        uchar i;
        uint dat;
        i = 0;
        dat = 0;
        cs = 0;
        sck = 0;
        for(i = 0;i<16; i++)
        {
                sck = 1;
                dat = dat<<1;
                if(so == 1)
                        dat = dat|0x01;
                sck = 0;
        }
        cs = 1;
        
        return dat;
        //EA = 1;
}

uint MAX6675_Oper()
{
        
        t = MAX6675_Read();
        Flag_connect = t&0x04;
        Flag_connect = Flag_connect>>2;
        t = t<<1;
        t = t>>4;
        MAX6675_temp = t/4;
        
        if(Flag_connect==0 && Flag_Bj == 0){

                for(t = 0; t<200; t++)
                {
                        xianshi(MAX6675_temp);
                }
        }else {baojing = 1; xianshi(000);} //判斷是否掉線,掉線報警,并且顯示000
        
        //return MAX6675_temp;
}


void Timer_Init()
{
        EA = 1;
        ET1 = 1;
        TMOD = 0X10;
        TH1 = (65536-50000)/256;
        TL1 = (65536-50000)%256;
        TR1 = 1;
        a = 0;
}

void shezhi()
{
        if(key1 == 0)
        {
                DelayMs(10);
                if(key1 == 0)
                {
                        xianshi(BJ_temp);
                        Flag_Bj = 1;
                }
        }
        while(Flag_Bj == 1){xianshi(BJ_temp);
        if(key2 == 0)
        {
                DelayMs(10);
                if(key2 == 1){
                        BJ_temp++;
                        xianshi(BJ_temp);
                }
        }
        
        if(key3 == 0)
        {
                DelayMs(10);
                if(key3 == 1){
                        BJ_temp--;
                        xianshi(BJ_temp);
                }
        }

        if(baocun == 0)
        {
                DelayMs(10);
                if(baocun == 1){
                        Flag_Bj = 0;
                }
        }}        
}

void UartInit(void)                //9600bps@11.0592MHz
{
        SCON = 0x50;                //8位數據,可變波特率
        TMOD &= 0x0F;                //設置定時器模式
        TL1 = 0xE8;                //設置定時初始值
        TH1 = 0xFF;                //設置定時初始值
        ET1 = 0;                //禁止定時器%d中斷
        TR1 = 1;                //定時器1開始計時
}

void SendDate(unsigned char dat)//串口發(fā)送
{
      SBUF = dat;
      while(!TI);
      TI = 0;
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:1056573 發(fā)表于 2022-12-11 03:59 | 只看該作者
void SendDate(unsigned char dat)//串口發(fā)送
{
      SBUF = dat;
      while(!TI);
      TI = 0;
}
  “while(!TI);”中是否多了個“;”?
回復

使用道具 舉報

板凳
ID:773929 發(fā)表于 2022-12-11 11:23 來自觸屏版 | 只看該作者
ytchfp163 發(fā)表于 2022-12-11 03:59
void SendDate(unsigned char dat)//串口發(fā)送
{
      SBUF = dat;

沒有呀,等待ti
回復

使用道具 舉報

地板
ID:624769 發(fā)表于 2022-12-11 14:58 | 只看該作者
你串口用  定時器1  ,  定時器又用定時器1??  中斷開的還是 定時器0!!!  

這不正常才是正常現(xiàn)象!!
回復

使用道具 舉報

5#
ID:1057088 發(fā)表于 2022-12-12 08:52 | 只看該作者
去掉所有的DELAY 試一下.
回復

使用道具 舉報

6#
ID:1059656 發(fā)表于 2022-12-29 18:39 | 只看該作者
定時器換一下 串口和中斷不能用一個定時器
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美精品久久 | 一级片在线免费播放 | 亚洲福利在线视频 | 亚洲成人久久久 | 伊人在线视频 | 黄色一级毛片免费看 | av在线免费观看网址 | 一区2区 | 欧美日韩亚洲一区 | 欧美日韩高清免费 | 国产综合av| 亚洲精品乱码久久久久久9色 | 亚洲国产精品成人无久久精品 | a免费观看 | 亚洲在线一区 | 国产综合久久 | 欧美日韩国产一区二区三区 | 操操操日日日 | 久久久久久国产精品 | 国内精品一区二区三区 | 国产一区二区欧美 | 视频一区在线观看 | 亚洲成人三级 | 中文字幕日韩欧美一区二区三区 | 日韩无| 国产亚洲精品久久久久久豆腐 | 欧美 日韩 综合 | 在线观看成人精品 | 在线国产一区二区 | 99精品国产在热久久 | 免费视频二区 | 99久久精品国产一区二区三区 | 国产精品久久久久久亚洲调教 | 一区二区三区视频在线观看 | 一本色道久久综合亚洲精品高清 | www.久草.com| www.免费看片.com | 国产精品一区一区 | 日韩三级电影一区二区 | 欧美在线视频不卡 | 日韩一二三区视频 |