1.功能實(shí)現(xiàn): a) 每次按鍵有按鍵提示音; b) 要求密碼為6位,從矩陣鍵盤直接輸入,不需要數(shù)碼管顯示輸入信息;密碼輸入正確后,提供聲光指示;連續(xù)3次輸入錯(cuò)誤,提供聲光報(bào)警; C) 密碼能夠被修改。
2.矩陣鍵盤掃描說明:
按鍵掃描3.png (34.65 KB, 下載次數(shù): 78)
下載附件
2018-4-10 11:14 上傳
按鍵掃描2.png (27.26 KB, 下載次數(shù): 56)
下載附件
2018-4-10 11:14 上傳
按鍵掃描1.png (24.4 KB, 下載次數(shù): 66)
下載附件
2018-4-10 11:14 上傳
單片機(jī)源程序如下:
- /**
- **********************************************
- * File Name : main.c
- * Description : Main program body
- * Function : stm32f103 Test
- * Created on : 2018年
- * Author : KACHEN
- * Team : ETA(hnjdzy)
- **********************************************
- **/
- #include "public.h"
- int count,m;
- int main(void)
- {
-
- char Password[6] = {'1', '2', '3', '4', '5', '6'}; //初始密碼設(shè)置
- led_init();
- bell_init();
- keyboard_init();
-
- while(1)
- {
-
- read_keyvalue();
- if(deposit[0] == '#')//密碼修改
- {
- PEout(0)=1; //led提示
- delay_ms(300);
- PEout(0)=0;
- delay_ms(300);
- read_keyvalue();//讀取按鍵值
- for(m=0;m<6;m++)
- {
- PEout(m)=1; //led提示
- delay_ms(100);
- PEout(m)=0;
- delay_ms(100);
- Password[m]=deposit[m] ; //保存六位密碼
-
- }
- }
- else
- {
- //判斷輸入的六位密碼是否和初始密碼相同
- if((deposit[0] == Password[0]) & (deposit[1] == Password[1]) & (deposit[2] == Password[2])
- & (deposit[3] == Password[3]) & (deposit[4] == Password[4]) & ( deposit[5] == Password[5]))
- {
- bell_display(200); //密碼正確提示
- GPIO_SetBits(GPIOE, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_6 | GPIO_Pin_7);
- delay_ms(200);
- bell_display(200);
- GPIO_ResetBits(GPIOE, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_6 | GPIO_Pin_7);
- delay_ms(200);
- }
- else if(count++ == 2) //密碼錯(cuò)誤報(bào)警
- {
- count = 0;
- bell_display(1000);
- GPIO_SetBits(GPIOE, GPIO_Pin_All);
- delay_ms(1000);
- bell_display(1000);
- GPIO_ResetBits(GPIOE, GPIO_Pin_All);
- delay_ms(1000);
- }
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
Test 3.rar
(353.84 KB, 下載次數(shù): 351)
2018-4-10 11:13 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|