AT89S51(52)单片机最小系统设计
51单片机最小系统
51单片机最小系统在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位。
所以可以通过按键的断开和闭合在运行的系统中控制其复位。
开机的时候为什么为复位?在电路图中,电容的的大小是10uF,电阻的大小是10k。
所以根据公式,可以算出电容充电到电源电压的0.7倍(单片机的电源是5V,所以充电到0.7倍即为3.5V),需要的时间是10K*10UF=0.1S。
也就是说在电脑启动的0.1S内,电容两端的电压时在0~3.5V增加。
这个时候10K电阻两端的电压为从5~1.5V减少(串联电路各处电压之和为总电压)。
所以在0.1S内,RST引脚所接收到的电压是5V~1.5V。
在5V正常工作的51单片机中小于1.5V的电压信号为低电平信号,而大于1.5V的电压信号为高电平信号。
所以在开机0.1S 内,单片机系统自动复位(RST引脚接收到的高电平信号时间为0.1S左右)。
按键按下的时候为什么会复位?在单片机启动0.1S后,电容C两端的电压持续充电为5V,这是时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。
当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。
随着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小。
根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。
单片机系统自动复位。
总结:1、复位电路的原理是单片机RST引脚接收到2US以上的电平信号,只要保证电容的充放电时间大于2US,即可实现复位,所以电路中的电容值是可以改变的。
2、按键按下系统复位,是电容处于一个短路电路中,释放了所有的电能,电阻两端的电压增加引起的。
51单片机最小系统电路介绍1.51单片机最小系统复位电路的极性电容C1的大小直接影响单片机的复位时间,一般采用10~30uF,51单片机最小系统容值越大需要的复位时间越短。
四位电子密码锁.
专业工程设计说明书题目:4位电子密码锁设计院(系):电子工程与自动化学院专业:测控技术与仪器(卓越)学生姓名:***学号:**********指导教师:**2015年1月16日锁是置于可启闭的器物上,用以关住某个确定的空间范围或某种器具的,必须以钥匙或暗码打开的扣件。
锁具发展到现在已有若干年的历史了,人们对它的结构、机理也研究得很透彻。
随着社会科技的进步,锁已发展到了密码锁、磁性锁、电子锁、激光锁、声控锁等等。
当今安全信息系统应用越来越广泛,特别在保护机密、维护隐私和财产保护方面起到重大作用,而基于电子密码锁的安全系统是其中的组成部分,因此研究它具有重大的现实意义。
本设计由主控芯片51单片机,单片机时钟电路,矩阵键盘,数码管的动态显示,报警电路和开锁电路组成。
单片负责控制整个系统的执行过程。
关键词:AT89S51、时钟电路、矩阵键盘、数码管的动态显示、报警电路,开锁电路。
引言 (1)1课程设计题目 (1)2 系统设计 (2)2.1 总的系统设计结构图 (2)2.2系统硬件设计 (2)3 AT89S52最小系统设计 (3)3.1 时钟电路设计 (3)3.2 复位电路设计 (4)4 键盘及显示报警电路的硬件设计 (5)4.1 矩阵键盘电路设计 (5)4.2 显示电路硬件设计 (5)4.3 继电器驱动电路及报警电路设计 (6)4.3.1继电器简介 (6)4.3.2 固态继电器驱动电路设计 (7)4.3.3报警提示电路 (7)5 系统软件设计 (8)5.1主程序模块 (9)5.2密码比较判断模块 (9)5.3键盘扫描模块 (9)5.4修改密码模块 (10)5.5数码管液晶显示模块 (11)6 总体调试 (11)7 总结 (12)参考文献 (13)附录 (14)引言通过本次课设的理解与掌握:1、熟悉掌握单片机的结构及工作原理,锻炼独立设计、制作和调试单片机应用系统的软硬件开发的过程和方法。
2、通过MCS-51单片机应用系统的设计与编程应用,将理论知识和实际应用结合起来,加深对电子电路、电子元器件、印刷电路板等方面的知识,提高在软件编程、排错调试、焊接技术、相关设备的使用技能。
基于AT89S51单片机的智能电热水器的设计--毕业设计
毕业设计基于AT89S51单片机的智能电热水器的设计摘要本设计采用ATEML公司生产的AT89S51单片机为核心来设计智能电热水器。
本设计也对单片机控制电热水器实现智能化的可能性进行了分析,利用温度传感器、水位检测装置、及模数转换器等来完成本设计。
在硬件设计方面,主要对单片机最小系统及其扩展、电源电路、键盘显示及接口电路、模数转换电路、水位及水温检测电路、报警电路进行了详细介绍。
还详细介绍了设计中应用到的主要芯片的性能和特点,包括AT89S51、74LS377、DS18B20、ADC0809等。
在软件设计方面,采用汇编语言编程,是由于其易于为单片机所识别,执行速度快。
最后对软件调试进行了误差分析。
该智能电热水器设计完善,实现方案简单易行。
采用软件设计来控制,可以实现智能检测水位及水温,智能加热,并且提高了整机的可靠性及准确性。
关键词:单片机,控制,智能ABSTRACTAs technology make a good progress, the applications of single-chip microcomputer become mature all the time. The single-chip microcomputer integrates the various components in a chip, uses the internal bus structure, reduces the connection in different chips, enhanced greatly the reliability and anti-jamming capability. In the development of single-chip microcomputer, due to its excellent cost performance, high integration, small size, high reliability, it has been used as a control center all the time.Since the birth of single-chip microcomputer, it began to walk into a human’s life, such as washing machines, refrigerators, electronic toys, DMB, which equipped with the single-chip microcomputer, and improved their intelligence, ability. People, who used them, will love them better. The single-chip microcomputer makes human’s life more convenient, comfortable and colorful. As a result, I use single-chip microcomputer to design intelligent electric water heaters.This paper mainly discusses the intelligent electric water heater how to work. To achieve system goals, in deep analysis of the AT89S51, I made a set of simple and practical control system design. The system is mainly to use single-chip microcomputer to control centers, with specific hardware architecture and the corresponding software design, thus the intelligence of the water heater would become true.Keywords: single-chip microcomputer, controller, intelligence目录第1章绪论 ·······················································································1.1 选题的背景、目的及意义 ·······························································1.2 国内外的研究状况和成果 ·······························································1.3 研究设想和实验设计 ·····································································第2章硬件系统设计 ·········································································2.1 方案验证 ····················································································2.2 硬件系统设计 ··············································································2.2.1 电源电路 ···········································································2.2.2 键盘/显示接口电路······························································2.2.5 报警电路 ···········································································2.2.6 模数转换电路 ·····································································2.2.7 温度检测电路 ·····································································2.2.8 水位检测电路 ·····································································2.2.9 AT89S51功能及特性介绍·······················································第3章软件系统设计 ·········································································3.1 主程序流程框图 ·····································································3.2 键扫描子程序流程框图 ····························································3.3 显示子程序流程框图 ·······························································3.4 运行程序流程框图 ··································································3.5 软件仿真 ··············································································结论······································································································参考文献 ······························································································致谢······································································································附录1程序清单····················································································附录2 电源电路原理图·········································································附录3智能电热水器原理图主要符号表附录3英文翻译附录4 中文资料第1章绪论1.1 选题的背景、目的及意义据不完全统计,我市城镇居民家庭以电热水器为主,占总量的60%以上;从前风光无限的燃气热水器渐渐地黯然失色,市场份额仅剩不足20%;新兴的太阳能热水器虽然受到安装条件的限制,但其安全、环保的性能广受消费者青睐,发展态势迅猛,市场占有率已达到15%左右。
用单片机设计的电子琴,AT89S51
1.实验任务(1).由4X4组成16个按钮矩阵,设计成16个音。
(2).可随意弹奏想要表达的音乐。
2.电路原理图3.系统板硬件连线(1).把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上;(2).把“单片机系统“区域中的P3.0-P3.7端口用8芯排线连接到“4X4行列式键盘”区域中的C1-C4R1-R4端口上;4.相关程序内容(1).4X4行列式键盘识别;(2).音乐产生的方法;一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。
现在以单片机12MHz晶振为例,例出高中低音符与单片机计数T0相关的计数值如下表所示音符频率(HZ)简谱码(T值)音符频率(HZ)简谱码(T值)低1 DO 262 63628 # 4 FA# 740 64860#1 DO# 277 63731 中 5 SO 784 64898低2 RE 294 63835 # 5 SO# 831 64934#2 RE# 311 63928 中 6 LA 880 64968低 3 M 330 64021 # 6 932 64994低 4 FA 349 64103 中 7 SI 988 65030# 4 FA# 370 64185 高 1 DO 1046 65058低 5 SO 392 64260 # 1 DO# 1109 65085# 5 SO# 415 64331 高 2 RE 1175 65110低 6 LA 440 64400 # 2 RE# 1245 65134# 6 466 64463 高 3 M 1318 65157低 7 SI 494 64524 高 4 FA 1397 65178中 1 DO 523 64580 # 4 FA# 1480 65198# 1 DO# 554 64633 高 5 SO 1568 65217中 2 RE 587 64684 # 5 SO# 1661 65235# 2 RE# 622 64732 高 6 LA 1760 65252中 3 M 659 64777 # 6 1865 65268中 4 FA 698 64820 高 7 SI 1967 65283下面我们要为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据低音0-19之间,中音在20-39之间,高音在40-59之间TABLE: DW 0,63628,63835,64021,64103,64260,64400,64524,0,0DW 0,63731,63928,0,64185,64331,64463,0,0,0DW 0,64580,64684,64777,64820,64898,64968,65030,0,0DW 0,64633,64732,0,64860,64934,64994,0,0,0DW 0,65058,65110,65157,65178,65217,65252,65283,0,0DW 0,65085,65134,0,65198,65235,65268,0,0,0DW 02、音乐的音拍,一个节拍为单位(C调)曲调值DELAY 曲调值DELAY调4/4 125ms 调4/4 62ms调3/4 187ms 调3/4 94ms调2/4 250ms 调2/4 125ms对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。
单片机最小系统
1.4单片机最小系统设计单片机加上适当的外围器件和应用程序,构成的应用系统称为最小系统;是组成单片机系统最基本的部分。
最小系统硬件组成:单片机芯片、电源电路、时钟电路、复位电路。
1)单片机芯片AT89S51/52系列单片机是比较流行的51单片机之一,它支持ISP在线编程功能(改写单片机存储器内的程序不需要把芯片从工作环境中脱离)。
AT89S52单片机芯片及IC座如图1-4所示。
实验过程中,单片机芯片最好插在IC座上,注意芯片的方向。
焊接的时候单片机不要插在IC座上,先焊好IC 座,当电路全部完成后再上芯片。
图1-4 单片机芯片及IC座2)电源电路Vcc(40脚), GND(20脚)AT89S* 系列单片机工作电源范围宽达4~5.5V。
单片机的供电有两种方式:①集成稳压电源方式;②USB供电。
①集成稳压电源方式;利用变压器、整流、滤波、稳压自制电源,如图1-5所示。
图1-5 稳压电源电路图1-8 电源适配器稳压电路焊接效果图2)时钟电路产生一个工作时序,其工作需要时钟电路提供一个工作频率。
时钟电路原理图如图1-10所示。
1)振荡频率范围:1.2MHz~12MHz。
2)电容C1和C2选择:10~30pF图1-10时钟电路原理图注意:晶体和电容应尽可能安装在单片机芯片附近,以减少寄生电容,保证振荡器稳定和可靠工作。
电容是为了更好地提高晶振电路的时钟精度。
3)复位电路复位使单片机进入某种确定的初始状态。
退出处于节电工作方式的停顿状态、退出一切程序进程、退出程序的死循环,从头开始。
上电+按钮复位电路如图1-11所示。
注意:电解电容器的极性,长脚为正。
图1-11 复位电路根据上面原理设计的单片机最小系统如图1-12所示。
图1-12单片机最小系统注意:①如果不扩展外部ROM,使用单片机内部的ROM,31脚/EA需接电源(+5V)。
3.1单片机最小系统设计3.1.1 AT89S52简介本设计采用ATMEL公司的8位单片机AT89S52,AT89S52片内含8k字节的可反复擦写的只读Flash程序存储器和256字节的随机存取数据存储器(RAM)。
基于单片机的电子密码锁毕业论文设计
本科毕业设计(论文)题目基于单片机的电子密码锁设计院(系部)河北大学专业名称电子信息工程年级班级学生姓名指导教师2011年月日摘要本课题设计了一种基于单片机的数字电子密码锁,这种数字电子密码锁以单片机作为数据处理主控芯片。
电子密码锁的设计主要由四部分组成:4×4矩阵键盘接口电路、以AT89S52芯片为核心的密码锁的数据处理及控制电路、掉电情况下依然能保存密码的EEPROM存储器芯片,输出七段显示电路。
另外系统还有LED提示灯,报警蜂鸣器,单片机复位电路等。
电子密码锁设计的关键问题是实现密码的输入、清除、开锁、更改等功能。
同时该密码锁具有设计方法合理,简单易行,成本低,安全实用等特点,符合住宅,办公室等场所的用锁要求,具有推广价值。
关键词单片机密码锁 4*4矩阵键盘 EEPROM存储芯片实用经济AbstractThis project designed a digital electronic lock which used a MCU as data process and control chip. The main functions digital electronic lock are as follows:The design of the electronic password lock is mainly made up of four parts: 4×4 matrix keyboard interface circuit, data processing and control circuit, eeprom memory chip that is used to keep password when the lock loses power and display circuit. In addition the system also consists of LED lights, alarm buzzers, single-chip reset circuit and so on..The key question of the electronic lock designing is the realization of functions, such as the input password, clear password, unlock, change password and other functions.And the designed cipher lock is characterized by its reasonable designing methods, simple operation, low cost and property of safety and practicality.Besides,it works well as a residence lock and has great potential for commercial development.Key words: SCM Cipher lock 4*4matrix keyboard EEPROM Practical economy目录1 绪论 (1)1.1国内外研究综述 (1)1.2选题的目的和意义 (2)1.3本论文的任务 (3)2电子密码锁总体设计 (4)2.1系统总体设计 (4)2.2单片机 (5)2.3密码存储芯片选择 (10)2.4键盘输入方案比较 (12)2.5显示方案比较 (13)3电子密码锁的硬件设计 (1)3.1系统结构框图 (1)3.2主控部分 (2)3.3显示部分 (3)3.4键盘输入部分 (4)3.5密码存储部分 (5)3.6电源部分 (5)3.7其它功能部分 (8)3.8 电子密码锁的电路原理图 (10)4电子密码锁的软件组成 (12)4.1系统软件设计流程 (12)4.2 Keil uVision2软件介绍 (13)4.3各主要部分的功能实现程序设计 (14)4.3.1初始化程序设计 (14)4.3.2按键处理程序设计 (17)4.3.3密码更改程序设计 (21)5系统仿真 (24)5.1系统仿真过程 (24)5.2仿真调试中遇到的问题及解决办法 (25)总结 (1)致谢 (2)参考文献 (3)附录 (4)1 绪论1.1国内外研究综述在电子锁出现以前人们广泛的使用机械锁,但是随着时间的推移机械锁已不能满足人们的要求,于是电子锁应用而生。
单片机最小系统的设计
单片机最小系统的设计以AT89C51单片机为例,设计一个单片机最小系统。
要求:1、功能:有按键开关、键盘进行高低电平的输入。
有数码管显示输出数字。
有LED灯显示输出的高低电平。
LCD显示输出数字和中文文字符号。
有使单片机工作的最小外围电路。
2、设计采用Keil单片机开发软件进行,在该软件上设计虚拟电路并进行仿真实现键盘、按键输入数据,在数码管、LED、LCD上显示输入内容,或运算、控制结果。
3、写出完成上述工作的全部过程。
包括软件选取、软件安装、每个功能硬件的选取和连接过程,软件的编写过程、源程序调试过程,最后附上全部工程文件和程序。
上述工作的目的:通过单片机的学习,学会基本的科研工作方法:构思、系统框图、详细设计、硬件设计、软件设计、研究工作中的记录、总结、归纳。
正反两方面的经验都要写。
方法:先建设一个WORK文档,以后每做一步写步,做完设计工作同时文档也就写完,然后对文档总结、整理、提高,这样每做完一件事,一篇可发表的论文也应完了,而不要做完了设计才来回想、写论文,时间就浪费了,很多设计过程中遇到的问题也忘了。
下面是去年同学写的内容,仅参考,不要抄,要自己写,比这个更好。
一、软件的介绍本文以AT89C51作为控制部件,同时利用LCD显示当前状态,从而实现依次按键控制LED灯亮灭的最简控制系统。
1、proteus软件的使用方法Proteus软件是Labcenter Electronics公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。
Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,以及单片机外围电路,比如键盘、LED、LCD等等。
通过Proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。
AT89S51(52)单片机最小系统设计原理详解
51最小系统设计原理1、定义:单片机最小系统是指能让单片机运行起来所需的最小器件构成的电路系统。
2、电源部分:从电脑USB接口DC5V取电,C4、C5构成USB接口电源的简单滤波电路。
开关电源的输出电压往往波纹较大,不像线性稳压器输出的那么稳定,所以要进行必要的滤波。
如果需要接一个电源开关,应该接在C4和C5的前面,这样在接通开关的瞬间产生的抖动能被这两个电容吸收。
3、复位电路:C1和R1构成单片机的上电自动复位电路。
A T89S51/52单片机属于高电平复位,RST管脚上需要持续两个机器周期(24个时钟周期)以上的高电平,单片机才能复位。
复位原理:上电瞬间,电源给C1充电,在R1产生压降,R1上端为高电平,RST管脚检测到高电平,单片机的各个寄存器清零或恢复初始状态,特别是PC计数器清零,程序便从头开始执行。
C1和R1常用取值:C1取10uf时R1取10k;C1取22uf时R1取4.7k;如果C1、R1取值过大或C1、R1取值过小都会引起单片机复位实践过长或过短,不利于单片机启动。
如果需要加手动复位,那就在C1两端并联一个按钮即可。
4、时钟电路:C2、C3和Y构成单片机的时钟源电路。
C2和C3是晶振Y的负载电容,过大或过小都会影响晶振的频率和幅度。
AT89S51/52单片机对晶振负载电容的取值有明确要求:在20pf到40pf之间,最佳值为30pf。
Y的取值可从1MHz到24MHz,如果用的是12MHz 的晶振,那个一个机器周期刚好就是1微妙,编程时计时很方便。
焊接时一定要注意,这三个元器件应尽量靠近单片机相应的管脚,以减少线路上寄生电容的影响。
机器周期:在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。
例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。
完成一个基本操作所需要的时间称为机器周期。
5、程序下载电路:第一种,ISP下载,10PH是AtmelISP并口下载线10p接头。
第2章 AT89S51单片机的片内硬件结构(共112张PPT)
低8位地址锁存在片外地址锁存器中。
PROG为该引脚的第二功能,在对片内Flash存储器编程时 ,此引脚作为编程脉冲输入端。
〔4〕PSEN〔Program Strobe ENable,29脚〕 片内或片外程序存储器的读选通信号,低电平有效。
13
〔2〕EA/ VPP (Enable Address/Voltage Pulse of Programing,31脚) 〔External Access Enable〕为该引脚的第一功能:外部程序存储器 访问允许控制端。
当EA=1时,在单片机片内的PC值不超出0FFFH〔即不超出片内 4KB Flash存储器的最大地址范围〕时,单片机读片内程序存储器〔 4KB〕中的程序代码,但PC值超出0FFFH〔即超出片内4KB Flash 存储器地址范围〕时,将自动转向读取片外60KB〔1000H~FFFFH 〕程序存储器中的程序代码。
双向口P0与P1口、P2口、P3口这3个准双向口相比,多了一个 高阻输入的“悬浮〞态。这是由于P0口作为数据总线使用时,多个 数据源都挂在数据总线上,当P0口不需与其他数据源打交道时,需 要与数据总线高阻“悬浮〞隔离。而准双向I/O口那么无高阻的“悬 浮〞状态。另外,准双向口作通用I/O的输入口使用时,一定要向该 口先写入“1〞。以上的准双向口与双向口的差异,在学习本章2.5节 的P0~P3口的内部结构后,将会有更深入的理解。
〔1〕电源及时钟引脚—VCC、VSS;XTAL1、XTAL2; 〔2〕控制引脚—PSEN、ALE/PROG、EA/ VPP、RST〔即RESET
〕;
〔3〕I/O口引脚—P0、P1、P2与P3,为4个8位并行I/O口的外部引脚。
摇摇棒课程设计(基于AT89S51单片机)
09通信B班单片机课程设计摇摇棒制作余丽丽09152320352011/12/10仅以此摇摇棒先给敬爱的戴在平老师,向戴老师问好。
目录摘要 (1)一、引言 (2)二、系统设计方案 (2)1.设计思路 (2)2.模块方案的论证与比较 (2)三、系统硬件设计 (3)1.总体设计 (3)2.单元电路设计 (4)四、系统软件设计 (5)1.软件设计思路 (5)2.系统流程图 (6)3.软件实现功能的完善 (6)五、结论 (7)参考文献 (8)附录 (8)附录一元器件明细表 (8)附录二系统程序 (9)附录三电路图 (12)一、引言LED显示棒,又称摇摇棒,是一种利用视觉暂留效应制作的“高科技”玩具。
可以用“静如处子,动如脱兔”来形容它,即当静止时,它只是几个LED发光二极管(后简称LED),而一旦按照一定的频率去摇晃它,它就会随着位置的变化而变化(亮或灭),最终显示一幅图片或字符串。
本设计要求制作完成一个LED的显示棒。
要求LED灯线状排列,通过摇动时形成的亮灯扇形区域能够分辨出如:“电”、“A”、五环之类的汉字或图案且可以使用按键对显示内容进行切换。
二、系统设计方案1.设计思路本系统要求设计一个LED显示棒,且需要有按键进行内容切换,它主要是由中央控制部分、LED驱动部分、LED显示部分以及电源部分组成,如图1所示:图1:LED显示棒系统框图单片机将提取的字模进行存储,当接收到按键输入的指令时单片机就将相应的字模代码通过I/O口输出,使LED点亮,利用视觉暂留原理最终使图案完整的显示在摆动的显示屏中。
本题的难点在于送数据的时间间隔以及较长画面或文字的完整显示。
以下将对各模块的方案进行论证与比较:2.模块方案的论证与比较2.1 LED灯的选择方案一:传统LED发光二极管。
颜色多样,在可以同样显示图案的前提下使用它更为经济,但是颜色较为黯淡,不鲜亮。
方案二:高亮LED发光二极管。
正如其名,它的亮度比传统二极管要亮,而且同样也有很多颜色,但是高亮LED的工作电流也要大于传统二极管。
51单片机最小系统电路图及实验
51单片机最小系统电路图及实验(含调试程序)--------------------------------------------------------------------------------51单片机最小系统电路图及实验一、任务开发单片机最小系统二、任务分析:该系统具有的功能:(1)具有2位LED数码管显示功能。
(2)具有八路发光二极管显示各种流水灯。
(3)可以完成各种奏乐,报警等发声音类实验。
(4)具有复位功能。
三、功能分析(1)两位LED数码管显示功能,我们可以利用单片机的P0口接两个数码管来现这个功能;(2)八路发光二极管显示可以利用P1口接八个发光二极管实现这个功能;(3)各种奏乐、报警等发声功能可以采用P2.0这个引脚接一蜂鸣器来实现。
(4)利用单片机的第9脚可以设计成复位系统,我们采用按键复位;利用单片机的18、19脚可以设计成时钟电路,我们利用单片机的内部振荡方式设计的。
四、设计框图五、最小系统电路图设计根据本系统的功能,和单片机的工作条件,我们设计出下面的电路图。
六、元器件件清单的确定:数码管:共阴极2只(分立)电解电容:10UF的一只30PF的电容2只220欧的电阻9只4.7K的电阻一只1.2K的电阻一只4.7K的排阻一只,12MHZ的晶振一只有源5V蜂名器一只AT89S51单片机一片常开按钮开关1只紧锁座一只(方便芯取下来的,绿色的)发光二极管(5MM红色)8只万能板电路版15*17CMS8550三极管一只4.5V电池盒一只,导线若干。
七、硬件电路的焊接按照原理图把上面的元件焊接好,详细步骤省略。
八、相关程序设计针对上面的电路原理图,设计出本系统的详细功能:(1)、第一个发光二极管点亮,同时数码管显示“1”。
(2)、第二个发光二极管点亮,同时数码管显示“2”。
(3)、依次类推到第八个发光二极管点亮,同时数码管显示“8”。
以上出现的是流水灯的效果(4)、所有的发光二极管灭了,同时数码管现实“0”。
浅析AT89S51单片机最小系统的设计与制作
浅析AT89S51单片机最小系统的设计与制作作者:杨美荣来源:《职业·中旬》2011年第04期单片机最小系统,是指用最少的元件组成以单片机为核心元件的可以正常工作具有特定功能的单片机系统,是单片机产品开发的核心电路。
下面我们设计单片机最小系统,实现的功能为八路流水灯,同时应具有上电复位和手动复位功能,并且使用单片机片内程序存储器存放用户程序。
一、原理图的设计对51系列单片机来说,单片机要正常工作,必须具有五个基本电路:电源电路、时钟电路、复位电路、程序存储器选择电路、外围电路。
因此,单片机最小系统一般应该包括单片机、晶振电路、复位电路、外围电路等。
1.电源电路单片机芯片的第40脚为正电源引脚VCC,一般外接+5V电压。
第20脚为接地引脚GND。
2.时钟电路设计单片机是一种时序电路,必须要有时钟信号才能正常工作。
芯片的18脚(XTAL2)、19脚(XTAL1)分别为片内反向放大器的输出端和输入端,只要在18脚(XTAL2)和19脚(XTAL1)之间接上一个晶振,再加上2个30PF的瓷片电容即可构成单片机所需的时钟电路。
注意,当采用外部时钟时,19脚(XTAL1)接地,18脚(XTAL2)接外部时钟信号。
3.复位电路的设计单片机芯片的第9脚RST(Reset)是复位信号输入端。
在开机或工作中因干扰而使程序失控,或工作中程序处于某种死循环状态等情况下都需要复位。
MCS-51系列单片机的复位靠外部电路实现,信号从RST引脚输入,高电平有效,只要保持RST引脚高电平2个机器周期,单片机就能正常复位。
常见的复位电路有上电复位电路和按键复位电路二种。
4.程序存储器选择电路单片机芯片的第31脚(EA)为内部与外部程序存储器选择输入端。
当EA引脚接高电平时,CPU先访问片内4KB的程序存储器,执行内部程序存储器中的指令,当程序计数器超过0FFFH时,将自动转向片外程序存储器,既是从1000H地址单元开始执行指令;当EA引脚接低电平时,不管片内是否有程序存储器,CPU只访问片外程序存储器。
基于AT89S51单片机的温度控制系统设计与实现
湖北理 工学院大学生创新项 目 项 目 编号: 1 2 c x 3 9 指 导老 师: 田嵩
塑… ~ 堡… 皇… . . 照
UJl AN CO M PUT氍R
基于 A T 8 9 S 5 1单片机 的温度控制 系统设计与 实现
鄢梦林 , 孙威 东 , 万玉盼
( 湖北理工学院计算机 学院 湖北 黄石 4 3 5 0 0 3 )
【 摘 要】 : 本文主要介绍 了一个基 于 A T 8 9 S 5 1 单片机的温度 自动控制 系统 , 详细描述 了利用温度
( 3 ) 用 液 晶进行 实 际温度 值 显示
( 4 ) 能够 根据 需 要设 定温 度
2 . 2系 统方案 比较 、 设计 与论 证
精确度较高 、 实现方便的温度测量装置 , 即温度测量
该系统主要 由温度测量和温度设置及 系统状态 方案一。 而键盘可采用 4 x 3 型。 而状态显示, 由于才用
一
、
引 言
1 、 温度 测 量
ห้องสมุดไป่ตู้目前 的智 能温 度 传 感器 f 亦称 数 字温 度 传 感 器) 是
采 用数字温度 芯片 D S 1 8 B 2 0测 量 实 际 温 度 , 输
在2 0世纪 9 0年代 中期 问世 的 ,它 是微 电子 技 术 、 计 出信 号全 数 字化 。便 于 单 片机 处 理及 控 制 , 省 去传 统 算 机 技 术 和 自动 测 试 技 术 ( A T E 1 的结晶, 特 点 是 能 输 的测温 方 法 的很 多外 围 电路 。且该 芯片 的物理 化 学性 出温度 数据 及 相 关 的温 度控 制 量 , 适 配 各种 微 控 制 器 很 稳 定 , 它 能用 做 工业 测温 元件 , 此元 件线 形较 好 。在 ( MC U ) 。社 会 的发 展使 人 们对 传 感器 的要 求也 越 来 越 0 _ - l 0 0摄 氏度 时 , 最 大 线 形 偏 差 小 于 1摄 氏度 。 高[ 1 ] , 现 在 的温 度 传 感 器 正 在 基 于 单 片机 的基 础 上 从 D S 1 8 B 2 0的最 大特 点之 一采 用 了单 总线 的数 据 传输 , 模 拟 式 向数 字 式 , 从 集 成 化 向智 能化 、 网 络化 的 方 向 由数 字温 度计 D S 1 8 B 2 0和 微 控 制器 A T 8 9 C 5 1构成 的 飞速 发展 , 并朝着高精度 、 多功 能 、 总线标准化 、 高 可 温 度 测量 装 置, 它直 接 输 出温 度 的数 字信 号, 可直 接 与 靠 性及安全性、 开 发 虚 拟 传 感 器 和 网络 传 感 器 、 研 制 计 算机 连 接 。这 样, 测温 系 统 的 结构 就 比较 简 单, 体 积 单 片测 温 系统 等 高科 技 的方 向迅速 发 展 , 本 文 将 介 绍 也 不 大 。采用 5 1单 片机 控制 , 软 件 编程 的 自由度大 , 智 能集 成 温 度 传 感 器 D S 1 8 B 2 0的 结 构特 征 及 控 制 方 可 通 过编 程 实现 各种 各 样 的算 术算 法 和逻 辑 控 制 , 而 法, 并对 以此 传感 器 , 8 9 S 5 1 单 片机 为控 制 器构 成 的数 且 体积 小 , 硬 件 实现 简单 , 安装 方 便 。既可 以单 独对 多 字 温 度 控制 装 置 的 工作 原理 及 程 序 设 计 作 了详 细 的 D S 1 8 B 2 0控 制 工作 , 还 可 以与 P C机 通信 上传 数 据 , 另
51单片机最小系统原理图
51单片机最小系统原理图51单片机是一种常用的微控制器,它具有体积小、功耗低、性能稳定等特点,因此在嵌入式系统中得到了广泛的应用。
而要搭建一个完整的嵌入式系统,首先需要设计并搭建一个最小系统,本文将介绍51单片机最小系统的原理图设计。
首先,我们需要明确51单片机最小系统的组成部分。
一个完整的最小系统包括51单片机、晶振、复位电路、电源电路、下载电路等几个基本部分。
其中,晶振是单片机工作的时钟信号源,复位电路用于单片机的复位控制,电源电路提供单片机所需的电源,下载电路用于单片机的程序下载。
其次,我们需要根据这几个基本部分设计出相应的原理图。
首先是晶振电路,一般使用的是12MHz的晶振,其原理图是将晶振的两端分别连接到单片机的晶振输入引脚和晶振输出引脚。
接下来是复位电路,复位电路一般由一个电阻和一个电容组成,其原理是通过电容的充放电来实现单片机的复位控制。
然后是电源电路,电源电路一般包括稳压电路和滤波电路,其原理是通过稳压电路将输入的电压稳定在单片机所需的工作电压范围内,并通过滤波电路去除电源中的杂波。
最后是下载电路,下载电路一般由一个串口电平转换芯片和一个串口接口组成,其原理是通过串口电平转换芯片将电脑串口的TTL电平转换成单片机所需的电平,并通过串口接口与单片机相连接。
最后,我们需要将这几个部分的原理图进行整合,设计出完整的51单片机最小系统原理图。
在设计原理图时,需要注意各个部分之间的连接关系,以及引脚的连接方式。
同时,还需要考虑到原理图的布局和美观性,尽量使得原理图清晰易懂,方便后续的调试和维护工作。
总的来说,设计51单片机最小系统原理图是搭建一个完整嵌入式系统的第一步,它直接关系到后续系统的稳定性和可靠性。
因此,在设计原理图时需要认真对待,确保各个部分的连接正确,电路设计合理,从而为后续的系统开发奠定良好的基础。
希望本文的介绍能够对大家有所帮助,谢谢阅读。
AT89S51_实验指导书
第一章单片机系统板说明一、概述单片机实验开发系统是一种多功能、高配置、高品质的MCS-51单片机教学与开发设备。
适用于大学本科单片机教学、课程设计和毕业设计。
该系统采用模块化设计思想,减小了系统面积,同时增加了可靠性,使得单片机实验开发系统能满足从简单的数字电路实验到复杂的数字系统设计实验,并能一直延伸到综合电子设计等创新性实验项目。
该系统采用集成稳压电源供电,使电源系统的稳定性大大提高,同时又具备完备的保护措施。
为适应市场上多种单片机器件的应用,该系统采用“母板+单片机板”双层结构,通过更换不同型号单片机板,可实验不同的单片机,适应了各院校不同的教学需求。
二、单片机板简介本实验系统因为自带了MCS-51单片机系统,因此没有配置其他单片机板,但可以根据教学需要随时配置。
单片机板置于母板的上方,单片机板的电源由母板供给,每一块单片机板上都引出所有I/O接口,可以很方便的完成所有实验。
因此使得单片机板可与母板配合形成一个独立的实验系统。
1、主要技术参数(1)MSC-51单片机板板上配有ATMEL公司的A T89S51芯片。
AT89S51资源:32个I/O口;封装DIP40。
AT89S51开发软件:KEIL C51。
2、MSC-51单片机结构(1)单片机板中央放置一块可插拔的DIP封装的AT89S51芯片。
(2)单片机板左上侧有一个十针插口,用于下载程序。
(3)单片机板的四周是所有I/O引脚的插孔,旁边标有I/0引脚的脚引。
(4)单片机板与母板配合使用时,可形成—个完整的实验系统。
三、母板简介主要技术参数(1)实验系统电源实验系统内置了集成稳压电源,使整个电源具有短路保护、过流保护功能,提高了实验的稳定性。
主板的右上角为电源总开关,当把220V交流电源线插入主板后,打开电源开关,主板得电工作。
为适用多种需要,配置了+5V,+12V,—5V电压供主板和外设需要,通过右上角的插针排和插孔输出到外设。
此外,还设有螺旋保险插孔保护实验箱。
基于单片机AT89S51八层电梯控制系统设计
摘要单片机即单片微型计算机,是集CPU、RAM、ROM、定时、计数和多种接口于一体的微控制器。
其中51单片机是各种单片机中最为典型和最有代表性的一种,广泛应用于各个领域.电梯是集机械原理应用、电气控制技术、微处理器技术、系统工程学等多学科和技术分支于一体的机电设备,它是建筑中的永久垂直交通工具。
本论文选择AT89S51为核心控制元件,设计了一个八层电梯系统,使用单片机汇编语言进行编程,实现运送乘客到任意楼层,并且显示电梯的楼层和上下行。
利用单片机控制电梯有成本低,通用性强,灵活性大及易于实现复杂控制等优点。
关键词:单片机、电梯、控制目录第一章硬件系统实现 (3)第1节功能模块图 (3)第2节AT89S51芯片 (3)第3节显示模块设计 (4)第4节复位开关模块 (6)第5节振荡器电路模块 (6)第6节程序下载模块 (7)第7节设计电路及连线 (8)第二章软件设计 (1)第1节软件功能描述 (1)第2节流程图设计 (1)第3节程序设计 (3)第三章系统调试 (1)第1节硬件调试 (1)第2节软件调试 (1)结论 (3)心得体会 (1)参考文献 (2)第一章硬件系统实现第1节功能模块图在本设计中需用到AT89S51芯片,1个数码管,一个蜂鸣器,复位电路,8个按键,24个发光二极管。
图1-1功能模块第2节 AT89S51芯片本设计主要采用AT89S51芯片。
AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
89s52单片机最小系统
2.3单片机最小系统
要使单片机工作起来,最基本的电路的构成为
图2-3-1 AT89S52最小工作系统
1、电源电路:
AT89S51单片机的工作电压范围:4.0V—5.5V,所以通常给单片机外接5V直流电源。
连接方式为VCC(40脚):接电源+5V端VSS(20脚):接电源地端。
本设计方案采用外接12V直流电源,然后通过使用7805稳压芯片,输出5V直流电源,给单片机及其它电路供电。
电源电路如
图2-3-2 电源系统
2、时钟电路:
单片机工作的时间基准,决定单片机工作速度。
时钟电路就是振荡电路,向单片机提供一个正弦波信号作为基准,决定单片机的执行速度。
AT89S51单片机时钟频率范围:0 — 33MHz。
时钟电路连接方式为
图2-3-3 时钟电路
3、复位电路:
确定单片机工作的起始状态,完成单片机的启动过程。
单片机接通电源时产生复位信号,完成单片机启动,确定单片机起始工作状态。
手动按键产生复位信号,完成单片机启动,确定单片机的初始状态。
通常在单片机工作出现混乱或“死机”时,使用手动复位可实现单片机“重启”。
图2-3-4 时钟电路
4、EA/VP(31脚)接+5V
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。
第2章AT89S51单片机硬件结构
冯·诺依曼型
存储器
控A制LU部)件
中央处理器 CPU
输入/输出 部件
算逻部件 (ALU)
单片机体系结构
程序存储器
数据存储器
控制部件 中央处理器
CPU
23
输入/输出 部件
哈佛型
23
AT89S51单片机存储器的结构
89S51存储器
程序存储器ROM 数据存储器RAM
片内程序存储器 片外程序存储器 片内数据存储器 片外数据存储器
每个口可以用作输入,也可以用作输出,还兼有其它复合功能。
两个可编程16位定时/计数器:
每个定时/计数器都可以设置成计数方式,用以 对 外部事件进行计数,也可以设置成定时方式,并可以根 据计数或定时的结果 实现计算机控制。
一个看门狗定时器
5
一个全双工UART的串行I/O口:
可实现单片机与单片机或其它微机之间串行通信。 UART:Universal Asynchronous Receiver/Transmitter, 通用异步接收/发送装置
EA=0 0000H
7FH
内部 RAM 128B
00H
0000H
程序存储器地址空间
数据存储器地址空间
பைடு நூலகம்26
程序存储器(ROM)
ROM用于存放程序及表格常数 ,读取 ROM的指令为 “MOVC”。
89C51片内有4KB的ROM,外部可用16位地址线扩展到 最大64KB的ROM空间。
片内ROM和外部扩展ROM是统一编址的。
由用户定义使用的标志位。用户可根据需要用软件方法置 位或复位。
16
16
PSW(程序状态字)
RS1和RS0(PSW.4 和 PSW.3 )—— 工作寄存器组选择位
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
51单片机最小系统设计制作训练单片机最小系统电路板硬件设计单片机最小系统电路板可选用AT89C51、AT89C52等DIP-40封装的单片机作为MCU。
系统包括时钟电路,复位电路,扩展了片外数据存储器和地址锁存器。
系统还设置了8个并行键盘S1~S4,S6~S9,6个共阳极LED数码管LED1~LED6。
系统无需扩展程序存储器,用户可根据系统程序大小选择片内带不同容量闪存的单片机,例如PHILIPS半导体公司推出的P89C66X Flash单片机,其片内Flash ROM容量最大可达64KB。
系统还提供基于8279的通用键盘显示电路、液晶显示模块、A/D及D/A转换等众多外围器件和设备接口。
单片机最小系统原理框图如图4.1.1所示。
最小系统电路原理图如图4.1.2所示。
LED数码管和并行键盘电路原理图如图4.1.3所示。
图4.1.1单片机最小系统原理框图图4.1.2 单片机最小系统电原理图图4.1.3 LED数码管和并行键盘电路原理图单片机时钟信电路原理图如图4.1.4所示。
在引脚XTAL1和XTAL2跨接晶振Y1和微调电容C5,C6就构成了内部振荡方式,由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。
其中Y1是可插拔更换的,默认值是12MHz。
图4.1.4 时钟源系统板采用上电自动复位和按键手动复位方式。
上电复位要求接通电源后,自动实现复位操作。
手动复位要求在电源接通的条件下,在单片机运行期间,用按钮开关操作使单片机复位。
其电路原理图如图4.1.5所示。
上电自动复位通过外部复位电容C4充电来实现。
按键手动复位是通过复位端经电阻和Vcc接通而实现的。
二极管用来防止反相放电。
图4.1.5 复位电路原理图系统板扩展了一片32K的数据存储器62256,如图4.1.6所示。
数据线D0~D7直接与单片机的数据地址复用口P0相连,地址的低8位A0~A7则由U15锁存器74LS373获得,地址的高7位则直接与单片机的P2.0~P2.6相连。
片选信号则由地址线A15(P2.7引脚)获得,低电平有效。
这样数据存储器占用了系统从0X0000H~0X7FFFH的XDATA空间。
图4.1.6数据存储器的扩展系统板设置了8个并行键盘S1~S4,S6~S9,6个共阳极LED数码管LED1~LED6。
其电路原理图如图4.1.2所示。
可以看出为了节省单片机的I/O口,在此采用了两片74LS373锁存器U15和U16扩展了8个I/O口。
U15用来锁存P0口送出的地址信号,它的片选信号OC接地,表示一直有效,其控制端C接ALE信号。
U16的输出端通过限流电阻R8~R15与数码管的段码数据线和并行键盘相连,用来送出LED数码管的段码数据信号和并行键盘的扫描信号,它的片选信号OC接地,表示一直有效,其数据锁存允许信号C由CS0~CS6和WR信号经一个或非门74LS02得到(其中CS0~CS5控制LED数码管,CS6控制键盘),这样只有当CS0~CS6中的某一个和WR同时有效且由低电平跳变到高电平时,输入的数据D0~D7即被输出到输出端Q0~Q7。
U17为3-8译码器74LS138,通过它将高位地址A15~A12译成8个片选信号CS0~CS7。
它的G2,G3端接地,G1接A15,所以A15应始终为高电平,这样CS0~CS7的地址就分别为8000H,9000H,0A000H,0B000H,0C000H,0D000H,0E000H,0F000H。
CS0~CS5和WR信号经过一个或非门控制三极管9012的导通,从而控制LED数码管的导通,并且三极管9012用来增强信号的驱动能力。
主要器件如表4.1.1所示:表4.1.1单片机最小系统主要器件主要应用接口如表4.1.2所示:表4.1.2单片机最小系统主要应用接口单片机最小系统电路板测试程序设计编写测试程序,一是可对最小系统电路板各资源进行测试,二是为用户提供了使用LED 显示及访问键盘等各种资源的子程序。
1. 键盘扫描及数码管显示的汇编语言程序键盘扫描及数码管显示的汇编语言程序如下:;************************* **********************************;键盘及数码管显示程序,功能为按下一键,则对应键的数码管亮并显示该键代表的数字;编写:cgq;最后修改日期:2003/11/16;************************************************************org 0000hajmp mainorg 0100hmain: mov sp,#30hmov r3,#0mov r4,#0kon: lcall ks1 ;调用读键盘程序cjne a,#0ffh,show1 ;有键按下lcall dir ;调用显示子程序ajmp konshow1:lcall dir ;去抖动lcall dirlcall ks1cjne a,#0ffh,show2 ;键有效ajmp konshow2:cjne a,#0feh,l1 ;以下为判别键值程序mov r4,#0 ;第一个键赋其代码0ajmp lkpl1:cjne a,#0fdh,l2mov r4,#1ajmp lkpl2: cjne a,#0fbh,l3mov r4,#2ajmp lkpl3:cjne a,#0f7h,l4mov r4,#3ajmp lkpl4:cjne a,#0efh,l5mov r4,#4ajmp lkpl5:cjne a,#0dfh,lkpmov r4,#5ajmp lkplkp:lcall dirljmp kon ;返回dir: mov dptr,#table ;显示子程序mov a,r4movc a,@a+dptr ;取7段码mov r3,amov a,r4led1:cjne a,#0,led2 ;根据键值选择数码管1 mov dptr,#8000hajmp ssled2:cjne a,#1,led3 ;根据键值选择数码管2 mov dptr,#9000hajmp ssled3:cjne a,#2,led4 ;根据键值选择数码管3mov dptr,#0a000hajmp ssled4: cjne a,#3,led5 ;根据键值选择数码管4 mov dptr,#0b000hajmp ssled5:cjne a,#4,led6 ;根据键值选择数码管5mov dptr,#0c000hajmp ssled6:cjne a,#5,ss ;根据键值选择数码管6mov dptr,#0d000hajmp ssss: mov a,r3movx @dptr,alcall delayretks1:clr p1.7mov dptr,#0e000h ;键盘地址movx a,@dptrretdelay: mov r6,#10 ;延时子程序lpp: mov r7,#100djnz r7,$djnz r6,lpprettable: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h db 88h,83h,0c6h,0a1h,86h,8eh,0ffh,0f7hend2. 键盘扫描及数码管显示的C语言程序键盘扫描及数码管显示的C语言程序如下:/**************************************************//*键盘及数码管程序,每一键代表一个数字,在其数字代表的数码管中显示*//*最后修改日期:2003/11/16 */#include <absacc.h>#include <reg51.h>#define uchar unsigned char#define uint unsigned int#define LED1 XBYTE [0x8000] /*定义各数码管地址*/#define LED2 XBYTE [0x9000]#define LED3 XBYTE [0xA000]#define LED4 XBYTE [0xB000]#define LED5 XBYTE [0xC000]#define LED6 XBYTE [0xD000]#define KEY XBYTE [0xE000]/*定义键盘地址*/void delay(uint v) /*延时函数*/{while(v!=0)v--;}uchar keynum=0;sbit P1_7=P1^7; /*扫描端口*//*数字段码表*/uchar code segtab[18]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,\ 0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff,0xf7};void dir(uchar); /*声明显示函数*/void readkey(void) /*读键盘函数*/{uchar M_key=0;uchar i;P1_7=0;M_key=KEY; /*取键盘数据*/if(M_key!=0xff){for(i=0;i<20;i++) /*去抖动*/dir(keynum);M_key=KEY;if(M_key!=0xff) /*读键*/switch(M_key){case 0xfe: /*第1个键按下*/ keynum=0;break;case 0xfd: /*第2个键按下*/ keynum=1;break;case 0xfb: /*第3个键按下*/ keynum=2;break;case 0xf7: /*第4个键按下*/ keynum=3;break;case 0xef: /*第5个键按下*/ keynum=4;break;case 0xdf: /*第6个键按下*/ keynum=5;break;}}}void dir(keynum) /*显示函数*/{switch(keynum){case 0:LED1=segtab[0];delay(100);break;case 1:LED2=segtab[1];delay(100);break;case 2:LED3=segtab[2];delay(100);break;case 3:LED4=segtab[3];delay(100);break;case 4:LED5=segtab[4];delay(100);break;case 5:LED6=segtab[5];delay(100);break;}}void main() /*主函数*/{while(1){dir(keynum); /*调用显示函数*/readkey(); /*调用键盘函数*/ }}。