430定时器学习心得(含五篇)

时间:2019-05-12 05:26:23下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《430定时器学习心得》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《430定时器学习心得》。

第一篇:430定时器学习心得

Msp430单片机一共有5种类型的定时器。

看门狗定时器(WDT)、基本定时器(Basic Timer1)、8位定时器/计数器(8-bit

Timer/Counter)、定时器A(Timer_A)和定时器B(Timer_B)。但是这些模块不是所有msp430型号都具有的功能。

1、看门狗定时器(WDT)

学过电子的人可能都知道,看门狗的主要功能就是当程序发生故障时能使受控系统重新启动。

msp430中它是一个16位的定时器,有看门狗和定时器两种模式。

2、基本定时器(Basic Timer1)

基本定时器是msp430x3xx和msp430F4xx系列器件中的模块,通常向其他外围提供低频控制信号。它可以只两个8位定时器,也可以是一个16位定时器。

3、8位定时器/计数器(8-bit Timer/Counter)

如其名字所示,它是8位的定时器,主要应用在支持串行通信或数据交换,脉冲计数或累加以及定时器使用。

4、16位定时器A和B

定时器A在所有msp430系列单片机中都有,而定时器B在msp430f13x/14x和

msp430f43x/44x等器件中出现,基本的结构和定时器A是相同的,由于本人最先熟悉并应用的是定时器A所以在这里就主要谈一下自己对定时器A的了解和应用。

定时器A是16位定时器,有4种工作模式,时钟源可选,一般都会有3个可配置输入端的比较/捕获寄存器,并且有8种输出模式。通过8种输出模式很容易实现PWM波。定时器A的硬件电路大致可分为2类功能模块:

一:计数器TAR

计数器TAR是主体,它是一个开启和关闭的定时器,如果开启它就是一直在循环计数,只会有一个溢出中断,也就是当计数由0xffff到0时会产生一个中断TAIFG。

二:比较/捕获寄存器CCRX

如何实现定时功能呢?这就要靠三个比较/捕获寄存器了(以后用CCRx表示)。

当计数器TAR的计数值等于CCRx时(这就是捕获/比较中的比较的意思:比较TAR是否等于CCRx),CCRx单元会产生一个中断。依据中断即可得到相应的定时时间了。

这样我们可以通过定时器A得到三个定时时间了。

一:程序示例

我先给出我的一个应用程序,然后通过程序来书名定时器A的基本用法。程序如下: /****************************************************

*定时器初始化

****************************************************/

void init_TimerA(void)

{

CCTL0 = CCIE;//1:开启比较器0中断

CCR0 = 32768;// 2:定时时间的选取

其为1S秒定时:因为选择的是ACLK,UpMode,所以TAR每增加1次的时间为1/32768s,一共增加32768次,所以为1s

CCTL1 = CCIE;// 开启比较器1中断

CCR1 = 100;// 3.66mS显示延迟

TACTL = TASSEL_1 + MC_1;// 3:选择时钟源和计数模式

时钟源为ACLK并且为增计数模式

LPM3;//进入低功耗3

}

/****************************************************

*定时器0中断

****************************************************/

#pragma vector = TIMERA0_VECTOR

__interrupt void Timer_A0(void)

{

//用户代码 TACCR0

}

