当前位置: 首页 > news >正文

厚街商城网站建设ppt超级市场

厚街商城网站建设,ppt超级市场,柯桥区建设局网站,sae wordpress插件安装目录 gitee链接 小程吃饭饭 (xiaocheng-has-a-meal) - Gitee.comhttps://gitee.com/xiaocheng-has-a-meal 1.图~突突突突突 矩阵键盘原理图 矩阵键盘的实物图 2.矩阵键盘 引入~啦啦啦啦啦 原理~沥沥沥沥沥 代码~嗷嗷嗷嗷嗷 【1】延时函数 【2】 LCD1602 【3】检测按…目录 gitee链接   小程吃饭饭 (xiaocheng-has-a-meal) - Gitee.comhttps://gitee.com/xiaocheng-has-a-meal 1.图~突突突突突 矩阵键盘原理图 矩阵键盘的实物图 2.矩阵键盘 引入~啦啦啦啦啦 原理~沥沥沥沥沥 代码~嗷嗷嗷嗷嗷 【1】延时函数 【2】 LCD1602 【3】检测按键函数Matrix  【4】主函数  3.是图像啦  4.你的阿锦啊  昨天没写博客在摆烂本来还想摆烂最近心情可不好好多东西缠在一起捆住了该走的和不该走的。好怀念过去啊~~ 1.图~突突突突突 矩阵键盘原理图 矩阵键盘的实物图 这是两个很好看的图 一个是矩阵键盘原理图一个是矩阵键盘下面开始将原理 2.矩阵键盘 引入~啦啦啦啦啦 小程看了矩阵按键后非常疑惑为什么键盘要这么搞直接都弄成按独立键键盘不香吗独立按键与单片机连接时每个按键都需要单片机的一个I/O口但是单片机的I/O口是有限的啊如果每个按键都要一个口的话假如我们需要多个按键来实现功能的话51单片机就32个I/O口怎么够用呢 所以为了节省单片机的I/O口我们引入矩阵键盘 原理~沥沥沥沥沥 下面我们来看矩阵键盘的工作原理其实无论是矩阵键盘还是独立键盘我们都是通过检测与键盘对应的I/O口是否为低电平。但是我们知道独立按键是有一端是接地的但是矩阵键盘两边都接在I/O口上因此检测时需要人为通过单片机I/O口输出低电平。检测时可以通过让一行为确定一列检测一行按键。先送一行为低电平然后迅速轮流扫描一次各行是否变为低电平这样我们既确定了列线又确定了行线就确定了这个按键。当然在我们搞这个的时候也不能忘记按键消抖。 当然检测这个有多个方式这里我们可以采取逐行或者逐列来进行检测。   代码~嗷嗷嗷嗷嗷 可以去我的gitee直接获得全套纯开源 https://gitee.com/xiaocheng-has-a-meal/return-to-its-original-form 【1】延时函数 //头文件 #ifndef ___H__ #define ___H__ void Delay( int x);#endif#includeINTRINS.H//延时1ms void Delay( int x) //11.0592MHz {unsigned char data i, j;while(x){_nop_();i 2;j 199;do{while (--j);} while (--i);x--;} } 【2】 LCD1602 #ifndef __LCD1602_H__ #define __LCD1602_H__//用户调用函数 void LCD_Init(); void LCD_ShowChar(unsigned char Line,unsigned char Column,char Char); void LCD_ShowString(unsigned char Line,unsigned char Column,char *String); void LCD_ShowNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length); void LCD_ShowSignedNum(unsigned char Line,unsigned char Column,int Number,unsigned char Length); void LCD_ShowHexNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length); void LCD_ShowBinNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length);#endif#include REGX52.H//引脚配置 sbit LCD_RSP2^6; sbit LCD_RWP2^5; sbit LCD_ENP2^7; #define LCD_DataPort P0//函数定义 /*** brief LCD1602延时函数12MHz调用可延时1ms* param 无* retval 无*/ void LCD_Delay()//11.0592MHz的延时1ms的延时函数 {unsigned char data i, j;i 2;j 199;do{while (--j);} while (--i); }/*** brief LCD1602写命令* param Command 要写入的命令* retval 无*/ void LCD_WriteCommand(unsigned char Command) {LCD_RS0;LCD_RW0;LCD_DataPortCommand;LCD_EN1;LCD_Delay();LCD_EN0;LCD_Delay(); }/*** brief LCD1602写数据* param Data 要写入的数据* retval 无*/ void LCD_WriteData(unsigned char Data) {LCD_RS1;LCD_RW0;LCD_DataPortData;LCD_EN1;LCD_Delay();LCD_EN0;LCD_Delay(); }/*** brief LCD1602设置光标位置* param Line 行位置范围1~2* param Column 列位置范围1~16* retval 无*/ void LCD_SetCursor(unsigned char Line,unsigned char Column) {if(Line1){LCD_WriteCommand(0x80|(Column-1));}else if(Line2){LCD_WriteCommand(0x80|(Column-10x40));} }/*** brief LCD1602初始化函数* param 无* retval 无*/ void LCD_Init() {LCD_WriteCommand(0x38);//八位数据接口两行显示5*7点阵LCD_WriteCommand(0x0c);//显示开光标关闪烁关LCD_WriteCommand(0x06);//数据读写操作后光标自动加一画面不动LCD_WriteCommand(0x01);//光标复位清屏 }/*** brief 在LCD1602指定位置上显示一个字符* param Line 行位置范围1~2* param Column 列位置范围1~16* param Char 要显示的字符* retval 无*/ void LCD_ShowChar(unsigned char Line,unsigned char Column,char Char) {LCD_SetCursor(Line,Column);LCD_WriteData(Char); }/*** brief 在LCD1602指定位置开始显示所给字符串* param Line 起始行位置范围1~2* param Column 起始列位置范围1~16* param String 要显示的字符串* retval 无*/ void LCD_ShowString(unsigned char Line,unsigned char Column,char *String) {unsigned char i;LCD_SetCursor(Line,Column);for(i0;String[i]!\0;i){LCD_WriteData(String[i]);} }/*** brief 返回值X的Y次方*/ int LCD_Pow(int X,int Y) {unsigned char i;int Result1;for(i0;iY;i){Result*X;}return Result; }/*** brief 在LCD1602指定位置开始显示所给数字* param Line 起始行位置范围1~2* param Column 起始列位置范围1~16* param Number 要显示的数字范围0~65535* param Length 要显示数字的长度范围1~5* retval 无*/ void LCD_ShowNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length) {unsigned char i;LCD_SetCursor(Line,Column);for(iLength;i0;i--){LCD_WriteData(Number/LCD_Pow(10,i-1)%100);} }/*** brief 在LCD1602指定位置开始以有符号十进制显示所给数字* param Line 起始行位置范围1~2* param Column 起始列位置范围1~16* param Number 要显示的数字范围-32768~32767* param Length 要显示数字的长度范围1~5* retval 无*/ void LCD_ShowSignedNum(unsigned char Line,unsigned char Column,int Number,unsigned char Length) {unsigned char i;unsigned int Number1;LCD_SetCursor(Line,Column);if(Number0){LCD_WriteData();Number1Number;}else{LCD_WriteData(-);Number1-Number;}for(iLength;i0;i--){LCD_WriteData(Number1/LCD_Pow(10,i-1)%100);} }/*** brief 在LCD1602指定位置开始以十六进制显示所给数字* param Line 起始行位置范围1~2* param Column 起始列位置范围1~16* param Number 要显示的数字范围0~0xFFFF* param Length 要显示数字的长度范围1~4* retval 无*/ void LCD_ShowHexNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length) {unsigned char i,SingleNumber;LCD_SetCursor(Line,Column);for(iLength;i0;i--){SingleNumberNumber/LCD_Pow(16,i-1)%16;if(SingleNumber10){LCD_WriteData(SingleNumber0);}else{LCD_WriteData(SingleNumber-10A);}} }/*** brief 在LCD1602指定位置开始以二进制显示所给数字* param Line 起始行位置范围1~2* param Column 起始列位置范围1~16* param Number 要显示的数字范围0~1111 1111 1111 1111* param Length 要显示数字的长度范围1~16* retval 无*/ void LCD_ShowBinNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length) {unsigned char i;LCD_SetCursor(Line,Column);for(iLength;i0;i--){LCD_WriteData(Number/LCD_Pow(2,i-1)%20);} }【3】检测按键函数Matrix  #ifndef __Matrix_H__ #define __Matrix_H__unsigned char matrix();#endif #include REGX52.H #include Delay.H unsigned char matrix() {unsigned char Keynumber 0;/*P1_7那行输入低电平检测*/P1 0xFF;P1_7 0;if(P1_3 0){Delay(20);while(P1_3 0);Delay(20);Keynumber 1;}if(P1_2 0){Delay(20);while(P1_2 0);Delay(20);Keynumber 2;}if(P1_1 0){Delay(20);while(P1_1 0);Delay(20);Keynumber 3;}if(P1_0 0){Delay(20);while(P1_0 0);Delay(20);Keynumber 4;}/*P1_6那行输入低电平检测*/P1 0xFF;P1_6 0;if(P1_3 0){Delay(20);while(P1_3 0);Delay(20);Keynumber 5;}if(P1_2 0){Delay(20);while(P1_2 0);Delay(20);Keynumber 6;}if(P1_1 0){Delay(20);while(P1_1 0);Delay(20);Keynumber 7;}if(P1_0 0){Delay(20);while(P1_0 0);Delay(20);Keynumber 8;}/*P1_5那行输入低电平检测*/P1 0xFF;P1_5 0;if(P1_3 0){Delay(20);while(P1_3 0);Delay(20);Keynumber 9;}if(P1_2 0){Delay(20);while(P1_2 0);Delay(20);Keynumber 10;}if(P1_1 0){Delay(20);while(P1_1 0);Delay(20);Keynumber 11;}if(P1_0 0){Delay(20);while(P1_0 0);Delay(20);Keynumber 12;}/*P1_4那行输入低电平检测*/P1 0xFF;P1_4 0;if(P1_3 0){Delay(20);while(P1_3 0);Delay(20);Keynumber 13;}if(P1_2 0){Delay(20);while(P1_2 0);Delay(20);Keynumber 14;}if(P1_1 0){Delay(20);while(P1_1 0);Delay(20);Keynumber 15;}if(P1_0 0){Delay(20);while(P1_0 0);Delay(20);Keynumber 16;}return Keynumber;} 【4】主函数  #include REGX52.H #include Delay.H #include LCD1602.H #include Matrix.H unsigned char KeyNumber 0;void main() {LCD_Init();while(1){KeyNumber Matrix();if(KeyNumber){LCD_ShowNum(1,1,KeyNumber,2);}} } 以上便是这个工程所有的代码  3.是图像啦  我按下了按键05单片机显示图像如下 嘎嘎准这里我就提供一种方法啦  4.你的阿锦啊  面对苦难人们往往会被打倒但如果你坚持下去苦难最终会给你带来回报。这种回报不一定是物质的更多的是精神的。它会使你更加坚强更加成熟。
http://www.hkea.cn/news/14413123/

