找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2079|回复: 0
打印 上一主题 下一主题
收起左侧

采用TLC2543设计的弱交流信号测试仪仿真设计 含单片机程序

[复制链接]
跳转到指定楼层
楼主
并伴有蜂鸣器报警功能,测试范围为0~200mv,希望和大家交流学习!

仿真原理图如下:

单片机源程序如下:
  1. #include <reg51.h>
  2. #include "LCD1602.h"
  3. #include "TLC2543.h"
  4. #include "delay.h"
  5. #include <intrins.h>
  6. #include <stdio.h>
  7. unsigned int zyx;
  8. unsigned int ADresult[1];
  9. unsigned int Freq=0;
  10. void Timer_Init();//  定时器声明
  11. unsigned char cnt_t1=0;
  12. sbit fengming=P2^0;
  13. main(void)
  14. {
  15.         unsigned char Vrms[4],Vmax[4],Freq_temp[5];        
  16.         
  17.         LCD1602_Init();
  18.         Timer_Init();
  19.         LCD1602_SendString(1,0,"V=");
  20.         LCD1602_SendString(1,8,"Vm=");
  21.         LCD1602_SendString(2,0,"Freq=");
  22.         LCD1602_SendString(1,5,"mV");
  23.         LCD1602_SendString(1,14,"mV");
  24.         LCD1602_SendString(2,9,"Hz");
  25.         
  26.         TR1=1;//开启定时器T1
  27.         TR0=1;//开启计数器
  28.         fengming=0;
  29.         while(1)
  30.         {        
  31.                
  32.                 zyx=ADresult[0]*1.221*1.414;
  33.                 ADresult[0]=getdata(0);
  34.                 if( zyx<=100 || zyx>=200)
  35.                 {
  36.                         fengming=1;                }
  37.                
  38.                 else
  39.                 {
  40.                         fengming=0;
  41.                 }

  42.                 sprintf(Vrms,"%f",ADresult[0]*1.221);
  43.                 Vrms[3]='\0';
  44.                 LCD1602_SendString(1,2,Vrms);
  45.                
  46.                 sprintf(Vmax,"%f",ADresult[0]*1.221*1.414);
  47.                 Vmax[3]='\0';
  48.                 LCD1602_SendString(1,11,Vmax);

  49.                 sprintf(Freq_temp,"%d",Freq);
  50.                 Freq_temp[4]='\0';
  51.                 LCD1602_SendString(2,5,Freq_temp);
  52.                 TR1=1;//开启定时器T1
  53.                 TR0=1;//开启计数器T0
  54.         }
  55. }

  56. /*------定时器的初始化--------*/
  57. void Timer_Init()
  58. {
  59.         TMOD|=0x15;//T0为计数器方式1,T1为定时器方式1
  60.     TH1=(65536-50000)/256;  //重装
  61.         TL1=(65536-50000)%256;
  62.         TH0=0;  
  63.         TL0=0;
  64.         ET0=1;//开T0,T1中断
  65.         ET1=1;
  66.         EA=1;   //全局中断
  67. }
  68. /*------定时器1中断服务程序-------*/
  69. void Time1_ser() interrupt 3
  70. {
  71.         unsigned int dat1,dat2;
  72.     TH1=(65536-50000)/256;  //重装 50ms
  73.         TL1=(65536-50000)%256;
  74.     cnt_t1++;
  75.         if(cnt_t1>=20)
  76.         {
  77.                 TR1=0;   //关定时
  78.                 TR0=0;   //关计数
  79.                 cnt_t1=0;
  80. ……………………

  81. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
采用TLC2543设计的弱交流信号测试仪.zip (97.83 KB, 下载次数: 34)


评分

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

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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