- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2、用C语言实现各种灯光效果
走马灯效果 走马灯效果 闪烁效果 某些灯由亮变灭,其它不变 某些灯由灭变亮,其它不变 某些灯变化,其它不变 位运算 延时效果的实现及延时长短的控制 延时效果的实现及延时长短的控制 * * 走马灯效果(左移、右移) 闪烁效果(取反) 某些灯由亮变灭,其它不变(与) 某些灯由灭变亮,其它不变(或) 某些灯变化,其它不变(异或) 位运算 延时效果的实现及延时长短的控制 (数据类型) 用C语言实现各种灯光效果 内容 C language programming 一个灯从右侧亮到左侧亮 #includeAT89X52.h void main() { P2 = 0x01; P2 = P21; //按位左移 P2 = P21; P2 = P21; P2 = P21; } 谁 左移 几次 左移: 高位移出,低位补0 X0 X1 X2 X3 X4 X5 X6 X7 左移1位 X0 X1 X2 X3 X4 X5 X6 0 一个灯从左侧亮到右侧亮 #includeAT89X52.h void main() { P2 = 0x80; P2 = P21; //按位右移 P2 = P21; P2 = P21; P2 = P21; } 谁 右移 几次 右移: 低位移出,高位补0 X0 X1 X2 X3 X4 X5 X6 X7 右移1位 X1 X2 X3 X4 X5 X6 X7 0 8个灯亮的变灭,灭的变亮 #includeAT89X52.h void main() { P2 = 0x00; P2 = ~P2; //按位取反 P2 = 0x0F; P2 = ~P2; }按位取反 取反: 0变1,1变0 #includeAT89X52.h void main() { P2 = 0x7F; P2 = P20x0F; //按位与 P2 = 0xAA; P2 = P20x7F; } 按位与: 00得0,01得0,11得100001111 按位与与的效果: 和0与得0,和1与保持不变 #includeAT89X52.h void main() { P2 = 0x0F; P2 = P2 | 0x3F; //按位或 P2 = 0xAA; P2 = P2 | 0x7F; } 按位或: 00得0,01得1,11得100111111 按位或或的效果: 和1或得1,和0或保持不变 #includeAT89X52.h void main() { P2 = 0x3F; P2 = P2 ^ 0xF0; //按位异或 P2 = 0xAA; P2 = P2 | 0x7F; } 按位异或: 00得0,01得1,11得011110000 按位异或异或的效果: 和1异或取反,和0异或保持不变 按位或: | 左移: 右移: 取反: ~ 按位与: 按位异或: ^ 高位移出,低位补0 低位移出,高位补0 0变1,1变0 和0与得0,和1与保持不变 和1或得1,和0或保持不变 和1异或取反,和0异或保持不变 unsigned char i; i=0; while(i100) { i = i+1; } 变量就是一个能存放数据的容器i:i:i: 0 或 1 1位 bit ±1.175494E-38~±3.402823E+38 四字节(32位) float -2147483648~+2147483647 四字节(32位) signed long 0~4294967295 四字节(32位) unsigned long -32768~+32767 双字节(16位) signed int 0~65535 双字节(16位) unsigned int -128~+127 单字节(8位) signed char 0~255 单字节(8位) unsigned char 值 域 长 度 数据类型 * *
文档评论(0)