免费预览已结束,剩余12页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机技术与接口课程设计报告题 目: 简易计算器的设计与实现 班 级: 13电信本2 学 号: 姓 名: 同组人员: 指导教师: 邓明华 年 月 日目 录1. 设计任务与目的12设计方案和系统框图12.1设计方案选择12.2系统框图设计23硬件电路设计23.1单片机介绍23.2液晶屏lcd1602的介绍33.3 44矩阵薄膜键盘介绍43.4 整体电路图54.程序的设计及描述55.系统调试66.总结7参考文献8简易计算器1.设计任务与目的本次实验的任务就是要以51系列单片机为核心实现一个简易计器,它的结构非常简单,利用单片机的i/o接口设计44键盘,16个键依次对应09、“+”、“-”、“”、“”、“=”和清除键。通过检测不同数字键、功能键的按下,可以进行加减乘除运算,并可连续运算。对应每一个数字键按下的同时,单片机控制液晶显示屏lcd显示按下键的值。通过软件编程可实现单加减乘除。2设计方案和系统框图21设计方案选择经分析,计算器电路包括三个部分:显示电路、4*4键扫描电路、单片机微控制电路。具体如下1)lcd显示电路lcd1602作为一个成熟的产品,使用简单,模式固定,便于移植到各种类型的程序,但是初学者往往要注意结合lcd本身的时序图来完善初始化程序。又以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,故采用lcd.2)4*4键盘扫描电路(中断式,扫描式,反转式)设计行列键盘接口,一般常采用3 种方法读取键值。一种是中断式,外两种是扫描法和反转法。中断式:在键盘按下时产生一个外部中断通知cpu,并由中断处理程序通过不同的地址读取数据线上的状态,判断哪个案件被按下。本实验采用中断式实现用户键盘接口。扫描法:对键盘上的某一行送低电平,其他行为高电平,然后读取列值。若列值中有一位是低,则表明该行与低电平对应列的键被按下;否则,扫描下一行。反转法:先将所有行扫描线输出低电平,读列值。若列值有一位是低,则表明有键按下,读列值;然后所有列扫描线输出低电平,再读行值。根据读到的值组合就可以查表得到键码。由于考虑到熟练掌握单片机使用,故本次设计采用的中断式3)单片机微控制电路微控制电路就是以at89c51为核心的控制核心,主要注意晶振电路的接法和复位电路的接法。2.2系统框图 图2-1 系统组成框图3硬件电路设计3.1单片机介绍:单片微型计算机简称单片机,是典型的嵌入式微控制器(microcontroller unit),常用英文字母的缩写mcu表示单片机,它最早是被用在工业控制领域。单片机由芯片内仅有cpu的专用处理器发展而来。最早的设计理念是通过将大量外围设备和cpu集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。intel的z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的cd4000系列这些纯硬件来搞定的话,电路一定是一块大pcb板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!单片机的硬件特性:单片机集成度高。单片机包括cpu、4kb容量的rom(8031 无)、128 b容量的ram、 2个16位定时/计数器、4个8位并行口、全双工串口行口。系统结构简单,使用方便,实现模块化。3.2液晶屏lcd1602的介绍:1602lcd采用标准的14脚(无背光)或16脚(带背光)接口第1脚:vss为地电源。第2脚:vdd接5v正电源。第3脚:vl为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10k的电位器调整对比度。第4脚:rs为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:r/w为读写信号线,高电平时进行读操作,低电平时进行写操作。当rs和r/w共同为低电平时可以写入指令或者显示地址,当rs为低电平r/w为高电平时可以读忙信号,当rs为高电平r/w为低电平时可以写入数据。第6脚:e端为使能端,当e端由高电平跳变成低电平时,液晶模块执行命令。第714脚:d0d7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。1602液晶模块内部的控制器共有11条控制指令,如表3-1所示: 表3-1 1602指令表序号指令rsr/wd7d6d5d4d3d2d1d01清显示00000000012光标返回000000001*3置输入模式00000001i/ds4显示开/关控制0000001dcb5光标或字符移位000001s/cr/l*6置功能00001dlnf*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01bf计数器地址10写数到cgram或ddram)10要写的数据内容11从cgram或ddram读数11读出的数据内容3.3 44矩阵薄膜键盘介绍 图3-1 薄膜44矩阵键盘内部电路3.4 整体电路图图3-2 简易计算器整体电路图4.程序的设计及描述本程序组成可分为3个模块:矩阵键盘模块,lcd显示模块,和运算模块(源代码见附件)程序框图见下图4-1图4-1 程序组成框图5实物的调试与仿真结果对比在本次电路的焊接中比较顺利,在整体电路焊接完成后除了lcd显示屏需要调整一下对比度,没有其他的故障,下面实物与仿真的对比:1) 加法运算 图5-1 加法实物 图5-2 加法仿真2)减法运算 图5-3 减法实物 图5-4 减法仿真3)乘法运算 图5-5 乘法实物 图5-6 乘法仿真 4)除法运算 图5-7 除法实物 图5-8 除法仿真6.总结在编程和硬件调试的过程中我们遇到了很多困难,特别是液晶屏的选择以及对lcd驱动显示电路的理解,几乎花掉了我们大半的时间,但仍旧是只理解了与我们项目相关的少量程序,在设计这个电路的过程中我们阅读了大量的关于液晶屏的资料,在各大c语言论坛、单片机论坛及proteus仿真、keil c论坛上注册了会员。同时参阅了论坛上大量成熟的电路及代码,深深的感觉到自己现在知识水平的落后,本以为本课题的思路非常简单却没想到做起来是那么举步维艰,通过这里我们体会到了一个硬件程序员的辛苦所在。但苦尽甘来我们还是尝到了我们课题成功后的喜悦,虽然只是成功了一小步只能显示五个自习室。在此过程中,我们也认识了一些论坛上的高人和访问了很多电子高手的博客,他们开阔的思路渊博的知识,绝非课本上能够学到的。参考文献1c程序设计(第三版),谭浩强,清华大学出版社a,2008.52单片机原理与接口技术 ,牛昱光,电子工业出版社a,2009,13mcs-51单片机原理系统设计与应用,万福君,清华大学出版社a,2008,64proteus仿真论坛/thread-7599-1-1.html551单片机综合学习系统之1602字符型液晶显示篇 ,电子制作2008.1附件1源代码#include#define clearscreen lcd_write_command(0x01) #define uint unsigned int #define uchar unsigned char#define lcdio p0#define keyboard p1sbit lcd1602_rs=p25; sbit lcd1602_rw=p26; sbit lcd1602_en=p27; code uchar mayuan16=0,1,2,3,4,5,6,7,8,9,c,+,-,*,/,=;unsigned char code keycode=0x28,0x11,0x21,0x41,0x12,0x22,0x42,0x14,0x24,0x44,0x18,0x81,0x82,0x84,0x88,0x48;int i,j,k=1;long t=0,t1=0,t2=0,s;void delay_10ms() uchar i,j;for(i=0;i10;i+)for(j=0;j120;j+);void lcd_write_command(unsigned char command) lcdio=command; lcd1602_rs=0; lcd1602_rw=0; lcd1602_en=0; lcd1602_en=1; delay_10ms();void lcd_write_dat(unsigned char dat)lcdio=dat; lcd1602_rs=1; lcd1602_rw=0; lcd1602_en=0; delay_10ms(); lcd1602_en=1;void lcd_init(void)clearscreen; lcd_write_command(0x38); lcd_write_command(0x0c); lcd_write_command(0x80); clearscreen;uchar keyscan()uchar temp,keynum;keyboard=0xf0; delay_10ms(); if(keyboard!=0xf0) temp=keyboard; delay_10ms(); if(keyboard=temp) uchar i; keyboard=0x0f; delay_10ms(); keynum=temp | keyboard; while(keyboard!=0x0f); for(i=0;i16;i+) if(keycodei=keynum) return (i); return -1;calc(uchar n)if(n10)t1=t1*10+n;lcd_write_dat(mayuann);elseif(n=10)lcd_init();t1=0;t2=0,t=0;k=1;elseif(n0) t=t2-t1; else t=t1-t2; while(t!=0) lcd_write_dat(0x30+t%10); t=t/10; if(t2-t10) lcd_write_dat(0x2d);break;case 13:t=t2*t1; while(t!=0) lcd_write_dat(0x30+t%10); t=t/10; break;case 14: i=0; t=(long)(float)t2/t1)*1000); while(t!=0) lcd_write_dat(0x30+t%10); t=t/10; i+; if(i=3) lcd_write_dat(0x2e); if(t2/t1=0) lcd_write_dat(0x30);break; lcd_write_dat(mayua
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 科技园区给排水系统招投标文件
- 城市地铁设施故障应对
- 医院急诊室电气安全管理制度
- 道路桥梁检测项目招投标文件
- 学校扩建项目临时围挡施工合同
- 石油勘探设备校正与维护操作规程
- 实验室危险品使用与管理
- 交通运输业关联交易管理办法
- 眼镜店门头改造合同
- 海参养殖非政府组织合作合同
- 绞吸式挖泥船水下疏挖河渠施工工法
- 反腐倡廉廉洁行医
- 质量保证体系范文(必备14篇)
- 心血管内科医疗质量评价体系与考核标准
- 儿科运用PDCA循环改进提高病历书写质量
- 2022-2023学年广州市南沙区小升初全真模拟数学检测卷含答案
- 2023年食品安全粮食类理论知识考试题库(含答案)
- 机械装备结构设计PPT完整全套教学课件
- 中国糖尿病患者的白内障围手术期防治策略专家共识(2020年)
- IATF16949审核员工作职责
- 马达加斯加地质矿产概况
评论
0/150
提交评论