用51单片机的Pl口实现独立的键盘控制

  独立式按键就是各按键相互独立,每个按键单独占用一根I/O口线,每根I/O口线的按键工作状态不会影响其他I/O口线上的工作状态。因此,通过检测输入线的电平状态可以很容易判断哪个按键被按下了。  独立式按键的优点是电路配置灵活,软件结构简单,并且能同时检测到多个键被按下的情况。但缺点是每个按键需占用一根I/O口线,在按键数量较多时,I/O口浪费大,电路结构复杂。因此,此键盘常用于按键较少的系统或操作速度较高的场合。   计本电路由上拉电阻和按键组成,对于每路键盘来讲,当键没有按下时,单片机相应引脚上的电平为低电平,当键按下时,单片机相应引脚上的电平为高电平,详细电路如下图所示。  程...

http://www.eeworld.com.cn/mcu/article_2017122636964.html 发布时间: 2017-12-26



基于C51单片机Pl口的矩阵式键盘控制

  矩阵式键盘又叫行列式键盘。就是用I/O口线组成行、列结构,按键设置在行列的交点上。在按键较多时多用矩阵式键盘,可以节省I/O口线。例如:占用8个I/O口线的4×4矩阵式结构可以构成16个键的键盘。当有键按下时,要逐行或逐列扫描来判断是哪个按键按下。通常的扫描方式有扫描法和反转法。  1、硬件设计    单片机的Pl口的低4位接矩阵键盘的行线,高4位接矩阵键盘的列线,如下图所示。   2.程序设计    扫描函数的返回值为按键特征码,若无键被按下,返回值为0。程序清单如下:...

http://www.eeworld.com.cn/mcu/article_2017122636963.html 发布时间: 2017-12-26



用51单片机的4个I/O口实现16个键的键盘

  如果要想实现16个键的键盘,用独立式键盘需要16个I/O口,采用行列式键盘也要8个I/O口,而采用改进型I/O端口键盘则只需要4个I/O口。  1、硬件设计    如下图所示就是用4个I/O口实现16个键盘的原理图。  2、程序设计    改进型I/O端口键盘与上述的2种键盘的设计还是存在很大差别的,从设计原理图上可以很容易区别开来。同时程序的设计方法也存在很大差异,该程序不能判断多个键同时按下,具体的程序详单如下:...
关键词: 51单片机 I O口 键盘

http://www.eeworld.com.cn/mcu/article_2017122636962.html 发布时间: 2017-12-26



