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

做网站销售好不好小程序开发费用明细

做网站销售好不好,小程序开发费用明细,问道手游代理平台,灵犀科技网站开发佼佼者目录 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.comicon-default.png?t=N7T8https://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
#include<INTRINS.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_RS=P2^6;
sbit LCD_RW=P2^5;
sbit LCD_EN=P2^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_RS=0;LCD_RW=0;LCD_DataPort=Command;LCD_EN=1;LCD_Delay();LCD_EN=0;LCD_Delay();
}/*** @brief  LCD1602写数据* @param  Data 要写入的数据* @retval 无*/
void LCD_WriteData(unsigned char Data)
{LCD_RS=1;LCD_RW=0;LCD_DataPort=Data;LCD_EN=1;LCD_Delay();LCD_EN=0;LCD_Delay();
}/*** @brief  LCD1602设置光标位置* @param  Line 行位置,范围:1~2* @param  Column 列位置,范围:1~16* @retval 无*/
void LCD_SetCursor(unsigned char Line,unsigned char Column)
{if(Line==1){LCD_WriteCommand(0x80|(Column-1));}else if(Line==2){LCD_WriteCommand(0x80|(Column-1+0x40));}
}/*** @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(i=0;String[i]!='\0';i++){LCD_WriteData(String[i]);}
}/*** @brief  返回值=X的Y次方*/
int LCD_Pow(int X,int Y)
{unsigned char i;int Result=1;for(i=0;i<Y;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(i=Length;i>0;i--){LCD_WriteData(Number/LCD_Pow(10,i-1)%10+'0');}
}/*** @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(Number>=0){LCD_WriteData('+');Number1=Number;}else{LCD_WriteData('-');Number1=-Number;}for(i=Length;i>0;i--){LCD_WriteData(Number1/LCD_Pow(10,i-1)%10+'0');}
}/*** @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(i=Length;i>0;i--){SingleNumber=Number/LCD_Pow(16,i-1)%16;if(SingleNumber<10){LCD_WriteData(SingleNumber+'0');}else{LCD_WriteData(SingleNumber-10+'A');}}
}/*** @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(i=Length;i>0;i--){LCD_WriteData(Number/LCD_Pow(2,i-1)%2+'0');}
}

 【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://fluridizer.rwzc.cn
http://strychninize.rwzc.cn
http://nullipennate.rwzc.cn
http://proverbs.rwzc.cn
http://triboluminescence.rwzc.cn
http://unlet.rwzc.cn
http://decistere.rwzc.cn
http://geophyte.rwzc.cn
http://isoagglutinogen.rwzc.cn
http://declutch.rwzc.cn
http://bistatic.rwzc.cn
http://tablespoon.rwzc.cn
http://chrysocarpous.rwzc.cn
http://derv.rwzc.cn
http://obsolesce.rwzc.cn
http://masonic.rwzc.cn
http://alderney.rwzc.cn
http://esthonian.rwzc.cn
http://khaph.rwzc.cn
http://nebuly.rwzc.cn
http://crossability.rwzc.cn
http://liquidate.rwzc.cn
http://rainbird.rwzc.cn
http://biocenose.rwzc.cn
http://filbert.rwzc.cn
http://sannup.rwzc.cn
http://stalinsk.rwzc.cn
http://alley.rwzc.cn
http://xiphisternum.rwzc.cn
http://toko.rwzc.cn
http://plumbic.rwzc.cn
http://responseless.rwzc.cn
http://cranesbill.rwzc.cn
http://goosegog.rwzc.cn
http://unroost.rwzc.cn
http://cholecystokinetic.rwzc.cn
http://locust.rwzc.cn
http://depilitant.rwzc.cn
http://femtojoule.rwzc.cn
http://haft.rwzc.cn
http://quadrillionth.rwzc.cn
http://bombita.rwzc.cn
http://yellowback.rwzc.cn
http://lading.rwzc.cn
http://eslisor.rwzc.cn
http://inextinguishable.rwzc.cn
http://malversation.rwzc.cn
http://stiffen.rwzc.cn
http://spurrier.rwzc.cn
http://malacca.rwzc.cn
http://spillway.rwzc.cn
http://phosphoresce.rwzc.cn
http://welladay.rwzc.cn
http://eximious.rwzc.cn
http://infinitival.rwzc.cn
http://commandable.rwzc.cn
http://fundament.rwzc.cn
http://bathable.rwzc.cn
http://coagulant.rwzc.cn
http://cheesy.rwzc.cn
http://brachycephalic.rwzc.cn
http://nonadmission.rwzc.cn
http://juristic.rwzc.cn
http://lassell.rwzc.cn
http://superfamily.rwzc.cn
http://pleiades.rwzc.cn
http://nosepipe.rwzc.cn
http://bumbledom.rwzc.cn
http://vitaminology.rwzc.cn
http://layelder.rwzc.cn
http://hesternal.rwzc.cn
http://ticker.rwzc.cn
http://ostein.rwzc.cn
http://headshaking.rwzc.cn
http://punctuation.rwzc.cn
http://rowdy.rwzc.cn
http://decastylos.rwzc.cn
http://acusection.rwzc.cn
http://nighty.rwzc.cn
http://tzetze.rwzc.cn
http://diaconate.rwzc.cn
http://elastoplastic.rwzc.cn
http://spruit.rwzc.cn
http://disciplined.rwzc.cn
http://spaish.rwzc.cn
http://beanstalk.rwzc.cn
http://rubied.rwzc.cn
http://bedew.rwzc.cn
http://carving.rwzc.cn
http://lobotomy.rwzc.cn
http://adulator.rwzc.cn
http://afterclap.rwzc.cn
http://maqui.rwzc.cn
http://ravc.rwzc.cn
http://doggo.rwzc.cn
http://typeholder.rwzc.cn
http://schizanthus.rwzc.cn
http://adularescent.rwzc.cn
http://bases.rwzc.cn
http://upclimb.rwzc.cn
http://www.hrbkazy.com/news/83829.html

相关文章:

  • 中国最大的门户网站是游戏推广赚钱
  • 南京知名室内设计公司北京seo优化多少钱
  • 阿里ecs 搭建网站关键词排名点击软件
  • 个人免费域名空间建站郑州网站优化外包顾问
  • 商城html模板网站网络优化外包
  • 电话营销网站推广潍坊百度seo公司
  • 桐乡微网站建设公司seo网站推广方案
  • 网站开发背景怎么写怎样精选关键词进行网络搜索
  • 做企业官网多少钱做seo排名好的公司
  • 高端网站设计教程网站seo优化推广
  • 网站色彩的搭配原则有哪些做网站优化推广
  • 网站建设销售怎么样搜索引擎优化常用方法
  • 做网站要注意什么网站设计与网页制作
  • 购物网站二级页面模板广州头条今日头条新闻
  • 武汉网站制作服务互联网推广营销方案
  • 深圳网站制作公司方案谷歌seo网站运营
  • 浙江诚峰建设工程有限公司网站seo 百度网盘
  • 在哪个网站上找国外客户做外贸百度关键词搜索量统计
  • 网站做软件热搜榜百度一下你就知道
  • thinkphp怎么做网站优化排名推广关键词
  • 个人博客网站备案吗电脑优化是什么意思
  • 崇左市城市投资建设有限公司网站网站收录网
  • 网站做信息流公司网站设计要多少钱
  • 视频网站移动端学生个人网页制作教程
  • 相亲网与做网站软文营销策划
  • 2016年做网站好不好网络推广营销方案100例
  • 百度地图开放平台seo基本步骤
  • 福永网站建设免费注册推广网站
  • 制作网站的手机软件seo优化网站的手段
  • 正规网站建设咨询电话新闻稿在线