基于触摸屏式的电子密码锁设计-毕业设计内容摘要:

外事学院工商院. 2020,11(7) . 苏州大学本科生毕业设计(论文) 第 18 页 致谢 感谢丁老师的指导以及相关同学的帮助,使 我能够顺利的完成此次设计。 通过这次毕业设计,我学到了很多关于通讯方面的知识,也领悟到了团队协作的重要性,在和同学的一起学习交流中,收获 到了 很多意外的想法和思路。 苏州大学本科生毕业设计(论文) 第 19 页 附录 附录 1:实物照片说明 上电开启后 输入密码正确后 苏州大学本科生毕业设计(论文) 第 20 页 点击更改,输入新密码 点击保存后 苏州大学本科生毕业设计(论文) 第 21 页 系统原理图 苏州大学本科生毕业设计(论文) 第 22 页 PC板图 附录 2:部分源程序 主函数: include include include include /********************************宏定义*********************************/ define LCD_cs(x) x ? GPIO_SetBits(GPIOC, LCD_CS) : GPIO_ResetBits(GPIOC, LCD_CS)//自己定义的位函数 define pen GPIO_ReadInputDataBit(GPIOB, PEN) /******************************** 变量定义 */ GPIO_InitTypeDef GPIO_InitStructure。 ErrorStatus HSEStartUpStatus。 /*********************************声明函数 */ void RCC_Configuration(void)。 苏州大学本科生毕业设计(论文) 第 23 页 void Delay(vu32 nCount)。 uchar FLAG_KEYDOWN。 uchar KEY_NUM。 uchar KEY_NUMX。 uchar KEY_NUMY。 void GPIO_Config() { GPIO_InitTypeDef GPIO_InitStructure。 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB| RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO, ENABLE)。 //把调试设置普通 IO 口 //GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE)。 = GPIO_Pin_All。 //所有 GPIO为同一类型端口 = GPIO_Mode_Out_PP。 //推挽输出 = GPIO_Speed_50MHz。 //输出的最大频率为 50HZ GPIO_Init(GPIOA, amp。 GPIO_InitStructure)。 //初始化 GPIOA端口 GPIO_Init(GPIOC, amp。 GPIO_InitStructure)。 //初始化 GPIOB端口 = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_3|GPIO_Pin_4 |GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10| GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15。 = GPIO_Speed_50MHz。 = GPIO_Mode_Out_PP。 GPIO_Init(GPIOB, amp。 GPIO_InitStructure)。 //初始化 GPIOB端口 = GPIO_Pin_2|GPIO_Pin_5。 = GPIO_Speed_50MHz。 = GPIO_Mode_IPU。 GPIO_Init(GPIOB,amp。 GPIO_InitStructure)。 GPIO_Write(GPIOA,0xffff)。 //将 GPIOA 16个端口全部置为高电平 GPIO_Write(GPIOC,0xffff)。 //将 GPIOC 16个端口全部置为高电平 } 苏州大学本科生毕业设计(论文) 第 24 页 void EXTI_Config(void) { EXTI_InitTypeDef EXTI_InitStructure。 GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource5)。 //选择PC0作为中断引脚 = EXTI_Line5。 // PC0 and PC1 is KEY0 + KEY1 = EXTI_Mode_Interrupt。 //中断模式,非事件 = EXTI_Trigger_Falling。 //下降沿触发 = ENABLE。 EXTI_Init(amp。 EXTI_InitStructure)。 //EXTI_ClearITPendingBit(EXTI_Line0 | EXTI_Line1)。 } void NVIC_Config(void) { NVIC_InitTypeDef NVIC_InitStructure。 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2)。 //配置 2位高优先级(抢占优先级), 2位子优先级(响应优先级) = EXTI9_5_IRQChannel。 //EXTI9_5_IRQn。 //。 // //外部中断线 0,1分别对应PC0 = 3。 //io引脚中断抢占优先等级为第二级。 = 2。 //io引脚中断子优先等级为第二级。 = ENABLE。 NVIC_Init(amp。 NVIC_InitStructure)。 } void zhujiemian(void) { Pant(colors[7]8 , colors[7] )。 LCD_cs(0)。 //打开片选使能 ChineseChar(24,8,0,colors[2],colors[7],1)。 // ChineseChar(24+16,8,0,colors[2],colors[7],2)。 // ChineseChar(24+16+16,8,0,colors[2],colors[7],3)。 // ChineseChar(24+16+16+16,8,0,colors[2],colors[7],4)。 // 苏州大学本科生毕业设计(论文) 第 25 页 ChineseChar(24+16+16+16+16,8,0,colors[2],colors[7],5)。 // ChineseChar(24+16+16+16+16+16,8,0,colors[2],colors[7],6)。 // ChineseChar(24+16+16+16+16+16+16,8,0,colors[2],colors[7],7)。 // ChineseChar(24+16+16+16+16+16+16+16,8,0,colors[2],colors[7],8)。 // ChineseChar(24+16+16+16+16+16+16+16+16,8,0,colors[2],colors[7],9)。 // LCD_ShowString(24+16+16+16+16+16+16+16+16+16,8,colors[2],colors[7],)。 ChineseChar(24+16+16+16+16+16+16+16+16+16+16,8,0,colors[2],colors[7],10)。 // ChineseChar(24+16+16+16+16+16+16+16+16+16+16+16,8,0,colors[2],colors[7],11)。 // ChineseChar(8,50,1,colors[2],colors[7],1)。 ChineseChar(8+24,50,1,colors[2],colors[7],1)。 ChineseChar(8+24+24,50,1,colors[2],colors[7],1)。 ChineseChar(8+24+24+24,50,1,colors[2],colors[7],1)。 ChineseChar(8+24+24+24+24,50,1,colors[2],colors[7],1)。 ChineseChar(8+24+24+24+24+24,50,1,colors[2],colors[7],1)。 LCD_cs(1)。 //关闭片选使能 pic_play()。 } /******************************************************************************* 主函数 *******************************************************************************/ int main(void) { SystemInit()。 GPIO_Config()。 EXTI_Config()。 NVIC_Config()。 LCD_Init()。 zhujiemian()。 AD7843()。 while(1) { if(FLAG_KEYDOWN == 1) { 苏州大学本科生毕业设计(论文) 第 26 页 } } } /******************************************************************************* * 延时函数 *******************************************************************************/ void Delay(vu32 nCount) { for(。 nCount != 0。 nCount)。 } 触摸屏: include include include include /********************************宏定义*********************************/ define cs(x) x ? GPIO_SetBits(GPIOB, CS): GPIO_ResetBits(GPIOB, CS) //自己定义位操作函数 define din(x) x ? GPIO_SetBits(GPIOB, DIN) : GPIO_ResetBits(GPIOB, DIN) define dclk(x) x ? GPIO_SetBits(GPIOB, DCLK) : GPIO_ResetBits(GPIOB, DCLK) define busy(x) x ? GPIO_SetBits(GPIOB, BUSY) : GPIO_ResetBits(GPIOB, BUSY) define dout GPIO_ReadInputDataBit(GPIOB, DOUT) unsigned int TP_X,TP_Y。 //define CS GPIO_Pin_7 //P2^3。 pb7 //define DIN GPIO_Pin_0 //P2^2。 pb0 //define DCLK GPIO_Pin_1 //P2^1。 pb1 //define DOUT GPIO_Pin_2 //P2^0。 pb2 // //define BUSY GPIO_Pin_6 //P3^6。 pb。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。