第10章 AT89C51单片机与输入外设和输出外设的接口设计
- 格式:pdf
- 大小:148.39 KB
- 文档页数:4
—VCC:供电电压。
—GND:接地。
—P0口:P0口为一个8位漏级开路双向I/O口,每个管脚可吸收8TTL门电流。
当P1口的管脚写“1”时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部电位必须被拉高。
—P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1—P2门电流,当P2位地址外编程—P3P3口写入“1P3口将输出电流P3P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。
—RST:复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
—PROGALE/:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时, ALE只有在执行MOVX,MOVC指令时ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
—PSEN:外部程序存储器的选通信号。
在由外部程序存储器取址期间,每个机器周期PSENRESET;当EA(VPP)。
如图11所示,在X1和X2之间接一只石英振荡晶体构成了单片机的时钟电路,它还有另一种接法,是把外部振荡器的信号直接连接到XTAL1端,XTAL2端悬空不用。
AT89C51复位引脚RST/VP通过片内一个施密特触发器(抑制噪声作用)与片内复位电路相连,施密特触发器的输出在每一个机器周期由复位电路采样一次。
AT89C51单片机简介2.管脚说明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口也可作为AT89C51的一些特殊 能口,如 表所示口管脚备选 能P3.0 RXD 串行输入口P3.1 TXD 串行输出口P3.2 /INT0 外部中断0P3.3 /INT1 外部中断1P3.4 T0 记时器0外部输入P3.5 T1 记时器1外部输入P3.6 /WR 外部数据 储器写选通P3.7 /RD 外部数据 储器读选通P3口同时为闪烁编程和编程校验接收一些控制信号。
AT89C51单片机各引脚图如下2-5所示:P1.0 ┫1 40┣ VccP1.1 ┫2 39┣ P0.0P1.2 ┫3 38┣ P0.1P1.3 ┫4 37┣ P0.2P1.4 ┫5 36┣ P0.3P1.5 ┫6 35┣ P0.4P1.6 ┫7 34┣ P0.5P1.7 ┫8 33┣ P0.6RST/Vpd ┫9 AT89C51 32┣ P0.7RXD P3.0 ┫10 31┣ -EA/Vpp(内1/外0 程序地址选择)TXD P3.1 ┫11 30┣ ALE/-P (地址锁存输出) -INT0 P3.2 ┫12 29┣ -PSEN (外部程序读选通输出)-INT1 P3.3 ┫13 28┣ P2.7T0 P3.4 ┫14 27┣ P2.6T1 P3.5 ┫15 26┣ P2.5-WR P3.6 ┫16 25┣ P2.4-RD P3.7 ┫17 24┣ P2.3X2 ┫18 23┣ P2.2X1 ┫19 22┣ P2.1GND ┫20 21┣ P2.0图2-5 AT89C51的引脚图AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
外形及引脚排列如图所示特性:与MCS-51 兼容·4K字节可编程闪烁存储器·寿命:1000写/擦循环·数据保留时间:10年·全静态工作:0Hz-24MHz ·三级程序存储器锁定·128×8位内部RAM ·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
at89c51引脚图及功能AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4k bytes的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。
主要性能参数:·与MCS-51产品指令系统完全兼容·4k字节可重擦写Flash闪速存储器·1000次擦写周期·全静态操作:0Hz-24MHz ·三级加密程序存储器·128×8字节内部RAM ·32个可编程I/O口线·2个16位定时/计数器·6个中断源·可编程串行UART通道·低功耗空闲和掉电模式功能特性概述:AT89C51提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
·P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。
作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在FIash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
at89c51单片机与dac实验原理实验目的:通过将AT89C51单片机与DAC(数模转换器)连接,实现数字信号到模拟信号的转换,并通过外部模拟电路将转换后的信号输出到外部设备,进而实现对外部设备的控制或反馈。
实验原理:AT89C51单片机是一种常用的8位单片机,具有强大的数据处理能力和丰富的外设资源。
而DAC则是一种能够将数字信号转换为模拟信号的电子组件。
将AT89C51与DAC连接,可以实现通过单片机控制DAC输出模拟信号的功能。
DAC的工作原理是通过将一个数字信号转换为与之等效的模拟信号。
一般情况下,DAC的输入端接收到的是一个n位的数字信号。
而DAC的输出端则是一个与输入数字信号等效的模拟电压或电流信号。
通过改变输入端的数字信号,可以控制输出信号的幅度,实现对模拟信号的控制。
AT89C51单片机与DAC连接时,其输入端通过端口连接到单片机的IO 口,而DAC的输出端则通过外部模拟电路连接到外部设备。
在这个过程中,单片机通过编写程序控制IO口的输出信号,将对应的数字信号输入到DAC的输入端。
DAC将输入的数字信号转换为模拟信号,并通过外部电路将模拟信号输出到外部设备。
通过改变单片机输出信号的方式、频率和幅度,可以实现对外部设备进行控制或反馈。
实验步骤:1.连接AT89C51单片机与DAC。
根据DAC的引脚定义,将单片机的IO 口与DAC的输入端连接,同时将DAC的输出端与外部设备连接。
2.编写单片机程序。
根据实验需求,编写单片机程序,控制IO口的输出信号。
通过改变IO口输出信号的方式、频率和幅度,实现对DAC的输入信号的控制。
4.进行实验观察。
观察外部设备是否输出相应的结果,检测转换过程是否正常。
实验所需材料:-AT89C51单片机-DAC数模转换器-外部模拟电路-外部设备(如电机、灯光等)实验心得:通过将AT89C51单片机与DAC连接,可以实现数字信号到模拟信号的转换。
该实验具有一定的重要性,因为它可以通过单片机实现对外部设备的精确控制。
AT89C51设计1. 简介AT89C51是一种经典的8位单片机,由凯瑞电子(Keil)公司生产。
它是Intel 8051指令集架构的一部分,具有强大的功能和广泛的应用。
AT89C51具有51个I/O引脚,4KB flash存储器,128字节的RAM,以及4个8位定时器/计数器。
它适用于各种嵌入式系统,如家电控制,电子设备,工业自动化,安全系统等。
本文将分享AT89C51的设计相关知识,包括硬件配置、编程语言和开发工具等内容。
2. 硬件配置AT89C51的硬件配置包括以下几个方面:2.1. 晶体振荡器AT89C51支持外部晶体振荡器,用于提供时钟信号。
一般情况下,使用11.0592MHz的晶体振荡器可以满足大多数应用需求。
2.2. 电源AT89C51工作电压为4.5V至5.5V,可以通过外部电源供电。
在设计中,需要提供稳定的电源电压,并通过适当的电源滤波电路降低电源噪音。
2.3. 外部存储器AT89C51内置4KB的闪存和128字节的RAM。
如果需要更大的存储空间,可以通过外部存储器扩展。
此外,还可以通过外部EEPROM实现数据的长期存储。
2.4. 输入/输出设备AT89C51具有51个I/O引脚,可用于连接各种输入/输出设备,如LED,键盘,LCD显示器等。
在设计中,需要根据具体需求配置合适的输入/输出设备。
3. 编程语言AT89C51支持多种编程语言,如汇编语言和C语言。
以下将介绍两种常见的编程语言。
3.1. 汇编语言汇编语言是一种符号化的低级语言,直接操作计算机硬件。
AT89C51使用的汇编语言是51系列的汇编语言,具有良好的指令集和寻址模式。
以下是一个简单的AT89C51汇编代码示例:ORG 0HMOV A, #20HMOV P1, AEND3.2. C语言C语言是一种高级编程语言,具有结构化的特点,能够更方便地编写和维护代码。
AT89C51的C语言编程通常使用凯瑞电子(Keil)公司的Keil C编译器。
北方民族大学学士学位论文论文题目:AT89C51单片机USB接口驱动和应用程序的开发院(部)名称:电信学院学生姓名:杨闯指导教师姓名:周春艳论文提交时间: 2010年5月24日论文答辩时间:2010年5月29日学位授予时间:北方民族大学教务摘要通用串行总线USB是一种新兴的并逐渐取代其他接口标准的数据通信标准。
USB,由于速度快,使用方便灵活,易于扩展,支持即插即用,成本低廉等一系列优点,得到了广泛的应用。
本论文以基于USB总线的数据采集系统的研制过程为主要内容,阐述了利用CH372与ATMEL的AT89C51等组成的一套数据采集系统的设计方案、开发方法和开发过程,并给出了具体实现方案。
论文首先简要介绍了USB总线的相关内容,然后介绍了数据采集系统的设计。
数据采集系统的设计包括硬件设计、固件程序开发、驱动程序开发和应用程序开发四部分。
在硬件设计部分,首先介绍了设计中所用的CH372的性能和特点,然后给出了具体硬件设计方案,并对设计中应该注意的问题进行了说明。
驱动和应用程序主要完成USB设备的读写和即插即用功能,并提供一个友好的人机界面,对数据采集系统进行控制并显示采集后的数据。
本论文已完成了基于USB总线的数据采集系统的设计,用其实现了基本的数据采集功能。
使用USB总线传输数据,为数据采集系统与计算机之间的通讯开辟了新的道路。
关键词:USB、驱动程序、应用程序、AT89C51、CH372AbstractUniversal serial bus USB is one kind of emerging and replace other interface standards of data communication standards. USB, due to fast, convenient and flexible easy to expand, to support plug and play, low cost advantages, such as widely application.The paper is mainly concerned with design process of data acquisition system that is based on USB bus. The design scheme, developing method and developing process of a suit of data acquisition system used with CH372 and ATMEL’s AT89C51 are expatiate. In addition, the paper also gives the material realization scheme.At fist, the paper introduces the protocol of USB bus in brief, and then discusses the design of data acquisition system, which includes four parts, , firmware design, device driver and application program. In the in detail; the questions which should be paid attention to in design is explained. Drivers and applications of the main equipment and USB plug and play function, and provide a friendly -machine interface, control ofdata acquisition system and display the data collection.The paper of data acquisition system based on USB bus and realizedthe basal data acquisition foundation. Using USB bus to transfer data blazed a way in communication between data acquisition system and computer.Keywords: USB、Drive、Applications、AT89C51、CH372目录第1章绪论 (1)1.1 引言 (5)1.2 USB的特点 (5)1.3 USB实时数据采集系统的实现方案 (7)第2章 USB体系简介 (8)2.1 体系概述 (8)2.2 USB的传输类型 (10)2.3 USB的设备状态 (13)第3章 USB数据采集系统的硬件设计 (16)3.1 USB 接口方案 (16)3.2 USB接口的硬件设计 (17)3.2.1 CH372简介 (17)3.2.2 USB接口的硬件电路设计 (23)3.3 USB接口硬件的实现 (25)3.3.1时钟电路 (25)3.3.2 复位电路 (25)3.3.3 AD转换电路 (26)3.3.4 CH372接口电路 (27)3.3.5 单片机扩展RAM接口电路 (28)第4章 USB数据采集系统设备固件编写 (28)4.1 固件设计方案及工作流程 (29)4.1.1固件的设计思想 (29)4.1.2固件的工作流程 (29)4.2固件开发 (30)4.2.1主循环模块(MAINLOOP.C) (30)4.2.2外接口模块 (31)4.2.3 CH375_INIT初始化模块 (31)4.2.4上传数据块模块 (31)4.2.5上传中断数据模块 (31)第5章 USB设备驱动程序及应用程序 (32)5.1驱动开发工具的选择 (32)5.2 WDM概述 (32)5.3 主要模块设计 (33)5.3.1 初始化模块 (34)5.3.2即插即用管理模块 (34)5.3.3 I\O控制模块 (37)5.4 应用程序设计与实现 (37)5.4.1 操作例程及初始化 (38)5.4.2 设备读写接口程序的实现 (39)5.4.3 数据传输程序的设计和实现 (40)5.5 用户应用程序的具体实现 (45)结束语 (46)致谢 (47)参考文献 (47)附录一 (48)附录二 (48)第1章绪论1.1 引言现代工业生产和科学研究对数据采集系统的要求日益提高,目前比较通用的方法已逐渐不能适应其要求。
第8章AT89C51系统接口技术难点•8255的控制字•8255的工作方式1和工作方式2•DAC0832工作方式•ADC0809工作方式要求掌握:•8255接口芯片•MCS-51单片机与D/A转换器的接口连接•MCS-51单片机与A/D转换器的接口连接•初始化编程及应用了解:•I/O口扩展的原因•简单I/O口的扩展•单片机的键盘技术8.1 I/O口扩展概述8.2 简单I/O口扩展8.3 8255可编程通用并行接口芯片8.4 8155可编程通用并行接口芯片8.1 I/O口扩展概述8.1.1 I/O口扩展的原因MCS-51系列单片机共有四个并行I/O口,分别是P0、P1、P2和P3。
其中P0口一般作地址线的低八位和数据线使用;P2口作地址线的高八位使用;P3是一个双功能口,其第二功能是一些很重要的控制信号,所以P3一般使用其第二功能。
这样供用户使用的I/O口就只剩下P1口了。
另外,这些I/O口没有状态寄存和命令寄存的功能,因此难以满足复杂的I/O操作要求。
由于MCS-51系列单片机I/O口数量和功能有限,所以在实际应用中不得不使用扩展的方法,来增加I/O口的数量,增强I/O口的功能。
8.1.2 I/O口的编址技术用户可以通过对I/O口进行读和写操作来完成数据的输入和输出。
例如:P0口的地址为80H。
用户可以使用MOV指令对P0口进行写操作。
MOV P0, A8.1.3 单片机I/O传送的方式单片机为了实现数据的输入/输出传送,通常使用3种控制方式。
1. 无条件传送方式当外设和单片机能够同步工作时,可以采用无条件方式进行传送,即数据可以随时进行传送。
2. 查询方式查询方式又称为有条件传送方式,即数据的传送是有条件的。
在进行I/O操作之前,用户要通过软件查询外设是否为数据传送做好准备,只有确认外设为数据传送做好准备。
单片机才能执行数据的输入/输出(I/O)操作。
3. 中断方式当外设和计算机进行数据交换时,外设向单片机发出中断请求(即通知单片机)。
单片机原理与应用设计第一章单片机概述在一块半导体硅片上集成了中央处理单元(CPU)、存储器(RAM/ROM)、和各种I/O接口的集成电路芯片由于其具有一台微型计算机的属性,因而被称为单片微型计算机,简称单片机。
单片机主要应用于测试和控制领域。
单片机的发展历史分为四个阶段。
1974—1976年是单片机初级阶段,1976—1978年是低性能单片机阶段,1978—1983年是高性能单片机阶段,期间各公司的8位单片机迅速发展。
1983至现在是8位单片机巩固发展及16位、32位单片机推出阶段。
单片机的发展趋势将向大容量、高性能、外围电路内装化等方面发展。
单片机的发展非常迅速,其中MCS-51系列单片机应用非常广泛,而在众多的MCS-51单片机及其各种增强型、扩展型的兼容机中,AT89C5x系列,尤其是AT89C51单片机成为8位单片机的主流芯片之一。
第二章89C51单片机的硬件结构89C51单片机的功能部件组成如下:8位微处理器,128B数据存储器片外最多可外扩64KB,4KB程序存储器,中断系统包括5个中断源,片内2个16位定时器计数器且具有4种工作方式。
1个全双工串行口,具有四种工作方式。
4个8位并行I/O口及特殊功能寄存器。
89C51单片机的引脚分为电源及时钟引脚、控制引脚及I/O口。
电源为5V 供电,P0口为8位漏极开路双向I/O口,字节地址80H,位地址80H—87H。
可作为地址/数据复用口,用作与外部存储器的连接,输出低8位地址和输出/输入8位数据,也可作为通用I/O口,需外接上拉电阻。
P1、P2、P3为8位准双向I/O 口,具有内部上拉,字节地址分别为90H,A0H,B0H。
其中P0、P2口可作为系统的地址总线和数据总线口,P2口作为地址输出线使用时可输出外部存储器的的高8位地址,与P0口输出的低8位地址一起构成16位地址线。
P1是供用户使用的普通I/O口,P3口是双向功能端口,第二功能很重要。
AT89C51单片机高速串行输出口设计AT89C51(与MCS-51 兼容)单片机的串行口在方式0 工作状态下,使用移位寄存器芯片可以扩展多个8 位并行I/O 口。
在LED 点阵显示屏应用系统中,一般都采用数据同步移位输出方式,并使用移位寄存器芯片(如74LS595)扩展并行I/O 口驱动LED 点阵显示。
LED 点阵显示采用扫描方式,为不产生闪烁感,每秒需要传送50 屏点阵显示数据,因此有大量的数据要通过同步移位的方式送到显示驱动电路部分,这就要求单片机能够快速地输出数据。
AT89C51 单片机的串行口在方式0 工作状态下,数据以fosc/12 的波特率输出,1 个字节数据写入SBUF 后,需检查中断标志位TI 是否为1 并清0TI 或延时几个机器周期后才能继续写入了一个数据,输出速度慢。
在LED 点阵显示屏应用系统中,系统与PC 机之间的通讯需要使用单片机的串行口,显示数据的同步移位输出口只有另外扩展。
本文介绍的高速串行同步移位输出口(以下简称扩展串行口)电路,采用模块化设计,给出基于TTL 和PLD 两种电路的实现方案,波特率提高到fosc,数据输出不需要等待或延时。
一、扩展串行口与单片机的连接扩展串行口电路框图如图1 所示。
与并行存储器芯片类似,扩展串行口被视为一个外部RAM 地址单元,直接挂接在AT89C51 的外部数据总线上,D0~D7 为数据线,CE 为片选信号,WE 为写脉冲信号,也是扩展串行口的输出控制信号。
AT89C51 外接晶体振荡器的振荡信号经二个与非门整形后为扩展串行口提供时钟脉冲XTAL2。
DAT 和CLK 分别是扩展串行口的数据输出端和同步移位脉冲输出端。
二、操作指令假设AT89C51 分配给扩展串行口的地址是0000H,使用MOVX@DPTR,A。
1. 绪论 (2)1.1 课程设计要求 (2)1.2 数字电压表介绍 (2)2. 硬件单元电路设计 (2)2.1数字电压表结构框图 (2)2.1.1 AT89C51单片机简介 (3)2.1.2 ADC0832转换器简介 (4)2.1.3 时钟电路 (5)2.1.4 复位电路 (5)2.1.5 LED显示电路 (6)3. 软件单元电路设计 (6)3.1 主程序流程图 (6)3.2显示子程序流程图 (7)3.3 A/D转换子程序流程图 (8)3.4 数据处理子程序流程图 (8)4. 数字电压表仿真设计图与实物图 (9)4.1 仿真图 (9)4.2 器件清单 (9)4.3 硬件电路实物图 (10)5. 程序代码 (11)6. 项目设计总计 (18)7. 参考文献 (18)1.绪论1.1 课程设计要求使用单片机AT89C51和ADC0832设计一个数字电压表,能够测量0-5V之间的直流电压值,两位数码显示。
在单片机的作用下,能监测两路的输入电压值,用8位串行A/D转换器,8位分辨率,逐次逼近型,基准电压为 5V;能用两位LED进行轮流显示或单路选择显示,显示精度0.1伏。
1.2 数字电压表介绍数字电压表简称DVM,数字电压表基本原理是将输入的模拟电压信号转化为数字信号,再进行输出显示。
而A/D转换器的作用是将连续变化的模拟信号量转化为离散的数字信号,器基本结构是由采样保持,量化,编码等几部分组成。
因此AD转换是此次设计的核心元件。
输入的模拟量经过AD转换器转换,再由驱动器驱动显示器输出,便得到测量的数字电压。
2.硬件单元电路设计2.1数字电压表结构框图结构如(图1)所示2.1.1 AT89C51单片机简介AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4kBytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,AT89C51在众多嵌入式控制应用系统中得到广泛应用。
班级电科081 班姓名龚浪学号080712110073 实验名称键盘接口实验指导教师马光喜理学院时间:2011年月日实验九键盘接口实验(设计性实验)一、实验目的:⑴熟悉单片机通过行列键盘的接口方法⑵掌握键盘扫描及处理程序的编程方法和调试方法二、实验内容:程序运行后,根据按下的数字键,数码管上应能显示相应数字。
三、实验硬件电路四、实验步骤:1、进入Keil C51组合软件的操作环境2、在Keil C51组合软件环境中, 根据实验硬件电路编辑源程序并对源文件进行编译,生成目标代码;源程序如下:;EXP9ORG 0000HLJMP MAINORG 8000H;*******检查是否有键按下******************** MAIN: MOV P0,#00MOV A,P2ANL A,#0FHSUBB A,#0FHJNC MAINACALL DELAY ;延时去抖动;****寄存器赋初值****************MOV R2,#4 ;R2记录行数MOV R3,#4 ;R3记录列数MOV A,#0FEH ;行扫描初始值MOV R4,#0FFH ;R4记录键号初值;*******按键扫描***************************** NEXT1: MOV P0,ARLC AMOV R0,A ;修改扫描码并送R0保存MOV A,P2 ;读入列值ANL A,#0FH ;清除高4位CJNE A,#0FH,NEXT2 ;有列值为0,转NEXT2MOV A,R4ADD A,R3 ;否则指向该行最后一列MOV R4,AMOV A,R0DJNZ R2,NEXT1 ;扫描下一行LJMP MAINNEXT2: INC R4 ;键号加1RRC AJC NEXT2 ;不是按键所在列,转NEXT2使键号加1MOV A,R4MOV P3,A ;键号送P3口显示LJMP MAIN ;转MAIN进行下一次等待扫描;*********延时函数***************************** DELAY: MOV R7,#2DELAY1: MOV R6,#100DELAY2: MOV R5,#200DELAY3: DJNZ R5,DELAY3DJNZ R6,DELAY2DJNZ R7,DELAY1RETEND3、运行、调试程序和结果检查⑴采用单步,设置断点等方法,观察程序走向是否正确;⑵连续运行程序,依次按动数字键观察LED的显示是否相符。
课程设计报告书设计名称:计算机控制技术题目:AT89C51的串口通信学生姓名:XXX专业:计算机科学与技术班别:计科本XXX班学号:XXXXXXXX指导老师:XXX日期:2012 年 7月 12 日一、主要内容:本课程设计利用两片AT89C51实现双机串口通信;主机发送并显示 10 以下的随机数,从机显示该数的阶乘值,通过开关改变主机输出的数值。
设计电路并编写一个串行口方式1收发程序,实现两片AT89C51之间的通信,甲机将数据发送到乙机并显示出来,同样,乙机也可将数据发送到甲机显示出来。
二、硬件电路设计及描述1、方案选择及设计思想2、工作原理在串行通信中,数据是在两个站之间传送的。
按照数据传送方向,串行通信可分为三种制式。
1). 单工制式(Simplex)单工制式是指甲乙双方通信只能单向传送数据。
单工制式如图1所示。
发送器A接收器B图1 单工制式2). 半双工制式(Half duplex)半双工制式是指通信双方都具有发送器和接收器,双方既可发送也可接收,但接收和发送不能同时进行,即发送时就不能接收,接收时就不能发送。
半双工制式如图2所示。
发送接收发送接收A 端B端图2半双工制式单片机(主机)单片机(从机)显示发的数显示阶乘值3). 全双工制式(Full duplex)全双工制式是指通信双方均设有发送器和接收器,并且将信道划分为发送信道和接收信道,两端数据允许同时收发,因此通信效率比前两种高。
全双工制式如图3所示。
发送接收接收发送A 端B端图3 全双工制式AT89C51内部有一个可编程全双工串行通信接口。
该部件不仅能同时进行数据的发送和接收,也可作为一个同步移位寄存器使用。
下面将对其内部结构、工作方式以及波特率进行介绍。
图4 AT89C51串行口结构框图串口通信方式1 1).方式1发送方式1输出时,数据由TXD 输出,一帧信息为10位,1位起始位0,8位数据位(先低位)和1位停止位1。
当执行一条数据写发送缓冲器SBUF 的指令,就启动发送。
第10章 AT89C51单片机与输入外设和输出外设的接口设计1.下列项说法正确。
A.HD7279是一个用于键盘和LED显示器的专用接口芯片
B.在单片机与微型打印机的接口中,打印机的BUSY信号可作为查询信号或中断请求信号使用
C.为给扫描法工作的8 8键盘提供接口电路,在接口电路中只需要提供两个输入口和一个输出口
D.LED显示器的字型码是固定不变的
答:A.对;B.对;C.错;D.错。
2.为什么要消除按键的机械抖动?软件消除按键机械抖动的原理是什么?
答:在按键的闭合和断开过程中,由于开关的机械特性,导致了按键抖动的产生。
如果不消除按键的机械抖动,按键的状态读取将有可能出现错误。
消除按键抖动一般是采用软件或硬件去抖。
软件去抖的原理是,在第一次检测到有键按下时,该键所对应的行线为低电平,执行一端延时10ms的子程序后,确认该行线电平是否仍然为低电平,如果仍为低电平,则确认该行确实有键按下。
3.LED的静态显示方式与动态显示方式有何区别?各有什么优缺点?答:静态显示时,数据是分开送到每一位LED上的。
而动态显示时,则数据是同时送到每一个LED上,再根据位选线来确定是哪一位LED被显示。
静态显示亮度很高,但口线占用较多。
动态显示口线占用较少,适合用在显示位数较多的场合。
4.写出表10-1中仅显示小数点“.”的段码。
答:80H(共阴极);7FH(共阳极)。
5.说明矩阵式键盘按键按下的识别原理。
答:按键设置在行、列线交点上,行、列线分别连接到按键开关的两端。
行线通过上拉电阻接到+5V上,无按键按下时,行线处于高电平状态,而当有按键按下时,行线电平状态将由与此行线相连的列线的电平决定。
列线的电平如果为低,则行线电平为低;列线的电平如果为高,则行线的电平亦为高。
将行、列线信号配合起来并做适当的处理,才能确定闭合键的位置。
6.对于图10-10所示的键盘,采用线反转法原理编写出识别某一按键被
按下并得到其键号的程序。
答:先对P1口高4位送低电平,读取P1口低4位的值;再对P1口低4位送低电平,读取P1口高4位的值,将两次读到的值组合在一起就得到了按键的特征码,再根据特征码查找键值。
参考程序如下:
KEYIN: MOV P1,#0FH ;反转读键
MOV A,P1
ANL A,#0FH
MOV B,A
MOV P1,#0F0H
MOV A,P1
ANL A,#0F0H
ORL A,B
CJNE A,#0FFH,KEYIN1
RET ;未按键
KEYIN1: MOV B,A ;暂存特征码
MOV DPTR,#KEYCOD ;指向特征码表
MOV R3,#0FFH ;顺序码初始化
KEYIN2: INC R3
MOV A,R3
MOVC A,@A+DPTR
CJNE A,B,KEYIN3
MOV A,R3 ;找到,取顺序码
RET
KEYIN3: CJNE A,#0FFH,KEYIN2 ;未完,再查
RET ;已查完,未找到,以未按键处理
KEYCOD: DB 0E7H,0EBH,0EDH,0EEH ;特征码表
DB 0D7H,0DBH,0DDH,0DEH
DB 0B7H,0BBH,0BDH,0BEH
DB 77H,7BH,7DH,7EH
7.键盘有哪3种工作方式,它们各自的工作原理及特点是什么?
答:(1)编程扫描方式。
当单片机空闲时,才调用键盘扫描子程序,反复扫描键盘,等待用户从键盘上输入命令或数据,响应键盘的输入请求。
(2)定时扫描方式。
单片机每隔一定的时间对键盘扫描一次。
(3)中断扫描方式。
只有在键盘有键按下时,才执行键盘扫描程序并执行该按键功能程序,如果无键按下,单片机将不理睬键盘。
8.根据图10-11所示的电路,编写在6个LED显示器上轮流显示“1,2,3,4,5,6”的显示程序。
答:参见教材P170的显示程序。
9.简述TPP-40A/16A微型打印机的Centronics接口的主要信号线及功能,与AT89C51单片机相连接时,如何连接几条控制线?
答:DB0~DB7——数据线,单向传输,由单片机输入给打印机。
STB(STROBE)——数据选通信号。
在该信号的上升沿,数据线上的8位并行数据被打印机读入机内锁存。
BUSY——打印机忙状态信号。
当该信号有效(高电平)时,表示打印机正忙于处理数据。
此时,单片机不得使STB信号有效,向打印机送入新的数据。
ACK——打印机的应答信号。
低电平有效,表明打印机已取走数据线上的数据。
ERR——出错信号。
当送入打印机的命令格式出错时,打印机立即打印1行出错信息,提示出错。
在打印出错信息之前。
该信号线出现一个负脉冲,脉冲宽度为30νs。
用一条地址线来控制写选通信号STB和读取BUSY引脚状态。
10.如果把图10-25所示的打印机的BUSY线断开,然后与AT89C51单片机的线相接,请简述电路的工作原理并编写将以20H为起始地址的连续20个内存单元中的内容输出的打印程序。
答:本程序采用外部中断来完成数据打印,先打印一个数据,当BUSY 线从高电平变成低电平时,再打印下一个数据。
参考程序如下:
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP IN
ORG 0030H
MAIN: SETB EX0 ;允许外部中断
SETB IT0
SETB EA
MOV R0,#7FH ;控制口地址
MOV A,#81H ;控制字
MOVX @R0,A
MOV R1,#20H ;数据区首地址
MOV R2,#19 ;计数器
MOV A,@R1 ;打印内容
MOV R0,#7CH ;A口地址
MOVX @R0,A
MOV R0,#7FH
MOV A,#0EH
MOVX @R0,A ;PC7=0
MOV A,#0FH
MOVX @R0,A ;PC7=1
SJMP $
IN: DJNZ R2,EX ;20个数据都结束了吗?
INC R1 ;指向下一个数据
MOV A,@R1
MOV R0,#7CH
MOVX @R0,A
MOV R0,#7FH
MOV A,#0EH
MOVX @R0,A
MOV A,#0FH
MOVX @R0,A
EX: RETI。