用51单片机实现PS/2键盘的控制

  随着单片机的不断发展,PS/2键盘在单片机系统中的应用越来越广泛。PS/2键盘其实只有4个引脚有意义,它们分别是CLOCk(时钟脚)、DATA(数据脚)、+5V(电源脚)和Ground(电源地)。在PS/2键盘与PC机的物理连接上只要保证这4根线一一对应就可以了。PS/2键盘靠PC的PS/2端口提供+5V电源,另外两个脚Clock(时钟脚)和DATA(数据脚)都是集电极开路的,所以必须接大阻值的上拉电阻。它们平时保持高电平,有输出时才被拉到低电平,之后自动上浮到高电平。    1、硬件设计    本电路原理图如下图所示,PS2接口的1脚接P3.4,用来接收串行的键码信号,5脚接P3.3(I...
关键词: 51单片机 PS 2键盘

http://www.eeworld.com.cn/mcu/article_2017122636961.html 发布时间: 2017-12-26



AT89C51单片机扩展高速串行同步移位输出口的方法

AT89C51(与MCS-51兼容)单片机的串行口在方式0工作状态下,使用移位寄存器芯片可以扩展多个8位并行I/O口。在LED点阵显示屏应用系统中,一般都采用数据同步移位输出方式,并使用移位寄存器芯片(如74LS595)扩展并行I/O口驱动LED点阵显示。LED 点阵显示采用扫描方式,为不产生闪烁感,每秒需要传送50屏点阵显示数据,因此有大量的数据要通过同步移位的方式送到显示驱动电路部分,这就要求单片机能够快速地输出数据。AT89C51单片机的串行口在方式0工作状态下,数据以fosc/12的波特率输出,1个字节数据写入SBUF后,需检查中断标志位 TI是否为“1”并清“0”TI或延时几个机器周...

http://www.eeworld.com.cn/mcu/article_2017122636960.html 发布时间: 2017-12-26



基于51单片机12232显示的智能时控开关

该产品已验证使用,经调试后为最佳稳定程序。 使用单片机:89c51 功能:时间星期,时控状态,温度显示(LCD12232)。3种时控状态一键切换,一键开关显示,2组时控设置掉电保存。 电路模块:DS1302,LCD12232,LM317,AT24C04,DS18B20 用到的通信:iic,spi,单总线...
关键词: ds1302 lcd12232 lm317 18b20

http://download.eeworld.com.cn/detail/java632712985/566250 发布时间: 2017-12-25



MCS-51单片机定时中断的精确定时编程方法选择

    MCS-51单片机的中断响应延迟时间,取决于其它中断服务程序是否在进行,或取决于正在执行的是什么样的指令。单中断系统中的中断响应时间为3~8个机器周期[1]。无论是哪一种原因引起的误差,在精确定时的应用场合,必须考虑它们的影响,以确保精确的定时控制。根据定时中断的不同应用情况,应选择不同的精确定时编程方法。    文中以定时器T1工作在定时方式1为例,晶振频率为12MHz 。    1 方法1    在定时器溢出中断得到响应时,停止定时器计数,读出计数值(反映了中断响应的延迟时间),根据此计数值算...

http://www.eeworld.com.cn/mcu/article_2017122536959.html 发布时间: 2017-12-25



51单片机浮点数运算原理

  单片机一般浮点数均采用士MxC的形式来表示,其中M称为尾数。它一般取为小数0≤M<l,E为阶码,它为指数部分,它的基是C。C可以取各种数,对于十进制数,它一般取10,而对于二进制数,C-般取2,对于十进制数,可以很方便地把它换成十进制浮点数。对于微机系统来说,常用的浮点数均为C=2,在浮点数中,有一位专门用来表示数的符号,阶码E的位数取决于数值的表示范围,一般取一个字节,而尾数则根据计算所需的精度,取2~4字节。    浮点数也有各种各样表示有符号数的方法,其中数的符号常和尾数放在一起,即把士M作为一个有符号的小数,它可以采用原码、补码等各种表示方法,而阶码可采用各种不同的长度,并且...

http://www.eeworld.com.cn/mcu/article_2017122536958.html 发布时间: 2017-12-25



基于MCS-51系列单片机测量频率的设计与实现

    对于周期波频率的测量方法很多,但大多是通过测量间接计算频率。本文介绍了用目前应用比较广泛的MCS-51系列单片机对周期波频率进行测量,并通过LED以数字形式直观地示出频率,实现测量的智能化,省去间接对频率计算的麻烦与错误。文章对其测量原理,设计和实现作了说明,介绍了主要程序,并进行了误差分析。    目前单片机广泛应用到国民经济建设和日常生活的许多领域,成为测控技术现代化不可缺少的重要工具。而本文适应这一发展趋势,把MCS-51系列单片机应用于对周期波频率的测量,并通过LED显示器自动显示出来,这对于频率的测量带来了极大的方便。  &n...

http://www.eeworld.com.cn/mcu/article_2017122536957.html 发布时间: 2017-12-25



MCS-51单片数据存储器RAM的扩展应用实例

    RAM是用来存放各种数据的,MCS-51系列8位单片机内部有128 B RAM存储器,CPU对内部RAM具有丰富的操作指令。但是,当单片机用于实时数据采集或处理大批量数据时,仅靠片内提供的RAM是远远不够的。此时,我们可以利用单片机的扩展功能,扩展外部数据存储器。    常用的外部数据存储器有静态RAM(StatIC Random ACCess Memory—SRAM)和动态RAM(Dynamic Random Access Memory—DRAM)两种。前者读/写速度高,一般都是8位宽度,易于扩展,且大多数与相同容量的EPROM引脚兼...
关键词: MCS-51 数据存储器 RAM

http://www.eeworld.com.cn/mcu/article_2017122536956.html 发布时间: 2017-12-25



51单片机与A/D接口设计

    A/D转换器用于实现模拟量→数字量的转换,按转换原理可分为4种,即:计数式A/D转换器、双积分式A/D转换器、逐次逼近式A/D转换器和并行式A/D转换器。    目前最常用的是双积分式A/D转换器和逐次逼近式A/D转换器。双积分式A/D转换器的主要优点是转换精度高,抗干扰性能好,价格便宜。其缺点是转换速度较慢,因此,这种转换器主要用于速度要求不高的场合。     另一种常用的A/D转换器是逐次逼近式的,逐次逼近式A/D转换器是一种速度较快,精度较高的转换器,其转换时间大约在几μs到几百μs之间。通常使用的逐...
关键词: 51单片机 AD接口

http://www.eeworld.com.cn/mcu/article_2017122536955.html 发布时间: 2017-12-25



51单片机单缓冲方式的接口与应用

    D/A转换器输入的是数字量,经转换后输出的是模拟量。有关D/A转换器的技术性能指标很多,例如绝对精度、相对精度、线性度、输出电压范围、温度系数、输入数字代码种类(二进制或BCD码)等。    1) 分辩率    分辨率是D/A转换器对输入量变化敏感程度的描述,与输入数字量的位数有关。如果数字量的位数为n,则D/A转换器的分辨率为2-n。这就意味着数/模转换器能对满刻度的2-n输入量作出反应。     2) 建立时间    建立时间是描述D/A转换速...

