- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机矩形波发生器
单片机系统应用设计
题目:周期脉宽可控式矩形波发生器
(AT89C51)
摘要:矩形波发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。本次设计使用AT89C51单片机构成产生矩形波信号,波形的周期和脉宽可以用程序改变,具有线路简单,结构紧凑等优点。本设计添加了按钮控制和显示功能,可通过按钮设定周期和脉宽,并通过数码管显示出周期和脉宽。设计中如有不足之处请指导老师给与指正。
关键词:51单片机 矩形波 周期 脉宽
功能介绍:
(1)矩形波发生器技术指标
波形:矩形波 幅值电压:5V 最小脉宽:10ms 最大周期:2s
(2)操作设计:上电后,系统初始化,脉宽数码显示4个0,周期数码管显示4个0,四个按钮分别控制脉宽的加10ms减10ms,和周期的加10ms减10ms,数码管即时显示当前脉宽和周期。
设计思路:方波信号由P3.0引脚发出,分别用AT89C51单片机的两个定时器T0和T1控制方波的脉宽和周期,设置两定时器均为工作方式1,同样写入计数初值0D8F0H,开放中断,允许T0和T1中断,使定时器定时10ms产生定时中断,另外分别用R3和R4寄存器存放定时中断次数,初始状态设P3.0为高电平,定时器T0溢出R3次后信号变为低电平,定时器T1溢出R4次后信号变为高电平,通过两个按钮对R3和R4进行加一和减一操作,实现脉宽和周期的增减,脉宽增按钮接在P0.0引脚,脉宽减按钮接在P0.1引脚,周期增按钮接在P0.2引脚,周期减按钮接在P0.3引脚。在P1和P2口接八个数码管,动态显示脉宽和周期,用查表指令使各数码管显示0~9的十进制数,其中P1口产生控制位选信号,P2口产生控制段码信号。
具体设计:
硬件设计,见硬件结构图。
单片机的内部时钟用12MHZ的晶振电路产生,这样没一个机器周期为1微秒。复位信号由TL7705芯片产生。EA引脚接高电平。P0口第四位分别接四个控制按钮,各串联10K ,上拉电阻,当按键按下,先P0引脚输入高电平。按钮MU接P0.0,控制脉宽增加,按钮MD接P0.1,控制脉宽减少,按钮ZU接P0.2,控制周期增加,按钮ZD接P0.3,控制周期减少。P2引脚接八个数码管的公共端,用于产位选信号,八个数码管的段引脚并联在P2口,P2口产生段选信号。P1.0~P1.3接的四位数码管显示脉宽,P1.4~P1.7接的四位数码管显示周期。
软件设计
(1)主程序和初始化程序的设计
单片机上电或复位后由入口地址进入主程序,主程序指定了单片机运行的流程。首先要条用初始化程序,对单片机进行初始化,然后指定P3.0信号输出的初始状态为高电平,启动定时器,然后调用键盘子程序和数码显示子程序,不断循环扫描。
初始化程序中要设置堆栈空间,设置T0和T1于工作方式1,初值均设08DF0H,开放中断,允许T0和T1中断,设置P0,P1和P2的初始状态为各位全0,设置T0和T1的中断次数初值R3=0,R4=0,再另八个数码管全部显示0。
指定片内单元存放要显示的数字0,设置40H~43H存放脉宽显示数,45H~47H存放周期显示,将40H~47H全部清零,定义TAB表格存放0~9十个数的共阳极显示段码,用查表指令取0的显示段码,送P2口显示,用静态显示显示0。
主程序:
ORG 00H
LJMP MAIN
ORG 0BH
LJMP INT0_SUB
ORG 1BH
LJMP INT1_SUB
ORG 0100H
MAIN:LCALL CSH_SUB ;调用初始化至程序
SETB P3.0 ;设置输出信号初始状态
SETB TR0
SETB TR0 ;启动定时器
SM_SUB:LCALL KS_SUB
LCALL DISP_SUB
LJMP SM_SUB ;扫描键盘和显示数码
初始化子程序
CSH_SUB:MOV SP,#6FH ;堆栈空间
MOV TMOD,#11H ;两定时器工作方式1
MOV TH0,#0D8H
MOV TL0,#0F0H
MOV TH1,#0D8H
MOV TL1,#0F0H ;两定时器装定时10ms初值
MOV IE,#8AH ;开放允许中断
MOV P0,#0
MOV P1,#0FFH
MOV P2,#0 ;设P0,P1,P2初始状态
MOV DPTR,#TAB ;表格首地址送DPTR
MOV A,#0 ;向A送初始值
MOVC A,@A+DPTR ;查表取数
MOV R5,#7 ;设循环次数
MOV R0,#40H ;设源操作数
您可能关注的文档
最近下载
- 机械制图习题集(第7版)钱可强课后习题答案.pdf
- 学堂在线网课《生活英语读写》课后作业单元考核答案.docx VIP
- CCES 02-2004 自密实混凝土设计与施工指南.pdf VIP
- 儿童闭塞性细支气管炎的诊断和治疗专家共识2023.pptx
- 学堂在线 中国共产党与中华民族伟大复兴 期末考试答案.docx VIP
- 2020年第三单元 百年追梦 复兴中华.ppt VIP
- 小学法制安全教育课件.ppt VIP
- 《芣苢》《插秧歌》课件.pptx VIP
- 《C语言程序设计教程》PPT完整全套教学课件.pptx VIP
- 初中地理八上3中国的自然资源优质课金奖课件市公开课一等奖课件名师大赛获奖课件.pptx VIP
文档评论(0)