STC15W408AS0 10V電壓測量

2021-09-20 18:53:41 字數 2854 閱讀 9295

/****lcd1602 *********電壓表測量0-1024past*******/

/*************2018 12  28 code1844 l283**********/

#include      //按鍵加減輸入數字

#include      //輸出0-10電壓

#define       uint unsigned int  

#define       uchar unsigned char

sfr           p1asf=0x9d;          //p1口第2功能控制暫存器

#define       adc_speedll 0x00     //540個時鐘  

#define       lcd_bus p3

sbit          rs=p5^4;             //lcd pin4

sbit          rw=p1^7;             //lcd pin5

sbit          e=p1^6;              //lcd pin6

sbit          out1=p1^5;

float         advalue;             //存放ad轉換返回的結果 

uint          val;

uint          aa=0;                                      /****run flag****/

uchar         code disdt[10]=;

/*------------------延時子程式------------------------*/

void delay(uint ms)

/*------------------延時子程式------------------------*/

void delay_1ms(uint x)

/*********************************/

void chk_busy()

/*------------------寫命令到lcd-----------------------*/

void write_com(uchar cmdcode)

/*-------------------寫資料到lcd----------------------*/

void write_data(uchar dispdata)

/*------------------初始化lcd屏-----------------------*/

void lcd_init()

/*************************************/

void dis_play1(uint val)           /*顯示a函式*/

/*************************************/

void dis_play2(uint val)           /*顯示a函式*/

/*************************************/

void dis_play3(uint val)           /*顯示a函式*/

/*************************************/

void dis_play4(uint val)           /*顯示a函式*/

/*****************************************/

unsigned int adc_p10()             //

adc_contr&=0xe7;                 //將adc_flag清零

ad_dat=(adc_res<<2)|(adc_resl&0x03);    //

return ad_dat;                   //

}      

/*****************************************/

unsigned int adc_p11()             //

adc_contr&=0xe7;                 //將adc_flag清零

ad_dat=(adc_res<<2)|(adc_resl&0x03);    //

return ad_dat;                   //

}/*****************************************/

unsigned int adc_p13()             //

adc_contr&=0xe7;                 //將adc_flag清零

ad_dat=(adc_res<<2)|(adc_resl&0x03);    //

return ad_dat;                   //

}/*****************************************/

unsigned int adc_p14()             //

adc_contr&=0xe7;                 //將adc_flag清零

ad_dat=(adc_res<<2)|(adc_resl&0x03);    //

return ad_dat;                   //

}/*------------------主迴圈程式----------------*/      

void   main( )                    /*主程式開始*/

}                                 //主迴圈

有關STC15W系列硬體SPI的配置問題

器件的spi時序圖如上。使用stc15w微控制器spi,和這個器件進行通訊。stc15w的暫存器配置如下 最後開始初始化程式的 auxr1 auxr1 0x04 spdat 0 spstat 0xc0 spctl 0xd0 第一 設定硬體spi的引腳使用情況。配置暫存器 auxr1的bit3,bit...

linux下編譯stc15f104w的坑

sdcc mmcs51 iram size 256 xram size 0 code size 8192 nooverlay noinduction verbose debug v std sdcc89 model small main.c 然後繼續燒寫,還是失敗,但是我感覺就是這裡的問題了 ira...

STC15 按鍵中斷

實現功能 通電時亮乙個燈,輸出高電平x分鐘,低電平x分鐘 按一下變成兩個燈,高電平x分鐘,低電平x分鐘 再按一下變成三個燈,高電平x分鐘,低電平x分鐘 再按一下回到乙個燈 核心是通過按鍵改變flag的值,然後在延時中判斷flag值是否和原先的值相同 include reg51.h define on...