http://www.eeworld.com.cn/mcu/article_2017122536954.html 发布时间: 2017-12-25



基于MCS51单片机的多路数据通信设计

    1.引言    MCS51单片机标准构成只有一组全双工UART串行口,P3.0-RXD收、P3.1-TXD发,如果要完成多路串口收发,一般使用外部扩展芯片,例如:GM8123/25,完成一扩多路串口,但是,由于增加扩展芯片,造成硬件成本增加,PCB板面增大,抗干扰性下降等不良因素,因此能尽量使用现有串口,利用分时切换技术,完成串行口不同类型,不同端口的数据传送是优先选择。     2.硬件功能简述    本设计用于数据采集监控系统如图1所示。采用485串行口完成数据采集,和232串口输出打印功能,...

http://www.eeworld.com.cn/mcu/article_2017122536953.html 发布时间: 2017-12-25



51单片机C语言教程(一) 建立第一个工程

  学习单片机实在不是件易事,一来要购买高价格的编程器,仿真器,二来要学习编程语言,还有众多种类的单片机选择真是件让人头疼的事。在众多单片机中51架构的芯片风行很久,学习资料也相对很多,是初学的较好的选择之一。51的编程语言常用的有二种,一种是汇编语言,一种是C语言。汇编语言的机器代码生成效率很高但可读性却并不强,复杂一点的程序就更是难读懂,而C语言在大多数情况下其机器代码生成效率和汇编语言相当,但可读性和可移植性却远远超过汇编语言,而且C语言还可以嵌入汇编来解决高时效性的代码编写问题。对于开发周期来说,中大型的软件编写用C语言的开发周期通常要小于汇编语言很多。综合以上C语言的优点,我在学习时...
关键词: 51单片机 C语言 工程

http://www.eeworld.com.cn/mcu/article_2017122536950.html 发布时间: 2017-12-25



51单片机C语言教程(二) 认识51单片机

上一课我们的第一个项目完成了,可能有懂C语言的朋友会说,"这和PC机上的C语言没有多大的区别呀"。的确没有太大的区别,C语言只是一种程序语言的统称,针对不同的处理器相关的C语言都会有一些细节的改变。编写PC机的C程序时,如要对硬件编程你就必须对硬件要有一定的认识,51单片机编程就更是如此,因它的开发应用是不可与硬件脱节的,所以我们先要来初步认识一下51苾片的结构和引脚功能。MSC51架构的芯片种类很多,具体特点和功能不尽相同(在以后编写的附录中会加入常用的一些51芯片的资料列表),在此后的教程中就以Atmel公司的AT89C51和AT89C2051为中心对象来进行学习,两者...
关键词: 51单片机 C语言

http://www.eeworld.com.cn/mcu/article_2017122536949.html 发布时间: 2017-12-25



51单片机C语言教程(三) 生成HEX文件和最小化系统

