欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    《单片机原理与应用》频率占空比可调的方波发生器Word文件下载.docx

    • 资源ID:22679346       资源大小:290.39KB        全文页数:21页
    • 资源格式: DOCX        下载积分:12金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《单片机原理与应用》频率占空比可调的方波发生器Word文件下载.docx

    1、在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,下图中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输入端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就

    2、会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。图5 矩阵键盘2.4液晶显示液晶如图:图6 液晶1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,其中:引脚符号功能说明1VSS一般接地2VDD接电源(+5V)3V0液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。4RSRS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5R/WR/W为读写信号线,高电平(1)时

    3、进行读操作,低电平(0)时进行写操作。6EE(或EN)端为使能(enable)端,写操作时,下降沿使能。读操作时,E高电平有效7DB0低4位三态、 双向数据总线 0位(最低位)8DB1低4位三态、 双向数据总线 1位9DB2低4位三态、 双向数据总线 2位10DB3低4位三态、 双向数据总线 3位11DB4高4位三态、 双向数据总线 4位12DB5高4位三态、 双向数据总线 5位13DB6高4位三态、 双向数据总线 6位14DB7高4位三态、 双向数据总线 7位(最高位)(也是busy flag)15BLA背光电源正极16BLK背光 电源负极寄存器选择控制表操作说明写入指令寄存器(清除屏等)读

    4、busy flag(DB7),以及读取位址计数器(DB0DB6)值写入数据寄存器(显示各字型等)从数据寄存器读取数据注:关于E=H脉冲开始时初始化E为0,然后置E为1,再清0.busy flag(DB7):在此位为1时,LCD忙,将无法再处理其他的指令要求。3 程序流程图图7 流程图4 源程序#include math.h#define uchar unsigned char#define uint unsigned intsbit test=P37;sbit LCDEN=P22;sbit LCDRS=P20;sbit LCDRW=P21;sbit WaveA=P30;sbit WaveB=P

    5、31;uchar Frequency,Key_Value,Flag,a6;uint data Phase_Difference;double Control_Phase=0.000001;int data Counter_T0,Number_T0, Counter_T1,Number_T1;/*void Initial_System();uchar Scan_Keyboard();uint Get_Number_T0(uchar Frequency);uint Get_Number_T1(uchar Frequency);void Increase_Frequency();void Decre

    6、ase_Frequency();void Increase_Phase_Difference(uint data Step_Phase_Difference);/void Decrease_Phase_Difference(uint data Step_Phase_Difference);void Calculate_Frequency_Phase(void);void Display_Frequency_Phase();void Delay(uint);void Write_Cmd(uchar cmd);void Write_Data(uchar Data);void LCD_Init();

    7、/*void main() Initial_System(); while(1) Key_Value=Scan_Keyboard(); Calculate_Frequency_Phase(); Display_Frequency_Phase(); /*void Initial_System() WaveA=0; WaveB=0; Control_Phase=0.000001; Frequency=10; Phase_Difference=0; Counter_T0=0; Counter_T1=0; Number_T1=Get_Number_T1(Frequency); TMOD=0x22; T

    8、H1=0x38; /256-200 TL1=0x38; TH0=0xc9; /256-201 TL0=0xc9; EA=1; ET1=1; TR0=1; TR1=1; LCD_Init();/*void Write_Cmd(uchar cmd) LCDEN=1; LCDRS=0; P0=cmd; Delay(5); LCDEN=0;/*void Write_Data(uchar Data) LCDRS=1; P0=Data;void LCD_Init() LCDRW=0; Write_Cmd(0x01); Write_Cmd(0x38); Write_Cmd(0x0C); Write_Cmd(

    9、0x06); Write_Cmd(0x80); Write_Data(F);RE: Write_Cmd(0x80+0x40);PHA/*uchar Scan_Keyboard() uchar key; uchar temp1,temp2; P1=0x0f; if(P1!=0x0f) temp1=P1; P1=0xf0; temp2=P1; while(P1! Delay(10); key=temp1|temp2; switch(key) case 0xee :return 0; break; case 0xde :return 1; case 0xbe :return 2; case 0x7e

    10、 :return 3; default : return 16;/*uint Get_Number_T0(uchar Frequency) uint h; double l; l=(double)Frequency; l=Control_Phase*0.5/l; l=l/0.000055; h=l; if(l-h+0.5) h=h+1; return h;uint Get_Number_T1(uchar Frequency) double f; f=(double)Frequency; f=0.5/f; f=f/0.0002; h=f; if(f-h=0.5)/*T0void Timer0_I

    11、nterrupt() interrupt 1 Counter_T0+; if(Counter_T0Number_T0) Counter_T0=0; if(Flag=0) WaveB=WaveA; else WaveB=WaveA; ET0=0; TR0=0;/*T1void Timer1_Interrupt() interrupt 3 Counter_T1+; if(Counter_T1Number_T1) Counter_T1=0; WaveA=WaveA; ET0=1; TR0=1;/*void Increase_Frequency() if(Frequency10) Frequency=

    12、Frequency-10; Frequency=1;void Increase_Phase_Difference(uint data Step_Phase_Difference) Control_Phase=Control_Phase+0.00555556*Step_Phase_Difference; if(Control_Phase=1) Control_Phase=0.000001; else if(Control_Phase1) Flag=1; Control_Phase=Control_Phase-1; Phase_Difference+=Step_Phase_Difference;

    13、if(Phase_Difference=360)void Calculate_Frequency_Phase(void) switch(Key_Value) case 0:Increase_Frequency();break; case 1:Decrease_Frequency(); case 2:Increase_Phase_Difference(10); case 3:Initial_System(); default : Number_T0=Get_Number_T0(Frequency);void Display_Frequency_Phase() uchar i,j; a0=Freq

    14、uency/100; a1=(Frequency%100)/10; a2=Frequency%10; a3=Phase_Difference/100; a4=(Phase_Difference%100)/10; a5=Phase_Difference%10; Write_Cmd(0x80+5); for(i=0;i=2;i+) Write_Data(ai+48); Write_Cmd(0x80+0x40+5); for(j=3;j0;k-) for(j=110;jj-);5 仿真结果分析5.1系统初始化系统默认频率为10HZ,相位差为0液晶显示,示波器测量如图:图8 系统初始图5.2频率50H

    15、Z,相位差0图9 频率50HZ,相位差05.3频率50HZ,相位差50图10频率50HZ,相位差505.4频率50HZ,相位差90图11频率50HZ,相位差906 心得体会本次课程设计我的题目是设计并实现两路相位可调方波信号发生器。实验要求输出两路方波信号,键盘控制频率和两信号的相位差,频率围和变化步长值自定,相位0360,相位差变化步长值自定,用双踪示波器观察。在学习微机原理和单片机以及智能仪器这些课程的时候我们就接触过很多可以产生方波的方法。因此这次课程设计对于产生方波的方式有了多种选择。既然是单片机课设,而且这次实验的最简单的方案就是利用单片机MSP430的P1口的两个引脚输出高低电平。

    16、通过定时器A计数来实现PWM输出,通过port2端口的IO中断来实现按键控制相位变化和频率变化以及占空比变化等,通过液晶1602来实现系统相关信息的显示。这个方案是无所质疑的,但是由于我对于汇编程序的编写掌握的不是很好,因此对于写程序是遇到了很大的困难。最终我选择了用C430语言来完成此次课程设计。在编程中也遇到了很多困难,首先可以输出两路方波信号并且在示波器上显示,但是无法改变相位和频率。后来改变程序之后可以改变频率但是在改变相位的时候频率也变化了,也就是没有实现频率和相位独立变化的要求。后来在同学的帮助下,多次修改程序,最终完成了本次课程设计。由于此题硬件设计相对来说比较简单,首先是一个4

    17、30的最小系统,包括始终部分和JTAG下载部分以及复位部分。然后就是液晶1602,按照1602的datasheet所指示的去连接就可以了,还有就是独立按键键盘,通过上拉电阻上拉,连接到P2的相应口上,另一端接地就可以了。此次单片微型计算机原理与接口技术课程设计收获很多,通过这次的课设,我进一步了解430单片机定时器A的应用以及其port2端口的IO中断的应用。同时我对于有关单片机最小系统的搭建,硬件平台的实现也有了一定的了解。此次设计中还对于IAR软件有了更进一步的了解,对以后的嵌入式学习打下了良好的基础。7 参考文献1、 燕南,薛钧义.微型计算机原理与接口技术.:高等教育.20042、 群芳,士军,黄建.单片微型计算机与接口技术(第2版).:电子工业.20053、 徐维祥,旭敏.单片微型计算机原理及应用.:理工大学.20064、 鑫,华臻,书谦.单片机原理及应用.:电子工业.20085、 汪道辉.单片机系统设计与实践.:电子工业.2006


    注意事项

    本文(《单片机原理与应用》频率占空比可调的方波发生器Word文件下载.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开