/****************************************************

二:程序分析

1):看程序中的定时器初始化模块。

1:CCTL0 = CCIE;

CCTLx是相应比较/捕获寄存器的控制寄存器,它可对比较/捕获寄存器进行设置。

这语句的意思是:开启了CCR0的中断使能,当计数器TAR计数到CCR0时产生中断。2:CCR0 = 32768;

CCRx就是相应比较器的值。

其为1S秒定时:因为选择的是ACLK,UpMode,所以TAR每增加1次的时间为1/32768s,一共增加32768次,所以为1s定时。

3:TACTL = TASSEL_1 + MC_1;

TACTL是计数器的控制寄存器。

TASSEL_x是时钟源的选择。

0——TACLK,使用外部引脚信号作为输入

1——ACLK,辅助时钟

2——MCLK,系统主时钟

3——INCLK,外部输入时钟

#pragma vector = TIMERA1_VECTOR

__interrupt void Timer_A1(void)

{

switch(TAIV)

{

case2: //用户代码 break;// TACCR1

case4://用户代码 break;// TACCR2

case 10://用户代码 break;//TAIFG

}

//根据需要是否要退出低功耗模式

LPM3_EXIT;// 退出低功耗

}

二:程序分析

1):看程序中的定时器初始化模块。

1:CCTL0 = CCIE;

CCTLx是相应比较/捕获寄存器的控制寄存器,它可对比较/捕获寄存器进行设置。这语句的意思是:开启了CCR0的中断使能,当计数器TAR计数到CCR0时产生中断。2:CCR0 = 32768;

CCRx就是相应比较器的值。

其为1S秒定时:因为选择的是ACLK,UpMode,所以TAR每增加1次的时间为1/32768s,一共增加32768次,所以为1s定时。

3:TACTL = TASSEL_1 + MC_1;

TACTL是计数器的控制寄存器。

TASSEL_x是时钟源的选择。

0——TACLK,使用外部引脚信号作为输入

1——ACLK,辅助时钟

第二篇:定时器课程设计心得体会

定时器课程设计的心得体会

课程设计共两周,第一周的任务是设计出原理图,并把PCB版图画出来;第二周的任务是根据原理图制作电路板,我们组共五个人,我们分工合作,共同学习,共同进步。

第一周的时候,我们五个人中有人主要负责画图,有人负责查阅资料,有人负责学protell99(因为我们目前还没有学protell99,画PCB版图需要用),有人负责审阅方案,然后我们再共同商议,尽量让我们的方案更完善,这其中大家都发挥了不可缺少的作用。第二周的时候,就进入实验室进行实训了,其实好期待自己动手制作电路板,满怀信心和期待的进入了实验室开始了又一个新的体验。我们的老师很认真很耐心的教导我们怎么操作,尤其是一些注意事项,对我们这些初次做课程设计的来说我们真的懂得很少,通过老师的细心指导后,我们便开始实战了。我们按照顺序先把图纸转印到电路板上,然后再对电路板进行腐蚀,腐蚀的过程其实挺有意思的,看着电路板上的电路图的线条在溶液里慢慢的越来越清晰的显现出来,其他部位的铜越来越少…目不转睛的盯着电路板看,生怕错过了每一个细节,终于腐蚀好了,虽然只完成了小小的一步,但我们也很兴奋。接下来该打孔了,我们小心的操作着,我们组的每个成员都亲自试着打孔,体验那种感觉。等打好孔后,刷了松香一切就绪后,开始插件,好多器件自己以前从来都没有见过,只在课本上学习它的结构,性质和功能,可是见都没见过,比如三极管,我以前就没有见过,直到这次见了后才知道原来一个三极管竟这么小!接下来焊接,对女生来说,焊接更是没有接触过,我先看着他们焊,看了好长时间终于鼓起勇气决定自己也试试,拿上电烙铁就感觉到它柄的温度,慢慢的小心的焊下去…终于都做好了,最后是调试的过程,看着我们自己制作的电路板要工作了,我们很激动同时也很紧张,我们刚开始插上电源时预置一个数后,显示器上并不显示数字增加计时,我们都面面相觑,可是我们并没有灰心,我们开始检查是我们哪里出了错,最后经过我们认真检查和思考终于把错误找了出来并改正了过来,再次调试,我们预置60秒,看着显示器的数字从零开始增加,我们绷着心弦,终于显示59,60报警器发出声音报警,调试成功,我们好高兴,感觉有点成就感。

通过这次课程设计,我学习到了不少平时在课堂上学习不到的东西。

一、对课本上的知识有更深的理解。

通过原理图的设计,对课本上的知识有了更深的理解,课本上的知识是机械的,表面的,很零碎的,通过课程设计,把原来以为很散的书本知识变的更为有联系,对课本知识有了更深的理解。

二、对该理论在实践中的应用有深刻的理解。

通过设计原理,制作电路板,到调试成功实现功能,把以前疑惑比如学这些知识都是干什么用的,通过这次课程设计,对该理论在实践中的应用和意义,有了更深刻的理解。

三、激发了学习的积极性。

通过该课程设计,全面系统的理解了定时器构造的一般原理和基本实现方法。把学过的电子技术的知识强化,能够把课堂上学的知识通过我们设计的电路表示出来,加深了对理论知识的理解。并激发了我们学习的积极性。

四、理解了学科之间的融合渗透。

本次课程设计所用器件大部分是用电子技术的数字部分里学的器件完成的,而也有些是模拟部分学的器件,而把这些器件连接起来用的则是电路的知识,这就把这三门学科联系起来,把各个学科之间的知识融合起来,对电子技术整体的认识更加深刻。

五、锻炼了自己的动手能力以及加深了对自己认识。

我们平时都只是学习课本上的知识,动手特别少,以致动手能力比较差,所以通过这次课程设计,通过自己动手制作,锻炼了自己的动手能力,同时也是对自己能力的一次检测,使我们对自己有了更深一步的认识,看自己在哪些方面还不足,为以后更好的提高自己提供了帮助。

六、提高了自己与别人相处以及合作的能力。

因为课程设计是分小组做的,而且在设计过程中我们需要分工合作,这就要求我们要有与人友好相处和与人友好合作的能力,这在以后的工作中很重要。通过这次课程设计,锻炼了同时也提高了我们的这项能力,无论是对我们的生活还是对我们以后的工作都有很大的帮助。

很喜欢课程设计,可以锻炼我们各个方面的能力,希望以后有更多这样的实训机会。同时也要谢谢两位指导老师这么辛苦的带领我们完成这些实训内容。

第三篇:实验二 定时器程序设计121

一、实验目的学会使用单片机定时器产生定时中断,并利用定时中断产生更长时间延时。

二、实验设备及器件

IBM PC机

一台

DP-51PRO.NET单片机仿真器、编程器、实验仪三合一综合开发平台

三、实验内容

1.实验二 定时器程序设计

2.编写程序,使P10端口来控制LED闪烁 3.C语言程序

//1ms定时中断实现100ms发光管闪烁 #include“REG51.h” sbit LED=P1^0;void main(void){ TMOD = 0x01;//设置定时器模式 16位定时器

TL0 = 0x18;//设置定时初值

TH0 = 0xFC;//设置定时初值

TR0 = 1;//定时器T0开始计时

ET0=1;//开定时器中断

EA=1;

//开总中断

while(1);}

//******************** //1ms void pit0(void)interrupt 1(中断程序){ static unsigned char ms_cnt=0;//16 ffff TL0 = 0x18;//设置定时初值

TH0 = 0xFC;//设置定时初值

if(++ms_cnt==100){

ms_cnt=0;

LED=!LED;} } 定时器的由程序

直接汇编语言 ORG 0 AJMP MAIN ORG 0BH AJMP PIT0 MAIN: MOV TMOD,#01H MOV TH0,#18H MOV TL0,#0FCH SETB TR0 SETB ET0 SETB EA SJMP $

生成;********************************** PIT0: MOV TH0,#18H MOV TL0,#0FCH INC R7 CJNE R7,#100,PIT0_R MOV R7,#0 CPL P1.0 PIT0_R: RETI END

四 实验要求

学会使用并掌握单片机定时器中断来实现LED100ms闪烁。

五 实验步骤

1.调试运行本节实验程序。若程序无错误,编译并进行二进制转换,下载程序。

2.连接线路,将A2区的P10端口连接到D1区的任意LED接口。3.观察LED灯闪烁情况

第四篇:AT89C52定时器2工作方式[定稿]

·定时器2:

定时器2 是一个16 位定时/计数器。它既可当定时器使用,也可作为外部事件计数器使用,其工作方式由特殊功能寄

存器T2CON(如表3)的C/T2 位选择。定时器2 有三种工作方式:捕获方式,自动重装载(向上或向下计数)方式和波特率发生器方式,工作方式由T2CON 的控制位来选择。定时器2 由两个8 位寄存器TH2 和TL2 组成,在定时器工作方式中,每个机器周期TL2 寄存器的值加1,由于一个机器周期由12 个振荡时钟构成,因此,计数速率为振荡频率的1/12。在计数工作方式时,当T2 引脚上外部输入信号产生由1 至0 的下降沿时,寄存器的值加1,在这种工作方式下,每个机器周期的5SP2 期间,对外部输入进行采样。若在第一个机器周期中采到的值为1,而在下一个机器周期中采到的值为0,则在紧跟着的下一个周期的S3P1 期间寄存器加1。由于识别1 至0 的跳变需要2 个机器周期(24 个振荡周期),因此,最高计数速率为振荡频率的1/24。为确保采样的正确性,要求输入的电平在变化前至少保持一个完整周期的时间,以保证输入信号至少被采样一次。

·捕获方式:

在捕获方式下,通过T2CON 控制位EXEN2 来选择两种方式。如果EXEN2=0,定时器2 是一个16 位定时器或计数器,计数溢出时,对T2CON 的溢出标志TF2 置位,同时激活中断。如果EXEN2=1,定时器2 完成相同的操作,而当T2EX 引

脚外部输入信号发生1 至0 负跳变时,也出现TH2 和TL2 中的值分别被捕获到RCAP2H 和RCAP2L 中。另外,T2EX 引

脚信号的跳变使得T2CON 中的EXF2 置位,与TF2 相仿,EXF2 也会激活中断。捕获方式如图4 所示。

·自动重装载(向上或向下计数器)方式:

当定时器2工作于16位自动重装载方式时,能对其编程为向上或向下计数方式,这个功能可通过特殊功能寄存器T2CON

(见表5)的DCEN 位(允许向下计数)来选择的。复位时,DCEN 位置“0”,定时器2 默认设置为向上计数。当DCEN

置位时,定时器2 既可向上计数也可向下计数,这取决于T2EX 引脚的值,参见图5,当DCEN=0 时,定时器2 自动设置

为向上计数,在这种方式下,T2CON 中的EXEN2 控制位有两种选择,若EXEN2=0,定时器2 为向上计数至0FFFFH 溢出,置位TF2 激活中断,同时把16 位计数寄存器RCAP2H 和RCAP2L重装载,RCAP2H 和RCAP2L 的值可由软件预置。若EXEN2=1,定时器2 的16 位重装载由溢出或外部输入端T2EX 从1 至0 的下降沿触发。这个脉冲使EXF2 置位,如果

中断允许,同样产生中断。

定时器2 的中断入口地址是:002BH ——0032H。

当DCEN=1 时,允许定时器2 向上或向下计数,如图6 所示。这种方式下,T2EX 引脚控制计数器方向。T2EX 引脚为逻

辑“1”时,定时器向上计数,当计数0FFFFH 向上溢出时,置位TF2,同时把16 位计数寄存器RCAP2H 和RCAP2L 重装

载到TH2 和TL2 中。T2EX 引脚为逻辑“0”时,定时器2 向下计数,当TH2 和TL2 中的数值等于RCAP2H 和RCAP2L

中的值时,计数溢出,置位TF2,同时将0FFFFH 数值重新装入定时寄存器中。

当定时/计数器2 向上溢出或向下溢出时,置位EXF2 位。

·波特率发生器:

当T2CON(表3)中的TCLK 和RCLK 置位时,定时/计数器2 作为波特率发生器使用。如果定时/计数器2 作为发送器或

接收器,其发送和接收的波特率可以是不同的,定时器1 用于其它功能,如图7 所示。若RCLK 和TCLK 置位,则定时器2

工作于波特率发生器方式。

波特率发生器的方式与自动重装载方式相仿,在此方式下,TH2 翻转使定时器2 的寄存器用RCAP2H 和RCAP2L 中的16

位数值重新装载,该数值由软件设置。

在方式1 和方式3 中,波特率由定时器2 的溢出速率根据下式确定:方式1和3的波特率=定时器的溢出率/16

定时器既能工作于定时方式也能工作于计数方式,在大多数的应用中,是工作在定时方式(C/T2=0)。定时器2 作为波

特率发生器时,与作为定时器的操作是不同的,通常作为定时器时,在每个机器周期(1/12 振荡频率)寄存器的值加1,而作为波特率发生器使用时,在每个状态时间(1/2 振荡频率)寄存器的值加1。波特率的计算公式如下:

方式1和3的波特率=振荡频率/{32*[65536-(RCP2H,RCP2L)]}

式中(RCAP2H,RCAP2L)是RCAP2H 和RCAP2L中的16 位无符号数。定时器2 作为波特率发生器使用的电路如图7 所示。T2CON 中的RCLK 或TCLK=1 时,波特率工作方式才有效。在波特率发生器工作方式中,TH2 翻转不能使TF2 置位,故而不产生中断。但若EXEN2 置位,且T2EX 端产生由1 至0 的负跳变,则会使EXF2 置位,此时并不能将(RCAP2H,RCAP2L)的内容重新装入TH2 和TL2 中。所以,当定时器2 作

为波特率发生器使用时,T2EX 可作为附加的外部中断源来使用。需要注意的是,当定时器2 工作于波特率器时,作为定

时器运行(TR2=1)时,并不能访问TH2 和TL2。因为此时每个状态时间定时器都会加1,对其读写将得到一个不确定的数值。

然而,对RCAP2 则可读而不可写,因为写入操作将是重新装载,写入操作可能令写和/或重装载出错。在访问定时器2

或RCAP2 寄存器之前,应将定时器关闭(清除TR2)。

·可编程时钟输出:

定时器2 可通过编程从P1.0 输出一个占空比为50%的时钟信号,如图8 所示。P1.0 引脚除了是一个标准的I/O 口外,还可以通过编程使其作为定时/计数器2 的外部时钟输入和输出占空比50%的时钟脉冲。当时钟振荡频率为16MHz 时,输

出时钟频率范围为61Hz—4MHz。

当设置定时/计数器2 为时钟发生器时,C/T2(T2CON.1)=0,T2OE(T2MO

D.1)=1,必须由TR2(T2CON.2)启

动或停止定时器。时钟输出频率取决于振荡频率和定时器2 捕获寄存器(RCAP2H,RCAP2L)的重新装载值,公式如下:

输出时钟频率=振荡器频率/{4*[65536-(RCP2H,RCP2L)]}

在时钟输出方式下,定时器2 的翻转不会产生中断,这个特性与作为波特率发生器使用时相仿。定时器2 作为波特率

发生器使用时,还可作为时钟发生器使用,但需要注意的是波特率和时钟输出频率不能分开确定,这是因为它们同使用

RCAP2L和RCAP2L。

·UART:

AT89C52的UART 工作方式与AT89C51 工作方式相同。

·中断:

AT89C52 共有6 个中断向量:两个外中断(INT0 和INT1),3 个定时器中断(定时器0、1、2)和串行口中断。所有

这些中断源如图9 所示。

这些中断源可通过分别设置专用寄存器IE 的置位或清0 来控制每一个中断的允许或禁止。IE 也有一个总禁止位EA,它能控制所有中断的允许或禁止。

注意表5 中的IE.6 为保留位,在AT89C51 中IE.5 也是保留位。程序员不应将“1”写入这些位,它们是将来AT89 系

列产品作为扩展用的。

定时器2 的中断是由T2CON 中的TF2 和EXF2 逻辑或产生的,当转向中断服务程序时,这些标志位不能被硬件清除,事实上,服务程序需确定是TF2 或EXF2 产生中断,而由软件清除中断标志位。定时器0 和定时器1 的标志位TF0 和TF1 在定时器溢出那个机器周期的S5P2 状态置位,而会在下一个机器周期才查

询到该中断标志。然而,定时器2 的标志位TF2 在定时器溢出的那个机器周期的S2P2 状态置位,并在同一个机器周期内

查询到该标志。

第五篇:单片机课程设计音乐闹钟定时器

目录:

0、任务书...............................................................................2

1、系统总体设计方案规划与选定.......................................2

2、硬件设计...........................................................................5

3、软件设计...........................................................................6

4、调试...................................................................................8

5、新增功能及实现方法.......................................................8

6、小结与体会.......................................................................9

7、参考文献...........................................................................9

8、附录.................................................................................10

单片机课程设计

0.任务书

基于51单片机设计一个电子数字钟,显示时、分、秒,且具有闹钟功能。用8255接口实现4*8键盘及8位LED显示。

32个键:0~9共10个键,调时(设置当前时间)键;设定闹钟(定时)键;走时键;光标左右移动各一个键。

要求键复位后,应该最后面的LED上显示H(待命状态)。

1.系统总体设计方案规划与选定

1.1主控制芯片选择

方案一:采用ARM微处理,做主控芯片,计算速度快,缺点;成本高,控制较复杂,不容易焊接。

方案二:采用80C51单片机做主控制器,由单片机来完成采集和信号处理等底层的核心计算,做主控芯片,成本低,易控制,易实现。

经过以上两个方案比较,在此题方案二明显优于方案一,故采用80C51单片机做主控制器。

1.2定时模块选择

方案一:采用时钟芯片DS1302。

DS1302 可以用于数据记录,特别是对某些具有特殊意义的数据点的记录,能实现数据与出现该数据的时间同时记录,且较单片机计时简单节约硬件资源,但存在时钟精度不高,易受环境影响,出现时钟混乱等缺点。

方案二:采用单片机内部的定时系统,外接晶振进行分频脉冲计数。

单片机课程设计

此系统采用12MHz晶振。

由于方案二使用简单,比方案一更适用该系统设计,所以选择方案二。

1.3 LED显示及计时模块选择

方案一:74LS192计数器——74LS47七点显示译码器

74LS192芯片是一块可预置数可逆计数芯片,功能强大。将74LS192芯片CPU引脚接高电平可实现减法计数,以倒计时显示。可通过74LS47与LED共阳极数字显示器配合使用。

方案二:使用移位寄存器74HC595与译码器相连

74HC595具有8位移位寄存器和一个存储器,使用时可直接与数字显示器相连。

方案三:使用8255扩展LED显示计时模块

8255是一个可编程并行接口芯片,有一个控制口和三个8位数据口,外设通过数据口与单片机进行数据通信,各数据口的工作方式和数据传送方向是通过用户对控制口写控制字控制的。我们用到了A与B口分别进行对数码显示管的片选和段选,且B口同时作为键盘扫描模块的输入口,与数码显示模块分时复用。故采用方案三

1.4蜂鸣器的选择

方案一:电磁式蜂鸣器

电磁式蜂鸣器主要是利用通电导体会产生磁场的特性,用一个固定的永久磁铁与通电导体产生磁力推动固定在线圈上的鼓膜。电磁式由于音色好,所以多用于语音、音乐等设备。对于不同提示音且考虑实际,此种较好。

方案二:压电式蜂鸣器

单片机课程设计

压电式蜂鸣器用的是压电材料,即当受到外力导致压电材料发生形变时压电材料会产生电荷。同样,当通电时压电材料会发生形变。压电式结构简单耐用但音调单一音色差,适用于警报器等设备。

由于闹铃为音乐闹铃,所以使用电磁式蜂鸣器更为合适。

2.硬件设计

2.1 芯片的选择

2.1.1 单片机80C51 2.1.1.1单片机80C51的组成

80c51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:

中央处理器:

中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。

数据存储器(RAM)8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。

程序存储器(ROM):

8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。

单片机课程设计

定时/计数器(ROM):

8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。

并行输入输出(I/O)口:

8051共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。

2.1.1.2

MCS-51的引脚说明:

MCS-52系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:

MCS-51的引脚说明:

MCS-52系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。

单片机课程设计

图1 80C51的引脚

2.1.1.3 MCS-51单片机内部定时器计数器、中断系统简介(1)定时器计数器

1、MCS-51系列中51子系列有两个16位的可编程定时计数器可:定时计数器T0和定时计数器T1。它由加法计数器、方式寄存器TMOD、控制寄存器TCON等组成。方式寄存器用于设定定时计数器T0和T1的工作方式,控制寄存器用于对定时计数器启动、停止进行控制。

2、每个定时计数器既可以对系统时钟计数实现定时,也可以外部信号计数实现计数功能通过编程设定来实现。

3、每个定时计数器都有多种工作方式,其中T0有四种工作方式,T1有三种工作方式,T2有三种工作方式。通过编程可设定工作于某种方式。四种工作方式为:13位定时计数器、16位定时计数器、8位自动重置定时 6

单片机课程设计

计数器、两个8位定时计数器(只有T0有)

4、每一个定时计数器定时计数时间到时产生溢出,使相应的溢出位置位,溢出可通过查询或中断方式处理。

(2)中断系统

1、MCS-51单片机提供5个硬件中断源,2个外部中断源,2个定时计数器T0和T1的溢出中断TF0和TF1,1个串行口发送TI和接收RI中断。

2、MCS-51单片机中没有专门的开中断和关中断指令,对各个中断源的允许和屏蔽是由内部的中断允许寄存器IE的各位来控制的。中断允许寄存器IE的字节地址为A8H,可以进行位寻址。系统复位时,中断允许寄存器IE的内容为00H,如果要开放某个中断源,则必须使IE中的总控置位和对应的中断允许位置“1”。

3、MCS-51单片机有5个中断源,为了处理方便,每个中断源有两级控制,高优先级和低优先级。通过由内部的中断优先级寄存器IP来设置,中断优先级寄存器IP的字节地址为B8H,可以进行位寻址。如果某位被置“1”,则对应的中断源被设为高优先级;如果某位被清零,则对应的中断源被设为低优先级。对于同级中断源,系统有默认的优先权顺序,从高到低优先权顺序为外部中断0、定时计数器T0中断、外部中断

1、定时计数器T1中断、串行口中断。通过设置中断优先级寄存器IP能够改变系统默认的优先级顺序。

4、MCS-51单片机响应中断的条件为:中断源有请求且中断允许。

2.1.2 八位一体七段数码管

单片机课程设计

数码管使用条件:

a、段及小数点上加限流电阻。

b、使用电压:段:根据发光颜色决定; 小数点:根据发光颜色决定。c、使用电流:静态:总电流 80mA(每段 10mA);动态:平均电流 4-5mA 峰值电流 100mA 上图为七段数码管引脚图,其中共阳极数码管引脚图和共阴极相同。LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。右图是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。

将多只LED的阴极连在一起即为共阴式,而将多只LED的阳极连在一起即为共阳式。以共阴式为例,如把阴极接地,在相应段的阳极接上正电源,该段即会发光。当然,LED的电流通常较小,一般均需在回路中接上限流电阻。假如我们将“b”和“c”段接上正电源,其它端接地或悬空,那么“b”和“c”段发光,此时,数码管显示将显示数字“1”。而将“a”、“b”、“d”、“e”和“g”段都接上正电源,其它引脚悬空,此时数码管将显示“2”。其它字符的显示原理类同。

单片机课程设计

2.1.3 并行接口扩展芯片8255 8255内部包括三个并行数据输入/输出端口,两个工作方式控制电路,一个读/写控制逻辑电路和8位总线缓冲器。

各部分功能概括如下:(1)端口A、B、C A口:是一个8位数据输出锁存器/缓冲器和一个8位数据输入锁存器。B口:是一个8位数据输入/输出锁存器/缓冲器和一个8位数据输入锁存器。C口:是一个8位数据输出锁存器/缓冲器和一个8位数据输入缓冲器(输入不锁存)。

通常A口、B口作为数据输入/输出端口。C口作为控制/状态信息端口,它在“方式控制字”的控制下可分为两个4位端口,每个端口有一个4位锁存器,分别与A口、B口配合使用,作为控制信号输出或状态信息输入端口。

(2)工作方式控制电路

工作方式控制电路有两个,一个是A组控制电路,另一个是B组控制电路。

单片机课程设计

这两组控制电路具有一个控制命令寄存器,用来接受中央处理器发来的控制字,以决定两组端口的工作方式,也可根据控制字的要求对C口按位清“0”或者按位置“1”。

A组控制电路用来控制A口和C口的上半部分(PC7-PC4)。B组控制电路用来控制B口和C口的下半部分(PC3-PC0)。

(3)总线数据缓冲器

总线数据缓冲器是一个三态双向8位缓冲器,作为8255与系统总线之间的接口,用来传送数据、指令、控制命令以及外部状态信息。

(4)读/写控制逻辑电路

读/写控制逻辑电路接受CPU发来的控制信号RD、WR、RESET、地址信号A1-A0等,然后根据控制信号的要求,将端口数据读出,发往CPU,或者将CPU送来的数据写入端口。

2.2 电路的组成

2.2.1 数码管显示电路

数码管显示器成本低,配置灵活,与单片机接口简单,在单片机应用系统中广泛应用。

数码管的工作原理如下:

数码管是由8个发光二极管构成的显示器件。在数码管中,若将二极管的阳极连在一起,称为共阳极数码管;若将二极管的阴极连在一起,称为共阴极数码管。本次课程设计用到的8个数码管均是共阳极的。当发光二极管导通时,它就会发光。每个二极管就是一个笔划,若干个二极管发光时,就

单片机课程设计

构成了一个显示字符。将单片机的I/O口控制相应的芯片与数码管的a-g相连,高电平的位对应的发光二极管亮,这样,由I/O口输出不同的代码,就可以控制数码管显示不同的字符。8个数码管均采用动态显示方式,显示当前的时间。

2.2.2 键盘扫描电路

键盘扫描电路图

键盘可分为两类:非编码键盘和编码键盘;常见的非编码键盘有两种结构:独立式键盘和矩阵式键盘。本次课程设计使用矩阵式键盘。

矩阵键盘的工作原理:按键设置在行、列线交点上,行、列线分别连接到按键开关的两端。列线通过上拉电阻接到+5V 电源上。无按键按下时,列线处于高电平的状态,而当有按键按下时,列线电平与此列线相连的行线电平决定。

行列扫描法原理:第一步,使列线为编程的输入线,行线是输出线,拉低所有的行线,判断列线的变化,如果有按键按下,按键按下的对应列线被拉低,否则所有的列线都为高电平。第二步,在第一步判断有键按下后,延时10ms消除机械抖动,再次读取列值,如果此列线还处于低电平状态则进入下一步,否则返回第一步重新判断。第三步,开始扫描按键位置,采用 11

单片机课程设计

逐行扫描,分别拉低第一行,第二行,第三行,第四行,无论拉低哪一行其他三行都为高电平,读取列值找到按键的位置,分别把行值和列值储存在寄存器里。第四步,从寄存器中找到行值和列值并把其合并,得到按键值,对此按键值进行编码,与已经设定好的键码表进行一一对比,如果不等,则继续比较,如果相等,则利用转移指令实现键盘扫描到按键功能的转移。

2.2.3 音乐闹铃电路

蜂鸣器电路

2.2.3.1 蜂鸣器

蜂鸣器是一种一体化结构的电子讯响器,主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型,他广泛应用于计算机、打印机、复印机、报警器、电话 12

单片机课程设计

机等电子产品中作发声器件。

2.2.3.2 单片机驱动

单片机上面使用的蜂鸣器一般都是无源电磁式的蜂鸣器(如下图所示)。它由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。

蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。

2.2.4 复位电路

RESET/Vpd为复位信号复用脚,当80C51通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,80C51的初始态。

上电复位:上电复位电路是—种简单的复位电路,只要在RST复位引脚接一个电容到VCC,接一个电阻到地就可以了。上电复位是指在给系统上电时,复位电路通过电容加到RST复位引脚一个短暂的高电平信号,这个复 13

单片机课程设计

位信号随着VCC对电容的充电过程而回落,所以RST引脚复位的高电平维持时间取决于电容的充电时间。为了保证系统安全可靠的复位,RST引脚的高电平信号必须维持足够长的时间。

电路图如下:

上电自动复位是通过外部复位电路的电容充电来实现的。只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。

3软件设计 4.调试

5.新增功能及实现方法

5.1定时器产生音乐的原理

音乐的产生主要是通过单片机的I/O口输出高低不同的脉冲信号来控制蜂鸣器发音。要想产生音频脉冲信号,需要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。利用单片机定时器计时这个半个周期时间,每当计时到后就将输出脉冲的I/O口反相,然后重复计时此半周期时间再对I/O口反相,这样就能在此I/O口上得到此频率的脉冲。

单片机课程设计

通常,利用单片机的内部定时器0,工作在方式1下,改变计数初值TH0和TL0来产生不同频率。

对于音乐的节拍,每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍。如果1拍为0.4S,1/4拍为0.1S,只要设定延迟时间就可求得节拍的时间。假设1/4拍为1DELAY,那么1拍应为4DELAY,以此类推。所以只要求得1/4拍的DELAY,其余的节拍就是它的倍数。

总而言之,一首乐曲是由音阶和节拍两大要素构成。一首乐曲演奏的原理是:不同音阶分别对应不同的频率,发出不同的音调,而节拍则控制发出音调时间的长短;若将乐曲的音调连续发出,并使其按相应的节拍变化,即可演奏一首乐曲。根据这一特点,我们采用单片机辅以相应的接口来设计音乐播放器。

5.2实现方法

利用定时器产生音乐,添加了音乐闹钟功能,能在闹钟时间到来时蜂鸣器发出《祝你生日快乐》歌,但缺点是在响铃时间里,无法正常显示时间。在此次课程设计中,产生的音乐是利用查表法来改变定时器T1的初值,即改变音高,而通过延时来确定每个音符的长短,即确定音长。

6.小结与体会 7.参考文献

【1】《单片机原理、接口及应用——单片机嵌入式系统技术基础(第2版)》,肖看、李群芳,清华大学出版社

【2】《单片机原理及应用》,霍孟友,机械工程出版社

【3】《51系列单片机设计实例(第二版)》,楼然苗、李光飞,北京航

单片机课程设计

空航天大学出版社

8.附录

8.1 源程序代码ORG 0000H LJMP START

ORG 000BH LJMP T0INT;T0中断服务程序

ORG 001BH LJMP TIM0

;;;;;主程序;;;;;;;;START:LCALL CLEA

START1:LCALL SCAN LCALL BELLSCAN LCALL KEYSCAN SJMP START1

CLEA:MOV R0,#70H MOV R7,#0EH CLEAR:MOV @R0,#00H INC R0 DJNZ R7,CLEAR;70H~7CH赋值0 MOV TMOD,#11H MOV TL0,#0B0H MOV TH0,#03CH SETB EA SETB ET0 SETB EX0 SETB TR0 CLR IT0 MOV 72H,#10 MOV 75H,#10 MOV 68H,#55H MOV 69H,#01H MOV 6AH,#00H CLR P1.0 RET

;延时子程序1MS DL1MS: MOV R6,#14H DL1: MOV R7,#19H DL2: DJNZ R7,DL2 DJNZ R6,DL1 RET

DL10MS:ACALL SCAN ACALL SCAN ACALL SCAN RET

;《祝你生日快乐》音乐闹铃程序BELLSCAN:MOV A,6AH

CJNE A,7AH,BELLOUT

MOV A,69H

CJNE A,79H,BELLOUT

MOV A,68H

CJNE A,78H,BELLOUT

LCALL MUSIC BELLOUT:RET MUSIC:

MOV IE,#8AH MOV 30H,#00H

NEXT1:MOV A,30H MOV DPTR,#TABLE MOVC A,@A+DPTR MOV R2,A JZ END0 ANL A,#0FH MOV R5,A MOV A,R2 SWAP A ANL A,#0FH

单片机课程设计

JNZ SING CLR TR1 LJMP D1 SING:DEC A MOV 22H,A RL A MOV DPTR,#TABLE1 MOVC A,@A+DPTR MOV TH1,A MOV 21H,A MOV A,22H RL A INC A MOVC A,@A+DPTR MOV TL1,A MOV 20H,A SETB TR1 D1:LCALL DELAY INC 30H LJMP NEXT1 END0:CLR TR1 LCALL BELLOUT

TIM0:PUSH ACC PUSH PSW MOV TL1,20H MOV TH1,21H CPL P1.0 POP PSW POP ACC RETI

DELAY:MOV R7,#02H D2:MOV R4,#187 D3:MOV R3,#248 DJNZ R3,$ DJNZ R4,D3 DJNZ R7,D2 DJNZ R5,DELAY RET

TABLE1:DW 64260,64400,64521,64580

DW 64684,64777,64820,64898 DW 64968,65030,65058,65110 DW 65157,65178,65217

TABLE:;1

DB 82H,01H,81H,94H,84H DB 0B4H,0A4H,04H

DB 82H,01H,81H,94H,84H DB 0C4H,0B4H,04H;2

DB 82H,01H,81H,0F4H,0D4H DB 0B4H,0A4H,94H

DB 0E2H,01H,0E1H,0D4H,0B4H DB 0C4H,0B4H,04H DB 00H

SCAN:;把记的数送给偏移量

MOV DPTR,#7FFFH MOV A,#80H

MOVX @DPTR,A;写控制字,在显示程序中A口输出,B口输出

MOV A,78H;秒 MOV B,#0AH DIV AB MOV 71H,A MOV 70H,B

MOV A,79H;分

MOV B,#0AH DIV AB MOV 74H,A MOV 73H,B

MOV A,7AH;时

MOV B,#0AH DIV AB MOV 77H,A

MOV 76H,B;

单片机课程设计

T0中断允许

;循环扫描显示,数码管显示程序,数码管为共阳型

MOV R1,#70H MOV R5,#80H;位选

MOV R3,#08H SCAN1:MOV A,R5 MOV DPTR,#7FFCH MOVX @DPTR,A;送A口位选

MOV A,@R1 MOV DPTR,#TAB MOVC A,@A+DPTR

MOV DPTR,#7FFDH MOVX @DPTR,A;送B口字形码

LCALL DL1MS

INC R1;字形码偏移量

MOV A,R5 RR A;位选码

MOV R5,A DJNZ R3,SCAN1;8次

MOV DPTR,#7FFCH MOV A,#00H MOVX @DPTR,A;A口清位选

RET TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH;对应于“0”~“9”、“_”

;定时器T0中断服务程序 T0INT:PUSH ACC

CLR ET0;停

CLR TR0;停T0工作

MOV TL0,#0B0H MOV TH0,#03CH SETB TR0;开T0工作

INC 7BH;7BH存放20

MOV A,7BH

CJNE A,#14H,OUTT0;20

MOV 7BH,#00H

INC 78H;78H秒

MOV A,78H

CJNE A,#3CH,OUTT0;60

MOV 78H,#00H

INC 79H

;79H分

MOV A,79H

CJNE A,#3CH,OUTT0;60

MOV 79H,#00H

INC 7AH

;7AH时

MOV A,7AH

CJNE A,#18H,OUTT0;24

MOV 7AH,#00

OUTT0:SETB ET0;开T0中断允许

POP ACC RETI

;;;;;;键盘扫描子程序;;;;;;;;

KEYSCAN:MOV DPTR,#7FFFH MOV A,#82H

MOVX @DPTR,A;写控制字,此时A口输出,B口输入

MOV DPTR,#7FFEH MOV A,#00H

MOVX @DPTR,A;C口写0

单片机课程设计

MOV DPTR,#7FFDH MOVX A,@DPTR MOV B,A

;B口输入

CJNE A,#0FFH,HAVE KEYOUT: RET

HAVE: LCALL DL10MS1 MOVX A,@DPTR CJNE A,B,KEYOUT;延时一段时间再检测有键按下才开始扫描处理

INC DPTR MOV A,#0FEH MOV B,A MOVX @DPTR,A;C口输出行值

MOV DPTR,#7FFDH MOVX A,@DPTR;B口输入列值

CJNE A,#0FFH,KEYLIE0

MOV A,B RL A MOV B,A MOV DPTR,#7FFEH MOVX @DPTR,A;C口输出行值

MOV DPTR,#7FFDH MOVX A,@DPTR;B口输入列值

CJNE A,#0FFH,KEYLIE1

MOV A,B RL A MOV B,A

MOV DPTR,#7FFEH

MOVX @DPTR,A;C口输出行值

MOV DPTR,#7FFDH

MOVX A,@DPTR;B口输入列值

CJNE A,#0FFH,KEYLIE2

MOV A,B RL A

MOV DPTR,#7FFEH

MOVX @DPTR,A;C口输出行值

MOV DPTR,#7FFDH

MOVX A,@DPTR;B口输入列值

CJNE A,#0FFH,KEYLIE3 ACALL KEYOUT;

KEYLIE0:MOV R2,#00H;R2 键码 行值,第1行八个数

LJMP KEYGET

KEYLIE1:MOV R2,#08H;第2行,八个数 LJMP KEYGET

KEYLIE2:MOV R2,#10H;第3行,八个数 LJMP KEYGET

KEYLIE3:MOV R2,#18H;第4行,八个数 LJMP KEYGET

KEYGET:MOV B,A

;B中存放B口读入的列值

MOV DPTR,#KEYTAB MOV A,#0 NEXT: PUSH ACC

MOVC A,@A+DPTR CJNE A,B,AGAIN

POP ACC;A是偏移值,即列值 ADD A,R2;A中存放键码

单片机课程设计

MOV B,A RL A

ADD A,B;PC偏移量

MOV LJMP KEYFUN30 LJMP KEYFUN31 RET KEYTAB:DB

0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH DPTR,#KEYFUNTAB JMP @A+DPTR

AGAIN: POP ACC INC A CJNE A,#8,NEXT ACALL KEYOUT

KEYFUNTAB: LJMP KEYFUN00 LJMP KEYFUN01 LJMP KEYFUN02 LJMP KEYFUN03 LJMP KEYFUN04 LJMP KEYFUN05 LJMP KEYFUN06 LJMP KEYFUN07 LJMP KEYFUN08 LJMP KEYFUN09 LJMP KEYFUN10 LJMP KEYFUN11 LJMP KEYFUN12 LJMP KEYFUN13 LJMP KEYFUN14 LJMP KEYFUN15 LJMP KEYFUN16 LJMP KEYFUN17 LJMP KEYFUN18 LJMP KEYFUN19 LJMP KEYFUN20 LJMP KEYFUN21 LJMP KEYFUN22 LJMP KEYFUN23 LJMP KEYFUN24 LJMP KEYFUN25 LJMP KEYFUN26 LJMP KEYFUN27 LJMP KEYFUN28 LJMP KEYFUN29

;0 1 2 3 4 5 6 7

RET

DL10MS1:MOV R4,#20 DL3: MOV R5,#7DH DL4: NOP NOP

DJNZ R5,DL4 DJNZ R4,DL3 RET

KEYFUN00:MOV @R0,#00H MOV A,7EH

CJNE A,#0FFH,CALCU

RET

KEYFUN01:MOV @R0,#01H MOV A,7EH

CJNE A,#0FFH,CALCU RET

KEYFUN02:MOV @R0,#02H MOV A,7EH

CJNE A,#0FFH,CALCU RET

KEYFUN03:MOV @R0,#03H MOV A,7EH

CJNE A,#0FFH,CALCU RET

KEYFUN04:MOV @R0,#04H MOV A,7EH

CJNE A,#0FFH,CALCU RET

KEYFUN05:MOV @R0,#05H MOV A,7EH

CJNE A,#0FFH,CALCU RET

KEYFUN06:MOV @R0,#06H MOV A,7EH

CJNE A,#0FFH,CALCU RET

单片机课程设计

KEYFUN07:MOV @R0,#07H MOV A,7EH CJNE A,#0FFH,CALCU RET KEYFUN08:MOV @R0,#08H MOV A,7EH CJNE A,#0FFH,CALCU RET KEYFUN09:MOV @R0,#09H MOV A,7EH CJNE A,#0FFH,CALCU RET CALCU: MOV A,71H MOV B,#0AH MUL AB ADD A,70H MOV 78H,A MOV A,74H MOV B,#0AH MUL AB ADD A,73H MOV 79H,A MOV A,77H MOV B,#0AH MUL AB ADD A,76H MOV 7AH,A RET

KEYFUN10://调时键 CLR TR0

MOV R0,#77H;R0指向时的偏移量

MOV 7DH,#00H;闪烁标志位

LCALL FLASH

RET FLASH:MOV A,@R0 MOV @R0,#0BH;R0(此时77H)指向熄灭的偏移量

MOV 7CH,#3DH;7CH单元存放循环次数 RE: LCALL OFFSCAN DJNZ 7CH,RE;调用OFFSCAN60次,半秒

MOV @R0,A;R0(此时77H)指向原来的偏移量

MOV 7CH,#3DH RE1: LCALL OFFSCAN

DJNZ 7CH,RE1;调用OFFSCAN60次,半秒 LCALL KEYSCAN;键盘扫描

MOV A,7DH CJNE A,#0FFH,FLASH;判断闪烁标志位

RET OFFSCAN: PUSH ACC MOV R1,#70H MOV R5,#80H;位选

MOV R3,#08H OFFSCAN1:MOV DPTR,#7FFFH MOV A,#80H

MOVX @DPTR,A;写控制字

MOV A,R5 MOV DPTR,#7FFCH MOVX @DPTR,A;A口输出位选

MOV A,@R1 MOV DPTR,#OFFTAB MOVC A,@A+DPTR

MOV DPTR,#7FFDH

MOVX @DPTR,A;B口输出字形码

LCALL DL1MS

INC R1

;R1指向下一个单元

MOV A,R5 RR A MOV R5,A;位选

DJNZ R3,OFFSCAN1;8次

单片机课程设计

MOV DPTR,#7FFCH MOV A,#00H MUL AB ADD A,73H MOV 69H,A MOVX @DPTR,A;A口位选清零

POP ACC RET OFFTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH,0FFH,89H RET //调时键按下

KEYFUN11:INC R0 RET KEYFUN12:DEC R0 RET KEYFUN13://走时键

MOV 7DH,#0FFH SETB TR0

RET KEYFUN14://闹铃键 MOV R0,#77H MOV 7EH,#0FFH;改变显示单元,不改变计数单元

MOV 7DH,#00H;开FLASH标志位

LCALL FLASH RET

KEYFUN15://闹钟时间确认键,写入计数比较单元

MOV A,71H MOV B,#0AH MUL AB ADD A,70H MOV 68H,A

MOV A,74H MOV B,#0AH

MOV A,77H MOV B,#0AH MUL AB ADD A,76H MOV 6AH,A RET

KEYFUN16:RET

KEYFUN17:MOV 7DH,#00H MOV 70H,#0CH

MOV 71H,#0BH

MOV 72H,#0BH

MOV 73H,#0BH

MOV 74H,#0BH

MOV 75H,#0BH

MOV 76H,#0BH

MOV 77H,#0BH;送熄灭符以及H符

MOV R0,#70H

LCALL FLASH

RET

KEYFUN18:MOV 7DH,#0FFH;关闭闪烁 LCALL CLEA RET KEYFUN19:RET KEYFUN20:RET KEYFUN21:RET KEYFUN22:RET KEYFUN23:RET KEYFUN24:RET KEYFUN25:RET KEYFUN26:RET KEYFUN27:RET KEYFUN28:RET KEYFUN29:RET KEYFUN30:RET KEYFUN31:RET ACALL KEYOUT END

单片机课程设计

8.2电路图

总体电路图

下载430定时器学习心得(含五篇)word格式文档
下载430定时器学习心得(含五篇).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    课程设计论文--基于labview的定时器程序设计

    基于labview的定时器程序设计 目录 1. 程序设计背景„„„„„„„„„„„„„„„„„„„„„„„„„„3 1.1. labview定时器的介绍„„„„„„„„„„„„„„„„......

    AVR单片机定时器TC0定时操作过程

    定时器T/C0定时功能实现过程 一、中断总使能:SREG=0X80; 二、使能定时器溢出中断,TIMSK的TOIE0置1 三、选择定时器时钟分频系数,由TCCR0的CS01,CS01,CS00决定。 四、定时器计......

    实验二 单片机定时器和计数器编程

    仲恺农业工程学院实验报告纸信息学院 (院、系)专业班组单片机原理及接口技术课实验二单片机定时器/计数器编程一、实验目的 1、掌握单片机定时器/计数器的工作方式; 2、掌握单......

    555集成定时器课堂设计gai

    “555集成定时器”课堂教学设计思想 一、引题:教学目的(整体感知) 教学目的:通过引导学生关注555集成定时器的历史发展,主要分析555集成定时器的内部基本构造,帮助学生认识到理解......

    单片机定时器控制交通灯程序1(精选5篇)

    定时器控制交通指示灯 /* 名称:定时器控制交通指示灯说明:东西向绿灯亮5s后,黄灯闪烁,闪烁5次亮红灯, 红灯亮后,南北向由红灯变成绿灯,5s后南北向黄灯闪烁, 闪烁5次后亮红灯,东西向绿......

    嵌入式系统 流水灯、按键、定时器实验报告

    嵌入式系统应用 实验报告 姓名: 学号: 学院: 专业: 班级: 指导教师: 实验1、流水灯实验 1.1实验要求 编程控制实验板上LED灯轮流点亮、熄灭,中间间隔一定时间。 1.2原理分析 实验......

    实验报告二、单片机定时器的综合应用

    院系 物理与电子信息学院 姓名 吴凯 实验室 S2312 课程 单片机原理与应用 试验项目编号专业 电子与电子信息工程班级10电专(2)学号 1060710057同组人/组号/指导老师肖鹏程日期......

    实验五 定时器、串行口以及人机交互综合编程

    仲恺农业工程学院实验报告纸信息学院 (院、系)专业班组单片机原理及接口技术课实验五定时器、串行口以及人机交互综合编程 一、实验目的 1、巩固掌握单片机定时器、串行口、键......