相关文章:

  • 建站开发重庆网站建设方案书
  • c#网站开发工具哈尔滨城乡建设网站
  • 网站打开速度影响因素佳能网站建设需求报告
  • 做sorry动图的网站网站建设 昆明邦凯网络
  • 常州专业网站建设公司咨询深圳建设门户网站
  • 我想学习做网站做渠道的网站有哪些
  • ip38域名信息查询网站找做网站的客户
  • dw做aspx网站如何做产品的网络推广
  • 域名估价网站wordpress 媒体
  • 怎么做二维码让别人扫码进入网站装修公司最怕三种人
  • 网站改版的方式大致为局网站建设管理整改情况
  • 鹤壁做网站公司国外免费ip地址
  • 推广网站2024如皋建设医院网站
  • 天河区门户网站教育专栏天元建设集团有限公司王士坤
  • 百度搜索什么关键词能搜到网站网站资讯创作
  • 最有效的网站推广公司杭州专业网站营销
  • 贵州建设监理网站培训通知栏营销型网站建设的特点表现
  • 绍兴做网站的公司电子商务网站建设ppt模板下载
  • 怎样查到一些做品牌包的网站网站备案一天通过
  • 蓝色系的网站优秀的企业网站
  • 福州网站建设效果营销型网站建设实战
  • 唐山网站建设找煌途微信小程序制作文档
  • 2023免费网站推广沈阳做机床的公司网站
  • 如何看网站做没做推广wordpress 本地 搭建
  • 学校英文版网站建设方案ios wordpress使用
  • 建设银行网站查询网站专业优化公司
  • 网站的360度全景图片怎么做关键词优化哪家好
  • 网站外连移动建站平台
  • 合肥建站公司哪益阳网络营销
  • 网站数据库是干什么的网站设计与建设第一章