欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOC文档下载  

    闪烁LED灯的程序.doc

    • 资源ID:8663       资源大小:2.28MB        全文页数:25页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    闪烁LED灯的程序.doc

    -闪烁LED灯软件描述:/*文件描述:使用的是P1.0口,可以用其他的端口,如果用其他的端口只需把程序里的P1.0改成相应的端口,程序实现的功能是单片机通过对端口上下电平的控制实现led灯的亮和灭。赋值1就是高电平,0是低电平,具体赋什么值才亮要结合硬件局部,看led灯的接法。这里是赋0就会亮。*/#include<reg52.h>sbit LED=P10;/ 用sbit 关键字 定义 LED到P1.0端口, /LED是自己任意定义且容易记忆的符号void Delay(unsigned int t); /函数声明 c语言有void main (void)while(1)LED =1; /P1.0口置1 led灯灭Delay(50000); /延时50ms 更改数可以更改延时时间LED=0;/ P1.0口置0 led灯亮Delay(50000); /延时50ms 更改数可以更改延时时间void Delay(unsigned int t)/延时程序 t的值代表几us while(-t);程序编译过程:下面就建立一个工程:点击project菜单下的new project按钮,出现下列图然后键入文件名自己起名字比方 流水灯。点击保存按钮。选择单片机型号 一般选择ATMEL下面的AT89C52.点击确定就好了。之后就需要在工程里面添加文件了就是写程序代码的地方。点击file菜单下的new按钮就建立了新文件;键入程序 点击保存按钮。键入文件名但必须以 .c为后缀,因为你写的是c语言文件。如果是汇编就是.asm了。一般用c语言写,这里我就用test1.了,点击保存。然后就是设置了。右击target1,选择第一项的options for target "target1。选择output在create HE*前勾上对号。点击确定。之后就是添加文件了,就是把c语言文件添加到工程里面去。右击上图灰色的局部,再左击Add files to source group 1,点击文件名te*t1.c,点击Add;文件添加完毕,关闭对话框就可以了。下面就是编译了,就是安从左到右的3个按键即可。创立了he*文件,这个文件就是烧写到单片机的文件;下面就是烧写程序了。翻开烧写程序选择单片机型号一般不用该默认c52.翻开需要下载的文件即点击open file按钮;选择下载的文件;点击翻开即可;选择端口。一般这个电脑就是1.点击下载即可。给单片机上电;硬件描述:硬件局部就是一个led灯。但是需要串联一个限流电阻,如果只参加一个led灯就是烧掉,限流电阻的选择要适宜,这个自己百度看看 很简单的在这里就不必说了,应该串联个500R左右的电阻,因为办公室里没有所以就用了2个1K的并联。我建议同学自己焊下电路板,然后下载上程序看看。下载后的状态:定时器/*文件描述:这个led口用的也是是P1.0口,可以用其他的端口,如果用其他的端口只需把程序里的P1.0改成相应的端口,这个程序实行的功能是利用定时器0的计数功能实现上面闪烁led灯的功能。*/#include <reg52.h> sbit LED= P10;unsigned char Time=0; /计时次数int main(void)LED =1; /P1.0口置1 熄灭led灯TMOD=0*01; /定时器0工作方式1TH0=0*db; /T0赋初值,延时0.01秒 赋值有计算公式TL0=0*ff; ET0=1; /开定时器0中断EA=1;/开总中断TR0=1; /开场计数while(1) /等待定时器中断 什么也不做 相当与while1;void timer0_int() interrupt 1 /定时器0中断TH0=0*db; /T0赋初值,延时0.01秒 如果不赋值就会从0计数 TL0=0*ff;Time+;if(Time=100) /判断是否计时到1秒Time=0; LED = LED;与上面的一样,在这里就不必多说了。串口中断/*文件描述:串口实现的功能就是对串口进展测试,单片机发送字符到电脑,在由电脑发送回来,*/#include<reg52.h> void main() TMOD= 0*20; /定时器工作方式2 TH1=0*FD; /有公式 TL1=0*FD; TR1=1; SCON= 0*50;/串口工作方式1 EA = 1; /*翻开总中断*/ ES = 1; /*翻开串口中断*/ while(1); /等待串口中断 void UART_SER (void) interrupt 4 /串行中断效劳程序 unsigned char Temp; /定义临时变量 if(RI) /判断是接收中断产生 RI=0; /标志位清零 Temp=SBUF; /读入缓冲区的值 SBUF=Temp; /把接收到的值再发回电脑端 if(TI) /*如果是发送标志位,清零 应该是先接收了数据才可以发送 如果先发送的话没有数据直接清零*/ TI=0; 程序的编译跟烧写跟上面的流水灯的类似在这不必在说了。请同学们仿照前面的例子。下面的是将程序烧写在单片机上能实现什么样的功能。因为发送数据我们无法直接看到所以借助一个串口调试程序。上面的设置就默认这样就可以注意波特率设定的值必须跟你程序中设定的那个波特率一致,否则发不过去。因为程序都是9600所以默认为9600.还有串口号根据情况可以改变。在下方写入你要发送的字符看看上面的方框收到什么。写入a得到了E1.这是为什么呢。这是因为接收区设置为十六进制显示。所以得到的是a的十六进制代码值。串口查询/*文件描述:对串口进展测试,单片机发送字符到电脑,在由电脑发送回来*/#include <reg52.h> int main(void) /主函数 unsigned char Temp; /定义变量用来发送或接收数据 TMOD=0*20; /定时器T1使用工作方式2 TH1=253; /设置初值 TH0=253; TR1=1; /开场计时 定时器不能开中断 PCON=0*00; /SMOD=0; SCON=0*50; /工作方式1,波特率9600bit/s,允许接收 TI=1; /TI置初值 TI发送数据标志位 IE=0; /屏蔽中断 就是不使用中断了 while(1) if(RI) RI=0; /去除RI标志 Temp=SBUF; /接收数据 if(TI) TI=0; SBUF=Temp; /发送数据 程序运行的结果:我现在写入ab点击发送:. z.

    注意事项

    本文(闪烁LED灯的程序.doc)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开