欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
單片機(jī)溫度傳感器代碼 顯示到數(shù)碼管上
[打印本頁]
作者:
zxy990307
時間:
2019-4-18 17:31
標(biāo)題:
單片機(jī)溫度傳感器代碼 顯示到數(shù)碼管上
#include "STC15Fxxxx.h"
#include "INTRINS.H"
#include "stdio.h"
#include "string.h"
#include "DS18B20.h"
#include "HC595.H"
sbit LED1 = P6^0;
sbit SPEAKER = P1^3;
sbit SingleKey = P0^7;////把P0.7接地,設(shè)置P0.0~P0.3為4個獨(dú)立按鍵
sbit KEY1 = P0^0;////P0.0為KEY1
sbit KEY2 = P0^1;////P0.1為KEY2
sbit KEY3 = P0^2;////P0.2為KEY3
sbit KEY4 = P0^3;////P0.3為KEY4
unsigned char displayDat[8]={0x00}; //顯示單元數(shù)據(jù),共8個數(shù)據(jù)和一個運(yùn)算暫用
//Function Definition 函數(shù)聲明
extern unsigned char display_index; //顯示位索引
void Delaylong(unsigned int t);
//串行口初始化
void UartInit(void);
////////////////////////////////////////////////////
void Delaylong(unsigned int t)//
{
unsigned int i,j;
for(i=0;i<t;i++)
{
for(j=0;j<10;j++);
}
}
//////////////////////////////////////
void Beep(unsigned int dd)
{
// SPEAKER=1;
Delaylong(dd);
SPEAKER=0;
}
//////////////////////////////////////
void UartSend(unsigned char ch)
{
SBUF=ch;
while(!TI);
TI=0;
}
///////////////////////////////////////////////////////////////////////
// 串口初始化函數(shù)
///////////////////////////////////////////////////////////////////////
void UartInit(void) //9600bps@11.0592MHz
{
SCON = 0x50; //8位數(shù)據(jù),可變波特率
AUXR |= 0x40; //定時器1時鐘為Fosc,即1T
AUXR &= 0xFE; //串口1選擇定時器1為波特率發(fā)生器
TMOD &= 0x0F; //設(shè)定定時器1為16位自動重裝方式
TL1 = 0xE0; //設(shè)定定時初值
TH1 = 0xFE; //設(shè)定定時初值
ET1 = 0; //禁止定時器1中斷
TR1 = 1; //啟動定時器1
// ES = 1; //使能串口1中斷
REN =1;
}
////////////////////////////
void PortInit()
{
P0M1 =0X00;
P0M0 =0X00;
// P1M1 =0X00;
// P1M0 =0X08;////P1.3強(qiáng)驅(qū)動模式,P1.3蜂鳴器
P2M1 =0X00;
P2M0 =0X00;
P3M1 =0X00;
P3M0 =0X00;
P4M1 =0X00;
P4M0 =0X00;
P5M1 =0X00;
P5M0 =0X00;
P6M1 =0X00;
P6M0 =0X00;
// P7M1 =0X00;
// P7M0 =0X10;////P7.4強(qiáng)驅(qū)動模式繼電器
KEY1 =1;
KEY2 =1;
KEY3 =1;
KEY4 =1;
}
void Timer0Init(void) //1毫秒@11.0592MHz
{
AUXR |= 0x80; //定時器時鐘1T模式
TMOD &= 0xF0; //設(shè)置定時器模式
TL0 = 0xCD; //設(shè)置定時初值
TH0 = 0xD4; //設(shè)置定時初值
TF0 = 0; //清除TF0標(biāo)志
TR0 = 1; //定時器0開始計(jì)時
ET0 = 1; //使能定時器中斷
}
/*******************************************************************************/
void main(void) //主函數(shù)
{
unsigned char i;
unsigned int temp,DS18B20_ID[8];
AUXR =0x00;
PortInit();
UartInit(); // 串口1//注意,下載程序選擇晶振:11.0592MHz,波特率9600bps
Delaylong(500);
SingleKey = 0;////把P0.7接地,設(shè)置P0.0~P0.3為4個獨(dú)立按鍵
Timer0Init();
UartSend(0xaa);
// Beep(5000);
for(i=0; i<8; i++) displayDat[i] = 0x10; //上電消隱
EA=1;
while(1)
{
// UartSend(display_index);
// if(KEY1==0) ////讀出地址0x00處的一個字節(jié)
{
// Delaylong(30);
// while(KEY1==0);////等待按鍵抬起
temp = Conversion(ds18b20ReadTemp());
// UartSend(temp&&0xFF);
// UartSend((temp>>8)&&0xFF);
// EA=0;
displayDat[1] = temp / 10000;
displayDat[2] = temp % 10000 / 1000;
displayDat[3] = temp % 1000 / 100;
displayDat[5] = temp % 100 / 10;
displayDat[6] = temp % 10;
// EA=1;
// Beep(3000);
}
if(KEY2==0) ////
{
Delaylong(30);
while(KEY2==0);////等待按鍵抬起
ds18b20_reset();
delay_1ms(1);
ds18b20WriteByte(0x33);////讀取DS18B20的8個字節(jié)ID
for(i=0;i<8;i++)
{
DS18B20_ID[i]=ds18b20ReadByte();
}
for(i=0;i<8;i++) UartSend(DS18B20_ID[i]);
Beep(3000);
}
// for(i=0;i<8;i++) //8位LED掃描控制
// {
// display(i,displayDat[i]);
// }
}
}//main
void timer0_Isr(void) interrupt 1 //using 1
{
// unsigned char i;
DisplayScan(); //1ms掃描顯示一位
// B_1ms = 1; //1ms標(biāo)志
}
復(fù)制代碼
溫度模塊zxy.rar
2019-4-18 17:30 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
88.57 KB, 下載次數(shù): 7, 下載積分: 黑幣 -5
作者:
admin
時間:
2019-4-18 22:45
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1