单片机课程设计-基于单片机的秒脉冲信号源设计(14页).docx

上传人:1595****071 文档编号:37143534 上传时间:2022-08-30 格式:DOCX 页数:14 大小:231.60KB
返回 下载 相关 举报
单片机课程设计-基于单片机的秒脉冲信号源设计(14页).docx_第1页
第1页 / 共14页
单片机课程设计-基于单片机的秒脉冲信号源设计(14页).docx_第2页
第2页 / 共14页
点击查看更多>>
资源描述

《单片机课程设计-基于单片机的秒脉冲信号源设计(14页).docx》由会员分享,可在线阅读,更多相关《单片机课程设计-基于单片机的秒脉冲信号源设计(14页).docx(14页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、-单片机课程设计-基于单片机的秒脉冲信号源设计-第 - 11 - 页湖南科技大学测控技术与仪器专业单 片 机 课 程 设 计 题 目 基于单片机的秒脉冲信号源设计姓 名 _ _ _ _ _ 学 号 _ _ _指导教师 _ _成 绩 _ _ _ _湖南科技大学机电工程学院二一六年十二月制摘要随着电子技术的不断发展,单片机的应用领域更加广阔。单片机诞生30多年以来,其品种,功能和应用技术都得到飞速的发展,本次课程设计的目的主要是培养学生综合运用所学的知识,完成一个单片机应用系统设计。本系统采用单片机89C51为中心器件来设计,系统使用性强,操作简单,扩展性强。在现有的单片机仿真机系统上掌握相关软硬

2、件设计与调试知识,根据仿真系统,焊好硬件电路,正确进行元器件的测试与调试。正文着重给出软硬件设计的思路和各部分功能的扩展增强,以及其具体实现。关于频率和占空比的确定,对于12M晶振,输出频率为1MHZ,这样定时0.01ms中断一次,则TH0=FF,TL0=F6;由于设定中断次数为100次,这样可以设定占空比可从1-99%变化。即10ms*100=1s 关键词:AT89C51单片机、秒脉冲、占空比、晶振目录 摘要i目录- 1 -第一章 系统功能要求- 2 -1.1课程设计题目- 2 -1.2课程设计用材- 2 -第二章 设计方案论证- 3 -2.1设计方案- 3 -第三章 系统硬件电路的设计-

3、4 -3.1主要芯片简介- 4 -3.1.1AT89C52简介- 4 -3.1.2 AT89C52的引脚功能- 4 -3.2 STC89C52基本电路- 6 -3.2.1 复位电路- 6 -3.2.2 晶振电路- 7 -第四章 系统程序的设计- 8 -4.1程序设计方案- 8 -第五章 调试及性能分析- 13 -5.1软件调试- 13 -5.2仿真结果- 13 -5.3性能分析- 14 -参考文献- 15 -附件- 16 -附件一 设计总电路图- 16 -附件二 秒脉冲信号源源程序- 17 -第一章 系统功能要求1.1课程设计题目设计单片机主电路、秒脉冲发生器信号源。1.2课程设计用材电烙铁,

4、锡丝,89C52单片机,晶振,各种不同阻值电阻,各种型号电容,导线,杜邦线等等。第二章 设计方案论证2.1设计方案硬件选择:选择89c52作为单片机芯片。软件开发环境: 用Proteus 7 Professional软件画电路图 、Keil uVision4软件进行程序编写。第三章 系统硬件电路的设计3.1主要芯片简介3.1.1AT89C52简介单片机是将微处理器、一定容量的ROM和RAM以及I/O口、定时器等电路集成在一块芯片上,构成的单片微型计算机。AT89C52是一个低电压,高性能的CMOS8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机

5、存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元。3.1.2 AT89C52的引脚功能AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。引脚配置如图2.1所示。图3.1 AT89C52引脚图VSS:接地端。VCC:电源端。P0

6、.0-P0.7:通道0,双向I/O口。第二功能是在访问外部存储器时可分时用作低8位地址线和8位数据线,在编程和检验时,用于数据的输入和输出。P1.0-P1.7:通道1,双向I/O口,在编程和检验是,用于接收地址字节。P2.0-P2.7:通道2,双向I/O口,在第二功能是在访问外部存储器时,输出高8位地址,在编程和检验时,用做高位地址字节和控制信号。P3.0-3.7:双向I/O口,每条线都有自己的功能,如表3.1所示。表3.1 P3口各位的第二功能P3口各位第二功能P3.0RTD(串行口输出)P3.1TXD(串行口输入)P3.2(外部中断0输入)P3.3 (外部中断1输入)P3.4T0(定时器/

7、计数器0的外部输入)P3.5T1(定时器/计数器1的外部输入)P3.6(片外数据存储器写信号)P3.7(片外数据存储器读信号)ALE:地址锁存允许线,在访问外部存储器是,用来锁存P0口送出的低8位地址信号。在不访问外部存储器是,ALE也震荡频率的六分之一的固定速率输出,此时,它可用做外部时钟和外不定时。但若要访问外部存储器,则ALE不是连续周期脉冲,无法用做时钟信号。:片外存储器访问选择线,可以控制89C52使用片内ROM或使用片外ROM,若是=1,则允许使用片内ROM;若是=0,则只使用片外ROM。PSEN:片外ROM的选通线,在访问片外ROM时,89C52自动在PSEN线上产生一个负脉冲,

8、作为片外ROM芯片的读选通信号。RST:复位线,可以使89C52处于复位(即初始化)工作状态。通常89C51复位有自动上电复位和人工按键复位两种。XTAL1和XTAL2:片内震荡电路输入线,这两个端口用来外接石英晶体和微调电容,即用来连接89C52片内OSC(震荡器)的定时反馈回路。AT89C52 中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1 和XTAL2 分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。3.2 STC89C52基本电路3.2.1 复位电路复位是使单片机处于某种确定的初始状态。单片机工作从复位开始。在单片机R

9、ST引脚引入高电平并保持2个机器周期,单片机就执行复位操作。复位操作有两种基本方式:一种是上电复位,另一种是上电与按键均有效的复位。复位电路如图3.2所示。开机瞬间RST获得高电平,随着电解电容C3的充电,RST引脚的高电平将逐渐下降。若该高电平能保持足够2个机器周期,就可以实现复位操作。根据经典电路选择参数,选取C3=10F,R1=10K。图3.2 复位电路图3.2.2 晶振电路单片机的时钟信号通常有两种产生方式:一是内部时钟方式,二是外部时钟方式。内部时钟方式是利用单片机内部的振荡电路产生时钟信号。外部时钟方式是把外部已有的时钟信号引入到单片机内。本次设计中,采用的是12MHz晶振,配上3

10、0pF的电容,构成谐振,这样有助于输出稳定的波形。如图3.3所示。 图3.3 晶振电路图在单片机的XTAL1和XTAL2引脚外接石英晶体(简称晶振),作为单片机内部振荡电路的负载,构成自激振荡器,可在单片机内部产生时钟脉冲信号。C1和C2的作用是稳定振荡频率和快速起振。根据经典电路选择参数,本电路选用晶振12 MHz, C1=C2=30PF。其中晶振周期(或外部时钟信号周期)为最小的时序单位。第四章 系统程序的设计4.1程序设计方案程序思路说明: 只需要4个按键(除复位键外) 关于频率和占空比的确定,对于12M晶振,输出频率为1MHZ,这样定时中断次数设定为100次,中断时间为10ms,则TH

11、0=FF,TL0=F6;由于设定中断时间为10ms,这样可以设定占空比可从1-99%变化。即10ms*100=1s #include#define uchar unsigned char #define uint unsigned intuchar timer0_tick,ZKB=1;/timer0_tick计数,ZKB占空比uchar i=0,n=0,temp=0; code seven_seg10= 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 code scan2=0x02,0x01;uchar counter2=0,1;sbit A

12、N1=P32;/调整个位sbit AN2=P33;/调整十位sbit AN3=P34;/启动按键sbit AN4=P35;/确认按键void delay(uint z)/软件延时函数 uint x,y; for(x=z;x0;x-) for(y=110;y0;y-);static void timer0_isr(void) interrupt 1 using 0 /中断函数 TR0=0; TL0=(65536-10000)%256; TH0=(65536-10000)/256; TR0=1; if (ZKB99) ZKB=1; if (ZKB1) ZKB=99; counter0=ZKB%10

13、; counter1=ZKB/10; n+; if(n=100) n=0; i+; if(i=2) i=0; P0=seven_segcounteri; P2=scani; timer0_tick+; if(timer0_tick+=100) timer0_tick=0; if(AN2=0) delay(200); if(AN2=0) temp=1; counter1+; if(counter1=10) counter1=0; if(AN1=0) delay(200); if(AN1=0) temp=1; counter0+; if(counter0=10) counter0=0; ZKB=c

14、ounter0+counter1*10; if(AN4=0) delay(5); if(AN4=0) temp=0; if(temp=1) P3_7=0;/ P3_7为脉冲输出引脚 else if (timer0_tick=ZKB) /*当小于占空比值时输出低电平,高于时是高电平,从而实现占空比的调整*/ P3_7=1; else P3_7=0;static void timer0_initialize(void)/中断初始化 EA=0; timer0_tick=0; TR0=0; TMOD=0x01; TL0=(65536-10000)%256; TH0=(65536-10000)/256;

15、 PT0=0; ET0=1; TR0=1; EA=1;void main(void) STAR: delay(100); if(AN3!=0) goto STAR;/按键3启动脉冲 timer0_initialize(); while(1);/按按键3启动脉冲器,初始设置占空比为1%,按键1调整十位,/按键2调整个位,一旦调整,输出为0,必须按确认键确认,/输出正确脉冲.可以占空比1-99%任意调节。第五章 调试及性能分析5.1软件调试本设计的调试主要用到keil和protues软件。其中,系统电路图的绘制和仿真采用的是Proteus软件,而C语言程序用Keil软件调试并把程序写入单片机。软件

16、调试结果如图5.1所示。图5.1 软件调试5.2仿真结果仿真结果如图5.2所示。 图5.2 仿真结果5.3性能分析本次课程设计所应用到的软件有:KEIL,PROTEUS这两个软件,两个软件结合起来用对这个设计有着至关重要的作用。软件调试是通过s进行的,此软件不多介绍了,功能强大,是学习电路的好帮手。但进行软件仿真的时候,却一直没有出现结果。这就要我们进行错误的排查,这就包括各个端口的检查和分析。由于网上下载了中文补丁,因此对于我们初学者来说难度降低了不少,仿真软件proteus仿真时按键数码管老是加二,最后发现是个按键的延时太短了,增加延时后才实现加一,不仅要看电路是否有问题,c语言编程也要检

17、查。 在实物的制作过程中遇到的麻烦更大,其中锻炼动手能力还是很好的,首先对于那些硬件都不怎么熟悉,这得就需要我们去查阅书籍资料,一个元器件的接口有什么功能、在哪里,平常我们在书本上只能想象一下,现在拿到硬件了又该如何是好,大部分的硬件只有一个名字,其余的引脚全部要查阅相关资料。还有在焊接的过程中对于东西的使用也是很有讲究和技巧的。了解助焊剂与焊锡丝的关系,如何使用,怎么用得安全对于我们动手少的人来说是很有难度的。因此在第一次做的时候,线路极其混乱,出现了很多错误,没办法只有一次次的检查,重新排版、焊接,找到错误的地方。参考文献1李朝青.单片机原理及接口技术M.4版.北京:北京航空航天大学出版社

18、,2013.72郭天祥.新概念51单片机C语言教程M.北京:电子工业出版社,2009.13康光华.数字电路基础数字部分M.5版.北京:高等教育出版社,2006.1附件附件一 设计总电路图附件二 秒脉冲信号源源程序#include#define uchar unsigned char #define uint unsigned intuchar timer0_tick,ZKB=1;/timer0_tick计数,ZKB占空比uchar i=0,n=0,temp=0;code seven_seg10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;

19、/1,2,3, 4, 5, 6, 7, 8, 9code scan2=0xfd,0xfe;uchar counter2=0,1;sbit AN1=P32;/调整个位sbit AN2=P33;/调整十位sbit AN3=P34;/启动按键sbit AN4=P35;/确认按键void delay(uint z)/软件延时函数 uint x,y; for(x=z;x0;x-) for(y=110;y0;y-);static void timer0_isr(void) interrupt 1 using 0 /中断函数 TR0=0; TL0=(65536-10000)%256; TH0=(65536-

20、10000)/256; TR0=1; if (ZKB99) ZKB=1; if (ZKB1) ZKB=99; counter0=ZKB%10; counter1=ZKB/10; n+; if(n=100) n=0; i+; if(i=2) i=0; P0=seven_segcounteri; P2=scani; timer0_tick+; if(timer0_tick+=100) timer0_tick=0; if(AN2=0) delay(100); if(AN2=0) temp=1; counter1+; if(counter1=10) counter1=0; if(AN1=0) dela

21、y(100); if(AN1=0) temp=1; counter0+; if(counter0=10) counter0=0; ZKB=counter0+counter1*10; if(AN4=0) delay(5); if(AN4=0) temp=0; if(temp=1) P3_7=0;/ P3_7为脉冲输出引脚 else if (timer0_tick=ZKB) /*当小于占空比值时输出低电平,高于时是高电平,从而实现占空比的调整*/ P3_7=1; else P3_7=0;static void timer0_initialize(void)/中断初始化 EA=0; timer0_tick=0; TR0=0; TMOD=0x01; TL0=(65536-10000)%256; TH0=(65536-10000)/256; PT0=0; ET0=1; TR0=1; EA=1;void main(void) STAR: delay(100); if(AN3!=0) goto STAR;/按键3启动脉冲 timer0_initialize(); while(1);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com