单片机与TLC2543接口实现ad转换,并且用数码管显示的仿真原理图如下(proteus仿真工程文件可到本帖附件下载)
TLC2543与单片机连接的电路图:
TLC2543是11通道12位串行A/D转换器.TLC2543中文资料详见:http://www.51hei.com/chip/4009.html
TLC2543单片机驱动源代码:
#include sbit SDO=P3^0; //定义端口 sbit SDI=P3^1; sbit CS=P3^2; sbit CLK=P3^3; sbit EOC=P3^4; sbit P2_0=P2^0; sbit P2_1=P2^1; sbit P2_2=P2^2; sbit P2_3=P2^3; unsigned char code xiao[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; //共阳极数码管0-9的段码 //********************************** //延时程序 //********************************** void delay(unsigned char n) { unsigned char i,j; for(i=0;i } //********************************** //向TLC2543写命令及读转换后的数据 //********************************** unsigned int read2543(unsigned char con_word) { unsigned int ad=0,i; CLK=0; //时钟首先置低 CS=0; //片选为0,芯片工作 for(i=0;i<12;i++) { if(SDO) //首先读TLC2543的一位数据 ad=ad|0x01; SDI=(bit)(con_word&0x80); //向TLC2543写一位数据 CLK=1; //时钟上升沿,TLC2543输出使能 delay(3); CLK=0; //时钟下降沿,TLC2543输入使能 delay(3); con_word<<=1; ad<<=1; } CS=1; ad>>=1; return(ad); } void main() { unsigned int ad; while(1) { ad=read2543(0x00); P0=xiao[ad/1000]; //千位数字的段码 P2_0=1; //显示千位 delay(3); P2_0=0; P0=xiao[(ad%1000)/100]; //百位数字的段码 P2_1=1; //显示百位 delay(3); P2_1=0; P0=xiao[(ad%100)/10]; //十位数字的段码 P2_2=1; //显示十位
上一篇:请工程化,定制化你的单片机代码
下一篇:从初学者迈向工程师-从LED和KEY入手提高单片机编程能力
推荐阅读最新更新时间:2024-11-06 23:17
设计资源 培训 开发板 精华推荐
- 逛村田在线云展厅,了解通信、移动、工业+环境、健康四大领域的应用干货!
- 【晒月亮抢楼有礼】中秋月圆,千里共赏!
- 报名直播赢【手环、摄像头、雨伞、手机支架】罗德与施瓦茨USB 3.2一致性测试
- 有奖直播:Keysight World Tech Day 2024 汽车分论坛|汽车自动驾驶与新能源
- 了解PI InnoSwitch-CE,答题赢好礼
- ADI•世健工业嘉年华——电子书下载 活动开始啦
- 【双节献礼】LM3S9B96开发套件等你来拿!!!
- TI|痛点解锁机:你的电源设计痛点,我们懂!解锁、评论赢好礼!
- 更好的你我,更好的EEWorld!2020年终庆典
- TI携您共创未来乘驾新体验——深入学习: 点评明星产品,为它打榜