//位操作点亮发光二极管
#include
#include
sbit D2=P1^3;
void OSCILLATOR_Init(void)
{
U8 SFRPAGE_save = SFRPAGE;
SFRPAGE = CONFIG_PAGE;
OSCICN = 0x87; // Set internal osc. divider to 1
SFRPAGE = SFRPAGE_save;
}
void PORT_Init(void)
{
U8 SFRPAGE_save = SFRPAGE;
SFRPAGE = CONFIG_PAGE;
P1MDIN |= 0x08; // P1.3 is digital
P1MDOUT = 0x08;
XBR2 = 0x40; // Enable crossbar and GLOBAL enable weak pull-ups
SFRPAGE = SFRPAGE_save;
}
/*void Delay(unsigned m)
{
char i=0;
while(--m)
{
for(i=0;i<120;i++);//修改i的最大值来调整延时时间,延时时间计算:
}
}*/
//延时可以使用上面的或下面的双层for循环,单层时间太短
void delay()
{
unsigned int i;
unsigned char j;
for(i=1;i<3000;i++)
{
for(j=1;j<120;j++);
}
}
void main()
{
OSCILLATOR_Init();//时钟初始化
PORT_Init();//端口初始化
PCA0MD &= ~0x40; //禁止看门狗
D2=1;
// Delay(1200);
delay();
D2=0;
delay();
//Delay(1200);
}
关键字:发光二极管 闪烁程序 位操作
引用地址:
发光二极管闪烁程序(位操作)
推荐阅读最新更新时间:2024-03-16 15:11
arm学习——有关位操作的总结
在学习arm的过程中,感觉寄存器,基本不会提供位操作,而是整体的操作, 整体操作的就是要注意在对某位赋值的时候不要影响到其他位,看上去不简单, 其实,整体操作有技巧, 那么就来总结一下: 1、首先要理解,“|”符号就是用来置1的,“&”就是用来置0的。 2、不管置1还是置0,” ”左边总是以1的形式出现。要置0,加上取反符号。 结合上面两条规则,事情就很简单了: 比如先把某个寄存器的第6位置1,那么首先写出(1 6)待用。 然后置1就用“|”的规则,所以就是:reg |= (1 6); 要是第6位置0呢: 一样的,首先写出(1 6)待用。 置0就用“&”,加上取反符号的规则。所以就是:reg &= ~(1 6);
[单片机]
STM32位带操作举例
STM32位带操作举例 int main(void) { GPIO_InitTypeDef GPIO_InitStruction; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); GPIO_InitStruction.GPIO_Pin=GPIO_Pin_8; GPIO_InitStruction.GPIO_Mode=GPIO_Mode_Out_OD; GPIO_InitStruction.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOA,&GPIO_InitStruction); //PA8 /*whil
[单片机]
嵌入式中的位操作
位运算: | & ^ ~ 嵌入式因为对内存管理及寄存器的原因,经常需要进行位操作: 1、判断一个字节中的某位是0还是1 思路1: 1)将字节的中的该位右移到最低位- 得到变量a; 2)变量a与0x01进行与操作,如果结果为0x01,则该位为1,如果结果为0x00,则该位为0; unsigned char ch = 0x40;//0100 0000 a = ch 6; a =a&0x01; if(a==1) 第6位为1; 小结:跟与1的操作经常用来判断位的值。 思路2: if(a&1 n) --- 该位为1; else ----- 该位为0; 2、将字节中的第n
[单片机]
从CRT、PDP到OLED、激光,下一代的未来显示将会是什么?
显示技术发展至今,从CRT、PDP,LCD,再到OLED、激光,可谓给我们的日常生活带来了翻天覆地的变化,那么下一代的未来显示会是什么呢? 今天,万维君就来跟大家聊一聊你已经熟知或者还没听过的那些“未来显示”,或许它们离我们的生活并不在遥远。 ·OLED OLED技术自从1979年诞生在柯达实验室中,就一直被认为是下一代显示技术的候选人。现如今高端手机已经标配OLED屏幕,而在大屏电视领域,OLED电视也逐步成为了高端电视得代名词。 OLED即有机 发光二极管 ,其特性是自发光,不像TFT LCD需要背光,因此可视度和亮度均高,其次是电压需求低且省电效率高,加上反应快、重量轻、厚度薄、构造简单、可柔性显示等特点
[嵌入式]
实现无荧光粉的单芯片白光发光二极管
发光二极管在 固态照明 工程中占有重要的地位,在未来5-10年将逐步取代传统的照明灯具,成为节能、环保的新型光源。与传统的光源(白炽灯,日光灯,卤素灯等)相比,发光二极管光源具有许多优点,如长寿命,体积小,低功耗,低环境污染,高电光转换效率,适用性好和使用安全等。随着GaN基III- V族化合物技术的发展和 蓝光LED 的实现,人们已经可以获得实现白光的三基色发光二极管。通常情况下,获得白光发光二极管的方法有:1) 蓝光 发光二极管+ 黄色荧光粉;2)多芯片组合,即将红,绿,蓝三个管芯结合在一起;3) 光子 循环实现白光发光方式;4)同一衬底上生长不同发光波长量子阱方式。但是上述几种获得白光的方式技术复杂、制作成本高、存在很
[电源管理]
用单片机控制LED亮灭
1.实验任务 如图所示,监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭。 2.电路原理图 3.系统板上硬件连线 (1).把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上; (2).把“单片机系统”区域中的P3.0端口用导线连接到“四路拨动开关”区域中的K1端口上; 4.程序设计内容 (1).开关状态的检测过程 单片机对开关状态的检测相对于单片机来说,是从单片机的P3.0端口输入信号,而输入的信号只有高电平和低电平两种,当拨开开关K1拨上去,即输入高电平,相当开关断开,当拨动开关K1拨下去,即
[单片机]
MSP430单片机的位操作
MSP430单片机属于RISC(Reduced Instruction Set Computer)型处理器。与普通的51单片机的复杂指令集相区别。普通51单片机执行一条指令最少需要12个时钟周期,而RISC单片机最少仅需1个时钟周期。RISC处理器带来的最大不同就是不能进行位操作,内存寻址只能到字不能到位。打个比方,一栋楼只有一个邮政编码,快递员送东西只能送到楼,显然比送到户要快,但具体是那户人家的,就得想想办法了。 1、写位操作。 对某字节使用 = 进行写操作时,所有位的值都将被改变。如果先将字节读出来,再使用 按位 操作符对原字节进行赋值,则可 等效 对单个位进行操作。 需要特别指出的是,采用 按位 操作并不意味
[单片机]
封装LED发光二极管正负极判断
封装的led 发光二极管正负极判别方法 LED节能灯焊接过程中,常遇到如何辨认 发光二极管 的正负极,这部尤其重要,灯亮不亮就在他了! 第一种观察法。从侧面观察两条引出线在管体内的形状.较小的是正极. 如下图 其次看引脚长短也可以看出来,发光二极管的正负极,引脚长的为正极,短的为负极! 第二种万用表检测法。用万用表检测发光二极管时,必须使用“R×l0k”档。困为前面我们已经讲过。发光二极管的管压降为2V.而万用表处于“R×lk” 及其以下各电阻挡时.表内电池仅为1.5V。低于管压降.无论正、反向接入,发光二极管都不可能导通,也就无法检测。。R×1k”档时表内接有9V(或 15V)高压电池
[电源管理]