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

標(biāo)題: 各位大佬幫我看看是哪里出了問(wèn)題,這程序是我在論壇下載改寫的。 [打印本頁(yè)]

作者: 葬閱    時(shí)間: 2018-12-19 20:37
標(biāo)題: 各位大佬幫我看看是哪里出了問(wèn)題,這程序是我在論壇下載改寫的。
數(shù)字溫度報(bào)警器:我是根據(jù)自己的單片機(jī)改的,數(shù)碼管是連接鎖存器的。調(diào)試程序的時(shí)候顯示TL0未定義。請(qǐng)大家?guī)臀铱纯催@么回事,謝謝啦。
#define <reg51.h>
#define uint unsigned int
#define uchar unsigned char
#define SET P3^0       
#define ADD P3^1
#define DEC P3^2
#define BEEP P2^3
#define ALAM P1^0
#define DQ P2^2
#define SEG P0
#define count 50000
#define TH_M1(65636-count)/256
#define TL_M1(65636-count)%256
bit shanshuo_st;
bit beep_st;
sbit DIAN=P0^5;
sbit bit_select=P2^7;
sbit seg_select=P2^6;
uchar x=0;
signed char shangxian=38;
signed char xiaxian=5;
unsigned char seg_data[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char bit_data[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
//
void Delay_DS18B20(int num)
{
        while(num--);
}
//
void Init_DS18B20(void)
{
        unsigned char X=0;
        DQ=1;
        Delay_DS18B20(8);
        DQ=0;
        Delay_DS18B20(80);
        DQ=1;
        Delay_DS18B20(14);
        x=DQ;
        Delay_DS18B20(20);
}
//
unsigned char ReadOneChar(void)
{
        unsigned char i=0;
        unsigned char dat=0;
        for(i=8;i>0;i--)
        {
                DQ=0;
                dat>>=1;
                DQ=1;
                if(DQ)
                        dat|=0x80;
                Delay_DS18B20(4);
        }
        return(dat);
}
        //
        void WriteOneChar(unsigned char dat)
        {
                unsigned char i=0;
                for(i=8;i>0;i--)
                {
                        DQ=0;
                        DQ=dat&0x01;
                        Delay_DS18B20(5);
                        DQ=1;
                        dat>>=1;
                }
        }
        //
        unsigned int ReadTemperature(void)
        {
                unsigned char a=0;
                unsigned char b=0;
                unsigned int i=0;
                float tt=0;
                Init_DS18B20();
                WriteOneChar(0xcc);
                WriteOneChar(0x44);
                Init_DS18B20();
                WriteOneChar(0xcc);
                WriteOneChar(0xbe);
                a=ReadOneChar();
                b=ReadOneChar();
                t=b;
                t<<=8;
                t=t|a;
                tt=t*0.0625;
                t=tt*10+0.5;
                return(t);
        }
        //
        void Delay(unit num)
        {
                while(--num);
        }
        //
        void InitTimer(void)
        {
                TMOD=0x01;
                TH0=TH_M1;
                TL0=TL_M1;
        }
        //
        void check_wendu(void)
        {
                uint a,b,c;
                c=temperature();
                a=c/100;
                b=c/10-a*10;
                m=c/10;
                n=c-a*100-b*10;
                if(m<0)
                {
                        m=0;
                        n=0;
                }
                if(m>99)
                {
                        m=99;
                        n=9;
                }
        }
        //
        void Disp_init(void)
        {
                SEGPORT=0xff
                seg_select=1;
                P0=0x7f;
                seg_select=0;
               
                SEGPORT=0xff
                bit_select=1;
                P0=0xfe;
                bit_select=0;
                delay(100);
                seg_select=1;
                P0=0x7f;
                seg_select=0;
               
                bit_select=1;
                P0=0xfd;
                bit_select=0;
                delay(100);
                seg_select=1;
                P0=0x7f;
                seg_select=0;
               
                bit_select=1;
                P0=0xfb;
                bit_select=0;
                delay(100);
                seg_select=1;
                P0=0x7f;
                seg_select=0;
               
                bit_select=1;
                P0=0xf7;
                bit_select=0;
                delay(100);
                P0=0xff;
               
               
        }
        //
        void Disp_Temperature(void)
        {
                SEGPORT=0xff
                seg_select=1;
                P0=seg_date[n];
                seg_select=0;
               
                SEGPORT=0xff
                bit_select=1;
                P0=0xfe;
                bit_select=0;
                delay(200);
               
                seg_select=1;
                P0=seg_date[m%10];
                seg_select=0;
               
                bit_select=1;
                P0=0xfd;
                bit_select=0;
                delay(200);
               
               
                seg_select=1;
                P0=seg_data[m/10]|0x80;
                seg_select=0;
               
               
                bit_select=1;
                P0=0xfb;
                bit_select=0;
                delay(200);
               
                seg_select=1;
                P0=0x39;
                seg_select=0;
               
                bit_select=1;
                P0=0xf7;
                bit_select=0;
                Delay(200);
                P2=0xff;
        }
        //
        void Disp_alarm(uchar baojing)
        seg_select=1;
        P0=0x39;
        seg_select=0;
               
        bit_select=1;
        P0=0xfe;
        bit_select=0;
        Delay(100);
        P2=0xff;
       
        seg_select=1;
        P0=seg_data[baojing%10];
        seg_select=0;
               
        bit_select=1;
        P0=0xfd;
        bit_select=0;
        Delay(100);
        P2=0xff;
       
        seg_select=1;
        P0=seg_data[baojing/10];
        seg_select=0;
               
        bit_select=1;
        P0=0xfb;
        bit_select=0;
        Delay(100);
        P2=0xff;
       
        seg_select=1;
        if(set_st==1)P0=0x76;
        else if(set_st==2)P0=0x38;
        seg_select=0;
       
        bit_select=1;
        P0=0xf7;
        bit_select=0;
        Delay(100);
        P2=0xff;
        //
        void Alarm()
        {
                if(x>=10)
                {
                        beep_st=~beep_st;
                        x=0;
                        if((m>shangxian&&beep_st==1)||(m<xiaxian&&beep_st==1))
                        {
                                BEEP=0;
                                ALARM=0;
                        }
                        else
                        {
                                BEEP=1;
                                ALARM=1;
                        }
                }
                //
                void main(void)
                {
                        uint z;
                        InitTimer();
                        EA=1;
                        TR0=1;
                        ET0=1;
                        IT0=1;
                        IT1=1;
                        check_wendu();
                        check_wendu();
                        for(z=0;z<300;z++)
                        {
                                Disp_init();
                        }
                        while(1)
                        {
                                if(SET==0)
                                {
                                        Delay(2000);
                                        do{}while(SET==0);
                                                set_st++;
                                                x=0;
                                                shanshuo_st=1;
                                                if(set_st>2)set_st=0;
                                        }
                                if(set_st==0)
                                {
                                        EX0=0;
                                        EX1=0;
                                        check_wendu();
                                        Disp_Temperature();
                                        Alarm();
                                }
                                else if(set_st==1)
                                {
                                        BEEP=1;
                                        ALARM=1;
                                        EX0=1;
                                        EX1=1;
                                        if(x>=10)
                                        {
                                                shanshuo_st=~shanshuo_st;
                                                x=0;
                                        }
                                        if(shanshuo_st)
                                        {
                                                Disp_alarm(shangxian);
                                        }
                                }
                                else if(set_st==2)
                                {
                                        BEEP=1;
                                        ALARM=1;
                                        EX0=1;
                                        EX1=1;
                                        if(x>=10)
                                        {
                                                shanshuo_st=~shanshuo_st;
                                                x=0;
                                        }
                                        if(shanshuo_st)
                                        {
                                                Disp_alarm(xiaxian);
                                        }
                                }
                        }
                }
                //
                void timer0(void)interrupt 1
                {
                        TH0=TH_M1;
                        TL0=TL_M1;
                        x++;
                }
                //
                void int0(void) interrupt 0
                {
                        EX0=0;
                        if(DEC==0&&set_st==1)
                        {
                                do{
                                        Disp_alarm(shangxian);
                                }
                                while(DEC==0);
                                shangxian--;
                                if(shangxia<xiaxian)shangxian=xiaxian;
                        }
                        else if(DEC==0&&set_st==2)
                        {
                                do{
                                        Disp_alarm(xiaxian);
                                }
                                while(DEC==0);
                                xiaxian--;
                                if(xiaxian<0)xiaxian=0;
                        }
                }
                //
                void int1(void) interrupt 2
                {
                        EX1=0;
                        if(ADD==0&&set_st==1)
                        {
                                do{
                                        Disp_alarm(shangxian);
                                }
                                while(ADD==0);
                                shangxian++;
                                if(shangxian>>99)shangxian=99;
                        }
                        else if(ADD==0&&set_st==2)
                        {
                                do{
                                        Disp_alarm(xiaxian);
                                }
                                while(ADD==0);
                                xiaxian++;
                                if(xiaxian>shangxian)xiaxian=shangxian;
                        }
                }
               
       
       
       
作者: devcang    時(shí)間: 2018-12-20 01:05


講講程序?qū)崿F(xiàn)的功能,以及遇到的問(wèn)題唄

代碼不算太短,要調(diào)試,也要知道是做什么的。
作者: 葬閱    時(shí)間: 2018-12-20 12:13
devcang 發(fā)表于 2018-12-20 01:05
講講程序?qū)崿F(xiàn)的功能,以及遇到的問(wèn)題唄

代碼不算太短,要調(diào)試,也要知道是做什么的。

調(diào)試了,一直顯示DQ=1那一行有語(yǔ)法錯(cuò)誤。
void WriteOneChar(unsigned char dat)
        {
                unsigned char i=0;
                for(i=8;i>0;i--)
                {
                        DQ=0;
                        DQ=dat&0x01;
                        Delay_DS18B20(5);
                        DQ=1;
                        dat>>=1;
                }
        }




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲成人精品国产 | 成人在线免费网站 | 久久区二区| 国产精品免费看 | 本地毛片| 日韩at| 久久久黄色 | 国产精品一二三区 | 男女网站视频 | 少妇精品久久久久久久久久 | 午夜男人免费视频 | 毛片a| 国产日韩欧美一区二区 | 精品久久一区 | 日韩综合| 国产一区二区三区视频 | 日韩中文字幕av | 日韩欧美一区二区三区在线播放 | 欧美一区二区另类 | 免费视频99 | 亚洲精品久久久蜜桃 | 久久国产成人午夜av影院武则天 | 久草综合在线视频 | 免费在线色 | 国产91丝袜在线播放 | 九九久久久 | 色综合天天天天做夜夜夜夜做 | 国产精品a久久久久 | 国产精品久久久久久久久久久久久 | 久久精品91久久久久久再现 | 一区二区视频在线观看 | 日本欧美国产在线观看 | 欧美午夜精品久久久久免费视 | 日韩欧美国产一区二区三区 | 免费一级毛片 | 久久综合一区 | 亚洲精品久久久久久一区二区 | 国产精品污污视频 | 欧美日韩亚洲在线 | 亚洲精品久久久蜜桃 | 美女久久 |