/* 名称:TIMER0 与 TIMER1 控制条形 LED
说明:定时器 T0 定时控制上一组条形 LED,滚动速度较快
定时器 T1 定时控制下一组条形 LED,滚动速度较慢
*/
#include
#include
#define uchar unsigned char
#define uint unsigned int
uchar tc0=0,tc1=0;
//主程序
void main()
{
P0=0xfe;
P2=0xfe;
TMOD=0x11; //定时器 0、定时器1 均工作于方式 1
TH0=(65536-15000)/256; //定时器 0:15ms
TL0=(65536-15000)%256;
TH1=(65536-50000)/256; //定时器 1:50ms
TL1=(65536-50000)%256;
IE=0x8a;
TR0=1; //启动定时器
TR1=1;
while(1);
//T0 中断函数
void Time0() interrupt 1
{
TH0=(65536-15000)/256; //恢复定时器0初值
TL0=(65536-15000)%256;
if(++tc0==10) //150ms 转换状态
{
tc0=0;
P0=_crol_(P0,1);
}
}
//T1 中断函数
void Time1() interrupt 3
{
TH0=(65536-50000)/256; //恢复定时器 1 初值
TL0=(65536-50000)%256;
if(++tc1==10) //500ms 转换状态
{
tc1=0;
P2=_crol_(P2,1);
}
}
关键字:单片机 C语言 程序设计 条形LED
引用地址:
单片机C语言程序设计:TIMER0与TIMER1控制条形LED
推荐阅读最新更新时间:2024-03-16 13:26
51单片机汇编模拟串口通信程序
汇编编写的模拟串口通信程序 T2作为波特率控制 UART_RXD 是硬中断0或1口,如果能进入中断,说明该线有一个起始位产生,进入中断后调 用下面的接收程序。退出硬中断之前还需要将硬中断标志重新复位。 UART_TXD 是任何其它IO即可。 UART_SEND: PUSH IE PUSH DPH PUSH DPL PUSH PSW PUSH 00H PUSH ACC CLR EA SETB UART_TXD ;START BIT MOV R0,A CLR TR2 ;TR2置1,计数器2启动,时间计数启动。 MOV A,RCAP2L;计数器2重新装载值 MOV TL2,
[单片机]
基于单片机和AD574的简易电子秤设计
本文根据当前电子秤的应用情况,分析采用单片机和AD574设计一款简易电子秤装置,在分析测量原理的基础上,选择了比较简单的51系列单片机作为主控制系统,根据测量要求设计了传感器电路、AD转换电路、超量程报警电路、显示电路、按键电路等,根据硬件电路,完成了相应的软件设计。 1、测量原理 电子秤一般由三部分组成,称重传感器、承重系统、传力复位系统。在这个基础上,分成了其他的硬件电路子单元,如单片机最小系统电路、传感器电路、AD转换电路、超量程报警电路、显示电路、按键电路、存储电路等。其测量原理是:将物体放置在承重系统的秤台上时,其重量参数会通过传感器,产生压力-电效应,转换为与其重量相对应的电信号,然后通过放大电路将电信号放大并经过
[单片机]
51单片机--巧记步进电机相关知识
上次说的LCD1602的编程挺复杂的,这次我说一个简单一点的:步进电机。 这里不说步进电机的 细分 实验,只说一下有关步进电机的基础概念以及步进电机的三种工作方式——单拍、双拍、单双拍,现在步进电机的编程一般都要用到专门的步进电机驱动芯片(如:L6219芯片),所以具体的编程下次再讲。先说一下相、线和极性。 一:线、相、极性 相 就是说明步进电机有几个线圈(也叫做绕组)。 线 就是说明步进电机有几个接线口。 极性 分为 单极性 和 双极性。如果步进电机的线圈是可以双向导电的,那么这个步进电机就是双极性的,相反,如果步进电机的线圈是只允许单向导电的,那么这个步进电机就是单极性的。 上面的三个只要知道其中两个,
[单片机]
单片机51多任务的操作系统原理
想了很久,要不要写这篇文章?最后觉得对操作系统感兴趣的人还是很多,写吧。我不一定能造出玉,但我可以抛出砖。 包括我在内的很多人都对51使用操作系统呈悲观态度,因为51的片上资源太少。但对于很多要求不高的系统来说,使用操作系统可以使代码变得更直观,易于维护,所以在51上仍有操作系统的生存机会。 流行的uCos,Tiny51等,其实都不适合在2051这样的片子上用,占资源较多,唯有自已动手,以不变应万变,才能让51也有操作系统可用。这篇贴子的目的,是教会大家如何现场写一个OS,而不是给大家提供一个OS版本。提供的所有代码,也都是示例代码,所以不要因为它没什么功能就说LAJI之类的话。如果把功能写全了,一来估计你也不
[单片机]
基于单片机的交流LED智能照明系统设计
LED光源具有省电,耗电量小,发光效率高、寿命长等优点。与传统的白炽灯、荧光灯相比,有效的节约了能耗。被认为是21世纪的绿色照明光源。目前的LED光源是低电压(VF=2~3.6 V),大电流(IF=200~1 500 mA)工作的半导体器件,必须提供合适的直流才能正常发光,由于我们日常使用的是220 V的高压交流电,所以必须使用降压的技术获得较低的电压,常用的是变压器或开关电源降压,然后将交流变成直流,再变成直流恒流源,才能促使LED光源发光。因此,直流驱动LED光源的系统方案必然是变压器+整流(或开关电源)+恒流源。这2种方案系统都会有15%~30%的电量损耗,如果用交流直接驱动LED光源发光,系统效率将很轻松地达到90%以
[单片机]
51单片机如何进行模块化编程
本文主要是关于51单片机的相关介绍,并着重对51单片机的原理及其模块化编程进行了详尽的阐述。 51单片机 51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是51系列的单片机一般不具备自编程能力。 功能 ·8位CPU·4kbytes程序存储器(ROM)
[单片机]
单片机初学者不好掌握的概念
一、总线:我们知道,一个电路总是由元器件通过电线连接而成的,在模拟电路中 ,连连线并不成为一个问题,因为各器件间一般是串行关系,各器件之间的连线并不很 多,但计算机电路却不一样,它是以微处理器为核心,各器件都要与微处理器相连,各 器件之间的工作必须相互协调?所以就需要的连线就很多了,如果仍如同模拟电路一样 ,在各微处理器和各器件间单独连线线,则线的数量将多得惊人,所以在微处理机中引 入了总线的概念,各个器件共同享用连线,所有器件的8根数据线全部接到8根公用的线 上,即相当于各个器件并联起来,但仅这样还不行,如果有两?器件同时送出数据,一 个为0,一个为1,那么,接收方接收到的究竟是什么呢?这种情况是是不允许的,所以 要通过控制
[单片机]
51单片机学习第二天
(1)数字电路中只有两种电平: 高电平和低电平 高电平:5V或者3.3,取决于单片机电源。 低电平:0V (2)RS232电平:计算机串口的电平 高电平:-12V 低电平:+12V 由上面的两个可知,当我们使用单片机跟电脑通信的时候,需要通过各种元器件将单片机的电平转换成计算机可识别的电平才能跟电脑进行通信。 二、进制 二进制 十六进制 三、二进制逻辑运算 四、8051的引脚封装 五、单片机工作的基本时序,一共四种 (1)振荡周期:也称时钟周期,是指为单片机提供时针脉冲信号的振荡源的周期。 (2)状态周期:每个状态周期为时针周期的2倍,是振荡周期经二分频后得到的。 (3)机器周期:一个机器周期包含6个状态周期
[单片机]