单片机键盘显示接口电路设计
中北大学
单片机及其接口技术
课程设计说明书
学生姓名:苏瑞学号:0805054218
学院:信息与通信工程学院
专业:自动化
题目:单片机键盘显示接口电路设计
指导教师:沈小林职称: 副教授
2011年6月19日
中北大学
单片机及其接口技术
课程设计任务书
10/11 学年第二学期
学院:信息商务学院
专业:自动化
学生姓名:苏瑞学号:0805054218 课程设计题目:单片机键盘显示接口电路设计
起迄日期:6月13日~6月19日
课程设计地点:中北大学
指导教师:沈小林
系主任:王忠庆
下达任务书日期: 2011年06月13日
第一章、绪论
89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器,俗称单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL 的89C51是一种高效微控制器,89C2051是它的一种精简版本。
89C 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
在本次课程设计中,便采用89C51单片机。
第二章、设计内容
一、4×4键盘
原理:4×4
行
行
行
行
图1
电路原理图见附图一
本次设计为4×4的矩阵键盘,这样的设计可以有效的减少键盘与单片机接口时所占用的I/O接口。
在这种非编码键盘的单片机系统中,键盘处理程序首先执行有无按键按下的程序段,当确认有按键按下后,下一步就要识别哪一个按键被按下,对键的识别常采用逐行(逐列)扫描的方法。
首先判断有无按键按下。
方法是:向行线输出全扫描字00H,把全部行线置为低电平,然后将列线的电平状态读入到累加器A中,如果有按键按下,会使列线电平被拉至低电平,是列输入不全为1。
判断键盘哪一个键被按下。
方法是:一次给行线送低电平,然后查所有列线状态,称为行扫描,如果全为1,则所按下键不在此行,如果不全为1,则所按下键必在此行,而且是在与零电平列线相交的交点上的那个键。
在此,按键的位置码并不等于按键的实际定义键值,因此还必须进行转换,即键值译码,本次设计中采用软件实现键值的译码,译码方式如下:
第0行键值为:0行×4+列号(0~3)为0、1、2、3;
第1行键值为:1行×4+列号(0~3)为4、5、6、7;
第2行键值为:2行×4+列号(0~3)为8、9、A、B;
第3行键值为:3行×4+列号(0~3)为C、D、E、F;
译码程序如下:
MOV A,R0 ;取行号送A
MOV B,#04 ;每一行按键个数
MUL AB ;行号×按键数
ADD A,R2 ;R2中存放列号,行号×按键数+列好=键值,在A中键盘行扫描流程图如下:
图2
二、8位LED七段数码管显示
原理:
在显示电路中,需要使用到74LS48与74LS138两块集成芯片。
74LS48用作七段数码管数值显示译码器,将P0.0-P0.3输出的数值BCD码译码后得到的段选码送给七段数码管,使得数码管能够正确显示数值。
74LS138做选位段译码器,将P0.4-P0.6输出的位选BCD码转化为二进制反码,进行选位。
在本次设计中,8为LED七段数码管均采用共阳极接法。
通过八个非门对74LS138输出的电平进行取反,与74LS48共同实现共阳极接法对七段LED数码管的显示驱动。
具体电路原理见附图二。
74LS48芯片的电路结构原理及引脚图:引脚图中的大写字母A、B、C、D为BCD码输入端,小写字母a、b、c、d、e、f、g为字型码输出端,LT为灯测试输入端,RBI为消隐输入,RBO为消隐输出。
表1为74LS48 BCD-7段锁存/译码/驱动器作为段驱动器的输入输出信号的对应关系。
在使用时,将芯片的输入端引脚A、B、C、D与单片机的P0口相连接,该芯片的输出端七个管脚,与LED显示器的七个段码引脚相连接。
74LS48的作用是接受来自单片机的BCD码型的输入信号,经锁存、译码和放大后,输出七段字型码到LED显示器,完成对BCD码到七段字型码的锁存、译码和驱动的功能。
74LS48 BCD-7段译码器输入/输出端信号对照表
表1
74LS138 为3 线-8 线译码器工作原理如下:
当一个选通端(G1)为高电平,另两个选通端(/(G2A)和/(G2B))为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。
其输入输出真值表如表2.
表2
此电路可以实现静态与动态显示两种方:。
1、静态显示可实现一位显示。
既选位段选中一位,数据段输出数值,使得数码管显示数值。
静态显示器的亮度较高。
这种显示方式
编程容易,管理也较简单,但占用I/O口线资源较多。
在显示位数较多的情况下,一般都采用动态显示方式。
2、动态显示可以实现八位同时显示不同数值。
段选码与位选码没送入一次后延时1ms,因为人眼的视觉暂留时间为100ms,所以,每次每次显示的时间不超过20ms,并保持一段时间,易造成视觉暂留效果,给人看上去每个数码管总在亮。
这种方式称作软件扫描显示。
例如要显示“0123”,必须对P0口进行如下编辑:
MOV P0,#80H
LCALL DYI
MOV P1,#41H
LCALL DYI
MOV P1,#22H
LCALL DYI
MOV P1,#13H
LCALL DYI
附录1:
参考文献:
1.韩焱,张艳华,王康谊.数字电子技术基础.北京:电子工业出版
社,2009
2.薛小玲,刘志群,贾俊荣.单片机接口模块应用与开发实例详解.北
京:北京航天航空大学出版社,2010
3.谢振辉.改进式MCS-51单片机实验.北京:科学出版社,2006
4.高伟.AT89单片机原理及其应用.北京:国防工业出版社,2008
5.李北明,于铭.单片机原理与实践教程.哈尔滨:哈尔滨工程大学出
版社,2009
6.余永泉.Flash单片机原理及应用.北京:北京电子工业出版社,
1997
7.刘守义.单片机应用技术.西安:西安电子科技大学出版社,2006
8.张毅刚.MCS-51单片机原理及应用.哈尔滨:哈尔滨工业大学出版
社,2004
9.李建中.单片机原理及应用.西安:西安电子科技大学出版社,2002
10.李朝青.单片机原理及接口技术.北京:北京航空航天大学出版
社,2006
11
12
键盘电路图
13
13
8位七段LED 显示电路图
14。
单片机键盘输入编程电路设计
单片机键盘输入编程电路设计
输入电路的设计
1、电路的结构
本文的电路设计主要是用于实现单片机键盘输入编程的功能,所以电路的结构从上到下分为三部分,分别是:
(1)键盘输入部分:由上排按键及下排按键,两排按键组成。
(2)电源部分:由DC电源组成。
(3)输出部分:由多路复用器(一般称为MUX),控制部分组成,多路复用器可以将键盘输入的按键信号转变为单片机可以识别的数据位,控制部分是连接单片机的部分,可以与单片机连接,以实现键盘输入指令的操作。
2、基本电路
本文设计的电路主要由以下电路组件构成:
(1)DC电源:由7805,5V的DC电源模块组成,用于给键盘、多路复用器和控制部分提供电源。
(2)键盘输入部分:由上排按键及下排按键组成,每行按键由四列电路器件组成,四列电路器件的抽头线连接在一起,以实现按键的控制,当按键按下时,输入信号为低电平,反之,当按键处于松开状态时,输入信号为高电平。
(3)多路复用器:多路复用器主要用于将键盘输入的多个按键信号转换为单片机可以识别的数据,该多路复用器的信号输入端接收键盘上每行按键输入的信号。
单片机实现PS_2键盘的接口设计及模块化编程
本栏目责任编辑:谢媛媛开发研究与设计技术1PS/2通讯简述PS/2接口有4个有效管脚:电源地、5V、数据和时钟,见图1。
主机提供5V,并且外设的地连接到主机的电源地上。
数据和时钟都是集电极开路的。
PS/2外设履行一种双向同步串行协议。
换句话说,每次数据线上发送一位数据并且每在时钟线上发一个脉冲就被读入。
外设可以发送数据到主机而主机也可以发送数据到外设,但主机总是在总线上有优先权,它可以在任何时候抑制来自于外设的通讯,只要把时钟拉低即可。
2键盘构成及其硬件设计键盘由按键阵列和识键、通讯电路构成。
键盘按键构成的电路原理如图2。
按键设置在行列线交叉点上,行列线分别连接到按键开关的两端。
行线通过上拉电阻接到+5V上。
平时无按键动作时,行线处于高电平状态,当有按键按下时,行线电平状态将由与此行线相连的列线电平决定。
如果列线为低电平,则行线为低电平;如果列线为高电平,则行线也为高电平。
这是识别矩阵键盘按键是否被按下的关键。
图2键盘按键构成的电路原理本设计以AT89C52为例,对键盘按键阵列的扫描以及与PC机的通讯电路进行设计,见图3。
其中KEY_CLK和KEY_DAT对应PS/2接口的时钟线和数据线,负责键盘与PC机之间的通讯对话。
3模块化编程设计键盘程序需要按PS/2协议要求跟主机PS/2接口进行正常的通讯,同时对键盘按键进行扫描及去抖,并向主机发送按键相应的扫描码(包括通码和断码)。
其模块流程如图4。
3.1PS/2协议接口通讯模块主机和外设通过PS/2接口进行双向通讯。
从外设发送到主机的数据在时钟信号的下降沿(当时钟从高变到低的时候)被读取;从主机发送到外设的数据在上升沿(当时钟从低变到高的时候)被读取。
不管通讯的方向怎样,外设总是产生时钟信号。
图3键盘控制电路图3.1.1设备到主机的通讯过程当键盘想要发送数据时它首先检查时钟以确认它是否是高电平;如果不是,那么是主机抑制了通讯,设备必须缓冲任何要发送的数据,直到重新获得总线的控制权(键盘有16字节的缓冲区)。
1-单片机键盘与显示电路设计
独立式按键 单片机控制系统中,往往只需要几个 功能键,此时,可采用独立式按键结构。 1.独立式按键结构 独立式按键是直接用I/O口线构成的单 个按键电路,其特点是每个按键单独占 用一根I/O口线,每个按键的工作不会影 响其它I/O口线的状态。独立式按键的典 型应用如图9-3所示。
V CC
P 1.0 P 1.1 P 1.2 P 1.3 P 1.4 P 1.5 P 1.6 P 1.7
P1口某位结构
P1口电路中包含有一个数据输出锁存器、一个三态数据输入缓冲器 、一个数据输出的驱动电路。 P1口的功能和驱动能力
P1口只可以作为通用的I/O口使用;
P1可以驱动4个标准的TTL负载电路; 注意在P1口作为通用的I/O口使用时,在从I/O端口读入数据时,应 该首先向相应的I/O口内部锁存器写“1”。 举例:从P1口的低四位输入数据 MOV MOV P1,#00001111b ;;先给P1口底四位写1 A,P1 ;;再读P1口的底四位
依此规律循环,即可使各位数码管显 示将要显示的字符。虽然这些字符是在不 同的时刻分别显示,但由于人眼存在视觉 暂留效应,只要每位显示间隔足够短就可 以给人以同时显示的感觉。 采用动态显示方式比较节省I/O口,硬 件电路也较静态显示方式简单,但其亮度 不如静态显示方式,而且在显示位数较多 时,CPU要依次扫描,占用CPU较多的时 间。
矩阵式按键 单片机系统中,若使用按键较多时,通 常采用矩阵式(也称行列式)键盘 1.矩阵式键盘的结构及原理 矩阵式键盘由行线和列线组成,按键位 于行、列线的交叉点上,其结构如下图9-4 所示。
+5 V 0 4 8 12 0 1 5 9 13 1 2 6 10 14 2 3 7 11 15 3 0 1 2 3
06 12864LCD显示计算器键盘按键实验
目录1 课程设计概述和要求 (1)1.1 课程设计要求与任务 (2)1.2 课程设计思路 (2)1.3 课程设计需要配置的环境 (3)2 系统设计 (3)2.1 设计框图 (3)2.2 元件解析 (3)2.2.1 LCD12864芯片……………………………………………………………42.2.2 AT89C51芯片 (5)2.2.3 其他部件 (6)2.2.4 电路分析 (7)3 软件设计 (12)3.1 程序流程图 (12)3.2 程序代码 (12)4 系统的仿真与调试 (13)4.1 硬件调试 (13)4.2 软件调试 (14)4.3 软硬件调试 (14)5 总结 (14)附录1:程序代码附录2:12864LCD显示计算器键盘按键实验Proteus仿真图1 课程设计概述和要求1.1 课程设计任务与要求设计任务:利用AT89C51单片机结合12864LCD显示器设计计算器键盘按键。
设计要求1:本设计实现一个12864LCD显示12864LCD显示器设计计算器键盘按键2.利用AT89C51控制整个电路来实现. 显示12864LCD显示器设计计算器键盘按键,系统主要包括硬件和软件两部分。
重点就是各部分硬件的连接设计以及程序的编写。
本章讲述的就是系统硬件的设计,其中包括各模块的器件选择和电路设计。
将计算器按键上的信息传送至AT89C51主芯片之中,利用P2端口使之显示于12864LCD液晶显示屏上。
1.2 课程设计目的思路1、先把与题目有关的芯片资料找到,熟悉一下芯片资料2、把此程序的电路图看懂,了解一下它的实现原理,以及实现的功能。
3、分析一下此程序的各部分的功能,各零件的工作原理。
4、对程序进行调试,分析调试结果,观察并得出结论。
1.3 课程设计需要配置的环境1、一台主机,一台显示器2、Keil uVision3/Keil uVision4 应用程序软件3、ISIS 7 Professional 仿真软件4、老师交给的仿真电路图,及案例5、纸张,以及一些参考资料2 系统设计2.1.设计框图框图设计是为了能够从整体上把握系统的各个大的模块以及各个模块之间的联系。
4.3 单片机键盘接口电路设计
//函数功能:键盘扫描 //检测到有键按下 //延时10ms再去检测 //按键k1被按下 //按键k2被按下 //按键k3被按下 //按键k4被按下
▲▲▲
独立式键盘接口设计案例
void forward(void) { P3=0xfe; led_delay(); P3=0xfd; led_delay(); P3=0xfb; led_delay(); P3=0xf7; led_delay(); P3=0xef; led_delay(); P3=0xdf; led_delay(); P3=0xbf; led_delay(); P3=0x7f; led_delay(); }
break;
}
}
}
▲▲▲
独立式键盘接口设计案例
void key_scan(void) { P1=0xff; if((P1&0x0f )!=0x0f ) { delay10ms(); if(S1==0) keyval=1; if(S2==0) keyval=2; if(S3==0) keyval=3; if(S4==0) keyval=4; }
//处理按下的k1键,“……”为处理程序 //跳出switch语句 //处理按下的k2键 //跳出switch语句 //处理按下的k3键 //跳出switch语句 //处理按下的k4键 //跳出switch语句 //处理按下的k5键 //跳出switch语句
独立式键盘接口设计案例
1.独立式键盘的查询工作方式
{
case 1:forward(); //键值为1,调用正向流水点亮函数
break;
case 2:backward(); //键值为2,调用反向流水点亮函数
break;
case 3:Alter(); //键值为3,调用高、低4位交替点亮函数
单片机实验报告——矩阵键盘数码管显示
单片机实验报告信息处理实验实验二矩阵键盘专业:电气工程及其自动化指导老师:***组员:明洪开张鸿伟张谦赵智奇学号:152703117 \152703115\152703118\152703114室温:18 ℃日期:2017 年10 月25日矩阵键盘一、实验内容1、编写程序,做到在键盘上每按一个键(0-F)用数码管将该建对应的名字显示出来。
按其它键没有结果。
二、实验目的1、学习独立式按键的查询识别方法。
2、非编码矩阵键盘的行反转法识别方法。
3、掌握键盘接口的基本特点,了解独立键盘和矩阵键盘的应用方法。
4、掌握键盘接口的硬件设计方法,软件程序设计和贴士排错能力。
5、掌握利用Keil51软件对程序进行编译。
6、会根据实际功能,正确选择单片机功能接线,编制正确程序。
对实验结果能做出分析和解释,能写出符合规格的实验报告。
三、实验原理1、MCS51系列单片机的P0~P3口作为输入端口使用时必须先向端口写入“1”。
2、用查询方式检测按键时,要加入延时(通常采用软件延时10~20mS)以消除抖动。
3、识别键的闭合,通常采用行扫描法和行反转法。
行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。
行反转法识别闭合键时,要将行线接一并行口,先让它工作在输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口在各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为0。
然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上输入值,那么,在闭合键所在行线上的值必定为0。
这样,当一个键被接下时,必定可以读得一对唯一的行线值和列线值。
由于51单片机的并口能够动态地改变输入输出方式,因此,矩阵键盘采用行反转法识别最为简便。
单片机键盘显示实验报告
单片机的键盘和显示实验报告㈠实验目的1.掌握单片机I/O的工作方式;2.掌握单片机以串行口方式0工作的LED显示;3.掌握键盘和LED显示的编程方法。
㈡实验器材1.G6W仿真器一台2.MCS—51实验板一台3.PC机一台4.电源一台㈢实验内容及要求实验硬件线路图见附图从线路图可见,8051单片机的P1口作为8个按键的输入端,构成独立式键盘。
四个LED显示器通过四个串/并移位寄存器74LS164接口至8051的串行口,该串行口应工作在方式0发送状态下,RXD端送出要显示的段码数据,TXD则作为发送时钟来对显示数据进行移位操作。
编写一个计算器程序,当某一键按下时可执行相应的加、减、乘、除运算方式,在四个显示器上显示数学算式和最终计算结果。
注:①通过按键来选择加、减、乘、除四种运算方式。
②输入两个数字均为一位十进制数,可预先放在内存中。
㈣实验框图(见下页)㈤思考题1.当键盘采用中断方式时,硬件电路应怎样连接?P1.4~P1.7是键输出线,P1.0~P1.3是扫描输入线。
输入与门用于产生按键中断,其输入端与各列线相连,再通过上拉电阻接至+5 V电源,输出端接至8051的外部中断输入端。
2.74LS164移位寄存器的移位速率是多少?实验中要求计算的式子和结果之间相差一秒,移位寄存器的移位速率应该是每秒一位吧。
其实这个问题确实不知道怎么回答。
LED 显示用的段码与教科书所提供的不同,本实验采用如下段码:显示数符段码显示数符段码0BBH A DBH109H B F1H2EAH C B2H36BH D E9H459H E F2H573H F D2H否有否P1口置输入读P1口开 始显示“0000”是否有键按下?延迟消抖是否有键按下?是读键码加法运算减法运算除运算6F3H—40H70BH.04H8FBH┗┛A1H97BH┗┛1AH灭00H P DAH实验代码:ORG 0000HAJMP MAINORG 0030HMAIN:MOV 41H,#0BBH ;对几个存放地址进行初始化MOV 42H,#0BBHMOV 43H,#0BBHMOV 44H,#0BBHMOV SCON,#00H ;初始化串行口控制寄存器,设置其为方式0 LCALL DISPLAY ;初始化显示KEY:MOV R3,#08H;用来存放两个数据MOV R4,#02HMOV P1,#0FFH ;初始化P1口MOV A,P1 ;读取按键状态CPL A ;取正逻辑,高电平表示有键按下JZ KEY ;A=0时无键按下,重新扫描键盘LCALL DELAY1;消抖MOV A,P1 ;再次读取按键状态CPL AJZ KEY ;再次判别是否有键按下PUSH AKEY1:MOV A,P1CPL AANL A,#0FH ;判别按键释放JNZ KEY1 ;按键未释放,等待LCALL DELAY1;释放,延时去抖动POP AJB ACC.0,ADD1 ;K1按下转去ADD1JB ACC.1,SUB1 ;K1按下转去SUB1JB ACC.2,MUL1 ;K1按下转去MUL1JB ACC.3,DIV1 ;K1按下转去DIV1LJMP KEYADD1:LCALL BUFFER ;显示加数和被加数MOV 43H,#049HLCALL DISPLAY ;显示加号MOV A,R3ADD A,R4DA AMOV R3,A ;相加结果放入R6ANL A,#0FHMOV R4,A ;结果个位放入R7MOV A,R3SWAP A ;半字节交换,高四位放入低四位ANL A,#0FHMOV R3,A ;结果的高位放入R6LCALL L;显示缓存区设置LCALL DELAY2;延时一秒后显示LCALL DISPLAYLJMP KEYSUB1:LCALL BUFFER ;显示减数和被减数MOV 43H,#40HLCALL DISPLAY ;显示减号MOV A,R3CLR CY ;CY清零SUBB A,R4 ;做减法PUSH ARLC A ;带进位循环左移,最高位放入CYJC F ;判断最高位,若为1则跳转到负数ZHENG: POP AMOV R4,AMOV R3,#00H ;高位清零SJMP OUTFU:POP ACPL A ;取绝对值INC AMOV R4,AMOV R3,#11H ;显示负号OUT: LCALL L ;显示缓存区设置LCALL DELAY2 ;延时1s后显示LCALL DISPLAYLJMP KEYMUL1:LCALL BUFFER ;显示两位乘数MOV 43H,#99HLCALL DISPLAY ;显示乘号MOV A,R3MOV B,R4MUL AB ;结果放入AB,A中是低8位,B中是高8位MOV B,#0AHDIV AB ;十进制转换MOV R4,B ;结果个位放入R7MOV R3,A ;结果的十位放入R6LCALL LLCALL DELAY2LCALL DISPLAY ;延时1s后显示LJMP KEYDIV1:LCALL BUFFER ;显示除数和被除数MOV 43H,#62HLCALL DISPLAY ;显示除号MOV A,R3MOV B,R4DIV AB ;A除以BMOV R4,B ;余数放在R4中MOV R3,A ;商放在R3中MOV A,R4MOVC A,@A+DPTR ;调用段选号MOV 41H,A ;显示余数MOV A,R3MOVC A,@A+DPTRMOV 43H,A ;显示商MOV 42H,#00HMOV 44H,#00HLCALL DELAY2 ;延时1S后显示LCALL DISPLAYLJMP KEYBUFFER: MOV 41H,#22H ;显示初始化,在做计算之前显示两个操作数,显示等号MOV DPTR,#TABLMOV A,R4MOVC A,@A+DPTRMOV 42H,AMOV A,R3MOVC A,@A+DPTRMOV 44H,ARETDISPLAY:MOV R5,#04H;共四位需要显示MOV R0,#41HDISPLAY1:MOV A,@R0MOV SBUF,ADISPLAY2:JNB TI,DISPLAY2;是否传完了CLR TIINC R0DJNZ R5,DISPLAY1RETL:MOV A,R4MOVC A,@A+DPTRMOV 41H,A ;R4对应的段码MOV A,R3MOVC A,@A+DPTRMOV 42H,A ;R3对应的段码MOV 43H,#00HMOV 44H,#00HRETDELAY1: ;普通延时MOV R1,#20HDS1:MOV R2,#0FFHDS2:DJNZ R2,DS2DJNZ R1,DS1RETDELAY2:MOV R6,#14H ;定时1SMOV TMOD,#01HDS3:MOV TH0,#3CHMOV TL0,#0B0H ;50msSETB TR0LOOP:JNB TF0,LOOPCLR TF0CLR TR0DJNZ R6,DS3 ;1s到,中断返回RETTABL:DB 0BBH 09H 0EAH 6BH ;段码表DB 59H 73H 0F3H 0BHDB 0FBH 7BH 00H 0DBHDB 0F1H 0B2H 0E9H 0F2HDB 0D2H 40H实验结果及分析按键1:8+2= 结果:10按键2:8-2= 结果: 6按键3:8*2= 结果:16按键4:8/2= 结果:4从上面的结果可以看出,本次实验基本完成了实验要求。
单片机常用接口电路设计
单片机常用接口电路设计单片机是一种集成电路,内部包含了处理器、内存和各种输入输出接口。
在单片机应用中,常用的接口电路设计包括数模转换、模数转换、显示控制、通信接口、电源接口等。
一、数模转换接口电路设计:数模转换器(DAC)是将数字信号转换为模拟信号的设备,常用于音频处理、控制信号输出等。
设计DAC接口电路时需要考虑输入信号的分辨率、精度和输出电压范围等因素。
一种常见的设计方案是使用运放作为缓冲放大器,将单片机输出的数字信号经过DAC转换后放大输出。
此外,还可以根据需要添加滤波电路来去除数字信号中的高频噪声。
二、模数转换接口电路设计:模数转换器(ADC)是将模拟信号转换为数字信号的设备,常用于传感器信号采集、音频采样等。
在设计ADC接口电路时需要考虑输入信号的范围、精度和采样率等因素。
常见的设计方案是使用运放将输入信号放大,并连接到ADC的输入端。
此外,还可以根据需要添加滤波电路来去除输入信号中的高频噪声。
三、显示控制接口电路设计:单片机常用于控制各种显示设备,如数码管、液晶显示屏等。
设计显示控制接口电路时需要考虑控制信号的电平、频率和电流等因素。
一种常见的设计方案是使用继电器或晶体管作为开关,将单片机输出的控制信号连接到显示设备,实现显示内容的控制。
此外,还可以使用驱动芯片来简化接口电路设计,提高驱动能力。
四、通信接口电路设计:单片机常用于与外部设备进行通信,如串口通信、SPI通信、I2C通信等。
设计通信接口电路时需要考虑信号的传输速率、电平逻辑和接口协议等因素。
常见的设计方案是使用电平转换器将单片机的信号电平转换为外设能够接受的电平,并通过串行线路或总线连接到外设。
此外,还可以使用专用的通信芯片来简化接口电路设计,提高通信速率和可靠性。
五、电源接口电路设计:单片机的正常工作需要稳定的电源供应。
设计电源接口电路时需要考虑电源稳压、过压保护和电源滤波等因素。
一种常见的设计方案是使用稳压电源芯片或稳压二极管作为功率稳定器,为单片机提供稳定的电压。
单片机实验报告实验5行列式键盘实验
学号姓名专业电气工程及其自动化班级实验5 行列式键盘实验一、实验目的(1)、学习掌握行列式键盘接口方法(2)、学习掌握行列式键盘编程方法。
二、实验内容用单片机P1口接4*4键盘,P0口接共阳数码管,编程实现键字的显示。
P1.0-P1.3为行,P1.4-P1.7为列。
先给端口设处置FEH,相当于给第一行置0,然后分写列值,如果对应的列值为0,说明该行与该列交叉处的键是按下的,接下来扫描第二行,与第一行的操作相同。
这就是行列式键盘扫描原理。
当扫描到某行的键按下时,就退出扫描,然后取键值,再将键值对应的额编码送P0端口显示。
三、实验设备计算机(已安装Keil和Proteus软件)元器件:A T89C51, CAP, CAP-ELEC, CRYSTAL, RES, 7SEG-COM-AN-GRN, RESPACK-7, BUTTON四、实验硬件电路实验源程序:#include<reg51.h>charled_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x7 1};charkey_buf[]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x 77};char getkey(void){char key_scan[]={0xef,0xdf,0xbf,0x7f};char i=0,j=0;for(i=0;i<4;i++){P1=key_scan[i];if((P1&0x0f)!=0x0f){for(j=0;j<16;j++){if(key_buf[j]==P1)return j;}}}return -1;}void main(void){char key=0;P0=0x00;while(1){key=getkey();if(key!=1)P0=~led_mod[key]; }}五、实验要求(1)、根据实验内容设计相应的调试程序,并通过仿真,运行正确。
单片机与LCD显示屏的驱动原理及接口设计
单片机与LCD显示屏的驱动原理及接口设计LCD(Liquid Crystal Display)液晶显示屏是一种常见的显示设备,它通过液晶分子的电场控制实现图像的显示。
单片机作为一种微型计算机,具有运算能力和输入输出接口,能够控制和驱动各种外部设备,包括LCD显示屏。
本文将介绍单片机与LCD显示屏的驱动原理以及接口设计。
一、驱动原理1.1 LCD液晶显示原理LCD液晶显示原理是基于液晶分子光学特性的一个原理。
液晶分子在无电场作用下,分子排列有序,光线经过液晶分子会受到旋转和调整,从而产生不同的偏振方向和相移,导致光线透射情况的变化。
当有电场作用于液晶分子时,分子排列发生改变,从而改变了光线的透射情况,进而实现图像的显示。
1.2 驱动方式常见的LCD驱动方式有并行驱动和串行驱动两种。
并行驱动方式是将LCD驱动器的数据线与单片机相连接,通过同时发送多位数据来驱动LCD显示。
具体的驱动方式有8080并行接口、6800并行接口等。
串行驱动方式是将LCD驱动器的数据线与单片机的串行通信链路相连,通过逐位或逐字节串行传输数据来驱动LCD显示。
常用的串行驱动方式有I2C接口和SPI接口等。
1.3 LCD控制器为了简化单片机与LCD显示屏的连接和驱动,常使用LCD控制器。
LCD控制器是一种特殊的芯片,能够直接与单片机通信,并通过内部逻辑电路将数据转换为LCD所需的信号。
常见的LCD控制器有HD44780、SSD1306等。
二、接口设计2.1 并行接口设计并行接口是将LCD的数据线与单片机的数据线相连接,通过同时发送多位数据来驱动LCD显示。
一般包括数据线、读使能信号(RD)、写使能信号(WR)、使能信号(EN)和控制线(RS、R/W)等。
其中,数据线用于传输图像数据和命令数据,一般为8位数据线。
RD信号用于将LCD指令端或数据端的数据读出;WR信号用于将单片机所发出的数据写入到LCD模块中;EN信号用于控制LCD模块的操作;RS线用于指示数据传输的类型,一般为低电平表示指令,高电平表示数据;R/W线用于指示单片机与LCD模块之间的读写操作。
