基于单片机课程设计基于单片机的秒脉冲信号源的设计.doc

上传人:文库蛋蛋多 文档编号:4148904 上传时间:2023-04-07 格式:DOC 页数:16 大小:334KB
返回 下载 相关 举报
基于单片机课程设计基于单片机的秒脉冲信号源的设计.doc_第1页
第1页 / 共16页
基于单片机课程设计基于单片机的秒脉冲信号源的设计.doc_第2页
第2页 / 共16页
基于单片机课程设计基于单片机的秒脉冲信号源的设计.doc_第3页
第3页 / 共16页
基于单片机课程设计基于单片机的秒脉冲信号源的设计.doc_第4页
第4页 / 共16页
基于单片机课程设计基于单片机的秒脉冲信号源的设计.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《基于单片机课程设计基于单片机的秒脉冲信号源的设计.doc》由会员分享,可在线阅读,更多相关《基于单片机课程设计基于单片机的秒脉冲信号源的设计.doc(16页珍藏版)》请在三一办公上搜索。

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

2、与调试。正文着重给出软硬件设计的思路和各部分功能的扩展增强,以及其具体实现。关于频率和占空比的确定,对于12M晶振,输出频率为1KHZ,这样定时中断次数设定为 *10,即0.01MS中断一次,则TH0=FF,TL0=F6;由于设定中断时间为0.01ms,这样可以设 *定占空比可从1-99%变化。即10ms*100=1s 关键词:AT89C51单片机、秒脉冲、占空比、晶振目 录一、功能要求1二、方案论证1三、系统硬件电路的设计2四、系统程序的设计7五、调试及性能分析11六、参考文献12七、(附录)电路PROTUES仿真图 13一 、功能要求1、 系统的设计任务设计单片机主电路、秒脉冲发生器信号源

3、。2、设计所需要的用具电烙铁,锡丝,单片机,ATMEL86C52、,晶振,各种不同阻值电阻,各种型号电容,导线,杜邦线等等二 方案论证1.1、电源部分 本次设计选用89C51单片机作为核心,ADC0809作为A/D转换芯片,数码管作为显示器,7805稳压器为主的直流稳压电路做为电源,配合采集,转换,显示程序共同实现可测量0-5V直流电压的数字式电压表。1.2 软硬件开发环境 硬件选择:选择89c52作为单片机芯片,选用独立式按键作为程序的跳转与选择,利用ADC0809作为数模转换芯片,利用P0至P4的各个串口来进行不同设备间的连接,计算机进行汇编,H51/L仿真器,单片机多功能实验箱。 软件开

4、发环境: 用Proteus 7 Professional软件画电路图 、Keil uVision3软件进行程序编写。三、系统硬件电路设计主要芯片简介:AT89C52简介 9C52是INTEL公司MCS-51系列单片机中基本的产品,它采用ATMEL公司可靠的CMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。它结合了CMOS的高速和高密度技术及CMOS的低功耗特征,它基于标准的MCS-51单片机体系结构和指令系统,属于89C51增强型单片机版本,集成了时钟输出和向上或向下计数器等更多的功能,适合于类似马达控制等应用场合。89C52内置8位中央处理单元、256字节内部数

5、据存储器RAM、8k片内程序存储器(ROM)32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。此外,89C52还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。89C52有PDIP(40pin)和PLCC(44pin)两种封装形式。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memor

6、y)的低电压,高性能CMOS8位微处理器,俗称单片机。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 1主要特性: 与MCS-51 兼容 ,4K字节可编程闪烁存储器,寿命:1000写/擦循环, 数据保留时间:10年,全静态工作:0Hz-24Hz ,三级程序存储器锁定,128*8位内部RAM ,32可编程I/O线, 两个16位定时器/计数器, 5个中断源 ,可编程串行通道,低功耗的闲置和掉电模式,片内振荡器和时钟电路 。 2管脚说明:

7、VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2

8、口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1” 时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上

9、拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下所示: 口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

10、 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

11、但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/Vpp:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 3、振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL

12、2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 4、芯片擦除: 整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 5、结构特点: 8位CPU;片内振荡器和时钟电路;32根I/O线;外部存贮器

13、寻址范围ROM、RAM64K;2个16位的定时器/计数器;5个中断源,两个中断优先级;全双工串行口;布尔处理器。 此为引脚图STC89C52基本电路STC89C52单片机要正常工作,必须有基本电路:晶振电路及复位电路。(1) 复位电路复位是使单片机处于某种确定的初始状态。单片机工作从复位开始。在单片机RST引脚引入高电平并保持2个机器周期,单片机就执行复位操作。复位操作有两种基本方式:一种是上电复位,另一种是上电与按键均有效的复位。复位电路如图3.2.2所示。开机瞬间RST获得高电平,随着电解电容C3的充电,RST引脚的高电平将逐渐下降。若该高电平能保持足够2个机器周期,就可以实现复位操作。根

