单片机实习报告(单片机定时器与计数器的区别)
本文目录
单片机定时器与计数器的区别
在51单片机的学习过程中,我们经常会发现中断、计数器/定时器、串口是学习单片机的难点,两者的区别是什么呢?下面就跟着我一起来看看吧。 单片机计数器与定时器的区别 计数器和定时器的本质是相同的,他们都是对单片机中产生的脉冲进行计数,只不过计数器是单片机外部触发的脉冲,定时器是单片机内部在晶振的触发下产生的脉冲。当他们的脉冲间隔相同的时候,计数器和定时器就是一个概念。 在定时器和计数器中都有一个溢出的概念,那什么是溢出了。呵呵,我们可以从一个生活小常识得到答案,当一个碗放在水龙头下接水的时候,过了一会儿,碗的水满了,就发生溢出。同样的道理,假设水龙头的水是一滴滴的往碗里滴,那么总有一滴水是导致碗中的水溢出的。在碗中溢出的水就浪费了,但是在单片机的定时计数器中溢出将导致一次中断,至于什么是中断我们下次再讲,这里只是初步的提下概念,中断就是能够打断系统正常运行,而去运行中断服务程序的过程,当服务程序运行完以后又自动回到被打断的地方继续运行。 在定时器计数器中,我们有个概念叫容量,就是最大计数量。方式0是2的13次方,方式1是2的13次方,方式2是2的8次方,方式3是2的8次方。把水滴比喻成脉冲,那么导致碗中水溢出的最后一滴水的就是定时计数器的溢出的最后一个脉冲。 在各种单片机书本中,在介绍定时计数器时都讲到一个计数初值,那什么是计数初值呢?在这里我们还是假设水滴碗。假设第一百滴水能够使碗中的水溢出,我们就知道这个碗的容量是100。问题1,我如何才能使碗接到10滴水就溢出呢?呵呵,我可以想象,如果拿一个空碗去接水,那么还是得要100滴水才能溢出,但是如果我们拿一个已经装有水的碗拿去接,那就不用100滴了。到此我们可以算出,要使10滴水让碗中的水溢出,那么碗中就先要装90滴水。 在定时计数器中,这90滴水就是我们所谓的初始值。问题2,在一个车间我们如何利用单片机对100件产品进行计件,并进行自动包装呢? 我们可以利用计数器计数100,在中断中执行一个自动包装的动作就可以了。 在这里计数初值有3个,假设有方式0:计数初值=8912(2的13次方)—100=8812。方式1:计数初值=65536(2的16次方)—100=65436。方式0:计数初值=256(2的8次方)—100=156。 根据所得的初始值,再将其转换为16进制或者2进制,就可以进行计数或者定时了。当然要让程序完全的运行起来还需要相应的寄存器进行设置。这些可以从各种单片机教程中找到。 单片机中定时器与计数器的区别 定时器实际上也是计数器,只是计数的是固定周期的脉冲 定时/计数器很容易理解的啊 定时器实际上也是工作在计数方式下,只是计数的是固定周期的脉冲,由于脉冲周期固定,由计数值可以计算时间,有定时功能 定时和计数只是触发来源不同(时钟信号和外部脉冲)其他方面是一样的。 单片机里的寄存器可以看成一个个电子开关,用来切换不同的功能、信号。 51里通过TMOD里的T/C 位切换计数信号的来源 当T/C工作在定时器时,对振荡源12分频的脉冲计数,即每个机器周期计数值加1,计数频率为1/12fosc,当晶振频率6MHZ时,计数频率为500KHz,每2us计数值加1;晶振12MHZ就是每1us加1 了。 当T/C工作在计数器是,计数脉冲来自外部脉冲输入管脚T0(P3.4)或T1(P3.5),当T0或T1脚上负跳变时计数值加1 ,识别管脚负跳变需要2个机器周期,即24个振荡周期。所以T0或T1脚输入的可计数的外部脉冲的最高频率为1/24fosc,当晶振12MHZ时,最高计数频率为500KHz,高于此频率将计数出错。 至于赋初值就是杯子原理了,由于51只能加计数,且只能在杯子刚刚满的那一刻发出中断,触发中断程序,所以我们就往杯子里先放好一定的豆子,再来相应数量的豆子就满了,然后中断程序就自动工作了。 注意: 定时和计数只是触发来源不同(时钟信号和外部脉冲)其他方面是一样的。 假设我们要定时一定时间(100个机器周期),我们就置初值为(溢出值-100)就行了,假设我们要计件100个,实际上也是置初值为(溢出值-100),然后将输入脉冲设为外部输入就可以了 所以说:定时和计数只是触发来源不同(时钟信号和外部脉冲)其他方面是一样的。 在中断里置初值是为下一个循环作准备,没什么好说的,看需要定了。 由于定时计数器的值也可以随时读出来,所以我们也可以从0开始计数,从而计算一段时间或一定脉冲的数量哦,这是照样可以打开中断,中断时就说明已经又计数了(定时器溢出值)个脉冲哦,在中断里进行溢出处理,就可以计算出远远大于(定时器溢出值)的数字了 此时也要注意一点:51读数时除了T/C2的捕捉功能,直接读TH和TL可是不断变化的哦,具体的还是看书。当你理解了定时计数器后,我们甚至还可以将计数值置为(溢出值-1),从而实现自动单步(定时模式)或作为外部中断(计数模式)用哦,仔细想想吧,呵呵;-) 至于中断中的需要保护现场的原因,是为了防止不小心修改了别的程序的参数,从而影响别的程序的运行,所以要且只要保护中断程序自己动过的数据,将动过的那些存储器在退出中断时恢复到进入时的状态,就不会影响被中断的程序了。 汇编需要自己保存现场,反正程序就是自己编的嘛,一切尽在掌握中; C的话编译器会自动进行覆盖分析,自动保存需要保存的变量,一般应用时尽可放心,当然,如果你很了解编译器做了什么,也可以嵌入汇编天马行空自由发挥啊,但新手可不建议这样哦,还是交给编译器吧。 其实这些可以说都是基础知识啊,如果不明白肯定是你的书看的不够仔细哦. 猜你喜欢 1. 单片机的硬件结构是什么 2. 10秒定时器电路设计 3. 单片机技术论文 4. 单片机的发声原理 5. 单片机开题报告范文 6. 电子实习报告单片机 7. 单片机实训报告范文3篇
求一单片机抢答器论文(C语言编程)
电子实习任务书1、时间:2006年12月18日—2006年1月7日2、实习单位:3、实习目的: 1》提高电路分析水平及综合运用的能力。 2》熟悉常用电子元器件的外型结构,掌握其标志方法。 3》掌握印制电路板的设计与制作方法。 4》通过产品的安装与调试,掌握电子产品的装配工艺与调试方法。 5》注重实践能力的培养,提高个人动手实践能力。4、实习任务: 基本要求: 《1》具有八路输入,能够识别最先输入的信号,显示选号,并有声音提示。 《2》对回答问题所用的时间进行到计时显示,并提示结束时间报警。 《3》具有抢答开关功能,按下该键后系统进入抢答状态。 发挥部分: 《1》在按下抢答开关之前的信号判断为提前抢答,显示选号,声音提示,连续达到定次数后限制其抢答。 《2》具有设置上述提及的时间、次数等参数的功能。实习报告前言 随着现代电子电路的快速发展,以及电子行业对现有电子工程技术的不断需求,特别是对实际操作实践的电子人才的需求越来越多,所以加强学生动手能力、重视实践应该是电子发展需求的必然趋向。实践动手能力的培养是一种综合能力,这种能力当然是在一定难度的前提下完成的,通过一定数量的实践才能逐步形成的。因此在培养实践能力的同时,要通过实践来不断的发现问题和解决问题的途径和方法,从而提高实践能力。 近年来,随着单片机档次的不断提高,功能的不断完善,其应用日趋成熟、应用领域日趋扩大,特别是工业测控、尖端武器和日用家电等领域更是因为有了单片机而生辉增色。单片机应用技术已成为一项新的工程应用技术。本次实习设计的题目为基于单片机的抢答器。在本次的课程设计中我主要负责了该系统的印制电路板PCB的制作一、方案论证 方案一:系统各部分采用中小规模集成数字电路,用机械开关按钮作为控制开关,完成抢答输入信号的触发。该方案的特点是中小规模集成电路应用技术成熟,性能可靠,能方便地完成选手抢答的基本功能,但是由于系统功能要求较高,所以电路连接集成电路相对较多,而且过于复杂,并且制作过程工序比较烦琐,使用不太方便。 方案二:该系统采用MCS-51系列单片机AT89S51作为控制核心,该系统可以完成运算控制、信号识别以及显示功能的实现。由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。整个系统具有极其灵活的可编程性,能方便地对系统进行功裤指能的扩张和更改性。 CS-51单片机特点如下: 1》 可靠性好:单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU ,程序指令和数据都可以烧写在ROM许多信号通道都在同一芯片,因此可靠性高。 2》 易扩充:单片机有一般电脑所必须的器件,如三态双向总线,串并行的输入及输出引脚,可扩充为各种规模的微电脑系统 3》 控辩敬制功能强:单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳跃指令。原理框图如1-1所示;图1-1 方案比较及其选用依据,显然方案二比方案一简单的多,不但从性能上优于方案一,而且在使用上及其功能的实现上都较方案一简洁,并且由于单片机具有优越的高集成电路性,使其工作速度更快、效率更高。另外AT89S51单片机采用12MHz的晶振,提高了信号的测量精度,并且使该系统可以通过软件改进来扩张功能。而方案一采用了中小规模集成电路,有其复杂的电路性能,从而可能会使信号的输入输出产生延时及不必要的误差。依此依据选择方案二比较适合。二、原理分析 1. 本电路采用单片机AT89C51作为控制芯片,单片机的P0口外接八个发光二极管,每个发光二极管分别作为八位选手的信号指示灯。并在各个外接电路上并接开关按键,按键另一端接地。发光二极管采用共阳极接法,由于P0口为高电平呈输入状态,当有按键按下时,P0口呈低电平与按键对应的发光二极管满足点亮条件点亮。在程序编程上采用查询,查询P0口P0。0到P0。7的八个端口呈低电平,即查询是哪个选手先按键,然后将选手号码的字节数据送至串行口输出并在数码管上显现出来。 2. 蜂鸣器是利用三极管处于开关状态是的导通与截止工作,在三极管导通时蜂鸣器工作,三极管截止时蜂鸣器不工作。三极管采用8550 PNP型基极接于P1。2口置其低电平时三极管导通,置其高电平时三极管截止。 3. 数码管采用共阳极七段显示,其内部发光二极管为共阳胡灶配极接高电平,当对应发光二极管一端为低电平时发光二极管点亮,显示的数字或字符由送入的字节数据控制,字节数据的输出采用串形口工作模式0,8位串行字节数据的输出通过RXD端口送出,TXD端用于送出同步移位脉冲,作为外接器件的同步移位信号。数据的发送是在TI=0的情况下,由一写发送缓冲器的指令开始CPU执行完该指令,串行口即将8位数据从RXD端送出,同时TXD端发出同步移位脉冲。8位数据发送完毕后由硬件置位TI=1,通过查询TI位来确定是否发送完一组数据,TI=1表示发送缓冲器已空,当要发送下一组数据时用软件使TI清零,然后即可发送下一组数据。 4. 软件设计分析首先在程序的开始为选手设置了一段违规程序,该程序的作用是为了防止选手在主持人没有按下抢答键时,有的选手已经提前抢答了,本次抢答为无效抢答,并有报警和记录下该位选手的选号,做违规处理,如果选手超出了在规定的提前抢答次数,则该选手将被取消以后的抢答资格。如果在主持按下抢答键时再抢答,该次抢答被视为有效抢答,在主持按下回答问题的键时选手就可以在规定的时间内回答问题了图1-2 《1》 选手查询程序: ORG 0000HSTART:CLR A MOV A,#0FFH MOV P0,A LOP:JNB P2。4,LP JNB P0。0,SA1 JNB P0。1,SA2 JNB P0。2,SA3 JNB P0。3,SA4 JNB P0。4,SA5 JNB P0。5,SA6 JNB P0。6,SA7 JNB P0。7,SA8 SJMP LOP SA1:AJMP SB1 SA2:AJMP SB2 SA3:AJMP SB3 SA4:AJMP SB4 SA5:AJMP SB5 SA6:AJMP SB6 SA7:AJMP SB7 SA8:AJMP SB8 LP:MOV R0,#9 LOP1:LCALL LED LCALL DEL JNB P0。0,SIP1 JNB P0。1,SIP2 JNB P0。2,SIP3 JNB P0。3,SIP4 JNB P0。4,SIP5 JNB P0。5,SIP6 JNB P0。6,SIP7 JNB P0。7,SIP8 DEC R0 CJNE R0,#0,LOP1 MOV R0,#0 LCALL LED LCALL DEL SJMP LOP SIP1:AJMP DIP1 SIP2:AJMP DIP2 SIP3:AJMP DIP3 SIP4:AJMP DIP4 SIP5:AJMP DIP5 SIP6:AJMP DIP6 SIP7:AJMP DIP7 SIP8:AJMP DIP8 SB1:MOV R2,#1 LCALL LED1 LCALL DE SJMP LP1 SB2:MOV R2,#2 LCALL LED1 LCALL DE SJMP LP1 SB3:MOV R2,#3 LCALL LED1 LCALL DE SJMP LP1 SB4:MOV R2,#4 LCALL LED1 LCALL DE SJMP LP1 SB5:MOV R2,#5 LCALL LED1 LCALL DE SJMP LP1 SB6:MOV R2,#6 LCALL LED1 LCALL DE SJMP LP1 SB7:MOV R2,#7 LCALL LED1 LCALL DE SJMP LP1 SB8:MOV R2,#8 LCALL LED1 LCALL DE SJMP LP1 LP1:JNB P2。4,LOP2 SJMP LP1 DIP1:MOV R2,#1 LCALL LED1 LCALL DE SJMP LH1 DIP2:MOV R2,#2 LCALL LED1 LCALL DE SJMP LH1 DIP3:MOV R2,#3 LCALL LED1 LCALL DE SJMP LH1 DIP4:MOV R2,#4 LCALL LED1 LCALL DE SJMP LH1 DIP5:MOV R2,#5 LCALL LED1 LCALL DE SJMP LH1 DIP6:MOV R2,#6 LCALL LED1 LCALL DE SJMP LH1 DIP7:MOV R2,#7 LCALL LED1 LCALL DE SJMP LH1 DIP8:MOV R2,#8 LCALL LED1 LCALL DE SJMP LH1 LH1:JNB P2。4,LOOP SJMP LH1 LOP2:MOV A,#11H MOV SBUF,A JNB TI,$ CLR TI LCALL DEL AJMP LOP 《2》 串行输出程序: 该部分程序的设计利用了单片机的串行模式0输出,该输出方式占用IO口少。可以省去许多IO口作为功能的扩展使用。在该模式下,我们采用了输出查询的方式,就是要借助发送标志TI,当程序执行到发送标志位时,查询其标志位TI的值,只要TI的值是0程序就继续查询,知道查询到TI为1时才结束,然后在进入下一组数据的发送。由于串行输出时送进去的数都是十进制数,以致计算机不能识别,所以还要把送进去的十进制数转化成而进制数,这样才能输出。因此在输出程序前必须有拆字程序,把原来送进去的十进制数转化成二进制数,然后在输出并通过数码管显示出来。但是如果在显示选手选号与显示选手回答问题所用的到计同用一段串行输出程序时就会造成程序的混乱,所以在此处设计了两段初始值不同的显示程序,从而可能增加了程序的烦琐化。 LED1:MOV A,R2 MOV B,#10 DIV AB MOV R1,A MOV R3,B MOV A,R1 MOV DPTR,#TAB MOVC A,@A+DPTR MOV SBUF,A JNB TI,$ CLR TI MOV A,R3 MOVC A,@A+DPTR MOV SBUF,A JNB TI,$ CLR TI RET。 LED:MOV A,R0 MOV B,#10 DIV AB MOV R1,A MOV R3,B MOV A,R1 MOV DPTR,#TAB MOVC A,@A+DPTR MOV SBUF,A JNB TI,$ CLR TI MOV A,R3 MOVC A,@A+DPTR MOV SBUF,A JNB TI,$ CLR TI RET DE:CLR P1。2 LCALL DEL01 SETB P1。2 LCALL DEL01 RETTAB:DB 11H,0D7H,32H,92H,0D4H,98H,18H,0D3H,10H,90H RET END 《3》倒计时程序 该程序为选手回答问题时的30秒倒计时程序,其中前25秒为正常的倒计时,在后5秒倒计时时伴随有报警声,用于提示选手回答问题的剩余时间。如果该选手在正常的倒计时内没有完成问题的回答,那么倒计时将被清零。 LOOP:MOV R0,#30 LPP:LCALL LED LCALL DEL JNB P2。4,LOP2 DEC R0 CJNE R0,#5,LPP MOV R0,#5 LPP1:JNB P2。4,LOP2 LCALL LED LCALL DE DEC R0 CJNE R0,#0,LPP1 MOV R0,#0 LCALL LED LCALL DEL LJMP START 《4》延时程序 该系统设计了两段延时程序,一段1秒延时,是为了30秒倒计时调用和程序中一秒延时所用;另一段为0。5秒延时,用于报警。程序的设计中报警时间为一秒,但是由于在硬件的设计时只设计了一个按键,这样就会造成连续按键时会使所设定的报警声不断的响,这是设计中不允许的,所以在软件编程时设计了一个0。5秒的延时,被报警时所调用,这样就使报警声能很清楚地区分出来了 DEL:MOV R6,#20 DEL01:MOV R6,#10 DEL1:MOV R5,#100 DEL11:MOV R5,#100 DEL2:MOV R4,#250 DEL21:MOV R4,#250 DJNZ R4,$ DJNZ R4,$ DJNZ R5,DEL2 DJNZ R5,DEL21 DJNZ R6,DEL1 DJNZ R6,DEL11 RET RET 《5》报警程序 该段程序主要是用于本系统中的所有报警使用,报警时间延时为1秒钟。 DE:CLR P1。2 LCALL DEL01 SETB P1。2 LCALL DEL01 RET三、制作过程 ×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××四、心得体会 ××××××××××××××××××××××××××××××××××××××××××××××××五、参考文献曾峰,巩海洪,曾波,电子工业出版社,印刷电路板(PCB)设计与制作 2005.8梅海凤,王艳秋,张军,汪毓铎,清华大学出版社 单片机原理与接口技术 2004.2 北京交通大学出版社
更多文章:
企业任命工会法人的任命书该怎么写?如何办理公司法人代表的变更,需准备哪些档案
2024年9月16日 12:10
拍个月亮发朋友圈怎么配文字(适合配月亮发的朋友圈 拍个月亮发朋友圈怎么配文字)
2024年4月10日 20:30
家庭经济困难申请表填写模板(广西家庭经济困难申请表填写模板)
2024年9月5日 08:50
夏季必备哪些清凉产品?夏天避暑的方法有几种 五种避暑方法让你清凉度夏
2024年3月11日 18:00
求内蒙古民族大学校歌歌词 走向辉煌的歌词?走向辉煌内蒙古民族大学校歌
2024年5月24日 08:50