1. 程式人生 > 實用技巧 >537【畢設課設】基於微控制器超市自動存包櫃檯管理系統

537【畢設課設】基於微控制器超市自動存包櫃檯管理系統

【資源下載】下載地址如下:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl

超市自動存包櫃設計

存包過程 :

存包-系統產生隨機密碼4位數-某櫃門開啟-手動按關門鍵-櫃門關

模擬效果 :

按下存包鍵顯示屏顯示4位數字及顯示櫃門編號,該號櫃門燈亮,按下關門鍵,櫃門燈滅,完成一次存包過程,其隨機密碼儲存至該密碼被使用,該密碼未使用,該編號櫃門為已使用櫃門,不被下次存包過程開啟。

該存包過程一共可存8個櫃,若8個櫃都被使用,下次按下存包時,顯示器顯示櫃門已滿。

取包過程:

取包-顯示輸入密碼-輸入密碼-判斷密碼-密碼正確-櫃門開啟-手動關門-若未關門系統延時5秒自動關門-該編號櫃門為可使用狀態,可於存包使用。

-密碼錯誤-顯示錯誤-重新輸入-若連續輸入3次-櫃門鎖定-密碼清楚(該編號櫃門鎖定後不被下次存包鎖開啟,即一直為使用狀態)

模擬效果:

按下取包鍵顯示屏顯示輸入密碼,手動輸入密碼系統判讀密碼,密碼正確,顯示櫃門編號,該編號櫃門燈亮,手動關門,若5秒內沒有關門,系統延時5秒自動關門。若密碼錯誤,顯示密碼錯誤重新輸入,連續3次錯誤顯示櫃門鎖定,該櫃門鎖定如上。

sbit KeyB_1=P2^0;//按鍵B1
sbit KeyB_2=P2^1;//按鍵B2
sbit KeyB_3=P2^2;//按鍵B3
sbit KeyB_4=P2^3;//按鍵B4



unsigned char password[4]={0};//密碼引數設定
unsigned char passwordtemp[4]={0};//密碼輸入裝載引數
unsigned char key_counter=0,Lcok_Flag=0,
Lock_Ins=0,ReFlag=0;	//按鍵計數值
unsigned int Counter_T=0; 
unsigned char PassWordS[8][4]={0};

void DelayUs2x(unsigned char t)	//簡短延時函式
{   
	while(--t);
}
void DelayMs(unsigned int t)//毫秒級延時函式
{
	while(t--)
	{
		DelayUs2x(245);//簡短延時函式
		DelayUs2x(245);//簡短延時函式
	}
}

void delay_n10us(unsigned int n) //微妙級延時函式