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

標題: VB上位機與avr單片機18b20下位機程序 [打印本頁]

作者: 李好123    時間: 2020-11-18 11:42
標題: VB上位機與avr單片機18b20下位機程序

程序:
#include <iom16v.h>                        //包含型號頭文件
#include <macros.h>                        //包含"位"操作頭文件
#include <stdio.h>
#include <DS18B20.h>
#define uchar unsigned char        
#define uint  unsigned int
#define SEGLK PA3        //數碼管段選鎖存器控制端
#define BITLK PA4        //數碼管位選鎖存器控制端
#define LEDLK PA2        //LED鎖存器控制端

const SEGMENT[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,
                           0x7f,0x6f};
/*******************************************
函數名稱: Delayms
功    能: 延時指定毫秒(8M晶振)
參    數: MS--延時的毫秒數
返回值  : 無
********************************************/
void Delayms(uint MS)                  
{
uint i,j;
for( i=0;i<MS;i++)
for(j=0;j<1141;j++);        //1141是在8MHz晶振下,通過軟件仿真反復實驗得到的數值
}
/*******************************************
函數名稱: Board_init
功    能: 初始化實驗板,關閉全部功能
參    數: 無
返回值  : 無
/********************************************/
void Board_init(void)
{
        DDRA=0xFF;        //將四個IO口全部配置為輸出
        DDRB=0xFF;
        DDRC=0xFF;
        DDRD=0xFF;

        SPCR=0x00;        //還原SPI口,使其為正常端口        

        PORTA|=BIT(PA6);//(BEEP)關閉蜂鳴器
        PORTC&=~BIT(PC6);          //(RELAY)初始化繼電器為常閉連接狀態        
        PORTA&=~BIT(PA1);        //關閉SPI總線DA
        PORTB=0xFF;        //關閉LED
        PORTA|=BIT(LEDLK);        //鎖存數據,使LED熄滅
         Delayus(5);               
         PORTA&=~BIT(LEDLK);
        
        PORTB=0x00;           //輸出段選
         PORTA|=BIT(SEGLK);                  
         Delayus(50);                          
         PORTA&=~BIT(SEGLK);            
         
         PORTB=0xFF;           //輸出位選
         PORTA|=BIT(BITLK);                  
         Delayus(50);                                   
         PORTA&=~BIT(BITLK);           
        
        PORTD=0xFF;
        PORTA|=BIT(PA7);
        Delayus(50);
        PORTA&=~BIT(PA7);

        
}

/*******************************************
函數名稱: One_smg_display
功    能: 指定的數碼管顯示指定的內容
參    數: data--顯示的內容(0-15)
                    number--指定的數碼管(1-6)
返回值  : 無
/********************************************/
void One_smg_display(uchar data,uchar number)
{
PORTB|=0x3F;                           //輸出位選
PORTA|=BIT(BITLK);                   //更新位選
Delayus(50);                           //調整時序
PORTA&=~BIT(BITLK);           //鎖存位選

PORTB=SEGMENT[data];           //輸出段選
PORTA|=BIT(SEGLK);                   //更新段選
Delayus(50);                           //調整時序
PORTA&=~BIT(SEGLK);           //鎖存段選

number=~BIT(number-1);           //調整位選(指定時是1~6,而操作的時候是0~5)
PORTB=number;                           //輸出位選
PORTA|=BIT(BITLK);                   //更新位選
Delayus(50);                                   //調整時序
PORTA&=~BIT(BITLK);           //鎖存位選
}

/********************************************/
void uart0_init(void)
{
  UCSRB = 0x00;  //禁止發送
  UCSRA = 0x02;  //倍速
  UCSRC = 0x06;  //8位數據位,1個停止位
  UBRRL = 0x67;  //波特率為9600
  UBRRH = 0x00;
  UCSRB = 0x18;  //允許發送
}
/********************************************************/
void uart0_send(uchar i)  //發送一個字符
{
  while(!(UCSRA&(1<<UDRE))); //等待發送緩沖區為空
    UDR=i;                    //發送數據
  while(!(UCSRA&(1<<TXC)));                 //等待發送完畢
    UCSRA|=1<<TXC;                   //清除發送完畢狀態位
}
/*******************************************/
void str_send(char *s) //發送一串字符
{
while(*s)
{
  uart0_send(*s); //字符串未結束則繼續發送
  s++;
}
}
/*********************************************/
uchar uart0_receive(void) //接收一個字符
{
  while(!(UCSRA&(1<<RXC)));//等待接收數據
  return UDR;               //返回數據
}

/*******************************************
函數名稱: main
功    能: 6個數碼管循環滾動顯示指定的內容
參    數: 無
返回值  : 無
/********************************************/
void main(void)
{         uint t=0;
     uchar temh_d,teml_d,temm_d;
         //uchar RDATA[3];
         uart0_init();
         Board_init();           //初始化開發板
         while(1)
         {
         
          t=Read_temp()*0.625;//得到轉換溫度值
      Delayms(2);
          temh_d=t/100;
          temm_d=(t/10)%10;
          teml_d=t%10;
         
           
                //uart0_send(temh_d+48);
                //Delayms(1);
           // uart0_send(temm_d+48);
                //Delayms(1);
            uart0_send(temh_d+48);
                uart0_send(temm_d+48);
                str_send(".");
                uart0_send(teml_d+48);
                uart0_send(32);
                uart0_send(32);
                uart0_send(32);
                //Delayms(1);
                //str_send(" ");
               
          One_smg_display(teml_d,6);
          Delayms(2);
          One_smg_display(temm_d,5);
          Delayms(2);
          One_smg_display(temh_d,4);
          Delayms(2);
        
         }
}

VB上位機與18b20下位機.zip

32.79 KB, 下載次數: 22, 下載積分: 黑幣 -5


作者: 51hei團團    時間: 2020-11-29 03:18
好資料,51黑有你更精彩!!!




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 日韩欧美操 | 国产美女网站 | 国产精品久久久久久久久久三级 | 人人艹人人 | 欧美日韩在线一区二区三区 | 欧美精品1区 | 午夜成人在线视频 | 亚洲福利视频一区二区 | 中文字幕在线二区 | 欧美爱爱视频网站 | 色婷婷精品 | 一级做a爰片性色毛片 | 国产精品成人一区二区 | 午夜国产 | 亚洲成人精品一区二区 | 天天色综 | 久久99精品久久久久久青青日本 | 香蕉婷婷 | 国产精品久久久久久久久久三级 | 中国黄色毛片视频 | 精品国产一区二区三区久久久蜜月 | 亚洲精品黄 | 福利视频网 | 国产香蕉视频在线播放 | 亚洲一区免费 | 免费播放一级片 | 日日干夜夜草 | 日韩成人 | 免费高清av | 日韩国产一区二区三区 | 国产成人99| 日韩av中文| 999视频在线播放 | 久久免费国产视频 | 日韩www| 国产精品不卡一区 | av网站在线免费观看 | 日韩一级精品视频在线观看 | 天天射影院 | 欧美日韩精品中文字幕 | 国产精品久久久久久久久久久久午夜片 |