《C语言单片机开发趣味入门》第二节

视频在线观看、下载地址: http://www.rupeng.com/forum/thread-6681-1-1.html
板书:
《C语言单片机开发趣味入门》
如鹏网 rupeng.com 在校不迷茫 毕业即辉煌
11110000 0xF0
00001111 0x0F
01010101  0x55
10101010  0xAA
11111110
11111100
11111000
...
10000000
00000000
11111110
11111101
11111011
11110111
11101111
00000001
00000010
00000100
11111101
00000010 各位取反
00000100  左移
11111011 各位取反

流水灯写法1:
  P1=0xFE;
  for(;;)
  {
    sleep(1000);
    P1=~((~P1)<<1);
  if(P1==0xFF)
  {
    P1=0xFE;
  }
  }
流水灯写法2:
  for(;;)
  {
    sleep(1000);
    P1=_crol_(P1,1);
  }

#include <intrins.h>
_crol_,循环左移
http://hi.baidu.com/dsp_arm_embed/blog/item/029d300f23f8d2ef36d122a4.html
1、灯的单独控制,不用考虑其他灯的状态,简化编程。
sbit P1_0=P1^0;
P1_0=0;
P1_0=!P1_0;
2、键盘的读取。一通百通。
sbit P3_2=P3^2;
例子:P3.2控制第一个灯,按下就亮,不按下就灭;
  for(;;)
  {
    P1_0=P3_2;
  }

P3.2控制按下都亮,放下都灭;
P3.2按一下都亮,P3.3按一下都灭;
//按键抖动
  for(;;)
  {
    if(P3_2==0)
  {
  P1=~P1;
  }
  }
bit类型。
P3.2按一下上向下流水,P3.3按一下下向上流水。
  bit isUp=0;
  P1=0xFE;
  for(;;)
  {
    if(isUp)
  {
    P1=_crol_(P1,1);
  }
  else
  {
  P1=_cror_(P1,1);
  }
  sleep(1000);
  if(P3_2==0)
  {
    isUp =0;
  }
  if(P3_3==0)
  {
    isUp =1;
  }
  }
课下作业:按下P3.2所有灯都闪,放开都灭;公交进度显示,按下P3.2所有都灭,按一下P3.3,亮的灯增加1,按下一下P3.4则撤销。雷电游戏:随机的一个灯亮一秒钟,四个按钮每个控制两个灯,在灯
亮的时间内按下对应的按钮则表示打中,所有灯闪一下(表示爆炸),然后重新开始。
下节课:作业点评,带七段数码管的仿真版的编程。

如鹏网 在校不迷茫 毕业即辉煌 http://www.rupeng.com

你可能感兴趣的:(游戏,编程,c,语言,作业)