找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 520|回复: 0
收起左侧

51单片机TLC549 AD转换程序仿真与源程序分享 数码管显示

[复制链接]
ID:467203 发表于 2025-9-6 02:35 | 显示全部楼层 |阅读模式
TLC549仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
51hei.gif

TLC549单片机源程序如下:
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. uchar a1,a2,a3,tmp,BB;
  6. sbit clock=P3^4;//时钟线
  7. sbit dout=P3^5;//数据输出端
  8. sbit cs=P3^3;//片选(低电平有效)
  9. sbit aa=P1^1;//数码管位选;
  10. sbit bb=P1^0;//数码管位选;
  11. sbit cc=P1^2;//数码管位选;
  12. uchar code tab[]=//显示0~9;
  13. {
  14. 0x3f,0x06,0x5b,
  15. 0x4f,0x66,0x6d,
  16. 0x7d,0x07,0x7f,
  17. 0x6f
  18. /*0xc0,0xf9,0xa4,
  19. 0xb0,0x99,0x92,
  20. 0x82,0xf8,0x80,
  21. 0x90 */
  22. };
  23. void delay(uint xms)        //延时函数
  24. {   
  25. uint j,i;
  26. for(j=xms;j>0;j--)
  27. for(i=115;i>0;i--)
  28. ;
  29. }
  30. uchar tlc549_adc() //ADC数据采集
  31.   {
  32.             uchar i,j,tmp1;
  33.           cs=1;          //置高,片选无效
  34.          clock=0; // 外部时钟信号拉低
  35.          cs=0;         //置低,片选有效
  36.          _nop_(); //延时2微秒
  37.          _nop_();
  38. for(i=0;i<8;i++)//串行数据移位输入
  39.     {
  40.         tmp1<<=1;
  41.         tmp1|=dout;
  42.         clock=1;  //时钟信号
  43.         _nop_();
  44.         clock=0;  //时钟信号
  45.         }
  46.         cs=1;
  47.         for(j=17;j!=0;j--)//延时大约17微秒
  48.         _nop_();
  49.         return tmp1;//
  50.   }

  51. void shuju()//数据转换
  52. {
  53.         uint dat,ads;
  54.         dat=tlc549_adc();
  55.         ads=5.0/255*dat*1000;//放大一千倍
  56.         a1=ads/1000;        //百位
  57.         a2=ads/100%10;        //十位
  58.         a3=ads/10%10;  //个位
  59. }
  60. void xianshi() //输出显示(动态扫描)
  61. {
  62.         P1=0X00;
  63.         shuju();
  64.         aa=0;
  65.         bb=1;
  66.         cc=0;
  67.         P2=tab[a1]+0x80;//a1+0x80(0x80为小数点显示)
  68.         delay(1);
  69.         bb=0;
  70.         aa=1;
  71.         cc=0;
  72.         P2=tab[a2];
  73.         delay(1);
  74.         bb=0;
  75.         aa=0;
  76.         cc=1;
  77.         P2=tab[a3];
  78.         delay(1);
  79. }

  80. void main()
  81. {
  82.    
  83.    while(1)
  84.     {
  85.          tlc549_adc();
  86.           xianshi();
  87.          }
  88. }
复制代码

仿真程序下载: TLC549.7z (456.55 KB, 下载次数: 0)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表