单片机补充案例--按键点灯

举报
zhangrelay 发表于 2021/07/15 01:03:38 2021/07/15
【摘要】 这是一个及其简单的案例,按下key点亮led,为什么还要补充呢? 1. 输入和输出 2. 数字量 /***************************************************************************** * 头文件 * **************************************************...

这是一个及其简单的案例,按下key点亮led,为什么还要补充呢?

1. 输入和输出

2. 数字量


  
  1. /*****************************************************************************
  2. * 头文件 *
  3. *****************************************************************************/
  4. #include "8052.h"
  5. //端口定义--功能按键控制LED灯亮灭
  6. #define LSA P1_5
  7. #define LSB P1_6
  8. #define LSC P1_7
  9. #define LED0 P0_0
  10. #define LED1 P0_1
  11. #define LED2 P0_2
  12. #define LED3 P0_3
  13. #define KEY0 P3_2
  14. #define KEY1 P3_3
  15. #define KEY2 P3_4
  16. #define KEY3 P3_5
  17. /*****************************************************************************
  18. * 初始化 *
  19. *****************************************************************************/
  20. void delay(unsigned int ms) //
  21. {
  22. unsigned int x;
  23. unsigned int y;
  24. for(x=ms;x>0;x--)
  25. for(y=110;y>0;y--)
  26. ;
  27. }
  28. void sys_init(void)
  29. {
  30. LSA = 0;
  31. LSB = 0;
  32. LSC = 0;
  33. }
  34. /*****************************************************************************
  35. * 主函数 *
  36. *****************************************************************************/
  37. void main(void)
  38. {
  39. sys_init();
  40. while(1)
  41. {
  42. /* send per 0ms */
  43. //delay(1);
  44. LED0=KEY0;
  45. LED1=KEY1;
  46. LED2=KEY2;
  47. LED3=KEY3;
  48. }
  49. }

关于单片机程序,如果使用固件库一定要配置好环境,对于实验一,不配置正确就无法完成编译,报错无法找到xxx等:

参考如下代码:


  
  1. /*****************************************************************************
  2. * 头文件 *
  3. *****************************************************************************/
  4. #include "8052.h"
  5. #define LSA P1_5
  6. #define LSB P1_6
  7. #define LSC P1_7
  8. /*****************************************************************************
  9. * 初始化 *
  10. *****************************************************************************/
  11. void delay(unsigned int ms) //
  12. {
  13. unsigned int x;
  14. unsigned int y;
  15. for(x=ms;x>0;x--)
  16. for(y=110;y>0;y--)
  17. ;
  18. }
  19. void sys_init(void)
  20. {
  21. LSA = 0;
  22. LSB = 0;
  23. LSC = 0;
  24. }
  25. /*****************************************************************************
  26. * 主函数 *
  27. *****************************************************************************/
  28. void main(void)
  29. {
  30. sys_init();
  31. while(1)
  32. {
  33. /* send per 1000ms */
  34. delay(1000);
  35. P0=0x55;
  36. /* send per 1000ms */
  37. delay(1000);
  38. P0=0xFF;
  39. }
  40. }

 

文章来源: zhangrelay.blog.csdn.net,作者:zhangrelay,版权归原作者所有,如需转载,请联系作者。

原文链接:zhangrelay.blog.csdn.net/article/details/110729176

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。