资源描述
目录摘要:单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。本课程设计的指导思想是控制单片机实现从0到99的计数功能,其结果显示在两位一体的共阳极数码管上。关键词:脉冲计数器 数码管 单片机本设计基于单片机技术原理,以单片机芯片STC89C52作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作出一个计数器,包括以下功能:输出脉冲,按下键就开始计数,并将数值显示在两位一体的共阳极数码管上。1课题原理PCB板上设置开始计数按键和清零按键,以上按键与89C52单片机的P1口连接,通过查询按键是否被按下来判断进行计数或者清零。若按下计数健,则单片机控制两位一体的共阳极数码管显示从00开始的数字,按下一次,则数字加一,一次类推;若按下清零键,则程序返回程序开始处,并且数码管显示00。2 硬件及软件设计2.1 硬件系统2.1.1 硬件系统设计此设计是在单片机最小系统的基础上进行开发和拓展,增加了按键电路和和数码管显示电路,由于单片机输出电流不足以驱动数码管发光,所以数码管需要驱动电路。我们采用了三极管对数码管电流进行放大,使电流大小达到要求值。2.1.2 单元电路设计基本框架如下图2.1加一按键开始按键清零按键数码管显示89C52单片机控制2.1基本框架图2.2 计数器原理图图2.3 计数器PCB图 1STC89C52芯片STC89C52RC芯片包括: 8k字节Flash,512字节RAM, 32位I/O口线,看门狗定时器,两个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。STC89C52RC芯片可降至0Hz静态逻辑操作,时钟频率0-80MHz,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。8位微控制器8K字节在系统可编程。芯片如图2.4所示。 图2.4 STC89C52芯片2按键电路K1键为启动键,K2键为清零键,K3键为计数键,通过按钮的连接,实现开始、计数清零功能,连接电路如图2.5所示。图2.5 按键电路3复位电路单片机的第9脚RST为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如图2.6所示:图2.6复位电路4晶振电路单片机必须在时钟的驱动下才能工作。在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。时钟电路如下图2.7所示。图2.7 晶振电路5数码管显示电路选用的是两位一体的共阳数码管,将P0口分别接数码管的八段发光二极管,将电源VCC端口接经数码管位选三极管,构成显示电路。电路图如图2.8所示图2.8 数码管显示电路6.电平转换与PC机接口电路电平转换电路,实现芯片与PC机的电压相匹配,同时实现与PC机之间的连接。电路图如图2.9所示图2.9电平转换与PC机接口电路2.2 软件系统2.2.1 软件系统分析1.单片机机器接口设计;2.数码管显示电路设计,两位数码管显示;3.按键取值电路设计,K1,K2,K3 分别控制计数器的开始,清零和加一。2.2.2 流程图外部脉冲计数器的软件流程图如图2.10注:K1键是启动键;K2键是复位键;K3键是外部脉冲键。K1键接P0口;K2键接P1口;K3键P2口.YNYNYNNYYN显示R1加一R19?R09?K3按下?K2按下?K1按下?显示R0加一R0清零#DPTRDPTRR0,R1清零图2.10 外部脉冲计数器的流程图2.2.3 程序汇编语言源程序: ORG 0000H LJMP START ORG 0100HSTART: JB P1.0 , START ;检查K1是否按下 LCALL DELAY1 ;消除抖动 JB P1.0,START MOV R0,#0 ;个位清零 MOV R1,#0 ;十位清零 MOV DPTR,#DTAB ;表格首地址赋给DPTR,为后面显示做准备JISHU: JNB P1.1,D3 ;检查K2否按下 ,如果按下则复位 LCALL DISPLAY JB P1.2,JISHU ;检查有没脉冲 LCALL DELAY1 ;消除抖动 JB P1.2,JISHU ;确认有脉冲 MOV DPTR,#DTAB ;表格首地址赋给DPTR,为后面显示做准备CJNE R0,#9H,SMALL ;判断个位是否等于9,等于9则跳到SAMLL SMALL: JNC BIG ;判断是否大于9,大于9则跳到BIG INC R0 LCALL DISPLAY AJMP JISHUBIG: MOV R0,#00H ;个位清零 CJNE R1,#9H,D1 ;判断十位是否等于9 D1: JNC D3 ;判断是否大于9,大于9 则跳到D3 INC R1 AJMP JISHUD3: MOV R0,#0 ;个位清零 MOV R1,#0 ;十位清零 AJMP JISHU ;循环计数DISPLAY:CLR A ;显示程序 CLR P1.4 MOV A,R0 MOVC A,A+DPTR MOV P0,A LCALL DELAY SETB P1.4 CLR P1.5 CLR A MOV A,R1 MOVC A,A+DPTR MOV P0,A LCALL DELAYSETB P1.5JNB P1.1,LOOP JNB P1.2,LOOP AJMP DISPLAYLOOP: RETDTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88HDELAY: MOV R7,#012H ;短延时子程序DEL1: MOV R6,#0FFHDEL2: DJNZ R6,DEL2 DJNZ R7,DEL1 RETDELAY1: MOV R7,#06FH ;长延时子程序DEL3: MOV R6,#0FFHDEL4: DJNZ R6,DEL4 DJNZ R7,DEL3 RET END3实习心得4 参考文献1 张毅刚 单片机原理及应用 高等教育出版社2 吴炳胜 80C51 单片机原理与应用技术 冶金工业出版社3 邹久明 80C51 单片机实用技术 北京航空航天大学出版社4 孙俊逸 单片机原理及应用 清华大学出版社5 张大明 单片微机控制应用技术实操指导书机 械工业出版社6 胡汉才 单片机原理及其接口技术 清华大学出版社
展开阅读全文