3个位不断循环(LED灯循环点亮)的程序模拟【给某位同学的演示代码】
2013-05-20 21:48
337 查看
之前有个同学,问我 一个普通的数,怎么把其低3位的二进制位中的一个“1”,循环移动。。。
这个单片机里做某些功能的时候经常用到 。
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
char this_char = 0x31;
char buf[16] ={0};
while(gets(buf)) // 这里只是用一个用户输入动作来手动控制 一次循环,这样比较直观,呵呵
{
char c_tmp;
c_tmp = this_char&0x7;
printf("first: 0x%x\n", c_tmp);
if((c_tmp ==0x1)||(c_tmp ==0x2))
{
c_tmp <<= 0x1;
printf("if c_tmp: 0x%x\n", c_tmp);
}
else
{
c_tmp = 0x1;
printf("else c_tmp: 0x%x\n", c_tmp);
}
printf("c_tmp&0xF8: 0x%x\n", c_tmp&0xF8);
this_char = (this_char&0xF8)|c_tmp;
printf("out thischar=====: 0x%x\n", this_char);
}
return 0;
}
试验程序的操作办法,执行之后,
直接回车,或者随便输入一个什么字符,回车,会打印结果,你观察
out thischar=====: 之后打印的那个16进制数
1-->2--> 4 循环变化
这个单片机里做某些功能的时候经常用到 。
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
char this_char = 0x31;
char buf[16] ={0};
while(gets(buf)) // 这里只是用一个用户输入动作来手动控制 一次循环,这样比较直观,呵呵
{
char c_tmp;
c_tmp = this_char&0x7;
printf("first: 0x%x\n", c_tmp);
if((c_tmp ==0x1)||(c_tmp ==0x2))
{
c_tmp <<= 0x1;
printf("if c_tmp: 0x%x\n", c_tmp);
}
else
{
c_tmp = 0x1;
printf("else c_tmp: 0x%x\n", c_tmp);
}
printf("c_tmp&0xF8: 0x%x\n", c_tmp&0xF8);
this_char = (this_char&0xF8)|c_tmp;
printf("out thischar=====: 0x%x\n", this_char);
}
return 0;
}
试验程序的操作办法,执行之后,
直接回车,或者随便输入一个什么字符,回车,会打印结果,你观察
out thischar=====: 之后打印的那个16进制数
1-->2--> 4 循环变化
相关文章推荐
- 一、点亮LED程序,代码正确但是LED灯不亮,单板没反应
- LED实验&&I/O口实验--将 P0 作为输出口,连接 8 个 LED,编写程序,使 LED 循环点亮。(LED1 亮,其余灭->ED2 亮,其余灭……,如此循环 5 次后,进行全灭-全亮
- 基于ARM 的led循环点亮C程序
- 编写代码实现,模拟用户登录情景,并且只能登录三次,只允许输入三次密码,如果密码正确则提示登录成功,如果三次均输入错误,则退出程序。
- Cortex A8 LED 点亮程序分析
- arm9 点亮led程序优化导致全亮问题
- tiny4412 裸机程序 二、汇编点亮LED灯
- C语言模拟LED流水灯代码
- 分享一个香橙派PC2的C语言点亮LED程序
- php 论坛采集程序 模拟登陆,抓取页面 实现代码
- python 常见破解代码简单演示(不断增加)
- 利用java模拟网站登录程序代码
- 心情灰常激动,第一个汇编程序烧入Nand Flash,点亮 led1
- 飞凌OK6410开发板(裸板) 第一个点亮LED灯程序
- GTK+ 多道批处理模拟程序代码
- python循环之for循环与模拟购物车小程序
- Windows循环渐进-Ping程序实现代码
- 静态循环队列c程序演示
- 嵌入式驱动开发笔记(裸机程序篇)---点亮LED灯
- 编写高质量代码改善C#程序的157个建议[避免finaly内的无效代码、避免嵌套异常、避免吃掉异常、注意循环异常处理]