闪烁LED灯的程序.doc

闪烁LED灯的程序.doc

ID:50451976

大小:2.65 MB

页数:29页

时间:2020-03-09

闪烁LED灯的程序.doc_第1页
闪烁LED灯的程序.doc_第2页
闪烁LED灯的程序.doc_第3页
闪烁LED灯的程序.doc_第4页
闪烁LED灯的程序.doc_第5页
资源描述:

《闪烁LED灯的程序.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、闪烁LED灯软件描述:/*文件描述:使用的是P1.0口,可以用其他的端口,如果用其他的端口只需把程序里的P1.0改成相应的端口,程序实现的功能是单片机通过对端口高低电平的控制实现led灯的亮和灭。赋值1就是高电平,0是低电平,具体赋什么值才亮要结合硬件部分,看led灯的接法。这里是赋0就会亮。*/#includesbitLED=P1^0;//用sbit关键字定义LED到P1.0端口,//LED是自己任意定义且容易记忆的符号voidDelay(unsignedintt);//函数声明c语言有voidmain(void){while(1){L

2、ED=1;//P1.0口置1led灯灭Delay(50000);//延时50ms更改数可以更改延时时间LED=0;//P1.0口置0led灯亮Delay(50000);//延时50ms更改数可以更改延时时间}}voidDelay(unsignedintt)//延时程序t的值代表几us{while(--t);}程序编译过程:下面就建立一个工程:点击project菜单下的newproject按钮,出现下图然后键入文件名(自己起名字)比如流水灯。点击保存按钮。选择单片机型号一般选择ATMEL下面的AT89C52.点击确定就好了。之后就需要在工程里面添加文件了(就

3、是写程序代码的地方)。点击file菜单下的new按钮就建立了新文件;键入程序点击保存按钮。键入文件名但必须以.c为后缀,因为你写的是c语言文件。如果是汇编就是.asm了。一般用c语言写,这里我就用test1.了,点击保存。然后就是设置了。右击target1,选择第一项的optionsfortarget“target1”。选择output在createHEX前勾上对号。点击确定。之后就是添加文件了,就是把c语言文件添加到工程里面去。右击上图灰色的部分,再左击Addfilesto‘sourcegroup1‘,点击文件名text1.c,点击Add;文件添加完毕,

4、关闭对话框就可以了。下面就是编译了,就是安从左到右的3个按键即可。创建了hex文件,这个文件就是烧写到单片机的文件;下面就是烧写程序了。打开烧写程序选择单片机型号一般不用该默认c52.打开需要下载的文件即点击openfile按钮;选择下载的文件;点击打开即可;选择端口。一般这个电脑就是com1.点击下载即可。给单片机上电;硬件描述:硬件部分就是一个led灯。但是需要串联一个限流电阻,如果只加入一个led灯就是烧掉,限流电阻的选择要合适,这个自己百度看看很简单的在这里就不必说了,应该串联个500R左右的电阻,因为办公室里没有所以就用了2个1K的并联。我建议同

5、学自己焊下电路板,然后下载上程序看看。下载后的状态:定时器/*文件描述:这个led口用的也是是P1.0口,可以用其他的端口,如果用其他的端口只需把程序里的P1.0改成相应的端口,这个程序实行的功能是利用定时器0的计数功能实现上面闪烁led灯的功能。*/#includesbitLED=P1^0;unsignedcharTime=0;//计时次数intmain(void){LED=1;//P1.0口置1熄灭led灯TMOD=0x01;//定时器0工作方式1TH0=0xdb;//T0赋初值,延时0.01秒(赋值有计算公式)TL0=0xff;ET

6、0=1;//开定时器0中断EA=1;//开总中断TR0=1;//开始计数while(1)//等待定时器中断什么也不做相当与while(1);{}}voidtimer0_int()interrupt1//定时器0中断{TH0=0xdb;//T0赋初值,延时0.01秒如果不赋值就会从0计数TL0=0xff;Time++;if(Time==100)//判断是否计时到1秒{Time=0;LED=~LED;}}与上面的一样,在这里就不必多说了。串口中断/*文件描述:串口实现的功能就是对串口进行测试,单片机发送字符到电脑,在由电脑发送回来,*/#include

7、52.h>voidmain(){TMOD=0x20;//定时器工作方式2TH1=0XFD;//有公式TL1=0XFD;TR1=1;SCON=0x50;//串口工作方式1EA=1;/*打开总中断*/ES=1;/*打开串口中断*/while(1);//等待串口中断}voidUART_SER(void)interrupt4//串行中断服务程序{unsignedcharTemp;//定义临时变量if(RI)//判断是接收中断产生{RI=0;//标志位清零Temp=SBUF;//读入缓冲区的值SBUF=Temp;//把接收到的值再发回电脑端}if(TI)/*如果是发

8、送标志位,清零应该是先接收了数据才可以发送如果先发送的话没有数据直

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。