求助,怎么两个定时器做呼吸灯一个方波

如果要同时输出多个频率不同的方波(f1=38k, f2=1k) ,应怎样修【单片机吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:140,710贴子:
如果要同时输出多个频率不同的方波(f1=38k, f2=1k) ,应怎样修收藏
为用户提供各种低成本,低功耗,低能耗,功能强的微控制器解决方案.恩智浦微控制器,高性能,设计新颖,性能稳定,价格超低,欲购从速,欢迎垂询!
要同时输出多个频率不同方波(f1=38k,f2=1k),应该怎样修改程序?
定时器中加两个变量
定时器的值取两频率的最大公约数,之后在中断里用两个累加变量分别代表两个频率。。。之后。。。会了吧
就你这煞笔,告你答案都不懂?老子点草尼玛懂不?
登录百度帐号推荐应用君,已阅读到文档的结尾了呢~~
用定时器计数器产生方波【精选】,555定时器产生方波,555定时器产生1hz方波,555定时器产生40k方波,定时器产生方波,plc两定时器产生方波,定时器和计数器的区别,8253定时器计数器实验,定时器 计数器,定时器 计数器实验
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
用定时器计数器产生方波【精选】
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口21ic官方微信-->
后使用快捷导航没有帐号?
请完成以下验证码
查看: 2398|回复: 10
一个定时器能实现两个不同频率吗?
&&已结帖(0)
主题帖子积分
资深技术员, 积分 467, 距离下一级还需 33 积分
资深技术员, 积分 467, 距离下一级还需 33 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
资深技术员, 积分 467, 距离下一级还需 33 积分
资深技术员, 积分 467, 距离下一级还需 33 积分
那位知者能不能告诉我:我想用一个定时器的两个通道的比较输出功能不能实现两个不同频率的输出?
主题帖子积分
高级工程师, 积分 7115, 距离下一级还需 885 积分
高级工程师, 积分 7115, 距离下一级还需 885 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
高级工程师, 积分 7115, 距离下一级还需 885 积分
高级工程师, 积分 7115, 距离下一级还需 885 积分
用TIM模块的output-compare功能,每次任一通道compare-match后响应中断为下一次compare设定输出电平和时间点。频率不要太高且50%占空比的方波应该容易实现。
主题帖子积分
资深技术员, 积分 467, 距离下一级还需 33 积分
资深技术员, 积分 467, 距离下一级还需 33 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
资深技术员, 积分 467, 距离下一级还需 33 积分
资深技术员, 积分 467, 距离下一级还需 33 积分
不会吧好像不行的
张工你能肯定吗?我要的一个定时器&&同时&输出两个&不同&的频率信号。
主题帖子积分
助理工程师, 积分 1769, 距离下一级还需 231 积分
助理工程师, 积分 1769, 距离下一级还需 231 积分
主题帖子积分
专家等级:结帖率:66%
主题帖子积分
助理工程师, 积分 1769, 距离下一级还需 231 积分
助理工程师, 积分 1769, 距离下一级还需 231 积分
输出比较功能,应该不难实现的
主题帖子积分
主题帖子积分
专家等级:结帖率:78%
主题帖子积分
十路都可以,看频率高低了
主题帖子积分
资深技术员, 积分 467, 距离下一级还需 33 积分
资深技术员, 积分 467, 距离下一级还需 33 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
资深技术员, 积分 467, 距离下一级还需 33 积分
资深技术员, 积分 467, 距离下一级还需 33 积分
我觉得不行你觉得行说明理由呀
我的频率是1HZ-1500HZ精度是1ZH,用一个定时器能同时输出两路不同的频率信号码?我感觉不行的,如果谁觉得行的话你能说出行的理由吗?
主题帖子积分
高级工程师, 积分 7115, 距离下一级还需 885 积分
高级工程师, 积分 7115, 距离下一级还需 885 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
高级工程师, 积分 7115, 距离下一级还需 885 积分
高级工程师, 积分 7115, 距离下一级还需 885 积分
一个定时器一定可以实现
关键是要吃透TIM模块的工作原理,这一任务要利用TIM的比较输出功能,但难点在输出低频段信号,必须考虑16位定时器计数溢出的问题,要配合采用一些软件技巧。
主题帖子积分
资深技术员, 积分 467, 距离下一级还需 33 积分
资深技术员, 积分 467, 距离下一级还需 33 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
资深技术员, 积分 467, 距离下一级还需 33 积分
资深技术员, 积分 467, 距离下一级还需 33 积分
好的下面我们来具体的分析一下:我们分两种方法来考虑:1.利用输出比较模块功能实现两路的不同频率的实现,定时器的溢出时间决定了两路(不管是PWM模式还是比较输出模式)的频率。所以这样的话这种方法是肯定不行的。2.利用定时器溢出中断在中断里置位相应的位,但是我的频率信号在1-1500HZ,以1HZ的方式循进,这样做的话即使浪费很多的资源去做(假如我现在想从1499HZ变到1500HZ你怎么做?你能保证精度吗?),也不大可能,能的话你就具体说。我们首先要明确什么来决定频率然后再说精度现在我感觉你老是说用模块的比较输出功能。我感觉你还没有真正的理解一个定时器的两个通道的真正含义,你要明白的是只有一个定时器。我们只是讨论如有不当的地方请多包含,呵呵!。
主题帖子积分
高级工程师, 积分 7115, 距离下一级还需 885 积分
高级工程师, 积分 7115, 距离下一级还需 885 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
高级工程师, 积分 7115, 距离下一级还需 885 积分
高级工程师, 积分 7115, 距离下一级还需 885 积分
采取这种方法
定时器为0x0000-0xffff自由计数,不要管满量程溢出。设定通道在某一时刻(例如0x5000)比较输出高电平1,在响应这一比较中断后将此通道设定在另一时刻(例如0xA000)输出低电平0,这样反复输出1和0交替,就得到了你要的特定频率信号。0x5000&-&10xa000&-&00xf000&-&10x4000&-&00x9000&-&10xe000&-&0...
主题帖子积分
资深技术员, 积分 467, 距离下一级还需 33 积分
资深技术员, 积分 467, 距离下一级还需 33 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
资深技术员, 积分 467, 距离下一级还需 33 积分
资深技术员, 积分 467, 距离下一级还需 33 积分
好主意但是在溢出的时候要注意了
很好的方法,我知道了谢谢!我试试看效果怎么样.会不会在定时器溢出的时候出现什么不好的现象。
主题帖子积分
技术总监, 积分 40135, 距离下一级还需 9865 积分
技术总监, 积分 40135, 距离下一级还需 9865 积分
主题帖子积分
专家等级:结帖率:3%
主题帖子积分
技术总监, 积分 40135, 距离下一级还需 9865 积分
技术总监, 积分 40135, 距离下一级还需 9865 积分
&&频率不高的话,可以用软件实现很多路频率输出。
社区建设奖章
等级类勋章
涓涓之细流
发帖类勋章
时间类勋章
技术奇才奖章
人才类勋章
技术导师奖章
人才类勋章
核心会员奖章
等级类勋章
坚毅之洋流
发帖类勋章
时间类勋章
荣誉元老奖章
等级类勋章
技术领袖奖章
人才类勋章
热门推荐 /3现在位置:
用定时器实现500HZ的方波信号 详细内容
用定时器实现500HZ的方波信号
&&& 在测量控制系统中,常常要求有一些实时时钟,以实现定时控制、定时测量或延时动作,也往往要求有计数器能对外部事件计数,如测电机转速、频率、工件个数等。广泛用于个人家庭、学校、工厂等场所,是人们日常生活、工作中不可缺少的必需品。
实现定时,有软件、数字电路和可编程定时器3种主要方法。可编程定时计数器是为方便微型计算机系统的设计和应用而研制的,它是硬件定时,又能很容易地通过软件来确定和改变它的定时值,通过初始化编程,能够满足各种不同的定时要求,因而在嵌入式系统的设计和应用中得到广泛的应用。
单片计算机即单片微型计算机,是集CPU、RAM、ROM、定时/计数和多种接口于一体的微控制器。它体积小,成本低,功能强,广泛应用于智能产品和工业自动化。而51单片机是各单片机中最为典型和最有代表性的一种。
关键词:定时器,计数初值,中断,定时,溢出,方波信号
&&& 单片机的出现是计算机发展史上的一个重要里程碑,它以体积小、功能全、性价比高等诸多优点而独具特色,在工业控制、尖端武器、通信设备、信息处理、家用电器等嵌入式应用领域中独占鳌头。由于单片机功能的飞速发展,它的应用范围日益广泛,已远远超出了计算机科学的领域。小到玩具、信用卡,大到航天器、机器人,从实现数据采集、过程控制、模糊控制等智能系统到人类的日常生活,到处都离不开单片机。其应用领域也越来越广泛。
&&& 在测控系统中,单片机可以用于构成各种工业控制系统、自适应控制系统、数据采集系统等。例如,工业上的锅炉控制、电机控制、车辆检测系统、水闸自动控制、数控机床及军事上的雷达、导弹系统等。
&&& 在智能化仪器仪表中,单片机应用于仪器仪表设备中促使仪器仪表向数字化、智能化、多功能化和综合化等方向发展。单片机的软件编程技术使长期以来测量仪表中的误差修正、线性化的处理等难题迎刃而解。
&&& 在机电一体化中,单片机与传统的机械产品结合使传统的机械产品结构简化,控制走向智能化,构成新一代的机电一体化产品。这是机械工业发展的方向。
在智能接口中,计算机系统,特别是较大型的工业测控系统中采用单片机进行接口的控制管理,单片机与主机并行工作,可大大提高系统的运行速度。例如,在大型数据采集系统中,用单片机对模/数转换接口进行控制不仅可提高采集速度,还可以对数据进行预处理。如数字滤波、误差修正、线性化处理等。
&&& 在人类生活中,单片机由于其价格低廉、体积小巧,被广泛应用在人类生活的诸多场合,如洗衣机、电冰箱、空调器、电饭煲、视听音响设备、大屏幕显示系统、电子玩具、信用卡、楼宇防盗系统等。单片机将使人类的生活更加方便舒适,丰富多彩。
&&& 单片机的学习和研究是对微机系统学习和研究的简捷途径。
2 主要元件简介 2.1 AT89S52&
AT89S52主要性能 &&& 与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:0Hz~33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器、八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。
AT89S52功能特性描述 & &&&At89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89S52可降至0HZ静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8位微控制器8K字节在系统可编程Flash AT89S52。
AT89S52管脚图
图 2-1 &AT89S52管脚图
3 定时器 3.1 定时器的构成 3.1.1 定时方法
软件延时通过执行循环而获得延时,短时间延时;
硬件延时由硬件电路实现延时,长时间延时;
可编程定时通过对系统时钟脉冲的计数而获得延时。3.1.2 MCS-51单片机的定时器
16位定时器T0、T1,分别由4个8位计数器组成,均属SFR寄存器。
T0由TH0、TL0构成,字节地址为8CH、8AH;T1由TH1、TL1构成,字节地址为8DH、8BH。3.1.3 MCS-51单片机定时器的功能
单片机定时器的功能,归根结底是计数器。
(1)定时功能
对片内机器周期进行计数,即每个机器周期产生一个计数脉冲,计数加1。
(2)计数功能
对片外从T0(P3.4)、T1(P3.5)引脚输入的外部脉冲信号进行计数,下降沿计数加1。3.2 定时器的控制寄存器
与定时器有关的控制寄存器有3个:
(1)定时器控制寄存器TCON(88H)
SFR寄存器TCON既参与定时控制又参与中断控制,有关定时控制的有4位,
表示如下:
TF1/TF0:当T1/T0的计数器计数溢出时,该位置“1”。TR1/TR0:T1/T0运行控制位。软件将其置“1”时,启动T1/T0工作。
(2)设定定时器工作方式寄存器TMOD(89H)
SFR寄存器TMOD用于2个定时器/计数器T1/T0的工作方式设定,各位的含义表示如下:
&&&&&&&&&&&&&&&&&&&&&&
GATE:门控位,定义T1/T0的启动方式,逻辑如图:
C/ &:定时/计数功能选择位。为“0”,作定时器用;为“1”,作计数器用。
M1M0:工作方式选择位。
00&& 方式0& &&& 13位计数器&&& &&&
01&& 方式1&& && 16位计数器
10&& 方式2&&& & 初值自动重装8位计数器
11&& 方式3&&& &&2个8位计数器,仅适用于T0
(3)中断允许控制寄存器IE(A8H)
IE在特殊功能寄存器中,字节地址A8H,位地址分别是A8H~AFH。3.3 定时器的工作方式 3.3.1 工作方式0&&&&&
M1M0=00 ――13位计数器
由TH0的全部8位和TL0的低5位构成,如下页图。当TL0低5位计数满时直接向TH0进位,并当全部13位计数满溢出时,TF0置“1”。
(2)TMOD值:
作定时器:TMOD= 00=00H
作计数器:TMOD= 00=04H
(3)计数初值
最大计数值为213=8192
△T=(213 ― 计数初值)× 机器周期(12/fosc)计数初值=213 ―欲计数脉冲数=213 ―△T/ 机器周期3.3.2 工作方式1
&&& M1M0=01――16位计数器,方式1时的电路逻辑结构如图所示作定时器,TMOD=01H;
作计数器,TMOD=05H;
△T=(216 ― 计数初值)× 机器周期(12/fosc),计数初值=216 ―欲计数脉冲数=216 ―△T/ 机器周期。
例如:定时500us,fosc=6MHz时,
初值=216―500/2=286=FF 06H那么:TH0=FFH,TL0=06H &3.3.3 工作方式2
&&& M1M0=10――自动复位的8位计数器
&&& 以TL0作计数器,而TH0作为预置寄存器。当计数满溢出时,TF0置“1”,同时TH0将计数初值以硬件方法自动装入TL0。逻辑结构,如图所示:
3.3.4 工作方式3
&& &M1M0=11――2个8 位计数器(仅限于T0)
在T0方式3下,T0、T1的设置和使用是不同的。
(1)T0方式3
TL0:使用T0原有控制资源,功能与方式0、1相同。
TH0:借用T1的TR1、TF1,只能对片内机器周期脉冲计数,作8位定时器。
T0方式3时的T0、T1电路逻辑结构,如图所示
T0方式3时的T0初值计算完全同方式 2
(2)T0方式3下的T1
T0方式3时 ,T1仍然可工作于方式0至方式2,如上页图所示。C/ 控制位仍可使T1工作在定时器或计数器方式,只是由于其TR1、TF1被T0的TH0占用,因而没有计数溢出标志可供使用,计数溢出时只能将输出结果送至串行口,即用作串行口波特率发生器。
T0方式3下的T1方式2,因定时初值能自动恢复,用作波特率发生器更为合适。3.4 定时器的编程举例 3.4.1 定时器初值的计算
在定时器模式下,计数器由单片机主脉冲经12分频后计数。因此,定时器定时时间T的公式:
T=(M-TC)T计数
&上式也可写成:TC=M-T/ T计数,式中,M为模值,和定时器的工作方式有关;T计数是单片机振荡周期TCLK的12倍;TC为定时器的定时初值。 3.4.2 定时器的除数举例
设置T1为定时工作方式,定时50ms,选操作模式1,允许中断,软启动;T0为计数方式,对外部脉冲进行计数10次,硬启动,禁止中断,选操作模式2。编写其初始化程序,设fosc=6MHz。
T0设为计数方式模式2,硬启动,故计数初值X0为:X0=256-10=246=F6H
T1设为定时方式,定时50ms,模式1,软启动,其计数初值X1为:
X1=65536-(6×50×103)/12
TMOD: 0& 0& 0& 1& 1& 1& 1& 0&&& 即1EH
初始化程序如下:
MOV& TMOD,#1EH &;写工作模式字
MOV& TH0,#0F6H&& &;定时器0计数初值
MOV& TL0,#0F6H
MOV& TH1,#9EH &&&&&;定时器1计数初值
MOV& TL1,#58H
MOV& IE,#B;CPU、T1开中断
SETB& TR0;启动T0,但要等到待 =1时方
&&&&&&&&&&& 可真正启动
SETB& TR1;启动T13.4.3 定时器的应用举例
(1)模式0的应用
模式0是13位定时器操作模式。16位的寄存器只用了高8位(THi)和低5位(TLi的D4~D0位),TLi的高3位未用。
例: 选用T0操作模式0,用于定时,由P1.2输出周期为1ms的方波,设晶振fosc=6MHz。采用查询方式编程。
P1.2输出周期为1ms宽的方波,只要每隔500μs取反一次即可得到1ms宽的方波。因此,可以选用T0定时500μs。设X为时间初值
X=213-fosc×t/12=0/12=H
由于作13位计数器使用,TL0的高3位未用,应填0,TH0占高8位,所以13位的二进制表示值应为:
X0=0110B,TL0=06H,只用到5位,TH0=F8H
根据题意设置模式控制字TMOD:H
由于上电复位后,TMOD各位均为0,所以此字可以不用写入。
源程序如下:
&&& &ORG& 8000H
&&& &MOV& TL0,#06H &&&;T0的计数初值X0
&&& &MOV& TH0,#0F8H
&&&& SETB& TR0;启动T0
LP1:JBC& TF0,LP2&&&&&& ;查询T0计数溢出否,同时清除TF0
AJMP& LP1& &&&&&&&&;没有溢出等待
LP2: MOV& TL0,#06H&& ;溢出重置计数初值
MOV& TH0,#0F8H
CPL& P1.2& &&&&&&&&&;输出取反
SJMP& LP1& &&&&&&&&;重复循环
(2)模式1的应用
操作模式1是16位定时/计数器,其结构和工作过程几乎与模式0完全相同,唯一的区别是计数器的长度为16位。
其定时时间t为:t=(216-X) ×12/fosc
其计数初值X为:X=216-t×fosc/12
例6-4 用定时器1产生一个50Hz的方波,由P1.2输出,仍用程序查询方式,fosc=12MHz。
解:方波周期T=1/50=0.02s=20ms,用T1定10ms,计数初值X1:
X1=216-12×10×536-1=D8F0H
源程序如下:
&& &MOV& TMOD,#10H &&&;T1模式1,定时
&& &SETB& TR1 &&&&&&&&&&&&&;启动T1
LOOP:MOV& TH1,#0D8H &;T1计数初值
&& &&MOV& TL1,#0F0H
&&&& JNB& TF1,$& &&&&&&&&;T1没有溢出等待
&&& &CLR& TF1& &&&&&&&&&&&&;产生溢出清标志位
&& &&CPL& P1.2 &&&&&&&&&&&&&&&&&&&&;P1.2取反输出
&&& &SJMP& LOOP &&&&&&&&&&;循环
(3)模式2的应用
当模式0、模式1用于循环重复定时计数时,每次计数满溢出,寄存器全部为0,第二次计数还得重新装入计数初值。这样编程麻烦,而且影响定时时间精度,而模式2解决了这种缺陷。
模式2是能自动重装计数初值的8位计数器。模式2中把16位的计数器拆成两个8位计数器,低8位作计数器用,高8位用以保存计数初值。当低8位计数产生溢出时,将TF0或TF1位置1,同时又将保存在高8位的计数初值重新自动装入低8位计数器中,又继续计数,循环往复不止。
其计数初值X为:X=28-计数值=28-t×fosc/12
式中t为定时时间。初始化编程时,THi和Tli(i=0,1)都装入此X值。
例:用定时器1,模式2计数,要求每计满100次,将P1.2端取反。
解:T1工作于计数方式,外部计数脉冲由T1(P3.5)引脚引入,每来一个由1至0的跳变,计数器加1,由程序查询TF1的状态。
计数初值 &X1=28-100=156=9CH
TH1=TL1=9CH,TMOD=60H(计数方式,模式2)
源程序如下:
&& &MOV& TMOD,#60H&& &&&&&&;T1模式2,计数方式
&&& MOV& TH1,#9CH&& &&&&&&&&;T1计数初值
&&& MOV& TL1,#9CH
&&& SETB& TR1&&&& &&&&&&&&&&&&&&;启动T1
LOOP:JBC& TF1,REP&&&& &&&&&&&;TF1=1转
& &&SJMP& LOOP& &&&&&&&&&&&&&&&&;否则等待
REP:CPL& P1.2& &&&&&&&&&&&&&&&&&; P1.2取反输出
& &&&&SJMP& LOOP
本例中若要求计数值较大时(>256),还可以用定时器/计数器T2的自动重装载工作方式。此时方式控制字T2CON 中置RCLK=0、TCLK=0、CP/RL2=0、C/T2=1、TR2=1,加法计数器对T2(P1.0)引脚上的外部脉冲数。相关程序与上述程序相似,读者可自行练习。
(4)模式3的应用
例:某用户系统中已使用了2个外部中断,并置定时器T1工作于模式2,作串行口波特率发生器用。现要求再增加一个外部中断源并由P1.2输出一个5kHz的方波。fosc=12MHz。
解:为了不增加其它硬件开销,可设置T0工作于模式3计数方式,把T0的引脚作附加的外部中断输入端,TL0的计数初值为FFH,当检测到T0引脚由1至0的负跳变时,TL0立即产生溢出,申请中断,相当于边沿触发的外部中断源。
T0模式3下,TL0作计数用,而TH0可用作8位的定时器,定时控制P1.0输出的5kHz方波信号。
TL0的计数初值为FFH;TH0的计数初值X为:
因为P1.0的方波频率为5kHz,故周期T=1/5kHz=0.2ms=200μs
所以用TH0定时100μs,X=256-100×12/12=156
程序如下:
MOV& TMOD ,#27H& &&&&&&;T0模式3,计数;
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& T1模式2,定时
MOV& TL0,#0FFH&&&&&&&&& ;TL0计数初值
MOV& TH0,#156 &&&&&&&&&&&;TH0计数初值
MOV& TH1,#data&&& &&&&&&&&;data是根据波特率要求设置的常数
MOV&& TL1,#data
MOV& TCON,#55H &&&&&&&&&;外部中断0、1边沿触发,启动T0、T1
MOV& IE,#9FH&&& &&&&&&&&&;开放全部中断
TL0溢出中断服务程序(由00BH转来);
TL0INT:MOV& TH0,#156&&& ;TH0重赋初值
CPL& P1.2& &&&&&&&&&;P1.2取反输出
4 方案设计
计算89S52定时器0初值
要输出500HZ方波信号,其周期为2ms,所以每1毫秒取反。采用定时器方式1,计算得出初值为FC18。
(1)设计方案流程图为:
图4-1 程序流程图
(2)设计方案源程序代码为:
MAIN:MOV TMOD,#01H&&&& ;T0工作于定时方式1
MOV TH0,#0FCH
MOV TL0,#18H&&&&&&&&&&&& ;定时1ms
SETB TR0&& &&&&&&&&&&&&&&&;启动T0工作
NEXT:JBC TF0,AGAI&&&&&&& ;1ms到即TF0=1转AGAI,并清TF0
SJMP NEXT&&&&&&&&&&&&&&& ;未到1ms再查TF0
AGAI:CPL P1.0&&&&&&&&&&&& ;取反P1.0
(3)输出500HZ方波信号电路图
图4-2 500HZ方波信号电路图
(4)500HZ方波信号图
图4-3 500HZ方波信号图
5 系统调试和脱机运行
&&& 完成了硬件设计、制作和软件编写之后,必须进行系统调试。系统调试包括硬件调试和软件调试两个部分。不过作为一个计算机系统,其运行时软硬件相结合的,也就是软件和硬件是分不开的,硬件的调试常常需要利用调试软件,而软件的调试也可能需要通过对硬件的控制和测试来进行。
硬件调试:硬件调试的主要任务是排除硬件故障,其中包括设计错误和工艺性故障。用万用表逐步按照电路原理图检查电路板中所有元件的各个引脚,尤其是各器件电源的连接是否正确。检查数据总线、地址总线和控制总线连接是否存在、应该短路而断路或者应该断路而短路等不正确的现象。检查各个开关按键是否能正常开关,是否连接正确,各限流电阻是否短路等。检查示波器连接线路。
软件调试:软件调试的任务是利用开发工具进行在线仿真调试,发现和纠正程序错误,同时也能发现一些硬件故障。程序的调试应该一个模块一个模块的进行,否则程序太长根本无法找出程序无法运行的原因。首先应单独调试各个功能子程序,检查程序是否能够实现预期的目的,接口电路的控制是否正常等,最后逐步将各个子程序连接起来总调。联调需要注意的是,各模块间能否正确传递参数,特别要注意各个子程序的现场保护和恢复。6 心得体会
&& 单片机课程设计过程曲折可谓一语难尽。在此期间我曾一度热情高涨,我也曾失落过。从开始时满盛激情到退缩,再到努力,再到成功的复杂心情,点点滴滴无不令我回味无穷。&&& 生活就是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。通过课设,我才真正领略到“艰苦奋斗”这一词的真正含义。我想说,课设确实有些辛苦,特别是单片机课设。但苦中也有乐,而且此次单片机课设虽说是一次个人任务,但在不理解和不会的问题多靠老师、同学帮忙才得以解决。我们相互帮助,大学里几年的相处还赶不上这几天的配合,我感觉我和同学们之间的距离更加近了。复杂的线路设计,复杂的连线,复杂的焊接,复杂的文字叙述,让我一次又一次头痛,一次又一次想放弃。是老师和同学的帮助,让我更有信心和毅力继续做下去,特别是在武汉的高温酷暑下。我认为无论干什么,只要人生活的有意义就可以。社会需要我们,我们也可以为社会而工作。
我这次的课设题目是用定时器实现一个500HZ的方波信号,这是一个极其有乐趣和意义的课题。其乐趣在于定时器和示波器本身对我们有一种吸引力,而它的意义便在其中体现出来了,我们从理论走到了实践。不再是看着电视里或者讲台上的演示了,这次是我们自己做出成果,其中的感觉不言而喻。对我而言,知识上的收获重要,精神上的丰收更加可喜。挫折是一份财富,经历是一份拥有。这次实习必将成为我人生旅途上一个非常美好的回忆!
感谢曾刚老师和陈德军老师,他们严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;他们循循善诱的教导和不拘一格的思路给予我无尽的启迪。
感谢夏显成和王涛等同学对我的帮助和指点。没有他们的帮助和提供资料,对于我一个对理论知识不牢的人来说要想在短短的几天时间里学习到并完成课程设计是几乎不可能的事情。
在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!感谢所有教育过我的老师!你们传授给我的专业知识是我不断成长的源泉,也是完成本论文的基础。
[1]李群芳,张士军 单片微型计算机与接口技术 北京:电子工业出版社,2005
[2]谢瑞和 串行技术大全 北京:清华大学出版社,2003
[3]高峰 单片微机应用系统设计及实用技术 北京:机械工业出版社,2004
[4]谢自美 电子线路设计实验测试 武汉:华中科技大学出版社,2000
[5]孙育才 MCS-51系列单片微型计算机及应用 南京:东南大学出版社,1997&
没有相关文章
推 荐 阅 读
阅 读 排 行
专 题 列 表
Corporation </small Inc. 网站备案号:鄂ICP备号-2 
基于架构  }

我要回帖

更多关于 555定时器产生方波 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信