单片机实训.doc_第1页
单片机实训.doc_第2页
单片机实训.doc_第3页
单片机实训.doc_第4页
单片机实训.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

_51单片机实训指南一、 实习课题基于单片机最小系统的频率计设计二、 实习内容单片机最小系统电路原理设计分析与讲解,PCB设计分析与讲解,电路板焊接培训与实际操作,程序设计、调试分析与讲解,程序调试实际操作。三、硬件资源 89S51单片机; 6位共阳极数码管; 段码驱动器74HC573,位选译码器74HC138; 4路独立式按键; 外部晶振电路; ISP下载接口(In system program,在系统编程); DC+5V电源试配器(选配); ISP下载线(选配); 单片机实训模块(频率计分频预处理电路)。四、电路原理分析与设计P1为外部电源输入座(DC+5V),S8为电源最小系统的电源开关,E1和C3为电源滤波,去耦电容。D1为系统电源指示灯。J2为ISP下载接口,S7系统复位按键。CRY1,C1,C2为外部时针电路。IC1为89S51(DIP-40),左上角为第一脚。PRE1,PRE2。为上拉排阻(阻值4.7k10k)。J5,J9,J6,J10分别对应单片机的P0,P1,P2,P3口。便于二次开发。6路共阳极数码管动态显示电路,P0口通过74HC573(起驱动和隔离作用,让电流通过74CH573流入公共地),来控制数码管的8路段码,P20-P22通过74HC138译码器(使用其中的6路)控制数码管的公共端(中间还有三极管做驱动器)。这样设计的理由:为了保证该单片机最小系统的二次开发的资源充足和合理性。 图1 元件布局图图2 单片机最小系统原理图 频率计模块介绍一基于单片机最小系统的频率计设计简介1测频率原理分析:若某一信号在T秒时间里重复变化了N 次,则根据频率的定义可知该信号的频率fs 为:fs=N/T 通常测量时间T取1秒或它的十进制时间。2单片机的外部计数口测频率的局限性分析:在每个机器周期的S5P2期间,CPU采样引脚的输入电平。若前一机器周期采样值为1,下一机器周期采样值为0,则计数器增1,此后的机器周期S3P1期间,新的计数值装入计数器。所以检测一个1到0的跳变需要两个机器周期,故外部脉冲频率不超过振荡器频率的124。3扩展测量频率范围解决方案: 将输入到单片机引脚的频率通过分频器预先处理。然后在程序设计中通过算法,将分频系数还原。从而达到扩展测量频率的范围。二电路原理图:二电路原理分析:74HC393为二进制计数器,将输入信号进行预分频,输出端口接54hc151,多路复用器(8通道)。单片机通过采用54SN151 A,B,C端口的组合值来确定分频系数,通过程序算法获得正确的频率值。74HC393真值表:54hc15真值表:C语言源程序:#include#include#define uchar unsigned char#define uint unsigned intsbit Key=P10;sbit Led=P30;uchar code led_code18=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,/段码 0x90,0x88,0x83,0xc6,0xa1,0x86,0x81,0x7f,0xff;uchar data dis_data6=0,0,0,0,0,0;unsigned long data counter;uchar data timer_counter=0;void Init();void Timer_Init();void delayms(uchar n);void Data_Deal();void display(uchar *p,uchar n);void Delay100ms(unsigned int _100ms);void Delay1ms(unsigned int ms);/*主程序*/void main() Init(); while(1) if(timer_counter=20) TR1=0; /关闭计时TR0=0; /关闭计数TH0=0; /计数清0TL0=0;TH1=0x4c; /50ms定时TL1=0x00;timer_counter=0;Key=1;if(Key) Delay1ms(5);if(Key)counter=counter*16;counter=counter/100;Led=0;Data_Deal(); /更新数据 else if(counter200000) /超过200K范围后显示全FF dis_data0=0x0f; dis_data1=0x0f; dis_data2=0x0f; dis_data3=0x0f; dis_data4=0x0f; dis_data5=0x0f; else Led=1; Data_Deal(); /更新数据 counter=0;TR1=1; /启动计时TR0=1; /启动计数 display(dis_data,6);/*程序初始化*/void Init()Delay100ms(5); /开机先调用一段延时Timer_Init();/*定时器初始化*/void Timer_Init()TMOD=0x15; /定时器1定时方式1,定时器0计数方式1TH0=0; /计数清0TL0=0;TH1=0x4c; /50ms定时TL1=0x00;ET1=1;EA=1;TR1=1; /启动计时TR0=1; /启动计数Led=1;/*显示程序*/void display(uchar *p,uchar n) uchar i; for(i=0;i0;loop-) x=ms; for(;x0;x-) for(n=225;n0;n-) _nop_();_nop_();_nop_();_nop_(); /*void Delay100ms(unsigned int _100ms) /100ms级延时 unsigned char n,i,ms,loop; for(loop=6;loop0;loop-) ms=_100ms; for(;ms0;ms-) for(n=145;n0;n-) for(i=251;i0;i-)_nop_(); /*定时中断程序*/void Timer1(void) interrupt 3 TR0=0; TH1=0x4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论