14、据经典电路选择参数,选取C3=10F,R1=10K。(2) 晶振电路单片机的时钟信号通常有两种产生方式:一是内部时钟方式,二是外部时钟方式。内部时钟方式是利用单片机内部的振荡电路产生时钟信号。外部时钟方式是把外部已有的时钟信号引入到单片机内。本次设计中,采用的是12MHz晶振,配上30pF的电容,构成谐振,这样有助于输出稳定的波形。电路如图所示。在单片机的XTAL1和XTAL2引脚外接石英晶体(简称晶振),作为单片机内部振荡电路的负载,构成自激振荡器,可在单片机内部产生时钟脉冲信号。C1和C2的作用是稳定振荡频率和快速起振。根据经典电路选择参数,本电路选用晶振12 MHz, C1=C2=33P

15、F。其中晶振周期(或外部时钟信号周期)为最小的时序单位。第四章 系统程序的设计程序思路说明: 只需要4个按键。 关于频率和占空比的确定,对于12M晶振,输出频率为1KHZ,这样定时中断次数设定为 10,即10MS中断一次,则TH0=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

16、=0;code seven_seg10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/1,2,3, 4, 5, 6, 7, 8, 9code scan2=0xfd,0xfe;uchar counter2=0,0;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(vo

17、id) 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; 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);

18、if(AN2=0) temp=1; counter0+; if(counter0=10) counter0=0; if(AN1=0) delay(100); if(AN1=0) temp=1; counter1+; if(counter1=10) counter1=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=

19、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); /按按键3启动脉冲器,初始设置占空比为1%,按键1调整十位,/按键2调

20、整个位,一旦调整,输出为0,必须按确认键确认,/输出正确脉冲.可以占空比1-99%任意调节。第五章 调试及性能分析 本课程设计采用的是8位的ADC0809模数转换器,我们假设输入电压为5V 的时候,输出的数值应该是28=256,由于单片机数字是从0开始的,因此会显示255,十六进制就是FFH,这就可以推出单片机的最大数值分辨率是0.0196V(5/255)。要是对于要求更高精度的电压表则应该选择位数更大的,如12位,或者32位或者更高。 本设计中对这个精度已经足够,因此就选用的8位的模数转换器,在仿真过程中,由于PROTEUS的版本较低,因此换用了ADC0808进行了仿真,ADC0808与AD

21、C0809的功能差不多,就是转换速率的差别。第六章 结束语 本次课程设计所应用到的软件有:KEIL,PROTEUS这两个软件,两个软件结合起来用对这个设计有着至关重要的作用。软件调试是通过仿真软件proteus进行的,此软件及不多介绍了,功能强大,是学习电路的好帮手。刚开始进行软件仿真的时候,发现写的程序根本没有运行起来,这就要我们进行错误的排查,这就包括各个端口的检查和分析。由于这个软件是英文版的,因此对于我们初学者来说有点难度,好多的元器件根本不知道叫什么,无形中就增加了仿真的难度。但这个是必须要克服的! 不过在实物的制作过程中遇到的麻烦更大,其中锻炼动手能力还是很好的,首先对于那些乱七八

22、糟的硬件都不怎么熟悉,这得就需要我们去查阅书籍资料,一个元器件的接口有什么功能、在哪里,平常我们在书本上只能想象一下,现在拿到硬件了又该如何是好,大部分的硬件只有一个名字,其余的引脚全部要查阅相关资料。还有在焊接的过程中对于东西的使用也是很有讲究和技巧的。了解助焊剂与焊锡丝的关系,如何使用,怎么用得安全对于我们动手少的人来说这个真是大有难度的。因此在第一次做的时候,线路极其混乱,虽然检查了几遍确定无误的时候,可是现实总是残酷的,不管怎么调试还是没有成功,最终狠下心来,全部拆了,一切从头再来,在这过程中比较痛苦,多亏了杜邦线的帮助,使得工程量不是特别的大。第二次也差不多是同样的结果,不知道是洞洞

23、板不合格还是怎么的,居然相差很远的地方居然神奇的连在一起,这让人很是无语。不过既然出现了,也就认命,只得再去检测,重新弄。通过这个实物的制作,可以知道理想和现实的差距是很大的,想想在电脑上用软件绘制图形的时候几下子就能够搞定,在现实中还是得一步一个脚印,这还要足够的心思,花足够的精力才能够做好一件事情!参考文献1、 康光华:电子技术基础(模拟部分 第五版)高等教育出版社,2006第五版2、 康光华:电子技术基础(数字部分 第五版)高等教育出版社,2005第五版3、李朝青:单片机原理及接口技术 北京航空航天大学出版,2005.104、张国雄:测控电路(第四版),机械工业出版社,2011.09附全局电路仿真图:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号