单片机课程设计外部脉冲计数器
单片机计数器实验报告
计数器实验报告㈠实验目的1.学习单片机内部定时/计数器的使用和编程方法;2.进一步掌握中断处理程序的编程方法。
㈡实验器材1.G6W仿真器一台2.MCS—51实验板一台3.PC机一台4.电源一台5.信号发生器一台㈢实验内容及要求8051内部定时计数器,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数,使用8051的T1作定时器,50ms中断一次,看T0内每50ms 来了多少脉冲,将计数值送显(通过LED发光二极管8421码来表示),1秒后再次测试。
㈣实验说明1.本实验中内部计数器其计数器的作用,外部事件计数器脉冲由P3.4引入定时器T0。
单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变,这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样,同时这就决定了输入波形的频率不能超过机器周期频率。
2.计数脉冲由信号发生器输入(从T0端接入)。
3.计数值通过发光二极管显示,要求:显示两位,十位用L4~L1的8421码表示,个位用L8~L5的8421码表示4.将脉搏检查模块接入电路中,对脉搏进行计数,计算出每分钟脉搏跳动次数并显示㈤实验框图(见下页)程序源代码ORG 00000H LJMP MAINORG 001BH ;T0的中断入口地址AJMP MAIN1MAIN:MOV SP,#60HMOV TMOD,#15H ;设置T1做定时器,T0做计数器,都于方式1工作MOV 20H,#14H ;装入中断次数MOV TL1,#0B0H ;装入计数值低8位MOV TH1,#3CH ;装入计数值高8位MOV TL0,#00H计数器主程序框图中断返回恢复现场NY 是否到1秒?显示置T1定时常数INT _T1入口保护现场清T0计数值中断服务程序框图开 始置T0,T1模式及初始值设置初始常数开中断等 待MOV TH0,#00HSETB TR1 ;启动定时器T1SETB TR0 ;启动计数器T0SETB ET1 ;允许T1中断SETB EA ;允许CPU中断SJMP $ ;等待中断MAIN1:PUSH PSWPUSH ACCCLR TR0CLR TR1 ;保护现场MOV TL1,#0B0H ;装入计数值低8位MOV TH1,#3CH ;装入计数值高8位,50ms;允许T1中断DJNZ 20H,RETUNT ;未到1s,继续计时MOV 20H ,#14H;1s到重新开始SHOW: ;显示计数器T0的值MOV R0,TH0 ;读计数器当前值MOV R1,TL0MOV A,R1MOV B,#0AHDIV AB;将计数值转为十进制MOV C,ACC.3 ;显示部分,将A中保存的十位赋给L0~L3 MOV P1.0,CMOV C,ACC.2MOV P1.1,CMOV C,ACC.1MOV P1.2,CMOV C,ACC.0MOV P1.3,CMOV A,B ;将B中保存的各位转移到A中MOV C,ACC.3 ;将个位的数字显示在L4~L7上MOV P1.4,CMOV C,ACC.2MOV P1.5,CMOV C,ACC.1MOV P1.6,CMOV C,ACC.0MOV P1.7,CRETUNT:MOV TL0,#00H ;将计数器T0清零MOV TH0,#00HSETB TR0SETB TR1POP ACCPOP PSWRETI ;中断返回在频率为1000HZ时,L0~L7显示为50;频率为300HZ时,L0~L7显示为15,结果正确,程序可以正确运行。
单片机实验-外部中断、计数器定时器
1)用单次脉冲申请中断INT0,在中断处理程序中对输出信号进行反转。
ORG 0000HLJMP STARTORG 0003HLJMP INT0START:CLR P1.0MOV TCON, #01HMOV IE, #81HLJMP $INT0:PUSH PSWCPL P1.0POP PSWRETIEND结果:按一下单脉冲小灯亮,再按一下,小灯灭接线:INT0接单脉冲P1.0接个小灯2)用单次脉冲申请中断INT1,在中断处理程序中实现8个小灯左移点亮1次。
ORG 0000HLJMP STARTORG 0013HLJMP INT1START:MOV TCON,#04HMOV IE,#84HCLR PX1MOV A,#01HSJMP $INT1:MOV R1,#8LOOP:MOV P1,ALCALL DELAYRL ADJNZ R1,LOOPRETIDELAY:MOV R6,#200DELAY1:MOV R7,#125DELAY2:DJNZ R7,DELAY2DJNZ R6,DELAY1RETEND结果:按一下单脉冲,8个小灯左移点亮一次接线:INT1接单脉冲P1口接8个小灯3)将8051计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行单脉冲计数,并将其数值按二进制在P1口驱动LED灯上显示出来。
ORG 0000HSTART:MOV TMOD,#05HMOV TH0,#0MOV TL0,#0SETB TR0LOOP:MOV P1,TL0LJMP LOOPEND结果:P1口与四个小灯相连,按单脉冲的次数在四个小灯上显示接线:(P3.4)T0接单脉冲P1.0到P1.4接4个小灯4)用CPU内部定时器T0中断方式计时,实现每1秒钟输出状态发生一次反转。
ORG 0000HLJMP STARTORG 000BHLJMP INTSTART: MOV TMOD,#01HMOV B,#0AH;即10,设循环次数10次。
51单片机外部脉冲计数程序
51单片机外部脉冲计数程序51单片机外部脉冲计数程序是一种常见的嵌入式应用程序,它可以通过计数外部脉冲信号来实现各种功能,如测量速度、记录行程、控制电机等。
在本文中,我们将介绍如何编写一个简单的51单片机外部脉冲计数程序,供初学者参考。
一、程序框架```c#include <reg52.h>sbit PulsePin = P1^0; //定义脉冲信号输入引脚unsigned long cnt = 0; //计数器void ExternalInterrupt0() interrupt 0 //外部中断0的中断服务程序{cnt++; //计数器加一}```程序中定义了一个脉冲信号输入引脚PulsePin,一个计数器cnt,并在主程序中开启了全局中断和外部中断0,并设置外部中断0为下降沿触发。
在外部中断0的中断服务程序中,计数器cnt会加一。
二、程序解析1. 硬件连接将需要计数的脉冲信号输入引脚连接到单片机的P1.0引脚上,并连接好单片机的电源和地线。
2. 宏定义和全局变量首先定义了PulsePin引脚为输入模式,并定义了计数器cnt为无符号长整型变量。
3. 主程序在主程序中,首先开启了全局中断和外部中断0,然后设置外部中断0为下降沿触发。
最后加入一个无限循环,等待外部中断的触发。
4. 外部中断0的中断服务程序在外部中断0的中断服务程序中,计数器cnt会加一。
三、总结本文介绍了如何编写一个简单的51单片机外部脉冲计数程序。
通过外部中断0的中断服务程序,可以实现对外部脉冲信号的计数。
本程序只是一个简单的例子,读者可以根据自己的需求对其进行改进和优化。
单片机课程设计外部脉冲计数器
单片机课程设计外部脉冲计数器目录摘要:单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器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基本框架SEL11JDB91627384954.7kR112P3VCC142C00Q91vccVCC5PP25440CCPC-RXPC-TX0112110Q9465317126118vcc01-+DpVV7SEG-2abcdefghNVCCGR1INR2IN39867412T1OUTT2OUT0000000000000000R104.7k11111111D S232A-NR1OUTT2INC1+C1-C2+C2-T1INR2OUT123456781RRRRRRRRU20134519SEL2111DB0DB1DB2DB3DB4DB5DB6DB7PP1444 VCCCC0011RXDTXDDB0DB1DB2DB3DB4DB5DB6DB7TXDRXD92987654321234567800010333333332 222222242113DNP00P01P02P03P04P05P06P07P20P21P22P23P24P25P26P27VCCGPSENP30/ RXDP31/ TXDALE/ PROGP10P11P12P13P14P15P16P17P32/ INT0P33/ INT1P34/ T0P35/T1EA/VppXTAL1XTAL2RST/VpdP36/ WRP37/RD89C52AT89S5X123456784518991131123671111VCCR10DTTWRINT1INT0P10P11SEL1SE L2SPEAKP12P13VCCC1010UF/16V12311.0592MHzXTALVCC4K35021RSTP1KEYK0R121PP67 00C3C3VCC211234SSW-PBSSW-PBSSW-PBSSW-PB2PDC5V图2.2 计数器原理图图2.3 计数器PCB图1(STC89C52芯片 89C52STC89C52RC芯片包括: 8k字节139P10P00238P11P01Flash,512字节RAM, 32位I/O口337P12P02436P13P03线,看门狗定时器,两个数据指针,535P14P04634三个16位定时器/计数器,一个6向P15P05733P16P06832量2级中断结构,全双工串行口,片P17P071221内晶振及时钟电路。
单片机脉冲计数器程序
单片机脉冲计数器1、设计内容用单片机实现对一路脉冲计数和显示的功能。
硬件包括单片机最小系统、LED显示、控制按钮;软件实现检测到显示2、要求计数范围0~2000;脉冲输入有光电隔离整形,有清零按钮程序如下:ORG 0000HLJMP MAINORG 0003HLJMP 0100HORG 0013HLJMP 0150HORG 0050HMAIN: CLR AMOV 30H , A ;初始化缓存区MOV 31H , AMOV 32H , AMOV 33H , AMOV R6 , AMOV R7 , ASETB EASETB EX0SETB EX1SETB IT0SETB IT1SETB PX1NEXT1: ACALL HEXTOBCDD ;调用数制转换子程序ACALL DISPLAY ;调用显示子程序LJMP NEXT1ORG 0100H ;中断0服务程序MOV A , R7ADD A , #1MOV R7, AMOV A , R6ADDC A , #0MOV R6 , ACJNE R6 , #07H , NEXTCLR AMOV R6 , AMOV R7 , ANEXT: RETIORG 0150H ;中断1服务程序CLR AMOV R6 , AMOV R7 , ARETIORG 0200HHEXTOBCDD:MOV A , R6 ;由十六进制转化为十进制PUSH ACCMOV A , R7PUSH ACCMOV A , R2PUSH ACCCLR AMOV R3 , AMOV R4 , AMOV R5 , AMOV R2 , #10HHB3: MOV A , R7 ;将十六进制中最高位移入进位位中RLC AMOV R7 , AMOV A , R6RLC AMOV R6 , AMOV A , R5 ;每位数加上本身相当于将这个数乘以2 ADDC A , R5DA AMOV R5 , AMOV A , R4ADDC A , R4DA A ;十进制调整MOV R4 , AMOV A , R3ADDC A , R3DJNZ R2 , HB3POP ACCMOV R2 , APOP ACCMOV R7 , APOP ACCMOV R6 , ARETORG 0250HDISPLAY: MOV R0 , #30HMOV A , R5ANL A , #0FHMOV @R0 , AMOV A , R5SW AP AANL A , #0FHINC R0MOV @R0 , AMOV A , R4ANL A , #0FHINC R0MOV @R0 , AMOV A , R4SW AP AANL A , #0FHINC R0MOV @R0 , AMOV R0 , #30HMOV R2 , #11111110BAGAIN: MOV A , R2MOV P2 , AMOV A , @R0MOV DPTR , #TABMOVC A , @A+DPTRMOV P0 , AACALL DELAYINC R0MOV A , R2RL AMOV R2 , AJB ACC.4 , AGAINRETTAB: DB 03FH , 06H , 5BH , 4FH , 66H , 6DH , 7DH , 07H , 7FH , 6FH ;七段码表DELAY: MOV TMOD , #01H ;0.05s延时子程序MOV TL0 , #0B0HMOV TH0 , #3CHSETB TR0WAIT: JNB TF0 , WAITCLR TF0CLR TR0RETEND单片机的T1口计数,T0口定时,P1口输出段码,P2口位选,三位数码管显示 ORG 0000HAJMP MAINORG 000BHAJMP COUNTORG 0100HMAIN: MOV TMOD,#51HMOV TH1,#00HMOV TL1,#00HMOV TL0,#0B0HMOV TH0,#3CHSETB PT0SETB ET0SETB EASETB TR0SETB TR1WAIT: AJMP WAITCOUNT: MOV 30H,TL1MOV 31H,TH1LCALL BCDLCALL WFRETIBCD: MOV R1,30HMOV A,R1MOV B,#100DIV ABMOV 33H,AMOV A,BMOV B,#10DIV ABMOV 34H,AMOV 35H,BPLAY: MOV A,33HMOV DPTR,#TABMOVC A,@A+DPTRMOV P1,ASETB P2.2LCALL DELAYCLR P2.2MOV A,34HMOVC A,@A+DPTRMOV P1,ASETB P2.1LCALL DELAYCLR P2.1MOV A,35HMOVC A,@A+DPTRMOV P1,ASETB 2.0LCALL DELAYCLR P2.0RETTAB: DB 3FH,06H,5BH,4FH,66F,6DH,7DH,07H,7FH,6FHDELAY: MOV R5,#10HDE1: MOV R7,#5DE2: MOV R6,#20DE3: DJNZ R6,DE3DJNZ R7,DE2DJNZ R5,DE1RETWF: MOV TH1,#00HMOV TL1,#00HMOV TH0,#0B0HMOV TL0,#3CHSETB TR1SETB TR0RETENDCOUNT: CLR TR1CLR TR0MOV 30H,TL1MOV 31H,TH1LCALL BCDLCALL WFRETORG 0000HAJMP MAINORG 000BHAJMP COUNTORG 0100HMAIN: MOV TMOD,#51HMOV TH1,#00HMOV TL1,#00HMOV TL0,#0B0HSETB PT0SETB ET0SETB EASETB TR0SETB TR1WAIT: AJMP W AITCOUNT: MOV 30H,TL1MOV 31H,TH1LCALL BCDLCALL WFRETIBCD: MOV R1,30HMOV A,R1MOV B,#100DIV ABMOV 33H,AMOV A,BMOV B,#10DIV ABMOV 34H,AMOV 35H,BPLAY: MOV A,33HMOV DPTR,#TABMOVC A,@A+DPTRMOV P1,ASETB P2.2LCALL DELAYCLR P2.2MOV A,34HMOVC A,@A+DPTRMOV P1,ASETB P2.1LCALL DELAYCLR P2.1MOV A,35HMOVC A,@A+DPTRMOV P1,ASETB 2.0LCALL DELAYCLR P2.0RETTAB: DB 3FH,06H,5BH,4FH,66F,6DH,7DH,07H,7FH,6FHDE1: MOV R7,#5DE2: MOV R6,#20 DE3: DJNZ R6,DE3DJNZ R7,DE2DJNZ R5,DE1RETWF: MOV TH1,#00H MOV TL1,#00HMOV TH0,#0B0HMOV TL0,#3CHSETB TR1SETB TR0RETENDCOUNT: CLR TR1CLR TR0MOV 30H,TL1MOV 31H,TH1LCALL BCDLCALL WFRET。
单片机的定时及计数器实验-脉冲计数器
实验六单片机定时、计数器实验2——脉冲计数器一、实验目的1.AT89C51有两个定时/计数器,本实验中,定时/计数器1(T1)作定时器用,定时1s;定时/计数器0(T0)作计数器用。
被计数的外部输入脉冲信号从单片机的P3.4(T0)接入,单片机将在1s内对脉冲计数并送四位数码管实时显示,最大计数值为0FFFFH。
2.用proteus设计、仿真基于AT89C51单片机的脉冲计数器。
3.学会使用VSM虚拟计数/计时器。
二、电路设计1.从PROTEUS库中选取元件①AT89C51:单片机;②RES:电阻;③7SEG-BCD- GRN:七段BCD绿色数码管;④CAP、CAP-ELEC:电容、电解电容;⑤CRYSTAL:晶振;SEG-COM- GRN为带段译码器的数码管,其引脚逻辑状态如图所示。
对着显示的正方向,从左到右各引脚的权码为8、4、2、1。
2.放置元器件3.放置电源和地4.连线5.元器件属性设置6.电气检测7.虚拟检测仪器(1)VSM虚拟示波器单击小工具栏中的按钮,在对象选择器列表中单击COUNTER(计数/计时器),打开其属性编辑框,单击运行模式的下拉菜单,如图所示,可选择计时、频率、计数模式,当前设置其为频率计工作方式。
(2)数字时钟DCLOCK单击按钮,在对象选择器中选择DCLOCK(数字时钟)。
在需要添加信号的线或终端单击即可完成添加DCLOCK输入信号。
当前信号设置为DIGITAL型的时钟CLOCK,频率为50K。
三、源程序设计、生成目标代码文件1.流程图2.源程序设计通过菜单“sourc e→Add/Remove Source Files…”新建源程序文件:DZC36.ASM。
通过菜单“sourc e→DZC36.ASM”,打开PROTEUS提供的文本编辑器SRCEDIT,在其中编辑源程序。
程序编辑好后,单击按钮存入文件DZC32.ASM。
3.源程序编译汇编、生成目标代码文件通过菜单“sourc e→Build All”编译汇编源程序,生成目标代码文件。
完整版脉冲计数器设计
脉冲计数设计与分析摘要我们知道,555电路在应用和工作方式上一般可归纳为3类。
每类工作方式又有很多个不同的电路。
在实际应用中,除了单一品种的电路外,还可组合出很多不同电路,如:多个单稳、多个双稳、单稳和无稳,双稳和无稳的组合等。
这样一来,电路变的更加复杂。
为了便于我们分析和识别电路,更好的理解555电路,这里我们这里按555电路的结构特点进行分类和归纳,把555电路分为3大类、8种、共18个单元电路。
每个电路除画出它的标准图型,指出他们的结构特点或识别方法外,还给出了计算公式和他们的用途。
555时基电路是一种将模拟功能与逻辑功能巧妙地结合在同一硅片上的组合集成电路。
该电路可以在最基本的典型应用方式的基础上,根据实际需要,经过参数配置和电路的重新组合,与外接少量的阻容元件就能构成不同的电路,因而555电路在波形的产生与变换、测量与控制、家用电器、电子玩具等许多领域中都得到了广泛应用关键字:NE555 计数译码显示目录第一章脉冲计数器简介 (3)1.1脉冲计数器绪论 ......................................... 错误!未定义书签。
1.2脉冲计数器主要内容 ................................. 错误!未定义书签。
第二章脉冲计数器设计与分析 .. (4)2.1方案与论证 (4)2.2总体框图及模块设计 (5)2.3总体电路设计 (9)2.4系统测试,抗干扰及注意细节 (9)第三章脉冲计数器设计结果分析论证 (10)3.1硬件调试 (10)3.2结果分析得出结论 (11)附录: .......................... 错误!未定义书签。
参考文献: .. (12)第一章脉冲计数器简介1.1发展趋势由555时基电路构成常见的最基本的典型应用电路有:单稳态触发电路、双稳态触发电路、无稳态电路,而用这3种方式中的1种或多种组合起来可以组成各种实用的电子电路,如定时器、分频器、脉冲信号发生器、元件参数和电路检测电路、玩具游戏机电路、音响告警电路、电源交换电路、频率变换电路、自动控制电路等第二章脉冲计数器设计与分析2.1方案与论证方案一:用MAX0832产生脉冲信号,经过计数、译码、显示,此方案性价比高,硬件电路较为简单。
单片机计数器设计
单片机计数器的设计可以根据具体的需求进行灵活的选择。
以下是一个简单的单片机计数器的设计:
确定计数范围:根据需求确定计数器的范围,例如0-99或0-999。
选择计数器类型:根据计数范围选择合适的计数器类型,可以是二进制计数器、十进制计数器或BCD码计数器等。
确定计数方式:确定计数的方式,可以是递增计数、递减计数或双向计数等。
确定计数信号源:确定计数信号的来源,可以是外部信号源或内部时钟信号源。
连接计数器到外设:根据需求将计数器的输出连接到外设,例如LED显示器、数码管或继电器等。
编写计数器程序:使用适当的单片机编程语言编写计数器程序,包括计数器的初始化、计数操作和显示操作等。
测试和调试:在硬件连接完成后,对计数器进行测试和调试,确保计数器功能正常。
以上是一个简单的单片机计数器的设计流程,具体的实施可以根据具体的需求和单片机型号进行调整。
外部脉冲计数器设计的原理及实现
外部脉冲计数器设计的原理及实现随着科技的不断发展,单片机以其高效、可靠的特性被广泛应用于各种场合,如自动化控制、电子测量等领域。
在单片机应用中,计数器是常见的一种功能模块,其可用于计数输入的脉冲信号,从而实现各种功能。
本篇论文主要介绍如何设计一种基于单片机的外部脉冲计数器,包括其原理及实现过程。
同时,还将介绍各种技术要点如计数器的组成、计数器工作模式、计数器的特性以及计数器的应用场景等。
一、外部脉冲计数器的原理1.计数器的组成计数器是由多个触发器组成的。
触发器是基本单元,它能够改变状态。
在计数器中,触发器负责存储计数值,多个触发器串联构成计数器。
一般的,计数器可分为同步计数器和异步计数器。
同步计数器:所有的触发器同时改变状态,这样称为同步计数器Synchronous Counter/异步计数器:各个触发器改变状态的时刻不同步的计数器,称为异步计数器Asynchronous Counter。
2.计数器的工作模式计数器具有自动计数功能。
计数器可以在几种模式下工作:自动计数,手动计数,自动循环计数。
自动计数:只需输入一个计数信号,计数器便可以开始计数。
在计数到设定值之后,计数器会自动停止计数。
手动计数:需要通过用户手动操作来进行计数,这种计数方式使用较少。
自动循环计数:计数器会不停地计数,在计数到设定值之后会自动重新计数。
3.计数器的特性计数器的特性取决于计数器的触发器特性,常见的触发器有RS触发器、D触发器、JK触发器和T触发器等。
以下是一些常见触发器类型的特性:RS触发器:RS触发器具有两个控制输入R和S,可以将输出强制设置为1或0。
当R、S同时为0时,输出保持不变,称为稳态。
当R为0、S为1时,输出为0;当R为1、S为0时,输出为1。
D触发器:D触发器只有一个输入D,当D的电平变化时,输出Q会跟着变化。
当D为0时,Q输出0,当D为1时,Q输出1。
JK触发器:JK触发器具有两个输入J和K。
当J、K、时钟信号分别被输入到JK 触发器时,输出状态会发生变化。
课题设计(脉冲计数器设计)
脉冲计数器程序设计
专业
班级:
姓名:
学号:
完成时间:
目录
1、课题设计的任务与要求: (3)
1.1课题设计的任务: (3)
1.2设计要求: (3)
2、设计思路与步骤: (3)
2.1 设计思路: (3)
2.2 设计步骤: (3)
3、参考资料 (5)
4、总结 (5)
1、课题设计的任务与要求:
1.1课题设计的任务:
在8051单片机的INTO引脚外接脉冲信号,要求每送来一个脉冲,把30H单元值加1,若30H单元记满则进位31H单元。
试利用中断结构,编制一个脉冲计数程序。
1.2设计要求:
1)用汇编语言编程;请在过程中加入必要的解释。
2)思路清晰、结构合理、层次清晰,设计简洁但又要能体现设计过程。
2、设计思路与步骤:
2.1 设计思路:
1)外部中断的设定;
2)当有中断产生,需要保护ACC寄存器。
在中断程序内,做加一动作。
2.2 设计步骤:
3、参考资料
3.1 <<MCS-51学习>>
4、总结
(整个课程设计过程中,你觉得学习到了什么,课设过程中自己做的不足的地方有哪些?对自己的学习有何启示?)。
单片机脉冲计数及显示课程设计
目录• 1. 设计思想和设计说明----------------------- • 2. 硬件原理框图-----------------------------3 • 3. 硬件原理图与其软件配合介绍---------------3 • 4. 程序存储器和数据存储器的单元分配---------6 • 5. 程序流程图-------------------------------7 • 6. 源程序清单-------------------------------9 •7. 芯片资料---------------------------------12 •8. 仿真结果(打印仿真图)-------------------17 •9. 参考文献---------------------------------19一设计思想和设计说明设计思想:本次课程设计采用一个可扩展芯片AT89C51,四个7段LED数码管显示器,经过电阻连接而组成,并具有开关复位等功能。
首先在keil软件中输入计数器程序,在生成以hex为后缀名的文件,拷贝添加到芯片AT89C51中以实现其功能。
其中芯片的P0.0到P0.7和P1.0到P1.7分别和四个7段LED数码管显示器相连接,作为0000-9999计数的十位数显示,在练习使用译码器驱动7段LED数码管显示器的同时,芯片AT89C51的由12MHZ的晶振提供脉冲支持芯片工作。
设计说明:在汇编程序中可将十六进制转换变为十进制输出显示,即使得计数器的初始状态为0000,当第1个计数脉冲来到后,其状态为0001,以后来一个脉冲计一次数,依次可计数到9999后清零,计数器是采用数字电路实现的对个,十,百,千位的数字显示技术装置,能广泛应用于实验室,公共场合,以及实际生活中的一些应用,是人们日常生活中不可少的必需品。
由于数字集成电路以及555振荡器的广泛应用,使得计数器的精度大大的提高。
基于51单片机的脉冲计数
一、课程设计任务 (1)二、课程设计分工安排................................................................................. 错误!未定义书签。
三、课程设计原理和方法 (1)3.1定时器工作原理 (1)3.1.1 定时/计数器构成 (1)3.1.2 定时/计数器的控制寄存器 (2)3.1.3 定时器/计数器工作方式 (2)3.1.3 定时器/计数器工作方式 (3)3.1.3 定时器/计数器工作方式 (4)3.2 软件设计 (5)3.2.1 程序流程图 (5)3.2.2 程序清单............................................................................... 错误!未定义书签。
3.2.2 程序清单 (7)3.3 功能图 (8)3.4硬件电路布线图 (9)四、小结 (9)五、参考文献 (10)六、致谢 (10)七、心得体会..................................................................................................................................一、课程设计任务熟悉8031定时/计数器的计数功能,掌握初始化编程方法,掌握中断程序的调试方法,利用定时/计数器0对外部输入的脉冲进行计数,并送显示器显示。
二、课程设计分工安排组长朱威主持共同分析系统结构和功能,并负责写出总体设计方案;易瑞刚负责论述8031定时/计数器的主要功能,以及在设计系统中的具体编程语句和含义,同时负责购买电阻,分频器,并焊接电路板;李孝捷负责论述8031定时/计数器的工作方式,以及在设计系统中的具体编程语句和含义;张友清负责论述如何利用8031定时/计数功能实现脉冲计数,以及在设计系统中的具体编程语句和含义;三、课程设计原理和方法3.1定时器工作原理3.1.1 定时/计数器构成AT89C51单片机有二个16位定时/计数器T0、T1,分别由4个8位计数器组成,均属SFR寄存器。
单片机设计实验--脉冲计数器
实验八脉冲计数实验一、实验目的:(1)掌握定时器/计数器的计数工作方式;(2)掌握用定时器/计数器实现脉冲计数的方法;(3)掌握用Keil实现软件调试的方法;(4)掌握用Proteus实现电路设计,程序设计和仿真的方法。
二、实验内容:定时器0外部输入端(P3.4)和定时器1外部输入端(P3.5)作为计数脉冲输入端,利用按钮手控产生单脉冲信号作为计数输入脉冲,编写程序控制,每输入一个(5个)脉冲,工作寄存器R0(R1)的内容加1,同时将R0(R1)的内容送到两位LED数码管中显示出来,晶振频率6MHZ。
三、实验参考电路:P1口接两位数码管显示工作寄存器R0的内容,P2口接两位数码管显示工作寄存器R0的内容,两只按钮分别接P3.2(外部中断0中断输入端)和P3.3(外部中断1中断输入端)。
实验电路如图:四、实验参考程序:ORG 0000HLJMP MAIN 指向主程序;ORG 000BH 定时器/计数器0的入口地址;LJMP T0C 指向中断服务程序;ORG 001BH 定时器/计数器1的入口地址;LJMP T1C 指向中断服务程序;ORG 0030HMAIN: MOV R0,#00H 清零;MOV R1,#00HMOV P1,#00HMOV P2,#00HMOV TMOD,#66H 置计数器0,计数器1为方式2;MOV TH0,#0FFH 置1次计数初值;MOV TL0,#0FFHMOV TH1,#0FBH 置5次计数初值;MOV TL1,#0FBHSETB EA 开中断;SETB ET0SETB ET1SETB TR0 启动计数器0;SETB TR1 启动计数器1;SJMP $ORG 0100HT0C: MOV A,R0 计数器0中断服务程序;ADD A,#01HDA A 十进制调整;MOV R0,A 保存计数器;MOV P1,A 计数值送显示器;RETIORG 0200HT1C: MOV A,R1 计数器1中断服务程序;ADD A,#01HDA A 十进制调整;MOV R1,A 保存计数器;MOV P2,A 计数器送显示器;RETIEND五、实验步骤:(1)建立工程文件,选择单片机型号,生成asm文件,在所生成文件中输入参考程序并调试如下:如图可以看出程序调试无错误,所以可以将其生成HEX文件。
脉冲计数(定时计数器的记数功能实验)
实验三脉冲计数(定时/计数器的记数功能实验1、实验目的:(1熟悉8031定时/计数器的记数功能,(2掌握初始化编程方法(3掌握中断程序的调试方法2、实验内容:定时/记数器0对外部输入的脉冲进行计数,并送显示器显示。
3.实验电路图:方案1方案24、实验器材:(1超想-3000TB综合实验仪 1 台(2超想3000仿真器 1 台(3连线若干根(4计算机 1 台5、实验连线:方案1:总线插孔的P3.4接脉冲源的DOWN,按下脉冲按钮,观察数码管上计数脉冲的个数。
6、实验原理:MCS-51有两个16位的定时/计数器:T0和T1。
计数和定时实质上都是对脉冲信号进行计数,只不过脉冲源不同而已.当工作在定时方式时,计数脉冲来自单片机的内部,每个机器周期使计数器加1,由于计数脉冲的频率是固定的(即每个脉冲为1个机器周期的时间,故可通过设定计数值来实现定时功能。
当工作在计数方式时,计数脉冲来自单片机的引脚,每当引脚上出现一个由1到0 的电平变化时,计数器的值加1,从而实现计数功能。
可以通过编程来指定时计数器的功能,以及它的工作方式。
读取计数器的当前值时,应读3次。
这样可以避免在第一次读完后,第二次读之前,由于低位溢出向高位进位时的错误。
7、程序框图8、程序清单; “验证式”实验三脉冲计数(定时/记数实验;对定时器0外部输入的脉冲信号进行计数且显示OUTBIT equ 0e101hCLK164 equ 0e102h ; 段控制口(接164时钟位DAT164 equ 0e102h ; 段控制口(接164数据位LEDBuf equ 40hORG 0000hMOV SP,#60HMOV DPTR,#0e100H ;8155初始化MOV A,#03HMOVX @DPTR,AMOV TMOD,#05H ;定时器初始化MOV TH0,#00HMOV TL0,#00HSETB TR0LOOP0:MOV R2,TH0MOV R3,TL0LCALL LOOP1 ;调用二转十子程序,结果放在R4 R5 R6中MOV R0,#40H MOV A,R6LCALL PTDSMOV A,R5LCALL PTDSMOV A,R4LCALL PTDSLCALL DISPLAYSJMP LOOP0LOOP1:CLR A ;二转十子程序MOV R4,AMOV R5,AMOV R6,AMOV R7,#10H LOOP2:CLR CMOV A,R3RLC AMOV R3,AMOV A,R2RLC AMOV R2,AMOV A,R6ADDC A,R6DA AMOV R6,AMOV A,R5ADDC A,R5DA AMOV R5,AMOV A,R4ADDC A,R4DA AMOV R4,ADJNZ R7,LOOP2RETPTDS: MOV R1,A ;拆字子程序ACALL PTDS1MOV A,R1SWAP APTDS1: ANL A,#0FHMOV @R0,AINC R0RETDelay:mov r7, #0 ; 延时子程序DelayLoop:djnz r7, DelayLoopdjnz r6, DelayLoopretDISPLAY:setb 0d3hmov r0, #LEDBufmov r1, #6 ; 共6个八段管 mov r2, #00000001b ; 从左边开始显示Loop: mov dptr, #OUTBITmov a, #00hmovx @dptr, a ; 关所有八段管mov a, @r0mov dptr,#LEDmapmovc a,@a+dptrmov B, #8 ; 送164DLP:rlc amov r3, amov acc.0, canl a,#0fdhmov dptr, #DAT164movx @dptr, amov dptr, #CLK164orl a,#02hmovx @dptr, aanl a,#0fDhmovx @dptr, amov a, r3djnz B, DLPmov dptr, #OUTBITmov a, r2movx @dptr, a ; 显示一位八段管 mov r6, #1 call Delaymov a, r2 ; 显示下一位rl amov r2, ainc r0djnz r1, Loopmov dptr, #OUTBITmov a, #0movx @dptr, a ; 关所有八段管clr 0d3hretLEDMAP: ; 八段管显示码db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h END。
单片机课程设计完整版
单片机课程设计Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】湖南工业大学课程设计资料袋理学院(系、部) 2015~2016 学年第 1 学期课程名称单片机系统课程设计指导教师职称学生姓名管专业班级电子科学1 学号题目出租车计费系统成绩起止日期 2015 年 12月7日~ 2015 年 12月 19 日目录清单湖南工业大学课程设计任务书理学院(系、部)电子科学专业班级课程名称:单片机系统课程设计设计题目:出租车计费系统完成期限:自 2015 年12月7日至2015 年 12 月 19 日共 2 周指导教师(签字):年月日系(教研室)主任(签字):年月日附件三(单片机应用系统)设计说明书(题目)出租车计费系统起止日期: 2015 年 12 月 7 日至 2015 年 12 月 19日学生姓名管班级电子科学学号成绩指导教师(签字)电气与信息工程学院2015年 12 月19 日一、设计任务:1.1 外部脉冲自动计数,自动显示。
1.1.1设计一个255计数器:0-255计数,计满后自动清0,重新计数(在数码管中显示)。
1.1.2设计一个50000计数器:0-50000计数,计满后自动清0,重新计数(在数码管中显示)。
1.2 设计一个出租车计费系统:起步价为5元(2km以内),2km后,元/0.5km;要求每500m刷新计费一次,在8位数码管中,前3位显示数码管显示里程数,后3位数码管显示价钱(角,元,十元)或者用lcd1602显示二、设计原理及思路1.设计一个255计数器:0-255计数,计满后自动清0,重新计数(在数码管中显示)。
这个用C语言比较简单。
首先我确定用的是外部中断0,1,外部中断0用来计数,来一个脉冲,计数器加1,直到加到255,然后清零。
外部中断1用来暂停/开始计数,来一个外部脉冲,暂停计数,再来一个脉冲,开始计数。
用138译码器数码管进行显示0到255,到了255,自动到0.2.设计一个50000计数器:0-50000计数,计满后自动清0,重新计数(在数码管中显示)。
单片机课程设计
单片机电子时钟摘要:在日常生活中,电子时钟与我们密切相关,在很多地方都会用到电子时钟。
除了专用的时钟、计时显示牌外,许多应用系统常常也带有实时时钟显示,如各种智能化仪器仪表、工业过程控制系统以及家用电器等。
实现电子时钟的方法有多种,通过前面我们对单片机基本理论及相关知识的学习,在这里,要求用单片机为主控制芯片设计一简单的单片机电子时钟。
近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
关键词:电子时钟;单片机;计时SCM Electronic ClockAbstract:In our daily life, the electronic clock is closely related to the electronic clock which will be used in many places. In addition to a dedicated clock, timing licenses, there are many applications which often with real-time clock display, such as a variety of intelligent instrumentation, industrial process control systems and home appliances. There are many ways to realize the Electronic clock, through the front of learning our SCM basic theory and related knowledge, here, the microcontroller-based control chip design a simple single-chip electronic clock. With the development of computer penetration in the social field and LSI in recent years, the using of microcontroller applications is constantly go deeper, because it has the features of a small size, low power consumption, cheap, reliable, easy to use. Therefore it is particularly suitable for the control of the system, more and more widely used in automatic control, Intelligent instruments, data acquisition, and military products and home appliances, SCM often used as a core component in the structure, according to the specific hardware and software for application-specific object characteristics combined to make perfect.Keywords:electronic clock; microcontroller; timing目录第一章引言 (1)课程设计的目的 (1)课程设计内容 (1)第二章总体方案设计 (2)总体思想--方案论证 (2)方案的选择 (2)第三章硬件系统设计 (4)总电路设计 (4)器件的介绍 (4)单元模块设计 (6)第四章软件系统设计 (9)软件程序思想 (9)主程序及流程图 (9)子程序及流程图 (12)第五章系统仿真 (16)KEIL 51介绍 (16)PROTEUS介绍 (20)仿真过程及仿真结果 (28)第六章结束语 (29)致谢 (30)参考文献 (31)第一章引言课程设计的目的本次设计中以单片机的发展过程和发展方向为背景,介绍了单片机的输入输出的工作原理和操作方法,中断的工作原理和操作方法,74LS164译码器的工作原理和与LED连接的方法。
对外部脉冲计数系统的设计计数器课程设计(单片机)
湖南工业大学课程设计资料袋理学学院(系、部)2012 ~ 2013 学年第 1 学期课程名称单片机应用系统指导教师周玉职称副教授学生姓名张思远专业班级电子科学102 学号10411400223 题目对外部脉冲计数系统的设计成绩起止日期2013 年01 月06 日~2013 年01 月10 日目录清单湖南工业大学课程设计任务书2012 —2013 学年第1 学期理学院学院(系、部)电子科学专业102 班级课程名称:单片机应用系统设计题目:对外部脉冲计数系统的设计完成期限:自2013 年01 月06 日至2013 年01 月10 日共 1 周指导教师(签字):年月日系(教研室)主任(签字):年月日附件三(单片机应用系统)设计说明书(题目)对外部脉冲计数系统的设计起止日期:2013 年01 月06 日至2013 年01 月10 日学生姓名张思远班级电子科学102学号10411400223成绩指导教师(签字)电气与信息工程学院2012年12 月10 日一、设计任务:1.1 外部脉冲自动计数,自动显示。
1.1.1设计一个255计数器:0-255计数,计满后自动清0,重新计数(在数码管中显示)。
1.1.2设计一个50000计数器:0-50000计数,计满后自动清0,重新计数(在数码管中显示)。
注:要求首先采用PROTEUS完成单片机最小系统的硬件电路设计及仿真;程序仿真测试通过后,再下载到单片机实训板上执行。
二、硬件设计介绍:※STC89C52单片机;※6位共阴或者共阴极数码管;※外部晶振电路;※ISP下载接口(In system program,在系统编程);※DC+5V电源试配器(选配);※ISP下载线(选配)※6个PNP(NPN)三极管※12个碳膜电阻三、硬件设计思路方案一:五个1位7段数码管,无译码器方案二:五个1位7段数码管,译码器方案三:1个6位7段数码管,译码器方案四:1个6位7段数码管,无译码器考虑实际中外围设备、资金、单片机资源利用率、节省端口数量,可实行性以及连接方便等问题,采用6为数码管(共阳或者共阴极)由于实际中没买到6位的,采用2个三位数码管并接组合一个6位数码管形式;由于实际P口驱动能力有限,故采用6位三极管增大驱动能力,已便足以使得6位数码管亮度明显正常工作,增加6个电阻限流保护数码管不被烧坏。
4-3 外部脉冲计数
任务4 任务4-3 外部脉冲计数
3)软件程序 3)软件程序 ①查询方式
ORG 0000H AJMP MAIN ORG 0030H MAIN:ACALL INNITIAL SETB TR0 LOOP:JBC TF0,LOOP1 AJMP LOOP LOOP1:ACALL FLASH AJMP LOOP FLASH:MOV R7,#10 FLASH1:MOV P1,#0FFH ACALL DELAY MOV P1,#0 ACALL DELAY DJNZ R7,FLASH1 RET INNITIAL:MOV TMOD,#06H MOV TL0,#252 MOV TH0,#252 MOV P1,#0 RET DELAY:MOV R6,#0FFH DL: MOV R5,#0FFH DJNZ R5,$ DJNZ R6,DL RET END
1、任务要求: 任务要求: 编写程序,实现按键闭合4 P1口连接的LED发光二极管闪烁10次 口连接的LED发光二极管闪烁10 编写程序,实现按键闭合4次,与P1口连接的LED发光二极管闪烁10次。 相关知识: 2、相关知识: TMOD寄存器的C/T位设为 此时,定时/ 寄存器的C/T位设为1 将TMOD寄存器的C/T位设为1,此时,定时/计数器即工作在计数工作模 式下。定时/计数器T0工作在计数模式时,通过引脚T0(P3.4) T0工作在计数模式时 T0(P3.4)对外部信 式下。定时/计数器T0工作在计数模式时,通过引脚T0(P3.4)对外部信 号计数;定时/计数器T1工作在计数模式时,通过引脚T1(P3.5) T1工作在计数模式时 T1(P3.5)对外部 号计数;定时/计数器T1工作在计数模式时,通过引脚T1(P3.5)对外部 信号计数。外部脉冲的下降沿将触发计数(换句话说, 信号计数。外部脉冲的下降沿将触发计数(换句话说,作为计数器使用 定时/计数器对外部脉冲的下降沿计数)。 )。外部信号的频率不得高 时,定时/计数器对外部脉冲的下降沿计数)。外部信号的频率不得高 于单片机系统振荡频率(晶振频率) 1/24,例如:当系统采用12MHz 于单片机系统振荡频率(晶振频率)的1/24,例如:当系统采用12MHz 的晶振时,最高外部计数脉冲频率为0.5MHz 0.5MHz。 的晶振时,最高外部计数脉冲频率为0.5MHz。
08实验八外部脉冲计数实验
实验八:外部脉冲计数实验院(系):电子工程学院课程名称:单片机原理及应用日期:班级学号实验室专业姓名计算机号实验名称教师签名实验仪器实验成绩4.8.1 实验目的1. 掌握单片机定时/计数器的工作方式和编程原理。
2. 掌握定时方法及定时器中断方法。
3. 掌握外部脉冲计数方法。
4.8.2 实验预习1.熟悉Keil集成编译环境的使用方法。
2. 复习单片机指令系统。
3. 复习单片机中断系统结构。
4. 复习定时/计数器结构。
4.8.3 实验原理单片机的定时/计数器就是一个16位二进制加法计数器,当选择计数模式时,计数脉冲来自于外部引脚P3.4(T0),P3.5(T1),因此,只需要初始化时将计数寄存器清零,启动计数器,然后读取计数寄存器的数值即可知外部脉冲个数。
4.8.4 预作实验任务1. 用Proteus仿真软件绘制图4.8.1所示电路图。
2. 编写程序将定时/计数器T1初始化为计数模式,工作方式1,不开启中断。
图4.8.1 外部脉冲计数电路图4.8.5 实验任务在图4.8.1的基础上编写程序实现对T0引脚输入的外部脉冲个数进行计数,并在数码管上显示计数结果。
4.8.6 实验步骤1.分析题意,确定算法,绘制流程图。
2.使用Keil C51软件建立工程,编辑、编译程序。
3.用usb电缆连接单片机和计算机。
4.使用STC_ISP软件下载程序。
5.运行程序,排除程序错误。
6.记录实验结果并分析。
4.8.7 实验思考按键的抖动对本实验有何影响?如何消除?。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
摘要:单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器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
2.1基本框架
1.STC89C52芯片
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口.
图2.10 外部脉冲计数器的流程图
2.2.3 程序
汇编语言源程序:
ORG 0000H
LJMP START
ORG 0100H
START: 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 JISHU
BIG: MOV R0,#00H ;个位清零
CJNE R1,#9H,D1 ;判断十位是否等于9
D1: JNC D3 ;判断是否大于9,大于9 则跳到D3 INC R1
AJMP JISHU
D3: 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 DELAY
SETB P1.5
JNB P1.1,LOOP
JNB P1.2,LOOP
AJMP DISPLAY
LOOP: RET
DTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H
DELAY: MOV R7,#012H ;短延时子程序
DEL1: MOV R6,#0FFH
DEL2: DJNZ R6,DEL2
DJNZ R7,DEL1
RET
DELAY1: MOV R7,#06FH ;长延时子程序
DEL3: MOV R6,#0FFH
DEL4: DJNZ R6,DEL4
DJNZ R7,DEL3
RET
END
3实习心得
4 参考文献
[1] 张毅刚单片机原理及应用高等教育出版社
[2] 吴炳胜 80C51 单片机原理与应用技术冶金工业出版社
[3] 邹久明 80C51 单片机实用技术北京航空航天大学出版社
[4] 孙俊逸单片机原理及应用清华大学出版社
[5] 张大明单片微机控制应用技术实操指导书机械工业出版社
[6] 胡汉才单片机原理及其接口技术清华大学出版社。