欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > DOC文档下载
 

单片机课程实践报告电话模拟拨号器

  • 资源ID:27746212       资源大小:287.01KB        全文页数:15页
  • 资源格式: DOC        下载积分:15积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要15积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

单片机课程实践报告电话模拟拨号器

河海大学常州校区计信学院单片机课程设计报告专 业:电子科学与技术 姓 名: 学 号: 课 题:电话模拟拨号器 指导教师: 摘要单片机是一门技术性、应用新很强的学科,而课程设计给了大家一个很好的实践机会。实验“电话模拟拨号器”是以AT89C52单片机为控制核心,使用C程序设计,3*4矩阵控制,包括输入、删除、发送等功能,简单的实现了手机的拨打功能。关键字:单片机,液晶显示屏,拨号目录目标及总体方案1使用的主要组件及特殊零件功能说明12流程图说明33电路图3实验结果及讨论1程序设计42实验结果展示11结论1本课程设计的特点112评估结果123改善建议既自我体会12参考文献12附录12目标及总体方案1使用的主要组件及特殊零件功能说明单片机89C52 管脚说明: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(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(计时器0外部输入) P3.5 T1(计时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。 在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA / VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。34矩阵键盘 实现1、2、3、4、5、6、7、8、9、0、SET、CLEAR的功能1602字符液晶1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,其中:引脚符号功能说明1VSS一般接地2VDD接电源(+5V)3V0液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。4RSRS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5R/WR/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。6EE(或EN)端为使能(enable)端,下降沿使能。7DB0低4位三态、 双向数据总线 0位(最低位)8DB1低4位三态、 双向数据总线 1位9DB2低4位三态、 双向数据总线 2位10DB3低4位三态、 双向数据总线 3位11DB4高4位三态、 双向数据总线 4位12DB5高4位三态、 双向数据总线 5位13DB6高4位三态、 双向数据总线 6位14DB7高4位三态、 双向数据总线 7位(最高位)(也是busy flag)15BLA背光电源正极16BLK背光 电源负极2流程图说明3电路图实验仿真图实验结果及讨论1实际电路设计及程序设计程序设计#include<reg52.h>#include <intrins.h>typedef unsigned int uint;typedef unsigned char uchar; uchar temp;uchar key=16;sbit rs=P26; sbit rw=P25; sbit lcden=P27; uchar idata table18="ATD+86"uchar idata tab18;uchar idata table_int18="ATD+86"uchar idata receive7;uchar idata erro7="erronum"uchar num=6,a=0,b=0; /b接收,a发送,num表示table第几位#define delayNOP(); _nop_();_nop_();_nop_();_nop_();/* 延时子程序 */void delay(uchar x)uchar i;while(x-)for(i = 0; i< 125; i+);/*检查LCD忙状态 */*lcd_busy为1时,忙,等待。lcd-busy为0时,闲,可写指令与数据 */ bit busy()bit result;rs = 0;rw = 1;lcden = 1;delayNOP();result = (bit)(P0 & 0x80); lcden = 0;return result;/*写指令数据到LCD */*RS=L,RW=L,E=高脉冲,D0-D7=指令码。 */void lcd_com(uchar cmd)while(busy();rs = 0;rw = 0;lcden = 0;_nop_(); _nop_();P0 = cmd; delayNOP();lcden = 1;delayNOP();lcden = 0;void lcd_pos(uchar pos) /设定显示位置lcd_com(pos | 0x80);/*写显示数据到LCD RS=H,RW=L,E=高脉冲,D0-D7=数据. */void lcd_dat(uchar dat)while(busy();rs = 1;rw = 0;lcden = 0;P0 = dat; delayNOP();lcden = 1;delayNOP();lcden = 0;/* LCD初始化设定 */void lcd_init() delay(15); lcd_com(0x38); /16*2显示,5*7点阵,8位数据 delay(5); lcd_com(0x38); delay(5); lcd_com(0x38); delay(5); lcd_com(0x0c); /显示开,关光标 delay(5); lcd_com(0x06); /移动光标 delay(5); lcd_com(0x01); /清除LCD的显示内容 delay(5);/* LCD显示 */ void display()uchar a=0;lcd_pos(0);delay(30);while(tablea!=0) /判断下一位是否为空lcd_dat(tablea);a+;if(a=16)lcd_pos(0x40);void keyscan() temp = 0; P1=0xf0; /高四位输入 行为高电平 列为低电平delay(50);temp=P1; temp=temp&0xf0; /屏蔽低四位 temp=(temp>>4)|0xF0); 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; /低四位输入 列为高电平 行为低电平delay(50);temp=P1; /读P1口 temp=temp&0x0f; 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; else key=16;P1=0x0f;temp=P1; if(key=0) tablenum=1; num+; if(key=1) tablenum=2; num+; if(key=2) tablenum=3; num+; if(key=3) tablenum=4; num+; if(key=4) tablenum=5; num+; if(key=5) tablenum=6; num+; if(key=6) tablenum=7; num+; if(key=7) tablenum=8; num+; if(key=8) tablenum=9; num+; if(key=9) tablenum=0; num+; if(key=10) table-num=0;/ 删除上一位lcd_com(0x01);/ 清除LCD的所有显示内容 if(key=11) while(tablea != 0) if(num=17) taba=SBUF = tablea; / 显示输入数据 while(!TI); / 等特数据传送 TI = 0; / 清除数据传送标志 a+; else / 发送下一位字符 taba=SBUF = erroa; / 显示输入数据 while(!TI); / 等特数据传送 TI = 0; / 清除数据传送标志 a+; /*串口初始化*/void uart_int()TMOD=0x20; /工作方式2,为常数自动重新装入的8位定时器TH1=0xf3;TL1=0xf3;TR1=1;SM0=0;SM1=1; /串口方式1REN=1; /允许接收ES=1;EA=1;void main()uart_int();lcd_init();while(num<=17)keyscan(); /键盘扫描display(); /LCD显示if(receive4=E) P2=0xfe;while(taba != 0) SBUF = taba; /串口发送 while(!TI);/ 等特数据传送(TI发送中断标志) TI = 0;/ 清除数据传送标志 a+; / 下一个字符 a=0; receive4=0;else if(receive4=O)P2=0xfd;receive4=0;if(receive5=K)|(receive6=R) b=0; receive5=0; receive6=0;/*串口接收*/void ser() interrupt 4if(RI=1)receiveb=SBUF; b+; RI=0;2实际的结果显示1) 当拨打电话时,电话号码显示在动态LCD上2) 当按下SET键时,将“ATD+电话号码”(例如ATD+8612345678900)通过串口发送到PC上,并可通过调试助手观察。3) 当PC通过串口返回“ATD+OK”时,表示拨号成功,单片机接受到该指令后点亮一个LED。4) 当PC通过串口返回“ATD+ERR”时,表示拨号失败,单片机接受到该指令后点亮另一个LED,并且重拨,将电话号码再一次发送到pc机上。5) 当输入的号码不够11位时,输出的是erronum,当按键超过11个数时,自动清空。结论1本课程设计的特点:让同学们在理论学习的基础上,通过完成一小系统的设计,使学生不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立进行某些传感器应用系统的开发设计工作打下一定的基础。2评估结果 本实验基本功能已经实现,包括10个数字的输入,还有删除键,发送键的使用。3改善建议及自我体会:改善建议:应该认真研究以下功能为提高部分并实现:1) 实现简易电话号码簿,最多可预存9个电话号码。2) 进入电话号码簿后可浏览、修改电话号码,按Enter键可自动拨出此号码。3) 当接受到“ATD+ERR”时可自动重拨,最多拨打3次。4) 使用LCD1602作为显示器。 自我体会:通过这次课程设计,我学会了使用Keil C51软件设计一些程序,并且锻炼了我的动手操作能力,使得我对单片机知识了解的更加透彻。参考文献【1】 涂时亮等:单片微机控制技术,复旦大学出版社,1994年11月【2】 夏宽理等:程序设计,复旦大学出版社,2000年7月【3】 谭浩强:C程序设计(第二版),清华大学出版社,1999年12月【4】 尹勇等:uVision2单片机应用程序开发指南,科学出版社,2005年2月附录:KEILC51使用方法15

注意事项

本文(单片机课程实践报告电话模拟拨号器)为本站会员(仙***)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!