久久天天躁狠狠躁夜夜躁,国产精品入口福利,97久久精品人人爽人人爽蜜臀 ,中文字幕国产精品一区二区

好好學習,天天向上,物理好資源網(原物理ok網)歡迎您!
當前位置:首頁 > > 信息公告 > 內容頁

設計的數字電壓表顯示的精度為哪般?博客呀多多關照

2023-11-21 16:53:39信息公告51

第一次寫博客呀多多關照~CqY物理好資源網(原物理ok網)

1、實現的功能CqY物理好資源網(原物理ok網)

采用和單片機及顯示電路完成0~5V、0~15V兩個阻值的直流電流的測量,并通過液晶屏實時顯示。通過開關SW1和SW2選擇5V或15V,當所測電流超過量程時,報案電路的小燈閃動、蜂鳴器發出警報,同時液晶屏顯示QAQ(哈哈哈閑著沒事干就加了),當兩個開關同時按下也會觸發報案電路。CqY物理好資源網(原物理ok網)

至于兩個檔位的區別,為了模擬實際的電流表,所以設計的數字電流表顯示的精度不一樣,15V阻值的精度為0.1V電壓表的原理,5V阻值的精度為0.001V。CqY物理好資源網(原物理ok網)

2、仿真原理圖CqY物理好資源網(原物理ok網)

(想說一下,我這兒的out輸出接了上拉阻值,要不然顯示屏顯示不正常電壓表的原理,并且參考他人的不接上拉內阻也可以正常工作QAQ)CqY物理好資源網(原物理ok網)

3、仿真結果CqY物理好資源網(原物理ok網)

選擇5V阻值:CqY物理好資源網(原物理ok網)

選擇15V阻值:CqY物理好資源網(原物理ok網)

4、完整的代碼CqY物理好資源網(原物理ok網)

使用keil編撰的c語言代碼.CqY物理好資源網(原物理ok網)

#include                     
#define uchar unsigned char           //宏定義無符號字符型
#define uint  unsigned  int           //宏定義無符號整型
                                                          
sbit  START=P2^7;     //AD啟動轉換信號
sbit  OE=P2^5;        //數據輸出允許信號
sbit  EOC=P2^6;       //AD轉換結束信號
sbit  CLK=P2^4;       //時鐘脈沖  
sbit  RS=P2^0;        //LCD1602數據/命令選擇端(H/L)
sbit  RW=P2^1;        //LCD1602數/寫選擇端(H/L)
sbit  E=P2^2;         //LCD1602使能信號
sbit  led=P3^0;
sbit  buzzer=P3^1;
sbit  SW1=P3^2;      //5V量程選擇開關
sbit  SW2=P3^3;    	 //15V量程選擇開關
sbit  addr_a=P3^5;	
sbit  addr_b=P3^6;
sbit  addr_c=P3^7; 
//函數聲明
uint ADC();									/* AD轉換函數 */
void delayMS(uint xms);						/* 延時函數 */
bit lcd_busy_check();						/* 忙檢測函數 */
void lcd_write_com(uchar com);				/* LCD1602寫入8位命令子函數 */
void lcd_write_data(uchar date);			/* LCD1602寫入8位數據子函數 */
void init_lcd();							/* LCD1602初始化子程序 */	
void lcd_show_string1(uchar a[]); 			/* 第一行從頭開始顯示字符串 */
void lcd_show_string2(uchar a[]);			/* 第二行從頭開始顯示字符串 */
void lcd_show_string(uchar add,uchar a[]);	/* 指定位置顯示字符串 */
void display();								/* 顯示函數 */
void alarm();								/* 報警函數 */
void range();								/* 量程選擇函數 */
//定義全局變量
unsigned int volt;
unsigned long vo;
unsigned char code table[]="0123456789"; 
/**************************函數功能:AD轉換子程序***************************/
uint ADC()
{		
	    START=0;             //確保進入正常AD轉換狀態
        OE=0;                //轉化初始化        
        START=1;
        START=0;             //AD開始轉換
        while(EOC==0);       //外部中斷等待AD轉換結束
        OE=1;				 //讀取轉換的AD值
        volt=P1;
        OE=0;			     //輸出轉換結束    
		return volt;   
}
/**********************函數功能:液晶屏LCD1602顯示子程序****************/
/*延時函數:DelayMS()*/
void delayMS(uint xms)			
{
        uint i,j;
        for(i=xms;i>0;i--)
            for(j=110;j>0;j--);
}
/*忙檢測函數:lcd_busy_check()*/
bit lcd_busy_check()                
{   
        bit  result;
        RS=0;
        RW=1;
        E=1;
        delayMS(10);
        result=(bit)(P0&0x80);
        E=0;
        return  result;
}
/*寫命令函數:lcd_write_com()*/
void lcd_write_com(uchar com)                
{
        RS=0;
		E=0;
	    RW=0;
        P0=com;        
        delayMS(5);
        E=1;
        delayMS(5);                                                                           
        E=0;
}
/*寫數據函數:lcd_write_data()*/
void lcd_write_data(uchar date)                
{
        RS=1;
		E=0;
	    RW=0;
        P0=date;
        delayMS(5);
        E=1;
        delayMS(5);
        E=0;
}
/* LCD1602初始化函數:init_lcd()*/
void init_lcd()                                       
{                                                                
        E=0;                                   //默認開始狀態為關使能端  
        lcd_write_com(0x38);                   //顯示模式設置
        lcd_write_com(0x01);                   //顯示清屏,將上次的內容清除 
        lcd_write_com(0x0c);                   //開顯示,不顯光標,光標不閃
        lcd_write_com(0x06);                   //讀一個字符光標加1
}
/* 指定位置顯示字符串函數:lcd_show_string() */
/* 參數 add 地址    第一行 0~27				 */
/*                  第二行 40~67			 */
/*      a[] 字符串   "abc"                   */
void lcd_show_string(uchar add,uchar a[])
{
    	uchar i;
    	lcd_write_com(0x80+add);
    	for(i=0;a[i]!='

主站蜘蛛池模板:
泗阳县|
沙河市|
梁平县|
桃江县|
洛隆县|
广南县|
三原县|
隆子县|
苗栗市|
玉屏|
花莲县|
昭平县|
边坝县|
江安县|
樟树市|
万年县|
宁化县|
光泽县|
新建县|
彭水|
迁西县|
剑阁县|
河曲县|
莱西市|
景宁|
徐闻县|
东阳市|
巴塘县|
苏尼特右旗|
水富县|
雅安市|
拉萨市|
关岭|
中方县|
左云县|
盐城市|
柳河县|
黔江区|
扬中市|
宜城市|
武宁县|