ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:150.57KB ,
资源ID:22521840      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22521840.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电话键盘及拨号的模拟综述Word文档格式.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

电话键盘及拨号的模拟综述Word文档格式.docx

1、 本实验在Proteus下按设计要求用P1口扩展了12个键盘,其中每个键盘所代表的含义已在Proteus下用文本注出。在LCD显示中,第一行为设计者名,第二行开始显示所拨的电话号码,最多为16位(因为LCD第二行功能显示16个字符)。 2、系统设计方案1.1 AT89C51简介AT89C51是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100

2、0次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。1.2 管脚说明如图1为AT89C51引脚图,各引脚功能说明如下:图1 AT89C51引脚图VCC: 电源GND: 地P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在f

3、lash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX)P2口:P2口是一个具有内部上拉电阻的8位双向I/O 口,P2 输出缓冲器能驱动4个TTL逻辑电平。对P2 端口写“1”时,内部上拉

4、电阻把端口拉高,此时可以作为输入口使用。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O 口,对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。P3口亦作为AT89C51特殊功能(第二功能)使用,如表1所示。表1 AT89C51引脚号第二功能P3.0 RXD(串行输入

5、)P3.1 TXD(串行输出)P3.2 INT0(外部中断0)P3.3 P3.4 T0(定时器0外部输入)P3.5 T1(定时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)RST:复位输入,晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出69个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输

6、入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE 仅在执行MOVX 或MOVC指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。3、流程图 N Y 3、电路设计3.1 电路原理图3.2程序清单#include / 包含单片机寄存器的头文件intrins.h/包含_nop_()函数定义的头文件typedef unsi

7、gned int uint;typedef unsigned char uchar;uchar temp;uchar key=16;sbit rs=P20; /LCD1602数据/命令选择sbit rw=P21; /LCD1602读/写选择sbit lcden=P22; /LCD1602使能端uchar idata table18=ATD+86;uchar idata table18; /LCD1602所显示的号码缓存数组uchar idata table_int18=uchar idata receive7;uchar idata erro7=erronumuchar num=6,a=0,b

8、=0; /b接收,a发送,num表示table第几位#define delayNOP();_nop_();_nop_();/宏定义,方便写代码/*延时子程序*/void delay(uchar x) uchar i; while(x-) for(i=0;i4)0|xF0); if(temp=1) /p1.4被拉低 key=0; else if(temp=2) /p1.5被拉低 key=1; else if(temp=4) /p1.6被拉低 key=2; else if(temp=8) /p1.7被拉低 key=3; else key=16; P1=0x0f; /低四位输入 列为高电平 行为低电

9、平 /读P1口 temp=(temp|0xf0); if(temp=2) /p1.1被拉低 key=key+0; else if(temp=4) /p1.2被拉低 key=key+4; else if(temp=8) /p1.3被拉低 key=key+8; if(key=0) /以下是判断按键,显示相应的号码 tablenum=1 num+; if(key=1)2 if(key=2)3 if(key=3)4 if(key=4)5 if(key=5)6 if(key=6)7 if(key=7)8 if(key=8)9 if(key=9)0 if(key=10) table-num= /删除上一位

10、 lcd_com(oxo1); /清除LCD的所有显示内容 if(key=11) if(num=17) taba=SBUF=tablea; /显示输入数据 while(!TI); /等特数据传送 TI=0; /清除数据传送标志 /发送下一位字符 taba=SBUF=erroa; TI=0;/* 串口初始化 */void uart_int() TMOD=0x20; /工作方式2,为常数自动重新装入的8位定时器 TH1=0xf3; /装定时器初值 TL1=0xf3; TR1=1; /开启定时器1 SM0=0; /串口方式0 SM1=1; /串口方式1 REN=1; /允许接收 ES=1; /是开启

11、串口中断 EA=1; /开中断总开关void main() uart_int(); lcd_int(); while(num=17) keyscan(); /键盘扫描 display(); /LCD显示 if(receive4=E) /判断PC机返回的是否是ATD+ERR P2=0xfe; while(taba! SBUF=taba; /串口发送 /等特数据传送(TI发送中断标志) /下一个字符 a=0; receive4= / PC机返回ATD+OK else if(receive4=) /判断PC机返回的是否是ATD+OK P2=0xfd; if(receive5=K|(receive6=

12、R) /判断PC机返回的是否是ATD+K或ATD+R b=0; receive5= /PC机返回ATD+OK receive6=/* 串口接收 */void ser() interrupt 4 /串行口中断子函数 if(RI=1) /中断允许标志位,为0时允许 receiveb=SBUF; b+; RI=0; 4.1系统仿真电路图4.2仿真结果分析根据仿真的结果,设计的电路符合实验的要求 通过这次课程设计,Keilc51软件工作环境的熟悉以及掌握基本的操作,实现电路原理图的绘制及电路仿真的实现,我还认识到理论与实际相结合的重要性,理论知识再丰富,没有实际的操作经验是不行的,这样还可以锻炼我们的实际动手操作能力 和独立思考能力。单片机知识在电子领域越来越重要了,在这次课程设计中我又了解 了更多单片机的知识, 从而也对单片机仿真软件产生了兴趣, 学到了书上没有的东西, 为以后工作又做了一层铺垫。在课程设计过程中遇到的一些问题,通过查询资料和结 合平时学到的知识,当然还有和同学的讨论得到了解决。 6、参考文献1.何桥 主编;段清明、邱春玲 副主编;单片机原理及应用;中国铁道出版社;2008 年1月;2.张毅刚,彭喜源,谭晓昀,曲春波;MCS-51单片机原理设计.2版;哈尔滨工业出版社;1997;3.赵晓安;MCS-51单片机原理及应用;天津大学出版社;2001

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1