预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

《单片机原理与应用》课程设计报告设计时间:2012年6月19日所在院系:电气与电子工程所学班级:电气09-17班学生学号:0903011714学生姓名:张钰指导老师:曹伟老师评分:一、设计要求1.设计条件1.1CPU采用89C51单片机。1.289C51单片机品振为12MHz。1.3编程语言:C语言或汇编语言。1.4测量结果存放在30H~37H中。1.5待产生的方波频率放在38H~39H中,单位为Hz2.编写程序完成以下任务:2.1测量从P3.2上输入的高电平宽度(100微秒~1秒)。2.2测量从P1.0上输入的给定方波频率(1KHz~300KHz)。2.3在P1.1上产生可变频率的方波:频率为(1KHz~10KHz),占空比为2:1。3.设计目的3.1熟练掌握51系列单片机的硬件结构,使学生对单片机在智能仪器设计中的应用具有感性认识。3.2熟练掌握51系列单片机的软件编程方法,使学生掌握作为弱电工程师所应具备的基本技能。程序清单#include<reg.51>//51系列单片机头文件#defineucharunsignedchar//定义无符号字符型标志sbitpwn=P3.2;//位定义ucharnum,th0,tl0;//定义变量floatt;//定义float型变量voidmain()//主函数{TH0=0;//定时器高位设初值0TL0=0;//定时器低位设初值0num=0;//定时器溢出位设初值0TMOD=0x01;//设置定时器工作方式while(pwn==1);//若为高电平一直等待while(pwn==0);//等待上升沿TR0=1;//开启定时器EA=1;//开启中断ET0=1;//开启中断while(pwn==1)//等待下降沿TR0=0;//关闭定时器th0=TH0;//赋值tl0=TL0;//赋值t=num*65.536+(th0*256+tl0)*0.001;//计算时间}voidtimer0interrupt1//中断{num++;//计数满了之后溢出加一}#include<reg.51>//51系列单片机头文件#defineucharunsignedchar//定义无符号字符型标志floatf,to;//定义float型变量uchart1,t2,num;//定义变量sbitpwm=P1.0;//位定义voidmain()//主函数{TH0=0;//定时器高位设初值0TL0=0;//定时器低位设初值0num=0;//定时器溢出位设初值0TMOD=0x01;//设置定时器工作方式while(pwn==1);//若为高电平一直等待while(pwn==0);//等待上升沿TR0=1;//开启定时器EA=1;//开启中断ET0=1;//开启中断while(pwn==1);//若为高电平一直等待while(pwn==0);//等待下一个上升沿t1=TH0;//赋值t2=TL0;//赋值t0=num*65.536+(t1*256+t2)*0.001;//计算时间f=1/t0;//计算频率}voidtimer0interrupt1//中断{num++;//计数满了之后溢出加一}#include<reg.51>//51系列单片机头文件sbitpwm=P1.1;//位定义intx,z;//定义整型变量voiddelay(z);//延时函数声明voidmain()//主函数{while(1)//循环程序{pwm=0;//赋低电平delay(z);//延时pwm=1;//赋高电平delay(2z);//延时}}delay(z)//延时子函数{for(x=z;x>0;x--)//延时程序}设计分析1、123如图所示,如果输入端口电平是高电平,1位置,则等待,到达2位置输入端口为低电平,循环等待,