
设一个标志位flag, 以标志位的5种状态对应发光二极管的5种工作状态,如当flag=1;发光二极管工作在1,当flag=2;发光二极管工作在2,!然后根据定时器定时功能,5秒到,刷新flag的值,程序如下;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;/程序功能:定时5S到切换LED显示状态
;作者:w4187818402008529 /
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
FLAG BIT 30H ;定义标志位
ORG 0
LJMP MAIN
ORG 0BH
LJMP AGA
;;;;;;主程序;;;;;;;;;;;;
ORG 0030H
MAIN: MOV FLAG,#01H ;标志位清0
MOV TMOD,#01H ;赋值50MS
MOV TH0,#3CH
MOV TL0,#0B0H
MOV R0,#100 ;中断10050=5S
SETB EA
SETB ET0
SETB TR0
SJMP $
;;;;;;;;;中断服务程序;;;;;;;;;;;;;;
AGA: MOV TH0,#3CH
MOV TL0,#0B0H
DJNZ R0,LOOP ;5S到否否,返回
INC FLAG ;到,标志加1
MOV A,FLAG
CJNE A,#05,L1 ;扫描5种状态了否
MOV FLAG,#01H ;是,归0,重新开始
;;;;;;;;;切换程序;;;;;;;;;;;;
L1: CJNE A,#01H,L2 ;判断是否是状态1否,转判断2
LCALL LED1 ;是,调有状态1
SJMP LOOP ;返回
L2: CJNE A,#02H,L3 ; 以下跟上面判断相同
LCALL LED2
SJMP LOOP
L3: CJNE A,#03H,L4
LCALL LED3
SJMP LOOP
L4: CJNE A,#04H,L5
LCALL LED4
SJMP LOOP
L5: CJNE A,#05H,LOOP
LCALL LED5
LOOP: RETI
;;;;;;LED子程序区;;;;;;;;;;
LED1: RET
LED2: RET
LED3: RET
LED4: RET
LED5: RET
/////////////////
///////////////////////////////
/程序功能:定时5S到切换LED显示状态
作者:w4187818402008529 /
//========声明区===========
#include <reg51h>
unsigned char count=0;
unsigned char flag=1;
void led1(void);
void led2(void);
void led3(void);
void led4(void);
void led5(void);
//=========函数=========
main()
{ TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{ switch(flag)
{ case 1:led1();break;
case 2:led1();break;
case 3:led1();break;
case 4:led1();break;
case 5:led1();break;
}
}
}
//==========中断服务============
void timer0(void) interrupt 1
{ TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(++count==100)
{ count=0;
flag++;
if(flag==5)
flag=1;
}
}
//========5种状态函数区=========
1、可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。
2、具体实现方法可以参考如下程序:
:
1、单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
2、单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。
3、单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。
参考资料:
程序如下:
#include <reg52h>
sbit led1 = P2^0;
sbit led2 = P2^1;
sbit led3 = P2^2;
sbit led4 = P2^3。
让电子信息技术与单片机技术相融合,有效提高了单片机应用效果。作为计算机技术中的一个分支,单片机技术在电子产品领域的应用,丰富了电子产品的功能,也为智能化电子设备的开发和应用提供了新的出路,实现了智能化电子设备的创新与发展。
从二十世纪九十年代开始,单片机技术就已经发展起来,随着时代的进步与科技的发展,目前该技术的实践应用日渐成熟,单片机被广泛应用于各个领域。现如今,人们越来越重视单片机在智能电子技术方面的开发和应用,单片机的发展进入到新的时期。
无论是自动测量还是智能仪表的实践,都能看到单片机技术的身影。当前工业发展进程中,电子行业属于新兴产业,工业生产中人们将电子信息技术成功运用。
一、AVR系列单片机开发板
本开发板可使用于多种型号的AVR单片机,本板主配ATmega16单片机。除了丰富的硬件资源外,还配有仿真器,可以很方便的调试硬件,大大减小调试周期。所有IO口全部引出,用户可以任意扩展功能。
二、AVR_PQ1A开发板实例程序(演示程序)
( 1 ) LED LED灯驱动程序,两种演示方式
( 2 ) SMG 数码管驱动程序,循环滚动显示数字1-6
( 3 ) 1602 1602液晶驱动程序,除正常显示ASCII码外,还教如何显示中文
( 4 ) 12864 12864液晶驱动程序,显示汉字和图形。液晶为带字库的 ST7920控制器的液晶。
( 5 ) SKEY 4个独立按键驱动程序,采用查询方式驱动
( 6 ) SKEY_INT 利用按键产生外部中断,教你中断程序的编写
( 7 ) MKEY 4x4矩阵按键驱动程序,教你如何扫描矩阵按键
( 8 ) TIMER0INT 定时器0驱动程序,教你如何使用定时器
( 9 ) AD Mega16自带的AD的驱动程序
( 10 ) DA SPI接口的8位DA驱动程序,利用Mega16的硬SPI接口
( 11 ) DS18B20 数字温度传感器驱动程序,教你如何显示小数
( 12 ) TWI( IIC ) IIC接口数字电位器驱动程序,利用Mega16的硬件IIC接口
( 13 ) BEEP 蜂鸣器唱歌程序,教你如何唱出好听的歌曲
( 14 ) PWM Mega16的定时器1驱动程序,实现PWM输出功能
( 15 ) RELAY 继电器驱动程序,利用Mega16的I/O口直接驱动继电器
( 16 ) UART Mega16的异步串口驱动程序,教你如何实现串口通信
( 17 ) RTC 时钟芯片驱动程序,可以显示和利用按键设定时间
( 18 ) EEPROM Mega16的EEPROM驱动程序,读写内部EEPROM
( 19 ) PS2 标准PS2键盘驱动程序,教你如何读入扫描码并译成ASCII码
( 20 ) USB USBD12固件程序,教你实现枚举过程和数据传输
( 21 )uC/OS-II 移植好的 *** 作系统,执行两个任务,编译后,占用Mega16的26%资源。
#include<reg52h>
#include <intrinsh>
void main()
{
unsigned int x,y;
P1=0xfe;
while(1)
{
P1=_crol_(P1,1);
for(x=500;x>0;x--)
for(y=113;y>0;y--);
}
}
P1接二极管(低电平有效)每隔x毫秒流动一下(可改变x的值)
震荡周期为110592MHz
把上面的P1=0xfe;改为P1=0x01;!!!
高电平也许要用上拉电阻!!
以上就是关于用C语言编写一个花样流水灯的程序及此程序的流程图全部的内容,包括:用C语言编写一个花样流水灯的程序及此程序的流程图、单片机C语言如何实现8个LED流水灯来回流动、单片机流水灯程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)