在开始C语言的主要内容时,我们先来看看如何用KEIL uVISION2来编译生成用于烧写芯片的HEX文件。HEX文件格式是Intel公司提出的按地址排列的数据信息,数据宽度为字节,所有数据使用16进制数字表示, 常用来保存单片机或其他处理器的目标程序代码。它保存物理程序存储区中的目标代码映象。一般的编程器都支持这种格式。我们先来打开第一课做的第一项目,打开它的所在目录,找到test.Uv2的文件就可以打开先前的项目了。然后右击图3-1中的1项目文件夹,弹出项目功能菜单,选Options for Target'Target1',弹出项目选项设置窗口,同样先选中项目文件夹图标,这时...

http://www.eeworld.com.cn/mcu/article_2017122536948.html 发布时间: 2017-12-25



51单片机C语言教程(四) 数据类型

先来简单说说C语言的标识符和关键字。标识符是用来标识源程序中某个对象的名字的,这些对象可以是语句、数据类型、函数、变量、数组等等。C语言是大小字敏感的一种高级语言,如果我们要定义一个定时器1,可以写做"Timer1",如果程序中有"TIMER1",那么这两个是完全不同定义的标识符。标识符由字符串,数字和下划线等组成,注意的是第一个字符必须是字母或下划线,如"1Timer"是错误的,编译时便会有错误提示。有些编译系统专用的标识符是以下划线开头,所以一般不要以下划线开头命名标识符。标识符在命名时应当简单,含义清晰,这样有助于阅读理解程序。...

http://www.eeworld.com.cn/mcu/article_2017122536947.html 发布时间: 2017-12-25



51单片机C语言教程(五) 常量

上一节我们学习了KEIL C51编译器所支持的数据类型。而这些数据类型又是怎么用在常量和变量的定义中的呢?又有什么要注意的吗?下面就来看看吧。晕!你还区分不清楚什么是常量,什么是变量。常量是在程序运行过程中不能改变值的量,而变量是可以在程序运行过程中不断变化的量。变量的定义可以使用所有C51编译器支持的数据类型,而常量的数据类型只有整型、浮点型、字符型、字符串型和位标量。这一节我们学习常量定义和用法,而下一节则学习变量。常量的数据类型说明是这样的  1.整型常量可以表示为十进制如123,0,-89等。十六进制则以0x开头如0x34,-0x3B等。长整型就在数字后面加字母L,如104L,034L...
关键词: 51单片机 C语言 常量

http://www.eeworld.com.cn/mcu/article_2017122536946.html 发布时间: 2017-12-25



51单片机C语言教程(六) 变量

上课所提到变量就是一种在程序执行过程中其值能不断变化的量。要在程序中使用变量必须先用标识符作为变量名,并指出所用的数据类型和存储模式,这样编译系统才能为变量分配相应的存储空间。定义一个变量的格式如下:    [存储种类] 数据类型 [存储器类型] 变量名表  在定义格式中除了数据类型和变量名表是必要的,其它都是可选项。存储种类有四种:自动(auto),外部(extern),静态(statIC)和寄存器(register),缺省类型为自动(auto)。  而这里的数据类型则是和我们在第四课中学习到的名种数据类型的定义是一样的。说明了一个变量的数据类型后,还可选择说明该变量的存储器类型。存储器类型...
关键词: 51单片机 C语言 变量

http://www.eeworld.com.cn/mcu/article_2017122536945.html 发布时间: 2017-12-25



51单片机C语言教程(七) 表达式1

上课到这一课相隔了好长一段时间,这些日子里收到不少网友的来信支持和鼓励,要求尽快完成余下的部分。出门在外的人不得不先为吃饭而努力,似乎这也成为我的借口,以后每晚抽空打一些吧这样大家也就可以不用隔太久就能看到一些新东西。或许我的笔记并不是很正确,但我尽量的保证每课的实验都会亲自做一次,包括硬件的部分,已求不会误人子弟。随着访问量不断的增加,网站已启用了www.cdle.net的国际域名,在这里我感谢各位一直支持磁动力工作室的朋友,更要感激身在远方一直默默支持我的女友。                    明浩 2003-7-14 晚  呵,费话少说了。上两课说了常量和变量,先来补充一个用以重新...

http://www.eeworld.com.cn/mcu/article_2017122536944.html 发布时间: 2017-12-25




<上一页 891011121314151617181920212223 下一页> 相关结果约12,080个