资源简介
内附keil代码 + proteus电路 + 实验报告。
采用51单片机设计门禁系统,4X4键盘用户输入密码,错误蜂鸣器叫一声,正确LED闪烁,12864作为用户界面,初始显示“欢迎光临”,正确与错误时12864有相应的提示。
该实验属于应用型题目。设计一款门禁系统,将会使用到 12864的屏幕显示知识,而其中必定有串行或并行的数据传送方式选择,而用户之间交互采用矩形按键的方式,可使用线反转,可使用扫描,甚至可以将中断和反转中原理中和。预置密码可以用一个EPROM去存储。用户交互内核需要考虑数据输入时一些规范性检查等等。
代码片段和文件信息
//MCU experiment_7
//Gate control system
#include
#include
#include
#include “HDG12864F1.h“
#include “wordCodebase.h“
#include “keyControl.h“
typedef unsigned char uchar;
typedef unsigned int uint;
sbit LED = P2 ^ 2;//LED灯引脚定义
sbit BEEP = P2 ^ 3;//蜂鸣器引脚定义
unsigned char Key[] = “895100“;//初始密码
//unsigned char Buff[7] = “\0\0\0\0\0\0\0“;
unsigned int length = 0;
bit Key_Flag = 1;//按键按下标志位
bit Key_Display_Flag = 0;//密码是否显示标志
void Delay(unsigned int z);
void Display_First();
void Main_Key_Pro();
void External_Interrupt_Init();
void Input_Key(unsigned char Input_Buff[]);
void Alter(unsigned char Input_Buff[]);
void Log(unsigned char Key_Buff[]);
bit Check_Key(unsigned char Input_Buff1[] unsigned char Input_buff2[]);
void main()
{
LED = 0;
BEEP = 0;
P1 = 0x0F;
External_Interrupt_Init();
HDG12864F1_Init();
Display_First();
while(1)
{
P1 = 0x0F;//0000 1111
if(Key_Flag == 1)
{
Key_Flag = 0;
Main_Key_Pro();
}
}
}
void Delay(unsigned int z)
{
unsigned int i j;
for(i = z; i > 0; i--)
for(j = 120; j > 0; j--);
}
void Display_First()
{
length = sizeof(Welcome) / sizeof(Welcome[0]);
HDG12864F1_Write_Char(4 3 Char_Table[10]);
HDG12864F1_Write_Char(4 4 Char_Table[10]);
HDG12864F1_Write_String(2 3 length Welcome);
HDG12864F1_Write_Char(4 13 Char_Table[10]);
HDG12864F1_Write_Char(4 14 Char_Table[10]);
}
void Main_Key_Pro()
{
switch(Matrix_Key_Scan())
{
case 0x7d://修改
Alter(Key);
break;
case 0x77:
Log(Key);
break;
}
HDG12864F1_Clear();
Display_First();
}
void External_Interrupt_Init()
{
EA = 1;
EX0 = 1;
IT0 = 1;
}
void External_Interrupt_0()interrupt 0
{
Key_Flag = 1;
}
void Input_Key(unsigned char Input_Buff[])
{
unsigned int i = 0;//记录密码输入个数
unsigned int j = 0;
while(i < 7)
{
if(i < 6)
{
switch(Matrix_Key_Scan())
{
//第一行键值码
case 0xee:
Input_Buff[i] = ‘7‘;
++i;
break;
case 0xde:
Input_Buff[i] = ‘8‘;
++i;
break;
case 0xbe:
Input_Buff[i] = ‘9‘;
++i;
break;
case 0x7e://清除
i = 0;
for(j = 0; j < 7; j++)
{
HDG12864F1_Write_Char(5 6 + j Char_Table[0]);
Input_Buff[j] = ‘\0‘;
}
break;
//第二行键值码
case 0xed:
Input_Buff[i] = ‘4‘;
++i;
break;
case 0xdd:
Input_Buff[i] = ‘5‘;
++i;
break;
case 0xbd:
Input_Buff[i] = ‘6‘;
++i;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-10-04 17:19 新建文件夹\
目录 0 2018-10-04 17:17 新建文件夹\PR07code\
文件 3819 2018-06-21 10:59 新建文件夹\PR07code\HDG12864F1.h
文件 914 2018-06-21 11:04 新建文件夹\PR07code\keyControl.h
文件 6966 2018-06-21 12:28 新建文件夹\PR07code\main.c
文件 12356 2018-06-21 11:09 新建文件夹\PR07code\main.LST
文件 32022 2018-06-21 11:09 新建文件夹\PR07code\main.OBJ
文件 18817 2018-06-21 11:08 新建文件夹\PR07code\test7.hex
文件 26 2018-06-21 11:08 新建文件夹\PR07code\test7.lnp
文件 28611 2018-06-21 11:08 新建文件夹\PR07code\test7.M51
文件 174 2018-07-12 13:31 新建文件夹\PR07code\test7.plg
文件 74516 2018-07-12 13:31 新建文件夹\PR07code\test7.uvgui.HP
文件 74524 2018-07-12 13:07 新建文件夹\PR07code\test7.uvgui_HP.bak
文件 5385 2018-07-12 13:31 新建文件夹\PR07code\test7.uvopt
文件 13422 2018-05-19 22:06 新建文件夹\PR07code\test7.uvproj
文件 24852 2018-06-21 20:38 新建文件夹\PR07code\wordCodeba
目录 0 2018-10-04 17:17 新建文件夹\pro7proteus\
文件 27629 2018-06-21 11:15 新建文件夹\pro7proteus\Backup Of test7.pdsbak
文件 15723 2018-05-28 17:58 新建文件夹\pro7proteus\Last Loaded test7.pdsbak
文件 27645 2018-06-21 20:38 新建文件夹\pro7proteus\test7.pdsprj
文件 3603 2018-06-25 16:53 新建文件夹\pro7proteus\test7.pdsprj.LAPTOP-VGCSRA90.HP.workspace
文件 162 2018-10-04 17:18 新建文件夹\~$实验报告.docx
文件 155444 2018-10-04 17:19 新建文件夹\实验报告.docx
文件 209567 2018-10-04 17:19 新建文件夹\逻辑电路图.png
相关资源
- 基于STC15单片机12864万年历
- 单片机制作的MP3播放器
- 51单片机毕设wifi遥控小车源码
- 基于51单片机的无线点菜系统
- 单片机24秒倒计时C程序
- 51单片机实现的RS485通讯程序
- mc9s08dz60 单片机 擦.、写、读 EEPROM
- 四路抢答器proteus仿真模拟
- 基于stc89c52单片机的水温控制系统
- 51单片机爱心.zip
- projectDSP.zip单片机TMS320F28027的温度测试
- 8位竞赛抢答器的设计
- 基于51单片机的数显交通灯.zip
- 基于stc89c52单片机的智能计算器代码
- 基于51的简易电子琴Proteus仿真与程序
- 基于51单片机的正弦信号发生器设计
- 51单片机计算器
- 基于51单片机的水塔控制系统.doc
- 74ls90芯片设计24H时钟电路图
- 0·5V可调直流电源Proteus仿真
- 篮球比赛计分器.rar
- STM32F103RBT6 STM32最小系统 PCB文件+电路
- c8051f020与max487通信
- C51单片机点阵贪吃蛇代码16*16点阵和
- Proteus8.6+8086+8255+DAC0832模拟波形发生器
- 单片机最小系统元器件库
- 单片机51数字稳压电源 今年的毕设
- 51单片机内部AD采样并显示
- 15单片机矩阵键盘,状态机法消抖
- 51单片机原理图
评论
共有 条评论