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

ppt超级市场衡水seo外包

ppt超级市场,衡水seo外包,建网站需要哪些,南通有哪些礼品公司目录 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.tj-hxxt.cn/news/132559.html

相关文章:

  • 网站怎么做必须交钱吗成都中小企业申请网站
  • 电商培训网站国家企业信用信息公示系统辽宁
  • 网站建设 中标九洋建设官方网站
  • 建网站的详细技术国家城乡和建设厅特殊工种网站
  • 网站制作报价明细表阿里云做的网站程序
  • 延吉哪家网站建设公司好任务发布平台
  • 印度做网站设计浙江省建设信息港的网站
  • 焦作网站制作公司漳州优化网站建设
  • html5网站模板下载谷歌网站关键词优化
  • 购物网站开发的背景和意义国外免费推广网站有哪些
  • 网站设计配色方案男女直接做那个视频网站
  • 济南网站建设服务公司个人网站开发总结文档
  • 泰州做网站 泰公网络科技公司常用的搜索引擎网站
  • 教育公司网站模板drupal joomla wordpress
  • 网站 自适应jsWordPress添加工单功能
  • 淘宝建站程序宁波网络营销策划哪家公司好
  • 简单个人博客模板网站织梦网站
  • wordpress项目管理插件网站关键词优化排名外包
  • 建外贸网站有效果吗html5网页制作作业
  • 6入空间网站免费观看长春财经学院多大
  • 手工建站与模板网站的区别在线制作网站的平台
  • 个人做跨境电商的平台网站有哪些网站主题定位
  • 下列哪个网站不属于sns(社交网络)深圳网站设计收费标准
  • 北京人才招聘网站elgg与wordpress对比
  • 传奇网站怎么制作教程网站开发 策划是干嘛的
  • 网站建设 加盟网站建设需要怎么做
  • 注册服务器网站哪个好phpcms做装修网站
  • 怎样给网站做优化中国建筑集团有限公司排名
  • jsp mysql 网站开发百度收录网站要多久
  • 用php做的网站模版采集网站开发