TLC2543驱动程序(c51)

发布者:caoda143最新更新时间:2016-11-24 来源: eefocus关键字:TLC2543  驱动程序  c51 手机看文章 扫描二维码
随时随地手机看文章

/**************************************
             TLC2543驱动程序
*************************************/

#include
#include

/**************************************
        2543控制引脚宏定义
*************************************/
#define CLOCK p17 /*2543时钟*/
#define D_IN p16 /*2543输入*/
#define D_OUT p14 /*2543输出*/
#define _CS p15 /*2543片选*/

#define uint unsigned int
#define uchar unsigned char

/**************************************
  名称:delay
  功能:延时模块
  输入参数:n要延时的周期数
  输出参数:无
*************************************/
void delay(uchar n)
{
uchar i;
for(i=0;i{
   _nop_();
}
}

/**************************************
  名称:read2543
  功能:TLC2543驱动模块
  输入参数:port通道号
  输出参数:ad转换值
*************************************/
uint read2543(uchar port)
{
uint ad=0,i;
CLOCK=0;
_CS=0;
port<<=4;
for(i=0;i<12;i++)
{
  if(D_OUT) ad|=0x01;
  D_IN=(bit)(port&0x80);
  CLOCK=1;
  delay(3);
  CLOCK=0;
  delay(3);
  port<<=1;
  ad<<=1;
}
_CS=1;
ad>>=1;
return(ad);
}

/**************************************
  名称:main
  功能:主函数
  输入参数:无
  输出参数:无
*************************************/
void main()
{uint ad;
while(1)
{
  ad=read2543(0);
}

关键字:TLC2543  驱动程序  c51 引用地址:TLC2543驱动程序(c51)

上一篇:单片机控制洗衣机C程序设计
下一篇:用keil编写的 C51错误 *** WARNING L1

推荐阅读最新更新时间:2024-03-16 15:21

C51编程9-数码管(显示)
根据项目需求可以用I/O外部上拉,用来驱动数码管;也可以74HC138(38译码器)+74HC245(8路信号收发器)驱动数码管。本文会以后者为数码管驱动电路,在代码上实现数码管的显示。 驱动电路: 电路讲解: 1)数码管元件采用共阴数码管,如果需要某位数码管被点亮,位选引脚需要被拉成电平; 2)八个数码管有8个位选引脚,8个段选引脚。为了将节省I/O口,使用74HC138将3位(CBA)选择,转换为8位二值代码,例如CBA值为000时,Y0输出低电平,其余为高电平,由于Y0连接到数码1位选引脚(图中的LED1网络标号),数码管1被选中。 3)74HC138控制的是位选引脚,而74HC245控制的是段选引脚
[单片机]
<font color='red'>C51</font>编程9-数码管(显示)
S3C2440 字符设备驱动程序之LED驱动程序_操作LED(四)
第12课第2.3节 字符设备驱动程序之LED驱动程序_操作LED(四) 写一个点LED的驱动: 一、框架 二、完善、硬件的操作: a.看原理图、确定引脚; b.看2440手册; c.写代码: 单片机:操作物理地址 驱动:用ioremap函数来映射虚拟地址 ★★★ void *ioremap(unsigned long phys_addr, unsigned long size) phys_addr:要映射的物理地址 size:要映射的长度,单位是字节 ioremap是以页为单位进行映射,你的长度写为4,16,32等等,都会映射到4096字节的空间。 ★★★ 下面的代码中:
[单片机]
S3C2440 字符设备<font color='red'>驱动程序</font>之LED<font color='red'>驱动程序</font>_操作LED(四)
C51单片机的定时器计数器怎么用?
方法有很多的,给你一个,你可以调试一下,你可以通过不同的晶振去计算定时器初值,如果你懂定时器这部分很好调通的 #include sbit p1_0=P1^0; int i; //全局变量 void timing(void) //晶振为3.6864M { TMOD|=0x01; //定时器T0,工作方式1 TH0=0xC3; TL0=0xC7; //这两个寄存器存的是计数器的计数开始的值,这两个值累加至溢出后正好是50ms ET0=1; //使T0中断可以溢出 EA=1; //开启总中断 TF0=0; //溢出位清零 TR0=1; //开启T0 } /********定时中断
[单片机]
msp430矩阵式按钮驱动程序
写这个程序的时候,完全没有参考,全部是建立在汇编语言的基础上,一步步的搬移到c语言上的。但是测试后,感觉效果还是十分理想,所以拿出来与众位分享了,希望对一些朋友有所帮助~ #include msp430x14x.h unsigned char LineScan ={0xef,0xdf,0xbf,0x7f}; //列值列举 void ADD() { P4OUT+=1; } void SUB() { P4OUT-=1; } unsigned int key_check(void) //检测是否有按键按下 { unsigned char temp; P1DIR=0xf0;
[单片机]
时钟芯片ds12c887的驱动程序
新型实时时钟芯片DS12887原理与应用 1. DS12887的功能特点 DS12887是美国达拉斯半导体公司最新推出的时钟芯片,采用CMOS技术制成,把时钟芯片所需的晶振和外部锂电池相关电路集于芯片内部,同时它与目前 IBM AT计算机常用的时钟芯片MC146818B和DS1287管脚兼容,可直接替换。采用DS12887芯片设计的时钟电路勿需任何外围电路并具有良好的微机接口。DS12887芯片具有微轼耗、外围接口简单、精度高、工作稳定可靠等优点,可广泛用于各种需要较高精度的实时时钟场合中。其主要功能如下: (1)内含一个锂电池,断电情况运行十年以上不丢失数据。 (2)计秒、分、时、天、星期、日、月、年,并有闰年补偿
[单片机]
C51程序设计中断及寄存器使用方法
如果在中断服务函数ISR中使用寄存器,那么必须处理好using的使用问题: 1、中断服务函数使用using指定与主函数不同的寄存器组(主函数一般使用Register bank 0)。 2、中断优先级相同的ISR可用using指定相同的寄存器组,但优先级不同的ISR必须使用不同的寄存器组,在ISR中被调用的函数也要使用using指定与中断函数相同的寄存器组。用reentranr指明可重入函数。 3、如果不用using指定,在ISR的入口,C51默认选择寄存器组0,这相当于中断服务程序的入口首先执行指令: MOV PSW #0 这点保证了,没使用using指定的高优先级中断。可以中断使用不同的寄存器组的低优先级中断。 4、使用usin
[单片机]
怎样在C51中格式化字符串?
一定要包含这句:#include STDIO.H 定义这样的设备参数结构: typedef struct { uchar Soft_Edition ; //软件版本号 uchar Prequency_Nnm; //频组数 uchar channel; //信道数0-2 uint Time; //网卡复位时间 uchar state; //系统工作状态 uchar error_num; //故障远端编号 ALARM alarm; //系统告警 }PARAME
[单片机]
利用定时器1延时1秒的程序(c51语言)
//利用定时器1延时1秒的程序2007-07-16 ;利用定时器精确延时1秒 // 循环点亮P1口接的八只发光二极管。 //与另一个汇编语言程序相对应,完成相同的功能 //作者:徐学军 #include reg5
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved