找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

CT107 STC15F2K60S2單片機18B20溫度顯示程序

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:957828 發(fā)表于 2021-7-31 10:37 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include "STC15F2K60S2.h"
#include "onewire.h"
#include "absacc.h"
#include "intrins.h"

typedef unsigned char uchar;
typedef unsigned int uint;

uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//duan ma
uchar dspbuf[8]={10,10,10,10,10,10,10,10};//huan cong qu

bit temp_flag = 0;//wen du

void Enable(uchar yc);
void cls_buzz();
void cls_led();
void display(void);

void main()
{
        char temperature;
        cls_buzz();cls_led();
        TMOD &= 0xF0;                //???????
        TL0 = 0xCD;                //1ms
        TH0 = 0xD4;                //??????
        TF0 = 0;                //??TF0??
        TR0 = 1;                //???0????
        ET0 = 1;
        EA = 1;
        
        while(1)
        {
                if(temp_flag)
                {
                        temp_flag = 0;
                        temperature = rd_temperature();
                }
                (temperature > 10) ? (dspbuf[6] = temperature/10) : (dspbuf[6] = 10);
                dspbuf[7] = temperature % 10;
        }
        
}
void timer0() interrupt 1
{
        static uchar ms=0;
        if(++ms == 50)
        {
                ms = 0;
                temp_flag = 1;
        }
        display();
}
void Enable(uchar yc)
{
        switch (yc)
        {
                case 4:
                        P2 = (P2 & 0x1f) | 0x80;break;
                case 5:
                        P2 = (P2 & 0x1f) | 0xa0;break;
                case 6:
                        P2 = (P2 & 0x1f) | 0xc0;break;
                case 7:
                        P2 = (P2 & 0x1f) | 0xe0;break;
        }
}

void cls_buzz()
{
        Enable(5);
        P0 = 0x00;
        P2 &= 0x1f;
}
void cls_led()
{
        Enable(4);
        P0 = 0xff;
        P2 &= 0x1f;
}
void display(void)
{
        static uchar dspcom = 0;
        
        Enable(7);
        P0 = 0xff;//xiao yin
        P2 &= 0x1f;
        
        P0 = 1<<dspcom;
        Enable(6);//wei xuan
        P2 &= 0x1f;
        
        Enable(7);//duan xuan
        P0 = tab[dspbuf[dspcom]];
        P2 &= 0x1f;
        
        if(++dspcom == 8)
                dspcom = 0;
}

初學,如有錯誤 請大家多多指教,代碼下載:
my.rar (80.53 KB, 下載次數(shù): 11)

評分

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

查看全部評分

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

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表