单片机课程设计-计数器课程设计.doc





《单片机课程设计-计数器课程设计.doc》由会员分享,可在线阅读,更多相关《单片机课程设计-计数器课程设计.doc(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、提供全套毕业论文,各专业都有单片机课程设计课题: 计数器系 别: 电气与电子工程系专 业: 电子信息工程姓 名: 学 号: 093409160河南城建学院 2011年12月28日成绩评定一、指导教师评语(根据学生设计报告质量、答辩情况及其平时表现综合评定)。二、评分评分项目设计报告评分答辩评分平时表现评分合 计 (100分)任务完成情 况(20分)课程设计报告质量(40分)表达情况(10分)回答问题情 况(10分)工作态度与纪律(10分)独立工作能力(10分)得分课程设计成绩评定班级 姓名 学号成绩: 分(折合等级 )指导教师签字 年 月 日一、前言 自动计数器在日常生活中屡见不鲜,它是根据不
2、同的情况设定的,能够 通过技术功能实现一些相应的程序, 如通过自动计数器来实现自动打开和关闭各 种电器设备的电源。广泛用于路灯,广告灯,电饭煲等领域。 自动计数器给人们生产生活带来了极大的方便, 而且大大地扩展了自动计数器的 功能。诸如自动定时报警器、按时自动打铃、时间程序自动控制、定时广播、自 动启闭电路,定时开关烤箱、甚至各种定时电器的自动启用等,所有这些,都是 以自动计数器为基础的。由于它的功能强劲,用途广泛,方便利用,所以在这个 电子科技发展的时代,它是一个很好的电子产品。如在洗衣机的定时控制以及路 灯等一些人们不能再现场控制的操控。都可以利用自动计数器来完成这样的功 用。可见此系统所
3、能带来的方便和经济效益是相当远大的。因此,研究自动计数 器及扩大其应用,有着非常现实的意义。 本次课设设计是检验理论学习水平、实践动手能力及理论结合实际的能力,要求 具有一定的分析处理问题能力和自学能力的一个比较重要得实践课程。 通过这样 的过程,使我们的论文及实践水平有一次较为全面的检查,同时也使我们硬件方 面的能力有所提高,对以后的学习有这非常重要的意义。 二、设计目的1、使学生增进对单片机的感性认识,加深对单片机理论方面的理解;2、使学生掌握单片机的内部功能模块的应用,如定时器/计数器、中断、片内外存贮器、I/O口、A/D、D/A、串行口通讯等;3、使学生了解和掌握单片机应用系统的软硬件
4、设计过程、方法及实现,为以后设计和实现单片机应用系统打下良好基础。三、设计要求1、可以实现六位的计数:0999999 2、键盘能实现全锁、半锁、清零功能3、能实现计数的自加一 减一四、总体设计1、 电路的总体原理框图数码管74LS138 单片机按键开关74LS472、 LED显示器的结构与原理(1)结构种类 七段LED显示器(数码管)系发光器件的一种。常用的LED发光器件有两类:数码管和点阵。数码管内部有七个条形发光二极管和一个小圆点发光二极管组成,根据各管的亮暗组成字符。常见数码管有10根管脚。管脚排列如下图(a)所示。其中COM为公共端,根据内部发光二极管的接线形式可分为共阴极和共阳极两种
5、。如下图(b)(c)所示,使用时,共阴极数码管公共端接地,共阳极数码管公共端接电源。发光二极管需510mA的驱动电流才能正常发光,一般需加限流电阻控制电流的大小。 (2)显示原理 LED数码管的ag七个发光二极管。加正电压的发光加零电压的不能发光,不同亮暗的组合能形成不同的字符,这种组合称为字型码。共阳极和共阴极的字型码是不同的,如下所示。 LED字符显示代码表显示 段符号 十六进制代码 dp g f e d c b a 共阴极 共阳极0 0 0 1 1 1 1 1 1 3FH C0H1 0 0 0 0 0 1 1 0 06H F9H2 0 1 0 1 1 0 1 1 5BH A4H3 0 1
6、 0 0 1 1 1 1 4FH B0H4 0 1 1 0 0 1 1 0 66H 99H5 0 1 1 0 1 1 0 1 6DH 92H6 0 1 1 1 1 1 0 1 7DH 82H7 0 0 0 0 0 1 1 1 07H F8H8 0 1 1 1 1 1 1 1 7FH 80H9 0 1 1 0 1 1 1 1 6FH 90H3、 译码器原理(74LS47) 译码为编码的逆过程。它将编码时赋予代码的含义“翻译”过来。实现译码的逻辑电路成为译码器。译码器输出与输入代码有唯一的对应关系。74LS47是输出低电平有效的七段字形译码器,它在这里与数码管配合使用,表2列出了74LS47的真值
7、表,表示出了它与数码管之间的关系。 表2 输 入 输 出 显示数字符号 LT() RBI(-) A3 A2 A1 A0 BI()/RBO() a() b() c() d() e() f() g() 1 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 X 0 0 0 1 1 1 0 0 1 1 1 1 1 1 X 0 0 1 0 1 0 0 1 0 0 1 0 2 1 X 0 0 1 1 1 0 0 0 0 1 1 0 3 1 X 0 1 0 0 1 1 0 0 1 1 0 0 4 1 X 0 1 0 1 1 0 1 0 0 1 0 0 5 1 X 0 1 1 0 1 1 1 0 0
8、 0 0 0 6 1 X 0 1 1 1 1 0 0 0 1 1 1 1 7 1 X 1 0 0 0 1 0 0 0 0 0 0 0 8 1 X 1 0 0 1 1 0 0 0 1 1 0 0 9 X X X X X X 0 1 1 1 1 1 1 1 熄灭 1 0 0 0 0 0 0 1 1 1 1 1 1 1 熄灭 0 X X X X X 1 0 0 0 0 0 0 0 8 (1)LT():试灯输入,是为了检查数码管各段是否能正常发光而设置的。当LT()=0时,无论输入A3 ,A2 ,A1 ,A0为何种状态,译码器输出均为低电平,若驱动的数码管正常,是显示8。 (2)BI():灭灯输入,是
9、为控制多位数码显示的灭灯所设置的。BI()=0时。不论LT()和输入A3 ,A2 ,A1,A0为何种状态,译码器输出均为高电平,使共阳极数码管熄灭。 (3)RBI(-):灭零输入,它是为使不希望显示的0熄灭而设定的。当对每一位A3= A2 =A1 =A0=0时,本应显示0,但是在RBI(-)=0作用下,使译码器输出全为高电平。其结果和加入灭灯信号的结果一样,将0熄灭。 (4)RBO():灭零输出,它和灭灯输入BI()共用一端,两者配合使用,可以实现多位数码显示的灭零控制。3、 74LS138 3 线8 线译码器,共有 54/74S138和 54/74LS138 两种线 路结构型式。 其工作原理
10、如下: 当一个选通端(E1)为高电平,另两个选通端(E2)和/(E3))为低电平时,可将地址端(A0、A1、A2)的二进制编码在Y0至Y7对应的输出端以低电平译出。比如:A2A1A0=110时,则Y6输出端输出低电平信号。 利用 E1、E2和E3可级联扩展成 24 线译码器;若外接一个反相器还可级联扩展成 32 线译码器。 若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。 可用在8086的译码电路中,扩展内存。4、硬件总体设计1、 主要元器件选择主要元器件选用型号和数量如下:1个AT89C51(单片机) 1个CRYSTAL(晶振) 2个CAP(电容) 1个RES(电阻) 2
11、个7SEG-COM-CATHOD(共阴极数码管) 1个CAP-ELEC(电解电容) 1个发光二极管 1个74LS47(七段字形译码器) 1个74LS138(3 线8 线译码器)2、 系统板上硬件连线(1 单片机P3.0P3.7接按键端口P0P7(2 单片机P0.0P0.7接74LS47和74LS138的输入端(3 数码管的七段和六位分别与74LS47 和74LS138的输出端相接5、 软件总体设计 # include # include # include bit FLAG0=0; /*设定位标记,键盘扫描回应标记*/sbit LED = P20; /*LED*/ char m=0,ptr=0
12、,ptr1=0; /*PTR键盘扫描指标,PTR1显示器扫描指标*/bit stand=0,stand1=0; /*键盘锁控制位*/char code tab16=0x01,0x02,0x03,0x0c, /*键盘码*/0x04,0x05,0x06,0x0d,0x07,0x08,0x09,0x0e,0x0a,0x00,0x0b,0x0f;unsigned long DATA16; /*按键值存放数组*/void delay (unsigned int value) /*延时子程序*/while (value!=0) value-; /*10US延时*/void scan(void); /*声明
13、键盘扫描子程序*/void clear(void); /*声明清除按键存放/显示器数组DATA子程序*/void xch(void); /*声明按键存放/显示器数组DATA 右键滚入子程序*/void CF(void);void CH5(void);void main() /*主程序*/ TMOD=0x11; /* TIMER0,TIMER1工作在MODE1方式*/ TH1=(65536-3000)/256; /*设定每隔3000US扫描一次*/ TL1=(65536-3000)%256; IE=0x88; /*8是允许中断,a是TIMER0,TIMER1中断使能位*/ TR1=1; /*启动
14、TEMER1*/ clear(); /*调用清除显示器为000000子程序*/ while (1) do scan (); /*调用键盘扫描子程序有按FLAG0会为1*/ while (FLAG0!=1); /*判断有按键输入否?*/ delay(1000); /*按钮去抖动*/ while(m=P1); /*按钮放开否?*/ delay(1000); switch(tabptr) /*是则测试PTR键盘扫描计数器指标至TAB取到的键盘码*/ case 0x0e: if(stand=0&stand1=0)clear(); /*是否按c是则调用清除显示器CLEAR*/ break; case 0
15、x0c: /*是否按A,计数器加*/ if(stand=0) CF(); break; case 0x0d: /*是否按B,计数器减*/ if(stand=0) CH5(); break; case 0x0a: /*是否按*,锁键*/ stand=1; break; case 0x0f: /*是否按d,解锁键*/ stand=0; stand1=0; break; case 0x0b: /*是否按#,半锁键*/ if(stand=0) stand1=1; break; default: if(stand=0&stand1=0)xch(); else ;break; /*跳出此循环*/ void
16、 CF(void)unsigned long temp;temp=DATA0; temp=temp+DATA1*10; temp=temp+DATA2*100; temp=temp+DATA3*1000; temp=temp+DATA4*10000;temp=temp+DATA5*100000;if(temp=999999)temp=0;elsetemp+;DATA0=(temp%10); /*取秒的个位数存入data20*/DATA1=(temp/10%10); /*取秒的十位数存入data21*/DATA2=(temp/100%10); DATA3=(temp/1000%10); DATA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 计数器

限制150内