《单片微型计算机与接口技术》课程设计说明书设计并实现频率相位表.doc
《《单片微型计算机与接口技术》课程设计说明书设计并实现频率相位表.doc》由会员分享,可在线阅读,更多相关《《单片微型计算机与接口技术》课程设计说明书设计并实现频率相位表.doc(23页珍藏版)》请在三一办公上搜索。
1、目录1 设计题目12 设计原理12.1 设计原理12.2 设计原理13 系统的硬件设计23.1 系统的硬件电路图23.2 系统的硬件资源34 系统的软件设计 64.1设计源程序 64.2程序流程图165 电路仿真 176 仿真测试分析 197 心得体会 218 参考文献 221设计题目设计并实现频率/相位表要求:输入两路方波信号,测量信号的频率和两信号的相位差,能显示频率值和相位差,精度:0.1Hz,0.10。在满足精度的前提下分析和证实系统的测量范围。2设计原理2.1 设计原理利用单片机实现频率和相位表的方法我了解的有两种:第一、利用输入信号的下降沿产生中断,对信号进行计数,然后根据计数的结
2、果,乘以计数的周期,就是输入信号的周期了,然后求倒数,并输出值就是频率了。而相位则是利用相似的方法,既是第一个输入信号的下降沿触发外中断INT0,T0和T1开始计数,第二个信号输入到INT1,下降沿触发,并输出计数的值,然后将计数的值与之前的计算频率的值进行计算,就可以计算出相位的值。这种方法比较适合测量频率的值比较低的时候。第二、可以利用计数器进行计时,在计时的时间里面统计有多少个下降沿,然后就可以通过对计数的时间和下降沿的值计算出输入信号的周期。计算出周期之后就可以得到频率的值。至于相位也是这样,通过统计下降沿的值,然后与之间的方式一样,就可以得到相位的值了。这种方法比较适合测量高频的时候
3、。在这次的单片机的课程设计中我采用的是第一种方法,所以在测量时的频率范围很小,而且能满足要求的测量准确的频率也比较低。至于相位满足要求的频率范围就更加的小了,而且也不是特别的准确。2.2 系统框图设计的频率/相位表的系统框图如下图1所示。图13 系统的硬件设计3.1 系统的硬件电路图系统的硬件电路图如下所示:图23.2 系统的硬件资源(1)89C52单片机如图所示为89C52单片机的引脚图图3P0口:P0口为一个8位漏极开路双向I/O口,没脚可吸收8TTL门电路,当P1口的电路第一次写时,被定义为高阻输入。P0能够用于外部数据存储器,它被定义数据/地址的第八位在flash编程时,P0口作为原码
4、输入口,当flash进行校验时,P0口输出原码,此时P0口外部必须拉高。P2口在设计中,P2.0设置为LCD的寄存器RS控制端,P2.1设置为LCD的RW控制端,P2.2设置为LCD的使能E控制端。P3口管脚 备选功能P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(计时器0外部输入)P3.5 T1(计时器1外部输入)P3.6 /WR(外部数据存储器写通道)P3.7 /RD(外部数据存储器读通道)(2)1602LCD显示器如图所示为1602显示器的引脚图图41602LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线。 表1 1602LC
5、D引脚说明表引脚符号功能说明1VSS一般接地2VDD接电源(+5V)3V0液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。4RSRS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5R/WR/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。6EE(或EN)端为使能(enable)端,下降沿使能。7DB0低4位三态、 双向数据总线 0位(最低位)8DB1低4位三态、 双向数据总线 1位9DB2低4位三态、 双向数据总线 2位10DB3低4位三态、 双向数据总线 3位
6、11DB4高4位三态、 双向数据总线 4位12DB5高4位三态、 双向数据总线 5位13DB6高4位三态、 双向数据总线 6位14DB7高4位三态、 双向数据总线 7位(最高位)(也是busy flag)15BLA背光电源正极16BLK背光 电源负极表2 寄存器选择控制表RSR/W操作说明00写入指令寄存器(清除屏等)01读busy flag(DB7),以及读取位址计数器(DB0DB6)值10写入数据寄存器(显示各字型等)12从数据寄存器读取数据(3)异或门异或门管脚图如下所示;图5其真值表如下:表3 异或门真值表4 系统的软件设计4.1设计源程序#include#include#define
7、 uchar unsigned char#define uint unsigned int/*/sbit Pin_RS = P20;sbit Pin_RW = P21;sbit Pin_E = P22;#define Pin_Data P0/*/char m=0,n=0;char u,v;float t0,t1,f,p;uint a=48,48,48,48,48,46,48,48; /频率数据结果保存uint b=48,48,48,46,48,48; /相位数据结果保存uint i,j;uint x,y;uint c,d;void Lcd_Reset();void Display(uint x
8、, uint y, uint data1);void ShortDelay(uchar i);void LongDelay(uint i);void Set_RS(bit i);void Set_RW(bit i);void Set_E(bit i);void Sc_P0(bit i);void Write_Instruc(uintInstruc);void Write_Data(uint data1);void Display(uint x, uint y, uint data1);uint Read_BF_AC(void);uint Read_Data(void);bit Lcd_Busy
9、();#define ClearScreen()Write_Instruc(0x01)#define CursorReturn()Write_Instruc(0x02)#define InputMode(temp)Write_Instruc(temp)#define DispControl(temp)Write_Instruc(temp)#define FunctionSet(temp)Write_Instruc(temp)#define DispShift(temp)Write_Instruc(temp)#define SetCGRAM_Add(Address)Write_Instruc(0
10、x40 | Address)#define SetDDRAM_Add(Address)Write_Instruc(0x80 | Address)/* LCD初始化 */void LCD_Init()Lcd_Reset();InputMode(0x06); /增量方式,不移位DispControl(0x0c);/显示开,光标关,闪烁关FunctionSet(0x38);/8位,2行,57/定时计数器初始化void CT_init()TMOD=0x99; /GATE=1,T1、T0工作在方式1,定时方式TH0=0; /定时计数器初值清零TL0=0;TH1=0;TL1=0;TR0=1; /TR0,T
11、R1置位,此时定时计数器的启动有INT0,INT1引脚电平决定TR1=1;ET0=1; /开中断ET1=1;/外部中断0服务程序void ITC0() interrupt 0 u=m; /读定时计数器0溢出次数m=0; /溢出次数清零x=TH0*256+TL0; /读定时计数器0当前值TH0=0; /定时计数器0清零TL0=0;/定时计数器0溢出中断void TIME0() interrupt 1 m+; /溢出次数加1/外部中断1服务程序void ITC1() interrupt 2 v=n; /读定时计数器1溢出次数n=0; /溢出次数清零y=TH1*256+TL1; /读定时计数器1当前
12、值TH1=0; /定时计数器1清零TL1=0;/定时计数器1溢出中断void TIME1() interrupt 3 n+; /溢出次数加1/* 主函数 */ void main()LCD_Init(); /液晶显示初始化CT_init(); /定时计数器初始化EA=1; /开总中断EX0=1; /允许外部中断EX1=1;IT0=1; /设置外部中断方式为下降沿触发IT1=1;P3=0xff;while(1)t0=u*65536+x; /计算脉冲时间宽度f=1000000/(2*t0); /计算频率c=f*100; /计算结果逐位保存a7=c%10+48;a6=(c/10)%10+48;c=f
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片微型计算机与接口技术 单片 微型计算机 接口 技术 课程设计 说明书 设计 实现 频率 相位
链接地址:https://www.31ppt.com/p-2881780.html