用C语言编写程序实现通过按键使LED灯周期闪烁.doc

用C语言编写程序实现通过按键使LED灯周期闪烁.doc

ID:61455930

大小:20.00 KB

页数:7页

时间:2021-02-01

用C语言编写程序实现通过按键使LED灯周期闪烁.doc_第1页
用C语言编写程序实现通过按键使LED灯周期闪烁.doc_第2页
用C语言编写程序实现通过按键使LED灯周期闪烁.doc_第3页
用C语言编写程序实现通过按键使LED灯周期闪烁.doc_第4页
用C语言编写程序实现通过按键使LED灯周期闪烁.doc_第5页
资源描述:

《用C语言编写程序实现通过按键使LED灯周期闪烁.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、用C语言编写程序实现通过按键使LED灯周期闪烁(2010-02-2421:12:44)标签:循环闪烁周期led灯按键杂谈 一、设计题目二、程序功能:开机复位后,LED0到LED7全部点亮,所有LEDPort持续2S后熄灭,然后等待按键,按0键LED7以0.8S周期闪烁,按1键LEDPort以1S周期闪烁。三、总体设计思想用中断方式实现定时器的定时,然后通过键盘中断程序实现通过对按键的操作来实现相应的周期闪烁。在我编写的实验程序中我用到了定时器中断和外部中断。程序共分为两个模块,一个为定时器模块,一个为键盘中断程序模块,在主函数中,首先实现所有LEDPort点亮

2、,然后通过中断方式实现定时2S,在定时器num==20时,设定全局变量为标志位flag=1,然后再主函数中设定条件,通过标志位的变化实现所有LEDPort持续2S后熄灭。然后进入循环,等待按键,在按键中断服务程序中使用switch语句实现通过改变num1的值来实现LED7的闪烁周期。设定标志位b=0,在主函数中使用if语句通过判断b的值来改变LED7的亮灭情况,同时相应的b值会取反。四、程序具体实现实验要求开机复位后,LED0到LED7全部点亮2S后熄灭。在主函数中使用LEDPort=0x00;这条语句实现所有灯都亮,使用中断方式实现定时器定时2S,因为实验要

3、求20ms溢出,所以设定num=100,在定时器中断服务程序中使用if语句判断条件,当num加到100,也就是说2S时间到时,执行flag=1;语句(先设定全局变量flag=0)。然后在主函数中使用while语句规定只有在flag=0时才执行所有LEDPort点亮的操作。2S时间到后,所有灯熄灭。然后进入while循环,等待用户按键。用户按键后,通过使用switch语句,实验按0键,num1=20,按1键,num1=50,。而在主函数中,当按下0键或者1键时,num1就有了固定的值,通过if语句判断是否到达所要求的时间后,执行相应操作。在本实验中,要求实现LE

4、D7的周期闪烁,我先设定一个标志位b=0;默认LED7灭,;然后在主函数中在定时时间到达后,通过判断和改变b的值来实现LED7的亮灭情况。然后使num=0;使定时器继续从新定时,不停循环实现LED7的周期闪烁。程序附录:#include#include#include"7279.h"#defineuchar    unsignedchar#defineuint   unsignedintsbit  ad_busy=P3^2;    sbit  key=P3^3;ucharnum;ucharnum1;bitb;ucharfl

5、ag=0;ucharkeynumber;#defineLEDPortXBYTE[0x9000] //端口地址voidInit(void){ IE

6、=0x04; TCON=0x01;}voidTime0_Init(void){ TMOD

7、=0x01; TH0=0xB8; TL0=0x00; ET0=1; TR0=1;}voidTime0(void)interrupt1{ TH0=0xB8; TL0=0x00; num++; if(num==100)     flag=1;} voidISR_INT1(void)interrupt2{ keynumber=Read

8、7279();   while(!key);    switch(keynumber)    {          case0:num1=20;break;   case1:num1=50;break;   default:break;    }}voidmain(void){   b=0;  Init();  Time0_Init();  EA=1;    while(!flag)  {LEDPort=0x00;   }     LEDPort=0xff;     num=0;     while(1)   {             if(num==num

9、1)      { if(b)       {LEDPort=0x7f;b=0;}          else         {LEDPort=0xff;b=1;}      }            }num=0;      }LED和按键控制实验    在我刚买ARM开发板时,曾经一共做过4次实验,写过4个程序(距今似乎快要一年了),具体为:  1、LED控制实验:使开发板上的LED3和LED4交替着亮灭  2、按键控制实验:用按键控制开发板上LED的亮灭  3、串口UART通信实验:用ARM的串口与PC机进行通信,包括发送和接收  4、LCD显示实验:

10、在240×320的LCD上显示R,G,

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

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

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