单片机数码管动态扫描显示和键盘扫描为什么需要不断刷新?

At89c51单片机键盘扫描和显示程序
;******************************************************
;* 名称:kbd
;* 功能:从键盘中读入按键值,存入寄存器A:r*4+c
;* 输出: A=按键值
;******************************************************
MOV 60H,#10h
MOV 61H,#10h
MOV 62H,#10h
MOV 63H,#10h
有键按下,转定按键位置扫描
acall disp
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
; p1.7p1.6p1.5p1.4 1110
; | | | | R*4
; p1.3 ----------/|--/|--/|--/|---------|===|----vcc
; p1.2 ----------/|--/|--/|--/|---------|===|----vcc
; p1.1 ----------/|--/|--/|--/|---------|===|----vcc
; p1.0 ----------/|--/|--/|--/|---------|===|----vcc 1111
mov R1,#00efh,依次扫描p1.4,p1.5,p1.6列
mov R2,#0 ; 列数
mov P1,R1 ;
mov A,P1 ;从p1口取得行信息
orl a, #0f0h
mov r3,#0 ;行数
jnc ks_wait_release
cjne r3,#5,ks_row
ks_this_colum_none: ; 该列无键按下
mov A,R1 ; 扫描下一列
cjne r2,#4,ks_colum
error: clr A ; 所有列无键按下,返回0
jmp ks_end
ks_wait_release:
mov p1,#0fh
orl a,#0f0h
jnz ks_wait_release
ks_decode:
add a,r2 ;r3*3+r2
set_disp_bit:
mov r0,#63放入显示缓冲
;&&&&&& &&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&显示部分
disp_number:
MOV R0,#60H ;显示数码存放在0x60~0x63(BCD形式)
MOV R3,#0feH ;把显示位码取到R3
display_scan:
MOV R2,A ;把显示数码取到R2
ACALL display_a_bit
ACALL delay
RL A ;下一位码
INC R0;下一显示数码
CJNE R0,#64H,display_scan
;*******************************************************************************************
;r2=显示数据 r3=显示位(0feh,0fdh,0fbh,0f7h分别指第1,2,3,4位)
led_digit1 equ 0feh
led_digit2 equ 0fdh
led_digit3 equ 0fbh
led_digit4 equ 0f7h
display_a_bit:
MOV DPTR,#table
MOVC A,@A+DPTR
MOV P0,A ;取段码:TABLE1+x
MOV P2,A ;输出位码
;*******************************************************************************************
MOV R6,#04H
MOV R7,#248
DJNZ R6,d1
RET ;延迟 1us+4*(1us+2us*248+2us)+2us=1999us,约2ms
;*******************************************************************************************
; p0.0~p0.7----/-------------------------------------
; ===a=== ======= ====== ======
; f| | b | | | | | |
; ====g=== |=======| |======| |======|
; e| | c | | | | | |
; ===d== oh ====== o ===== o ===== o
; p2.0----------/------------+--------------+------------+
; p0: ghfedcba
; xxxxxxxx (请确认连接),如共阴数码管:,显示1.
table: ; '0' '1' '2' '3' '4' '5' '6' '7' '8' '9',共阴
db 3fh,06h,5bh,4fh,66h;0-4
db 6dh,7dh,07h,7fh,65-9
db 77h,7ch,39h,5eh,86h;A,b,C,d,E
db 00h;关数码管
原文链接:
责任编辑:
声明:本文由入驻搜狐号的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
今日搜狐热点硕士/研究生
&&&&&&DOC文档下载
游客快捷下载
会员登录下载
下载资源需要10元
邮箱/手机号:
您支付成功后,系统会自动为您创建此邮箱/手机号的账号,密码跟您输入的邮箱/手机号一致,以方便您下次登录下载和查看订单。
支付方式:
已注册用户请登录:
当日自动登录&&
&&合作网站一键登录:
1、本站资源不支持迅雷下载,请使用浏览器直接下载(不支持QQ浏览器);
2、文档下载后都不会有金锄头文库的水印,预览文档经过压缩,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、所有文档都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的,可以点击右侧栏的客服对话;
下载须知 | 常见问题汇总
单片机4X4键盘扫描和显示课程设计
二、设计内容1、本设计利用各种器件设计,并利用原理图将8255单元与键盘及数码管显示单元连接,扫描键盘输入,最后将扫描结果送入数码管显示。键盘采用44键盘,每个数码管可以显示0F共16个数。将键盘编号,记作0F,当没按下其中一个键时,将该按键对应的编号在一个数码管上显示出来,当在按下一个键时,便将这个按键的编号在下一个数码管上显示,数码管上可以显示最近6次按下的按键编号。设计并实现一44键盘的接口,并在两个数码管上显示键盘所在的行与列。三、问题分析及方案的提出44键盘的每个按键均和单片机的P1口的两条相连。若没有按键按下时,单片机P1口读得的引脚电平为“1”;若某一按键被按下,则该键所对应的端口线变为地电平。单片机定时对P1口进行程序查询,即可发现键盘上是否有按键按下以及哪个按键被按下。实现44键盘的接口需要用到单片机并编写相应的程序来识别键盘的十六个按键中哪个按键被按下。因为此题目还要求将被按下的按键显示出来,因此可以用两个数码管来分别显示被按下的按键的行与列四、设计思路及原因对于44键盘,共有十六个按键。如果每个按键与单片机的一个引脚相连,就会占用16个引脚,这样会使的单片机的接口不够用(即使够用,也是对单片机端口的极大浪费)。因此我们应该行列式的接法。行列式非编码键盘是一种把所有按键排列成行列矩阵的键盘。在这种键若没有按键按下时,单片机从P1口读得的引脚电平为“1”;若某一按键被按下,则该键所对应的端口线变为地电平。因此0XEXX表示任意44键盘的第一行中的某个按键被按下,相应的0XDX、0XBX、0X7XX二、实验内容表示任意一个十六进制数分别表示键盘的第二行、第三行、第四行0XXE、0XXD、0XXB、0XX7X表示任意一个十六进制数则分别表示键盘的第一列、第二列、第三列和第四列。例如0XD7是键盘的第二行第四列的按键对于数码管的连接,采用了共阳极的接法,其下拉电阻应保证芯片不会因为电流过大而烧坏。五、电路设计及功能说明44键盘的十六个按键分成四行四列分别于P1端口的八条I/O数据线相连;两个七段数码管分别与单片机的P0口和P2口的低七位I/O数据线相连。数码管采用共阳极的接法,所以需要下拉电阻来分流。结合软件程序,即可实现44键盘的接口及显示的设计。当按下键盘其中的一个按键时,数码管上会显示出该按键在44键盘上的行值和列值。所以实现了数码管显示按键位置的功能设计并实现一44键盘的接口,并在两个数码管上显示键盘所在的行与列。即将8255单元与键盘及数码管显示单元连接,编写实验程序扫描键盘输入,并将扫描结果送数码显示,键盘采用44键盘,每个数码管值可以为0到F,16个数。将键盘进行编号记作0F当按下其中一个按键时将该按键对应的编号在一个数码管上显示出来,当按下下一个按键时便将这个按键的编号在下一个数码管上显示出来,且数码管上可以显示最近6次按下按键的编号。基本原理1电路设计及功能说明2硬件原理框图及电路图包括接口芯片简介电路图六、实验步骤1把实验平台与PC机串行口连起来,根据实验连线提示在实验台上连线,之后打开电源。2在PC机上用鼠标点击“WAVE”图标,进入WINDOWS调试环境,而后进行初始化设置。点击仿真器\仿真器设置出现“仿真器设置”窗,进行仿真器的设置。3用鼠标点一下文件\打开文件,输入文件名ASM,创建新文件,在该窗口中输入事先编好的程序。4用鼠标点项目\全部编译窗,对当前源文件进行编译,反复修改好程序,直到编译通过为止。5全速运行程序,通过在键盘按键,观察八段管的显示结果,理解键盘扫描原理及程序编写方法。接口芯片简介AT89C51简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。主要管脚说明VCC供电电压。GND接地。P0口P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口同时为闪烁编程和编程校验接收一些控制信号。ALE/PROG当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。数码管简介数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极COM的数码管。共阳数码管在应用时应将公共极COM接到5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极COM的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。七、软件部分的程序流程图,算法和使用的编程技巧1编程技巧1.在按键扫描程序中,通过FOR循环语句实现被按下的按键的行值的确定,用SWITCH语句实现列值的确定。0XEXX表示任意一个十六进制数表示44键盘的第一行中的某个按键被按下,相应的0XDX、0XBX、0X7XX表示任意一个十六进制数分别表示键盘的第二行、第三行、第四行0XXE、0XXD、0XXB、0XX7X表示任意一个十六进制数则分别表示键盘的第一列、第二列、第三列和第四列;2UCROWUCLINE1即为被按下的按键的行列值;3用十六个SWITCH语句实现对单片机P0端口和P2口的I/O数据线的控制,来控制数码管显示被按下按键的行值和列值;2程序流程图否是是否开始显示缓冲区初始化LED显示读取键值键值转换为显示数据开始输出列扫描信号列扫描信号移位该列有键输入读入行信号返回6列扫描完有键输入初始化地址参数按照行列计算键值查表得键码等待按键释放返回主流程图子流程图八、程序编程OUTBIGEQU8002H位控制口OUTSEGEQU8004H段控制口KEYINEQU8001H键盘读入口READYMOV20H,3FH缓冲器设初值,赋值到6个数码管MOV21H,3FHMOV22H,3FHMOV23H,3FHMOV24H,3FHMOV25H,3FHMAINLCALLDISPLAY无键码输入,调用显示模块LCALLTESTJZMAIN累加器为0即说明无按键,则转移继续显示LCALLSEARCH有键值输入,寻找输入键值所在的行和列MOV20H,21H数码管显示出输入的键值MOV21H,22HMOV22H,23HMOV23H,204MOV24H,25HMOVDPTR,LEDTABMOVCA,ADPTRMOV25H,ASJMPMAINDISPLAY显示模块MOVR0,20H缓冲区从20H处开始MOVR1,6共6个八段管MOVR2,B从左边开始显示灯亮为1,灭为0,LOOPMOVDPTR,OUTBIGMOVA,0MOVXDPTR,A位选码初值设为0,即关闭所有八段管MOVA,R0将以20H为首地址的内存值发送到段码输出口8004HMOVDPTR,OUTSEGMOVXDPTR,AMOVDPTR,OUTBIG输出位选通信号,使每次只显示一位八段管MOVA,R2MOVXDPTR,ALCALLDELAY延时MOVA,R2RRA位选信号右移一位,即动态显示下一个数码管MOVR2,AINCR0内存地址
本文(单片机4X4键盘扫描和显示课程设计)为本站会员(ninuo1992)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“”【网址:】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
分享当前资源【单片机4X4键盘扫描和显示课程设计】到朋友圈,您即可以免费下载此资源!
微信扫一扫分享到朋友圈
操作提示:任选上面一个二维码,打开微信,点击“发现”使用“扫一扫”,即可将选择的网页分享到朋友圈
您可能感兴趣的------------------------------------------------------------------------------------------------------
元price_share
&|&川公网安备 12号&|&经营许可证(蜀ICP备号-1)(C) by Sichuan Goldhoe Inc. All Rights Reserved.
&strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>一、&/span>&/strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>本站提供全自助服务,购买后点击下载按钮可以下载到你电脑或手机(系统不会发送文档到您的邮箱),请注意查看下载存放位置;&/span>&/p>&p>&strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>二、&/span>&/strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>本站具有防盗链功能,所以不要使用迅雷、旋风、网际快车等第三方辅助下载工具,否则下载下来的文件只是网页或乱码;&/span>&br/>&/p>&p>&strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>三、&/span>&/strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>由于网络原因、下载知识欠缺、本地电脑手或机阻止下载等问题无法解决时,需要提供以下&/span>&span style=&font-family: 微软雅黑, &Microsoft YaHei&; color: rgb(255, 0, 0);&>任意一条信息&/span>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>给我们,我们才能更及时地为你服务:&/span>&br/>&/p>&p>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>3.1、如果是注册的会员,请告诉我们你的会员账号;&/span>&/p>&p>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>3.2、如果是游客下载的,请告诉我们你下载时填写的手机或者邮箱;&/span>&/p>&p>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>3.3、如果是微信或QQ快捷登陆的,请告诉我们你的微信或QQ昵称;&/span>&/p>&p>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>3.4、如果这些你仍然无法确定,请告诉我们你的付款单号(我们可以通过单号反过来查询你的账号和下载记录)&/span>&a href=&http://www.jinchutou.com/i-93.html& target=&_blank& style=&text-decoration: color: rgb(255, 192, 0); font-family: 微软雅黑, &Microsoft YaHei&;&>&span style=&color: rgb(255, 192, 0); font-family: 微软雅黑, &Microsoft YaHei&;&>看看什么是单号?&/span>&/a>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>;&/span>&/p>&p>&strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>四、&/span>&/strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>需要下载哪份文档,请发送文档网址,而不是截图,更不要直接把标题给我们;&/span>&br/>&/p>&p>&strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>五、&/span>&/strong>&span style=&font-family: 微软雅黑, &Microsoft YaHei&;&>其它下载常见问题详见:&/span>&a href=&http://www.jinchutou.com/info-0-23-1.html& target=&_blank& style=&font-family: 微软雅黑, &Microsoft YaHei&;&>http://www.jinchutou.com/info-0-23-1.html&/a>&br/>&/p>&p>&br/>&/p>" />
?&/span>&span id=&_baidu_bookmark_start_4& style=&display: line-height: 0&>?&/span>&p>&span style=&font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>& & 鉴于本网发布稿件来源广泛、数量较多, 系统审核过程只针对存在明显违法有害内容(如色情、暴力、反动、危害社会治安及公共安全等公安部门明文规定的违法内容)进行处理,难以逐一核准作者身份及核验所发布的内容是否存在侵权事宜, 如果著作权人发现本网已转载或摘编了其拥有著作权的作品或对稿酬有疑议, 请及时与本网联系删除。&/span>&/p>&p>&strong style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 white-space: background-color: rgb(255, 255, 255);&>& & 侵权处理办法参考版权提示一文:&/strong>&a href=&http://www.jinchutou.com/h-59.html& target=&_blank& textvalue=&http://www.jinchutou.com/h-59.html&>http://www.jinchutou.com/h-59.html&/a>&span style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>&&/span>&/p>&p>&span style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>1、如涉及内容过多,需要发送邮箱,请电子邮箱到,我们会及时处理;&/span>&/p>&p>&span style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>2、系统一旦删除后,文档肯定是不能下载了的,但展示页面缓存需要一段时间才能清空,请耐心等待2-6小时;&/span>&/p>&p>&span style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>3、请版权所有人(单位)提供最起码的证明(证明版权所有人),以便我们尽快查处上传人;&/span>&/p>&p>&span style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>4、请文明对话,友好处理;&/span>&/p>&p>&span style=&color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &Times New Roman&; font-size: 14 background-color: rgb(255, 255, 255);&>5、为了杜绝以前再有类似的侵权事情,可以为我们提供相应的关键字,便于管理人员添加到系统后能有效排除和抵制与您(贵单位)相关版权作品上传;&/span>&/p>&span id=&_baidu_bookmark_end_5& style=&display: line-height: 0&>?&/span>&span id=&_baidu_bookmark_end_3& style=&display: line-height: 0&>?&/span>" />
&span style=&color: rgb(85, 85, 85); font-family: 微软雅黑; background-color: rgb(255, 255, 255);&>& & 为了维护合法,安定的网络环境,本着开放包容的心态共建共享金锄头文库平台,请各位上传人本着自律和责任心共享发布有价值的文档;本站客服对于上传人服务前,有以下几点可提前参阅:&/span>&/p>&p>&span style=&color: rgb(85, 85, 85); font-family: 微软雅黑; background-color: rgb(255, 255, 255);&>1、本站上传会员收益见:&a href=&http://www.jinchutou.com/h-36.html& target=&_blank&>http://www.jinchutou.com/h-36.html&/a> &/span>&/p>&p>2、本站不会为任何刚注册的上传会员特批解除上传限制,普通会员每天可以上传50份,值班经值会审核其上传内容,请自行观察自己上传的文档哪些在“临时转换中”(审核通过),哪些在审核拒绝中,连续坚持几天都没有任何文档被拒的情况下,根据文档质量和发布分类是否正常等考量合格后值班经理会特批升级会员等级,相应的权益也同时上升。&/p>&p>3、上传人本着友好、合作、共建、共享的原则,请耐心仔细的查看《&a href=&http://www.jinchutou.com/i-143.html& target=&_blank&>违禁作品内容处理规则》;&/a>&a href=&http://www.jinchutou.com/i-143.html& target=&_blank&>http://www.jinchutou.com/i-143.html&/a>&/p>&p>4、上传人可以观注本站公告,查看其它被公示永久封禁的原因&a href=&http://www.jinchutou.com/news-1.html& target=&_blank&>http://www.jinchutou.com/news-1.html&/a>&/p>&p>5、其它问题可以参阅上传常见问题指引:&a href=&http://www.jinchutou.com/info-0-25-1.html& target=&_blank&>http://www.jinchutou.com/info-0-25-1.html&/a>&/p>" />赞助商链接
当前位置: >>
单片机最小系统设计(包含数码管液晶矩阵键盘等实例)
单片机最小系统姓名:刘美玲 摘要 近年来随着计算机在社会领域的渗透, 单片机的应用正在不断 地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自 动控制的单片机应用系统中,单片机往往是作为一个核心部件来使 用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对 具体应用对象特点的软件结合,以作完善。 单片机最小系统是在以 51 单片机为基础上扩展,使其能更方便 地运用于测试系统中。本设计主要在 51 单片机上扩展 I/O 口,扩展 定时器定时范围,扩展键盘显示接口并写好底层程序。 关键词:最小系统,扩展,STC89C51, I/O 接口 关键词: 班级:通信 0802 班1 AbstractWith the infiltration in the social field of the computer in recent years, the application of the one-chip computer is moving towards deepening constantly, drive tradition is it measure crescent benefit to upgrade day to control at the same time. In measuring in real time and automatically controlled one-chip computer application system, the one-chip computer often uses as a key part, only one-chip computer respect knowledge is not enough, should also follow the structure of the concrete hardware , and direct against and use the software of target’s characteristic to combine concretly, in order to do perfectly. The smallest system one chip computer is in expands at the base of MCS-51 one chip computer. Make it used more convient in the test system. this design mainly expands I/O in the take 51 on chip computer, expands the timer fixed time scope, expands the keyboard to demonstrate the connection and writes the first floor procedure. Keyword:minimum system, expand,STC89C52, I/O :2 目 录 1.绪论 .............................................................................................. 5 . 2.单片机概述 .................................................................................. 6 .2.1 什么是单片机.................................................................................................. 6 2.2 单片机的发展简史.......................................................................................... 6 2.3 单片机的特点.................................................................................................. 7 2.4 单片机的应用领域.......................................................................................... 8 2.5 主流单片机简介............................................................................................ 103.单片机系统的结构 .................................................................... 12 .3.1 单片机的内部结构........................................................................................ 12 3.2 单片机的引脚功能........................................................................................ 124.单片机最小系统 ........................................................................ 14 .4.1 单片机最小系统介绍.................................................................................... 14 4.1.1 电源供电模块...................................................................................... 14 4.1.2 复位电路.............................................................................................. 15 4.1.3 振荡电路.............................................................................................. 16 4.2 单片机最小系统扩展部分............................................................................ 17 4.2.1 LED 电路 .............................................................................................. 17 4.2.2 蜂鸣器电路.......................................................................................... 19 4.2.3 系统的数码管电路.............................................................................. 21 4.2.4 系统的键盘电路.................................................................................. 24 4.2.5 A/D 电路 ............................................................................................... 33 4.2.6 D/A 电路 ............................................................................................... 37 4.2.7 系统串行通信电路.............................................................................. 415.USB 转 TTL 电路 ..................................................................... 44 .5.1 USB 转 TTL 电路介绍 .................................................................................. 446.工具软件介绍 ............................................................................ 47 .3 6.1 Keil C51 软件介绍 ......................................................................................... 47 6.1.1 Keil C51 概述 ....................................................................................... 47 6.1.2 Keil ?Vision2 集成开发环境介绍 ....................................................... 47 6.1.3 Keil ?Vision2 集成开发环境的界面 ................... 错误!未定义书签。 错误!未定义书签。 6.2 STC-ISP 软件介绍 ......................................................... 错误!未定义书签。 错误!未定义书签。4 1.绪论 .由于单片机技术在各个领域正得到越来越广泛的应用, 世界上许多集成电路 生产厂家相继推出了各种类型的单片机, 在单片机家族的众多成员中 MCS-51 系 列单片机以其优越的性能、成熟的技术及高可靠性和高性能价格比,迅速占领了 工业测控和自动化工程应用的主要市场,成为国内单片机应用领域中的主流。目 前, 可用于 MCS-51 系列单片机开发的硬件越来越多, 与其配套的各类开发系统、 各种软件也日趋完善,因此,可以极方便地利用现有资源,开发出用于不同目的 的各类应用系统。 单片机最小系统是在以 MCS-51 单片机为基础上扩展, 使其能更方便地运用 于测试系统中,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅 度提高被测试的技术指标,从而能够大大提高产品的质量和数量。单片机以其功 能强、体积小、可靠性高、造价低和开发周期短等优点,称为在实时检测和自动 控制领域中广泛应用的器件,在工业生产中称为必不可少的器件,尤其是在日常 生活中发挥的作用也越来越大。 本课题设计主要在 MCS-51 单片机上扩展 I/O 口, 扩展定时器定时范围,扩展键盘显示接口。适合于我们学生用于单片机的学习掌 握和一些各种科研立项等的需求。 因此, 研究单片机最小系统有很大的实用意义。 本文首先在绪论介绍了此系统的研究意义和使用的开发环境,以及使用 MCS-51 系列的单片机芯片。第 2 章论述单片机的发展简史、特点、应用领域以 及一些主流单片机简介了; 3 章对 MCS-51 系列单片机的系统结构做了简单的 第 介绍;第 4 章着重描述了系统硬件电路设计、软件参考程序以及所使用的各种芯 片功能与特性;在第 5 章中重点剖析了下载器的使用、原理以及主控芯片的功能 和特性;第 6 章主要讲述了在开发过程中所用工具软件的开发流程和界面介绍。5 2.单片机概述 .2.1 什么是单片机单片微型计算机简称单片机, 是典型的嵌入式微控制器 (Microcontroller Unit),常用英文字母的缩写 MCU 表示单片机,它最早是被用在工业控制 领域。单片机由芯片内仅有 CPU 的专用处理器发展而来。最早的设计理念 是通过将大量外围设备和 CPU 集成在一个芯片中,使计算机系统更小,更 容易集成进复杂的而对体积要求严格的控制设备当中。用专业语言讲,单 片机就是在一块硅片上集成了微处理器、存储器及各种输入/输出接口的芯 片。2.2 单片机的发展简史早期的单片机都是 8 位或 4 位的。其中最成功的是 INTEL 的 8031,因 为简单可靠而性能不错获得了很大的好评。 此后在 8031 上发展出了 MCS51 系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随 着工业控制领域要求的提高,开始出现了 16 位单片机,但因为性价比不理 想并未得到很广泛的应用。90 年代后随着消费电子产品大发展,单片机技 术得到了巨大提高。随着 INTEL i960 系列特别是后来的 ARM 系列的广泛 应用,32 位单片机迅速取代 16 位单片机的高端地位,并且进入主流市场。 而传统的 8 位单片机的性能也得到了飞速提高,处理能力比起 80 年代提高 了数百倍。目前,高端的 32 位单片机主频已经超过 300MHz,性能直追 90 年代中期的专用处理器,而普通的型号出厂价格跌落至 1 美元,最高端[1] 的型号也只有 10 美元。 从 8 位单片机来看,那么单片机的发展历史大致可分为以下几个阶段: (1)第一阶段():单片机的控索阶段。以 Intel 公司的 MCS C 48 为代表。MCS C 48 的推出是在工控领域的控索,参与这一控索的公司 还有 Motorola 、Zilog 等,都取得了满意的效果。这就是 SCM 的诞生年代, “单机片”一词即由此而来。6 (2)第二阶段()单片机的完善阶段。Intel 公司在 MCS C 48 基础上推出了完善的、典型的单片机系列 MCS C51。它在以下几个方面奠 定了典型的通用总线型单片机体系结构。 ①完善的外部总线。MCS-51 设置了经典的 8 位单片机的总线结构, 包括 8 位数据总线、16 位地址总线、控制总线及具有很多机通信功能的串 行通信接口。 ②CPU 外围功能单元的集中管理模式。 ③体现工控特性的位地址空间及位操作方式。 ④指令系统趋于丰富和完善,并且增加了许多突出控制功能的指令。 (3)第三阶段():8 位单片机的巩固发展及 16 位单片机的 推出阶段,也是单片机向微控制器发展的阶段。Intel 公司推出的 MCS C 96 系列单片机,将一些用于测控系统的模数转换器、程序运行监视器、脉宽 调制器等纳入片中,体现了单片机的微控制器特征。随着 MCS C 51 系列的 广应用,许多电气厂商竞相使用 80C51 为内核,将许多测控系统中使用的 电路技术、接口技术、多通道 A/D 转换部件、可靠性技术等应用到单片机 中,增强了外围电路路功能,强化了智能控制的特征。 (4)第四阶段(1990 至今):微控制器的全面发展阶段。随着单片机 在各个领域全面深入地发展和应用,出现了高速、大寻址范围、强运算能 力的 8 位/16 位/32 位通用型单片机,以及小型廉价的专用型单片机。 当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌 入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机 核心处理的高端单片机甚至可以直接使用专用的 Windows 和 Linux 操作系 统。2.3 单片机的特点(1)高集成度,体积小,高可靠性 单片机将各功能部件集成在一块晶体芯片上,集成度很高,体积自然也 是最小的。芯片本身是按工业测控环境要求设计的,内部布线很短,其抗7 工业噪音性能优于一般通用的 CPU。单片机程序指令,常数及表格等固化 在 ROM 中不易破坏,许多信号通道均在一个芯片内,故可靠性高。 (2)控制功能强 为了满足对对象的控制要求, 单片机的指令系统均有极丰富的条件:分支 转移能力,I/O 口的逻辑操作及位处理能力,非常适用于专门的控制功能。 (3)低电压,低功耗,便于生产便携式产品 为了满足广泛使用于便携式系统, 许多单片机内的工作电压仅为 1.8V~ 3.6V,而工作电流仅为数百微安。 (4)易扩展 片内具有计算机正常运行所必需的部件。芯片外部有许多供扩展用的三 总线及并行、串行输入/输出管脚,很容易构成各种规模的计算机应用系统。 (5)优异的性能价格比 单片机的性能极高。为了提高速度和运行效率, 单片机已开始使用 RISC 流水线和 DSP 等技术。单片机的寻址能力也已突破 64KB 的限制,有的已 可达到 1MB 和 16MB, 片内的 ROM 容量可达 62MB, RAM 容量则可达 2MB。 由于单片机的广泛使用,因而销量极大,各大公司的商业竞争更使其价格 十分低廉,其性能价格比极高。2.4 单片机的应用领域(1)单片机在智能仪器仪表中的应用 在各类仪器仪表中引入单片机,使仪器仪表智能化,提高测试的自动 化程度和精度,简化仪器仪表的硬件结构,提高其性能价格比。 (2)单片机在机电一体化中的应用 机电一体化是机械工业发展的方向。机电一体化产品是指集成机械技 术、微电子技术、计算机技术于一体,具有智能化特征的机电产品,例如 微机控制的车床、钻床等。单片机作为产品中的控制器,能充分发挥它的 体积小、可靠性高、功能强等优点,可大大提高机器的自动化、智能化程 度。 (3)单片机在日常生活及家用电器领域的应用8 自从单片机诞生以后,它就步入了人类生活,如洗衣机、电冰箱、空 调器、电子玩具、电饭煲、视听音响设备等家用电器配上单片机后,提高 了智能化程度,增加了功能,倍受人们喜爱。单片机将使人类生活更加方 便、舒适、丰富多彩。 (4)在实时过程控制中的应用 用单片机实时进行数据处理和控制,使系统保持最佳工作状态,提高 系统的工作效率和产品的质量。 (5)办公自动化设备 现代办公室使用的大量通信和办公设备多数嵌入了单片机。如打印机、 复印机、传真机、绘图机、考勤机、电话以及通用计算机中的键盘译码、 磁盘驱动等。 (6)商业营销设备 在商业营销系统中已广泛使用的电子称、收款机、条形码阅读器、IC 卡刷卡机、出租车计价器以及仓储安全监测系统、商场保安系统、空气调 节系统、冷冻保险系统等都采用了单片机控制。 (7)在计算机网络和通信领域中的应用 现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通 信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的 通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交 换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见 的移动电话,集群移动通信,无线电对讲机等。 (8)单片机在医用设备领域中的应用 单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析 仪,监护仪,超声诊断设备及病床呼叫系统等等。 (9)汽车电子产品 现代汽车的集中显示系统、动力监测控制系统、自动驾驶系统、通信 系统和运行监视器(黑匣子)等都离不开单片机。 (10)航空航天系统和国防军事、尖端武器等领域。9 2.5 主流单片机简介( 1) 8051 单片机 ) 最早由 Intel 公司推出的 8051/31 类单片机也是世界上用量最大的几种 单片机之一。由于 Intel 公司在嵌入式应用应用方面将重点放在 286、386、 奔腾等与 PC 类的高档芯片的开发上,8051 单片机主要由 Philips、Dallas、 Siemens、Atmel、华邦、LG 等公司接手生产。这些公司都以 MCS―51 中 的基础结构 8051 为基核推出了许多各具特色、具有优异性能的单片机。这 样,把这些厂家以 8051 为基核推出的各种型号的兼容型单片机统称为 51 系列单片机。Intel 公司 MCS―51 系列单片机中的 8051 是其中最基础的单 片机型号。 ( 2) ATMEL 单片机 ) ATMEL 公司的 90 系列单片机是增强型 RISC 内载 Flash 的单片机,通 常为 AVR 单片机。AVR 单片机是 Atmel 公司推出的较为新颖的单片机,其 显著的特点为高性能、高速度、低功耗。它取消机器周期,以时钟周期为 指令周期,实行流水作业。AVR 单片机指令以字为单位,且大部分指令都 为单周期指令。而单周期既可执行本指令功能,同时完成下一条指令的读 取。 ( 3) Microship 单片机 ) PIC 单片机系列是美国微芯公司(Microship)的产品,是当前市场份额 增长最快的单片机之一。CPU 采用 RISC 结构,分别有 33、35、58 条指令 (视单片机的级别而定),属精简指令集。而 51 系列有 111 条指令,AVR 单片机有 118 条指令,都比前者复杂。采用 Harvard 双总线结构,运行速度 快(指令周期约 160~200ns), 它能使程序存储器的访问和数据存储器的访问 并行处理,这种指令流水线结构,在一个周期内完成两部分工作,一是执 行指令,二是从程序存储器取出下一条指令,这样总的看来每条指令只需 一个周期(个别除外),这也是高效率运行的原因之一。此外,它还具有 低工作电压、低功耗、驱动能力强等特点。 ( 4) Motorola 单片机 )10 Motorola 是世界上最大的单片机厂商。从 M6800 开始,开发了广泛的 品种,4 位、8 位、16 位和 32 位的单片机都能生产, Motorola 单片机的特 点之一是在同样单片机种类的速度下所用的时钟频率较 Intel 类单片机低得 多,因而使得高频噪声低,抗干扰能力强,更适合于工控领域及恶劣的环 境。 ( 5) Micon 单片机 ) 工业级 OTP 单片机,Micon 公司生产,与 PIC 单片机管脚完全一致, 海尔集团的电冰箱控制器,TCL 通信产品,长安奥拓铃木小轿车功率分配 器就采用这种单片机。 ( 6) Scenix 单片机 ) Scenix 公司推出的 8 位 RISC 结构 SX 系列单片机与 Intel 的 Pentium II 等一起被评选为 1998 年世界十大处理器。在技术上有其独到之处:SX 系 列双时钟设置,指令运行速度可达 50/75/100MIPS(每秒执行百万条指令, XXX M Instruction Per Second);具有虚拟外设功能,柔性化 I/O 端口,所 有的 I/O 端口都可单独编程设定,公司提供各种 I/O 的库函数,用于实现各 种 I/O 模块的功能,如多路 UART、多路 A/D、PWM、SPI、DTMF、FS、 LCD 驱动等等。采用 EEPROM/Flash 程序存储器,可以实现在线系统编程。 通过计算机 RS232C 接口, 采用专用串行电缆即可对目标系统进行在线实时 仿真。 ( 7) 华邦单片机 ) 华邦公司的 W77、W78 系列 8 位单片机的脚位和指令集与 8051 兼容, 但每个指令周期只需要 4 个时钟周期,速度提高了三倍,工作频率最高可 达 40MHz。同时增加了 WatchDog Timer、6 组外部中断源、2 组 UART、2 组 Data pointer 以及 Wait state control pin。W741 系列的 4 位单片机带液晶 驱动、在线烧录、保密性高、低操作电压(1.2V~1.8V)。11 3.单片机系统的结构 .3.1 单片机的内部结构一个基本的 MCS-51 单片机通常包括:中央处理器、ROM、RAM、定 时/计数器和 I/O 口等各功能部件,各个功能由内部的总线连接起来,从而 实现数据通信。其内部框图如图 3.1 所示。图 3.1 MS51 单片机结构图3.2 单片机的引脚功能常见的 51 单片机中一般采用双列直插(DIP)封装,共 40 个引脚。图 3.2 为引脚排列图。其中的 40 个引脚大致可以分为 4 类:电源、时钟、控制和 I/O 引脚。12 图 3.2 STC89C51 引脚排列图 (1)电源 ) (1)VCC:芯片电源端,一般为+5V; (2)GND:接地端。 (2)时钟 ) (1)XTAL1:晶体振荡电路的反相输入端 (2)XTAL2:晶体振荡电路的输出端。 (3)控制线 ) MCS-51 单片机的控制线有 4 根,其中 3 根是复用线,具有两种功能。 (1)ALE/PROG:地址锁存允许/编程脉冲 (2)PSEN:外部 ROM 读选通信号 (3)RST:复位引脚 (4) EA /VPP:内外 ROM 选择/EPROM 编程电源 (4)I/O 引脚 ) MCS-51 单片机共有 4 个 8 位并行 I/O 端口,共 32 个可编程 I/O 引脚。――――_____________13 4.单片机最小系统 .4.1 单片机最小系统介绍单片机最小系统主要由电源、复位、振荡电路以及扩展部分等部分组成。最 小系统原理图如图 4.1 所示。图 4.1 最小系统电路图 4.1.1 电源供电模块 电源供电模块图 4.1.1 电源模块电路图14 对于一个完整的电子设计来讲,首要问题就是为整个系统提供电源供电模 块,电源模块的稳定可靠是系统平稳运行的前提和基础。51 单片机虽然使用时 间最早、应用范围最广,但是在实际使用过程中,一个和典型的问题就是相比其 他系列的单片机,51 单片机更容易受到干扰而出现程序跑飞的现象,克服这种 现象出现的一个重要手段就是为单片机系统配置一个稳定可靠的电源供电模块。 此最小系统中的电源供电模块的电源可以通过计算机的 USB 口供给,也可 使用外部稳定的 5V 电源供电模块供给。电源电路中接入了电源指示 LED,图中 R11 为 LED 的限流电阻。S1 为电源开关。 4.1.2 复位电路图 4.1.2 复位电路图 单片机的置位和复位, 都是为了把电路初始化到一个确定的状态, 一般来说, 单片机复位电路作用是把一个例如状态机初始化到空状态,而在单片机内部,复 位的时候单片机是把一些寄存器以及存储设备装入厂商预设的一个值。 单片机复位电路原理是在单片机的复位引脚 RST 上外接电阻和电容,实现 上电复位。当复位电平持续两个机器周期以上时复位有效。复位电平的持续时间 必须大于单片机的两个机器周期。具体数值可以由 RC 电路计算出时间常数。 复位电路由按键复位和上电复位两部分组成。 (1)上电复位:STC89 系列单片及为高电平复位,通常在复位引脚 RST 上 上电复位: 上电复位 连接一个电容到 VCC,再连接一个电阻到 GND,由此形成一个 RC 充放电回路 保证单片机在上电时 RST 脚上有足够时间的高电平进行复位,随后回归到低电 平进入正常工作状态,这个电阻和电容的典型值为 10K 和 10uF。 (2)按键复位 按键复位:按键复位就是在复位电容上并联一个开关,当开关按下时 按键复位15 电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高 电平来使单片机复位。 4.1.3 振荡电路图4.1.3 振荡电路图 单片机系统里都有晶振,在单片机系统里晶振作用非常大,全程叫晶体振荡 器,他结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟 频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单 片机晶振提供的时钟频率。 在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。高级的精 度更高。有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器 (VCO)。晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作, 以提供稳定,精确的单频振荡。 单片机晶振的作用是为系统提供基本的时钟信号。 通常一个系统共用一个晶 振,便于各部分保持同步。有些通讯系统的基频和射频使用不同的晶振,而通过 电子调整频率的方法保持同步。 晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率。如果不同子 系统需要不同频率的时钟信号,可以用与同一个晶振相连的不同锁相环来提供。 STC89C51使用11.0592MHz的晶体振荡器作为振荡源,由于单片机内部带有 振荡电路,所以外部只要连接一个晶振和两个电容即可,电容容量一般在15pF 至50pF之间。16 4.2 单片机最小系统扩展部分4.2.1 LED 电路图 4.2.1 LED 电路图 图 4.2.1 中主要元件有 1K 的排阻、LED、 。1K 的排阻为每个 LED 的限流电 阻。此最小系统提供了 8 个独立 LED,由 P1 口控制,采用共阳级接法所以只有 当 P1 口输出低电平时 LED 才会点亮。17 时间间隔为 1000ms 的循环左移流水灯参考程序。 循环左 流水灯参考程序。 参考程序 #include &reg51.h& #include &intrins.h& unsigned char a,b,k,j,x; void delayms(uint x) { for(a=x;a&0;a--) for(b=110;b&0;b--); } void main() { k=0 while(1) { P1=k; delayms(1000); j=_crol_(k,1); k=j; P1=j; } }18 4.2.2 蜂鸣器电路图 4.2.2 蜂鸣器电路图 图4.2.2中蜂鸣器使用的是PNP三极管进行驱动控制的,此蜂鸣器为电磁式有 源蜂鸣器。三极管的集电极通过蜂鸣器接5V电源,基极是控制端,发射极接地, 当单片机的P2.3输出低电平时,三极管导通,蜂鸣器发声。蜂鸣器为感性原件, 也可以在两端并接一个二极管来起到泄放作用。19 控制蜂鸣器发出滴滴声的参考程序。 控制蜂鸣器发出滴滴声的参考程序。 #include &reg51.h& unsigned char a,b; sbit beep=P2^3; void delayms(uint x) { for(a=x;a&0;a--) for(b=110;b&0;b--); } void main() { while(1) { delayms(100); beep=0; delayms(100); beep=1; } }20 4.2.3 系统的数码管电路图 4.2.3 数码管电路图 如图 4.2.3 所示,多位数码管的“位选”是可以独立控制的,而“段选”是连接 在一起的,可以用作数码管的动态显示和静态显示。图 4.2.3 中所示的数码管全 部为共阴极的数码管。74HC573 为所存器,利用单片机可以控制所存器的所存21 端,进而控制锁存器的数据输出,利用分时控制的方法可以方便地控制任意数码 管显示任意数字。 秒的计数器。 使用软件延时实现 0~59 秒的计数器。 #include&reg51.h& #define uchar unsigned char uchar j,k,i,a,A1,A2, sbit dula=P2^6; sbit wela=P2^7; uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void delay(uchar i) { for(j=i;j&0;j--) for(k=125;k&0;k--); }void display(uchar sh_c,uchar g_c) { dula=0; P0=table[sh_c]; dula=1; dula=0; wela=0; P0=0 wela=1; wela=0; delay(5); P0=table[g_c]; dula=1;22 dula=0; P0=0 wela=1; wela=0; delay(5); }void main() { while(1) { second++; if(second==60) second=0; A1=second/10; A2=second%10; for(a=50;a&0;a--) { display(A1,A2);}; } }23 4.2.4 系统的键盘电路图 4.2.4 独立和矩阵键盘电路图 图 4.2.4 中 S2-S3 为 4 个独立按键,与单片机的 P3.4-P3.7 分别相连。 独立键盘与单片机相连时,每个按键都需要单片机的一个 I/O 口,若按键较 多时,占用的 I/O 口资源就会过多,为此就引入了矩阵键盘。图 4.2.4 中是将 16 个按键排成 4 行 4 列,这样一共有 8 根线,节省了 8 个 I/O 口。S6-S21 即为 16 个矩阵键盘,8 条线分别与单片机飞 P3 口相连。24 (1)单键识别参考程序 单键识别参考程序 单键识别 下移一位。 每按一次 S2,P1 口的 LED 下移一位。 , #include &reg52.h& sbit BY1=P3^4; unsigned char a,b; void delay10ms(void) { unsigned char i,j; for(i=20;i&0;i--) for(j=248;j&0;j--); } key() { if(BY1==0) { delay10ms(); if(BY1==0) { count++; if(count==8) { count=0; } } while(BY1==0); } } move()25 { a=temp&& b=temp&&(8-count); P1=a|b; }main() { count=0; temp=0 P1=0 P1= while(1) { key(); move(); } } (2)矩阵键盘识别 ) 依次按下键盘上的 S6~S21,同时在数码管上显示 0~F。 , 。 #include&reg51.h& sbit beep=P2^3; sbit dula=P2^6; sbit wela=P2^7; unsigned char i=100; unsigned char j,k,temp, void delay(unsigned char i) { for(j=i;j&0;j--) for(k=125;k&0;k--);26 } unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; display(unsigned char num) { P0=table[num]; dula=1; dula=0; P0=0xc0; wela=1; wela=0; } void main() { dula=0; wela=0; while(1) { P3=0 temp=P3; temp=temp&0xf0; if(temp!=0xf0) { delay(10); if(temp!=0xf0) { temp=P3; switch(temp) { case 0xee:27 key=0;case 0xde: key=1;case 0xbe: key=2;case 0x7e: key=3; } while(temp!=0xf0) { temp=P3; temp=temp&0xf0; beep=0; } beep=1; display(key); P1=0 } } P3=0 temp=P3; temp=temp&0xf0; if(temp!=0xf0)28 { delay(10); if(temp!=0xf0) { temp=P3; switch(temp) { case 0xed: key=4;case 0xdd: key=5;case 0xbd: key=6;case 0x7d: key=7; } while(temp!=0xf0) { temp=P3; temp=temp&0xf0; beep=0; } beep=1;29 display(key); P1=0 } } P3=0 temp=P3; temp=temp&0xf0; if(temp!=0xf0) { delay(10); if(temp!=0xf0) { temp=P3; switch(temp) { case 0xeb: key=8;case 0xdb: key=9;case 0xbb: key=10;case 0x7b: key=11;30 } while(temp!=0xf0) { temp=P3; temp=temp&0xf0; beep=0; } beep=1; display(key); P1=0xf8; } } P3=0xf7; temp=P3; temp=temp&0xf0; if(temp!=0xf0) { delay(10); if(temp!=0xf0) { temp=P3; switch(temp) { case 0xe7: key=12;case 0xd7: key=13;31 case 0xb7: key=14;case 0x77: key=15; } while(temp!=0xf0) { temp=P3; temp=temp&0xf0; beep=0; } beep=1; display(key); P1=0xf0; } } } }32 4.2.5 A/D 电路图 4.2.5 A/D 电路图 集成 A/D 转换器品种繁多,一般选用逐次比较型 A/D 转换器,图 4.2.6 中的 ADC0804 就是这类单片集成 A/D 转换器。它采用 CMOS 工艺 20 引脚的集成芯 片,分辨率为 8 位,转换时间为 100us,输入电压范围为 0-5V。芯片内具有三态 输出数据锁存器,可以直接连接数据总线上。图 1.3.7 为 ADC0804 双列直插式 封装引脚分布图。图 4.2.6 ADC0804 引脚分布图33 (1)引脚名称及作用: )引脚名称及作用: IN+,IN-:模拟信号输入端,用以接收单极性、双极性和差模输入信号。 , : DB0~DB7:具有三态特性数字信号输出口。 : ANLG GND:模拟信号地。 : DGTL GND:数字信号地。 : CLK IN:时钟信号输入端。 : CLK OUT:内部时钟信号发生器的外接电阻端,与 CLK IN 配合可由芯片 : 自身产生时钟脉冲,其频率为 1/(1.1RC)。 CS:片选信号输入端,低电平有效,一旦CS有效,表明 A/D 转换器被选中, 可启动工作。 WR:写信号输入,低电平启动 A/D 转换。 RD:读信号输入,低电平输出端有效。 INTR:A/D 转换结束信号,低电平表示本次转换已完成。 VREF/2:参考电平输入,决定量化单位。 : Vcc:芯片电源输入。 : ADC0804 的片选端 CS 与单片机的 P0.7 相连;DB0~DB7 分别与单片机的 P1 口相连;IN+接电位器的中间滑动端,IN-接地,Re2 是为了防止 VI+输入端的 电流过大而烧坏 A/D 芯片;CLK IN、CLK OUT、GND 之间的电阻和电容组成 RC 振荡电路,用来给 ADC0804 提供工作所需的脉冲;VREF/2 端用两个 1K 的 电阻分压得到 Vcc/2 电压,该电压作为 A/D 芯片工作是内部的参考电压;WR、 RD分别接单片机的 P3.6 和 P3.7 引脚;AGND 和 DGND 同时接地。――― ―――― ――――― ――― ―――― ――― ―――34 (2) )输入 0~5V 电压, ADC0804 转换在数码管上以十进制数显示出来的参考 电压,经 程序。 程序。 #include&reg51.h& #include &intrins.h& #define uint unsigned int #define uchar unsigned char sbit adrd=P3^7; sbit adwr=P3^6; sbit diola=P2^5; sbit dula=P2^6; sbit wela=P2^7; unsigned char j,k, void delay(unsigned char i) { for(j=i;j&0;j--) for(k=125;k&0;k--); } uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; void display(uchar bai_c,uchar sh_c,uchar g_c) { P0=table[bai_c]; dula=1; dula=0; P0=0 wela=1; wela=0; delay(5); dula=0; P0=table[sh_c];35 dula=1; dula=0; wela=0; P0=0 wela=1; wela=0; delay(5); P0=table[g_c]; dula=1; dula=0; P0=0 wela=1; wela=0; delay(5); } void main() { uchar a,A1,A2,A2t,A3; while(1) { wela=1; P0=0; adwr=0; _nop_(); adwr=1; P0=0 delay(10); wela=0; for(a=20;a&0;a--) {36 display(A1,A2,A3); } wela=1; P1=0 P0=0; adrd=0; adval=P1; adrd=1; P0=0 adwr=0; P1= A1=adval/100; A2t=adval%100; A2=A2t/10; A3=A2t%10; }; }4.2.6 D/A 电路37 图 4.2.7 D/A 电路图 DAC0832 是使用非常普遍的 8 位 D/A 转换器,转换时间为 1us,工作电压 为+5V~+15V,基准电压为正负 10V。它主要由两个 8 位寄存器和一个 8 位 D/A 转换器组成。其片内有输入数据缓冲器,可以直接与单片机接口。DAC0832 一 电流形式输出,需要转换为电压输出时,可外接运算放大器。DAC0832 芯片为 20 脚双列直插式封装,其引脚分布图如图 4.2.8 所示。38 图 4.2.8 DAC0832 引脚分布图 (1)引脚名称及作用: )引脚名称及作用: CS:片选信号输入端,低电平有效。 WR1:输入寄存器的写选通输入端,负脉冲有效。当 CS 为 0,ILE 为 1, WR1 有效时 DI0~DI7 状态被锁存到输入寄存器。 DI0~DI7:数据输入端,TTl 电平,有效时间应大于 90ns。 : 、 VREF:基准电压输入端,电压范围为-10V~+10V。 : Rfb:反馈电阻端,芯片内部此端与 IOUT1 接有一个 15K 的电阻。 : IOUT1:电流输出端,当输入全为 1 时,其电流最大。 : IOUT2:电流输出端,其值与 IOUT1 端电流之和为一常数。 : XFER:数据传输控制信号输入端,低电平有效。 WR2:DAC 寄存器的写选通输入端,负脉冲有效。当XEFR为 0 且WR2有 效时,输入寄存器的状态被转到 DAC 寄存器中。 ILE:数据锁存允许信号输入端,高电平有效。 : Vcc:电源电压端,电压范围+5V~+15V。 : GND:模拟地和数字地。 : 当 DAC0832 芯片的片选信号、写信号及传送控制信号的引进全部接地,允 许输入锁存信号 ILE 引脚接+5V时,DAC0832 芯片处于直通工作方式,数字 量一旦输入,就直接进入 D/A 寄存器,进行 D/A 转换。此时若让芯片连续转换 的话,只需连续改变数字输入端的数字信号即可。__________ ___________ _________ ____________ __________ _____39 (2)控制 DAC0832 输出锯齿波,让发光二极管由暗到亮变化。 ) 输出锯齿波,让发光二极管由暗到亮变化。 #include&reg51.h& sbit wela=P2^7; sbit dula=P2^6; sbit dawr=P3^6; sbit csda=P3^2; unsigned char a,j,k; void delay(unsigned char i) { for(j=i;j&0;j--) for(k=125;k&0;k--); } void main() { wela=0; dula=0; csda=0; a=0; dawr=0; while(1) {P0=a; delay(50); a++; } }40 4.2.7 系统串行通信电路 系统串行通信电路图 4.2.9 串行通信电路图 RS232 串口电路使用 MAX232 作为电平转换芯片,可以通过串口电缆连接 到计算机背后的 COM 口,用于单片机与上位机通信以及和其他串口设备的数据 交互。 MAX232 芯片是 MAXIM 公司生产的、包含两路接收器和驱动器的芯片, 它的内部有一个电源电压变换器,可以把输入+5V 的电压变换成 RS-232 输出电 平所需的+10V 电压。 MAX232 芯片引脚结构如图 4.2.10 所示。41 图 4.2.10 MAX232 芯片引脚结构图 数据传输过程: MAX232 的 11 脚 T1IN 接单片机的 TXD 端 P3.1, TTLdiaper (1) ) 数据传输过程: 从单片机的 TXD 端发出, 经过 MAX232 转换为 RS232 电平后从 MAX232 的 14 脚 T1OUT 发出,再经过交叉串口线连接到计算机 RXD 端,计算机手段数据。 PC 机发送数据时从 PC 机串口的 TXD 端发出数据,再逆向流向单片机的 RXD 端 P3.0 接收数据。 (2)用串口调试助手向单片机发送 16 进制数 01,单片机接收后将数据原样返 )用串口调试助手向单片机发送 , 回给计算机,并在串口调试助手的接收框内显示的参考程序。 回给计算机,并在串口调试助手的接收框内显示的参考程序。 #include&reg52.h& #define uchar unsigned char uchar a, void main() { TMOD=0x20; TH1=0 TL1=0 TR1=1; SM0=0; SM1=1; REN=1;42 EA=1; ES=1; PCON=0x80; while(1) { if(flag==1) { ES=0; flag=0; SBUF=a; while(!TI); TI=0; ES=1; } } }void serial() interrupt 4 { P1=SBUF; a=SBUF; flag=1; RI=0; }43 5.USB 转 TTL 电路 .5.1 USB 转 TTL 电路介绍图 5.1.1 USB 转 TTL 电路图 图 5.1.1 为 USB 下载器的电路图, 它能直接将程序代码转换成单片机所需的 TTL 电平,并通过单片机的 RXD 和 TXD 对单片机进行通信、下载程序等。 在没有串口的情况下,可以使用图 5.1.1 中所示的 USB 转 TTL 电路对单片 机进行程序下载,如图所示,此电路的转换芯片使用的是 PL2303 的芯片,只要 在计算机中安装好对应的驱动程序, 就可以直接通过 USB 接口进行下载。 5.1.2 图 为 PL2303 的引脚分布图。44 图 5.1.2 PL2303 的引脚分布图 引脚名称及作用: 引脚名称及作用: TXD:数据输出到串口; : DTR_N:数据终端准备好,低电平有效; : RST_N:输出发送请求,低电平有效; : VDD_232: 电源 RS-232 供电电源,RS-232 输出信号(PIN1 ~ PIN3)为 : 5V电平,可以在3V 和3.3V 电源下操作,VDD_232 必须与RS-232 接口使用同 一电源(RS-232 输入电平应在3 ~ 5 之间); RXD:串口数据输入; : RI_N:振铃指示,低电平有效; : GND:电源地; : VDD:电源正端; : DSR_N:数据设备准备好,低电平有效; : DCD_N:数据传送检测,低电平有效; : CTS_N:清除发送,低电平有效; : SHTD_N:关闭 RS-232 收发器; : EE_CLK:在复位期间这个引脚用于仿真,在正常操作期间,这个脚 :45 是串行ROM 的时钟; EE_DATA:串行 ROM 数据信号; : DP:USB DPLUS 信号; : DM:USB DMINUS 信号; : VDD_3V3:USB收发器3.3V 电源; : GND_3V3:电源地; : RESET:系统复位; : VDD:电源正端; : GND:电源地; : TRI_STATE:端口状态,此引脚在复位后被采样,当为高电平时,RS-232 : 输出在休眠期间停止工作,当为低电平时,RS-232 输出tri-state 在休眠期间; LD_MD/SHTD:负载设置/掉电指示.此引脚在复位期间为输入采样,用220K 上 拉电阻用于指示重型USB 设备(500mA),220K电阻接地指示轻型负载,复位 后,此引脚变成输出,输出负的SHTD_N 信号; VDD_PLL:PLL电源供应5V; : GND_PLL:PLL电源地; : PLL_TEST:PLL测试模式设置; : OSC1:震荡器输入; : OSC2:震荡器输出。 :46 6.工具软件介绍 .工具软件介绍6.1 Keil C51 软件介绍MCS-51 单片机的开发除了需要硬件的支持以外,同样离不开软件。CPU 真 正可以执行的是机器码,用汇编语言或 C 语言等高级语言编写的源程序必须转 换为机器代码才能运行,转换的方法有手工汇编和机器汇编两种,前者目前已经 极少使用。机器汇编是指通过汇编软件将源程序变为机器码的编译方法。这种汇 编软件称为编译器。 6.1.1 Keil C51 概述 用于 MCS-51 单片机的汇编软件有早期的 A51, 随着单片机开发技术的不断 发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不 断发展,Keil 软件是目前最流行开发 MCS-51 系列单片机的软件,这从近年来各 仿真机厂商纷纷宣布全面支持 Keil 即可看出。 Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开 发系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的 优势,因而易学易用。用过汇编语言后再使用 C 来开发,体会更加深刻。 Keil C51 软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows 界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会 到 Keil C51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑, 容易理解。在开发大型软件时更能体现高级语言的优势。 6.1.2 Keil ?Vision2 集成开发环境介绍Keil ?Vision2 是一个集成开发环境(Intergrated Development Environment,IDE) ,它包 括 C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方 案,通过一个集成开发环境将这些部份组合在一起。它可以用于编写、调试和软件仿真所有 的 51 内核控制器,也可以和 IDE 连接进行芯片的在线调试。47
赞助商链接
本次课程是对毕业设计的基础设计,即实现 4x4 键盘...三相步 进电机,7 段 LED 数码管等一些电路模块...四、电路设计 1.单片机最小系统 单片机最小系统由...制作数码管显示电路,矩阵键盘 电路,单片机最小系统...图 8 矩阵键盘电路 3.8 数码管显示电路 LED(Light...单片机系统设计与实例分析.[M].西安:西安电子科技...本次课程是对毕业设计的基础设计,即实现 4x4 键盘...三相步 进电机,7 段 LED 数码管等一些电路模块...四、电路设计 1.单片机最小系统 单片机最小系统由...本次课程设计包括 STC89S52 单片机最小系统、4×4 矩阵键盘、独立 6 个 8 段 LED 数码管显示电路以及串口通信。其中单片机最小系统包括单片机、晶振电路、复位...单片机矩阵键盘毕业设计摘要 矩阵式键盘乃是目前使用较为广泛的一种键盘模式,该系统以 N 个端口连接 控制 N*N 个按键,即时在 LED 数码管上。单片机控制的据这...矩阵键盘接口设计 2.2.4 LED 显示器 2.2.5 ...单片机最小系统中应用到的芯片、外设及接口电路等。...数码管显示模块和键盘输入模块,并将软件设计和外围...本次最小系统的设计包括的外围模块有: 复位电路, 振荡电路, 四位共阴数码管, 1602 和 12864 液晶,I2C 总线(AT24C08) ,独立按键,温度传感器,矩阵键盘, 模数...和时钟电路)及供电系统、4×4 矩阵键盘、独立 4 个 8 段 LED 数码管显示...本次设计是对单片机最小系统的设计,通过进一步扩展可做成单 片机开发板。 1 ...基于STC8952 单片机最小系统设计报告 The smallest system...三位共阴数码管, 1602,独立按键,矩阵键盘, 7805 稳压...电源指示模块 电电电电 GND 2 LED 1 R9 VCC...本次课程设计包括 AT89S52 单片机最小系统(包括复位和时钟电路) 及供电系统、4×4 矩阵键盘、独立 4 个 8 段 LED 数码管显示电路。利用 Protel 电路设计软件...
All rights reserved Powered by
www.tceic.com
copyright &copyright 。文档资料库内容来自网络,如有侵犯请联系客服。}

我要回帖

更多关于 单片机键盘扫描 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信