- 名称:IO口高低电平控制
- 修改:无
- 内容:花样灯一般有两种方法实现:
- 1、程序循环执行
- 2、查表法
- 这里我们两种都使用一下
- ------------------------------------------------*/
- #include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
- /*------------------------------------------------
- 花样表格
- ------------------------------------------------*/
- unsigned char code seg[]={0x7f,0xbf,0xdf,0xef,
- 0xf7,0xfb,0xfd,0xfe,
- 0xff,0xff,0x00,0x00,
- 0x55,0x55,0xaa,0xaa
- };//rom允许情况可以无限添加
- void Delay(unsigned int t); //函数声明
- /*------------------------------------------------
- 主函数
- ------------------------------------------------*/
- main()
- {
- unsigned char i; //定义一个无符号字符型
- //局部变量 i 取值范围 0~255
- while(1)
- {
- P1=0xFE; //第1个LED亮
- for(i=0;i<8;i++)
- {
- Delay(20000);
- P1 <<=1;
- }
- P1=0x7F; //第8个LED亮
- for(i=0;i<8;i++)
- {
- Delay(20000);
- P1 >>=1;
- }
- P1=0xFE; //第1个LED亮
- for(i=0;i<8;i++)
- {
- Delay(20000);
- P1 <<=1;
- P1 |=0x01;
- }
- P1=0x7F; //第8个LED亮
- for(i=0;i<8;i++)
- {
- Delay(20000);
- P1 >>=1;
- P1 |=0x80;
- }
- //下面通过查表方法获得花样参数
- for(i=0;i<16;i++)//查表可以简单的显示各种花样 实用性更强
- {
- Delay(20000);
- P1=seg[i];
- }
- }
- }
- /*------------------------------------------------
- 延时函数,含有输入参数 unsigned int t,无返回值
- unsigned int 是定义无符号整形变量,其值的范围是
- 0~65535
- ------------------------------------------------*/
- void Delay(unsigned int t)
- {
- while(--t);
- }
复制代码
|