硬件设计1

基于51单片机+PCF8591 ADC的仿真电路图:
A. 基于51单片机和PCF8591的电压表,具有仿真图/源程序;
B. 由数码管作为显示器;
C.测试电压范围为0~5V,精度约为0.02

程序设计1

#include "config.h"
#include "IIC.h"
#include "display.h"
#include "PCF8591.h"// 初始化定时器零
void Init_Timer0() {TMOD = 0x01;TH0 = 0xd8;TL0 = 0xf0;       // 10msTR0 = 1;ET0 = 1;EA = 1;
}// 定时器0中断,每10ms刷新一次数码管
void Timer0() interrupt 1 using 1 {Data_out();                  TH0 = 0xd8;TL0 = 0xf0;
}void main() {uint k, temp;Init_PCF();          // 初始化PCF8591Init_Timer0();     // 初始化定时器0while(1) {temp = Read_PCF();     // 读取AD转换后的数字量PCF_Output(temp);     // DA转换,模拟量输出//将数字量转换为十进制,*100 + 0.5将小数转换为整数,便于显示和存储k = (float)temp * 5 / 256 * 100 + 0.5;  // 将得到的结果存入数组Data_Show[0] = k / 100;               // 百位Data_Show[1] = k % 100 / 10;      // 十位Data_Show[2] = k % 100 % 10;      // 个位}
}

硬件设计2

基于51单片机+TLC2543 ADC的仿真电路图:
A. 基于51单片机和TLC2543的电压表,具有仿真图/源程序;
B. 由数码管作为显示器;
C.测试电压范围为0~5V,精度约为0.01

程序设计2:

#include "led.h"
#include "TLC2543.h"
const uchar code displayMode=0x0f;
uchar displayBuff[4]={0x7e,0x7e,0x7e,0x7e};   //数码管显示缓冲区,低两位为时间,最高位为抢答号
const uchar code digitalNumber[10]={0x7e,0x06,0x6d,0x79,0x33,0x5b,0x5f,0x70,0x7f,0x7b};
void main()
{    uint voltageReadTemp;uint voltageRead;uchar temp;uchar i,j;init_led();while(1){ledSweepDisplay(displayBuff,displayMode,4);voltageRead=read_TLC2543(0x05);voltageRead=voltageRead*0x05;for(i=4;i>0;i--){temp=(uchar)(voltageRead/0x0fff);if(i==4)displayBuff[i-1]=digitalNumber[temp]|0x80;elsedisplayBuff[i-1]=digitalNumber[temp]; voltageRead=voltageRead%0x0fff;voltageReadTemp=voltageRead<<1;voltageRead=0x0000;for(j=0;j<5;j++)voltageRead+=voltageReadTemp;//voltageRead=voltageRead*10}}}

硬件设计3

基于51单片机+TL548 ADC的仿真电路图:
A. 该资源为基于51单片机和TLC548的电压表,具有仿真图/源程序;
B. 使用汇编语言,由数码管作为显示器;
C.测试电压范围为0~5V,精度约为0.02

汇编程序设计:

BCD_100   EQU 30H
BCD_10    EQU 31H
BCD_1     EQU 32HT050MS_NUM EQU 33H
DLYMS_NUM EQU 34HTLC_DATA EQU 35H
ND_ADC BIT 00HDIS_ON BIT P3.4
TLC_CLR BIT P1.0
TLC_CS  BIT P1.1
TLC_DAT  BIT P1.2ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0_ISRORG 0100H
MAIN:
MOV SP,#6FH
MOV BCD_100,#0
MOV BCD_10,#0
MOV BCD_1,#0CLR DIS_ON
MOV T050MS_NUM,#5CLR ND_ADCMOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
CLR TF0
SETB ET0
SETB EA
SETB TR0MAIN_LOOP:
LCALL LED_DIS_3BIT
JNB ND_ADC,MAIN_LOOP
LCALL TLC_ADC
CLR ND_ADC
LJMP MAIN_LOOPLED_DIS_3BIT:
MOV DPTR,#LED_TAB
CLR DIS_ON
MOV A,BCD_100
MOVC A,@A+DPTR
ANL A,#07FH
MOV P0,A
ANL P3,#1FH
ORL P3,#5FH
SETB DIS_ONMOV DLYMS_NUM,#2
LCALL DELAYMS
CLR DIS_ON
MOV A,BCD_10
MOVC A,@A+DPTR
MOV P0,A
ANL P3,#1FH
ORL P3,#3FH
SETB DIS_ON
MOV DLYMS_NUM,#2
LCALL DELAYMS
CLR DIS_ON
MOV A,BCD_1
MOVC A,@A+DPTR
MOV P0,A
ANL P3,#1FH
ORL P3,#1FH
SETB DIS_ON
MOV DLYMS_NUM,#2
LCALL DELAYMS
RET

附:http://www.jh-tec.cn/archives/7303

基于51单片机自动数字电压表PCF8591 TLC2543 TL548 proteus仿真汇编程序设计相关推荐

  1. 基于51单片机的8路抢答器proteus仿真 汇编语言程序设计

    硬件设计 上一篇讲了基于C语言的抢答器,下边讲一下基于汇编语言的抢答器. 仿真图: 程序设计 OK EQU 20H ;抢答开始标志位RING EQU 22H ;响铃标志位 DATA0 EQU 36H ...

  2. 基于51单片机的16x32点阵滚动广告牌 proteus仿真原理图程序设计

    硬件设计 仿真图: 支持左右轮动 程序设计 #include <REG51.H> #define FOSC 12 //定义晶振频率 #define INIT_TH0 0x3C //定时器T ...

  3. 【036】基于51单片机的电子时钟与秒表Proteus仿真设计

    一.压缩包资料内容 (1).基于51单片机的电子时钟与秒表proteus仿真设计一份: (2).基于51单片机的电子时钟与秒表proteus仿真设计keli源代码一份: (3).基于51单片机的电子时 ...

  4. 基于51单片机的PWM控制直流电机设计( proteus仿真+程序+报告+讲解视频)

    基于51单片机的PWM控制直流电机设计( proteus仿真+程序+报告+讲解视频) 仿真图proteus 7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0031 ...

  5. 基于51单片机的室内温度可燃气体检测报警系统Proteus仿真(源码+仿真+全套资料)

    资料编号:133 讲解视频: 133-基于51单片机的室内温度可燃气体检测报警系统Proteus仿真(源码+仿真+全套资料) 功能介绍: 采用51单片机作为主控,LCD1602显示当前温度和可燃气体浓 ...

  6. 基于51单片机有害气体浓度检测超限报警Proteus仿真

    资料编号:157  下面是相关功能视频演示: 157-基于51单片机有害气体浓度检测超限报警Proteus仿真(源码+仿真+全套资料) 功能介绍: 采用51单片机作为CPU,ADC0832作为AD转换 ...

  7. 基于51单片机的全自动智能洗衣机控制系统Proteus仿真(仿真+源码+全套资料)

     资料编号:108 设计功能: 1.对水温实时显示 2.显示滚筒转速 3.显示运行倒计时 4.能通过按钮分别设置洗涤时间和脱水时间 5.运行过程为:加热--洗涤--脱水 具体功能请看下方演示视频 10 ...

  8. 基于51单片机酒精浓度检测仪超限报警Proteus仿真

    资料编号:162    下面是功能演示视频: 162-基于51单片机酒精浓度检测超限报警Proteus仿真(源码+仿真+全套资料) 功能介绍: 采用51单片机作为CPU,ADC0832作为AD转换模块 ...

  9. 基于51单片机甲醛气体浓度检测超限报警系统Proteus仿真

    资料编号:155   下面是相关功能视频演示: 155-基于51单片机甲醛气体浓度检测超限报警系统Proteus仿真(源码+仿真+全套资料) 功能介绍: 采用51单片机作为CPU,ADC0832作为A ...

最新文章

  1. linux nohup 英文全称 no hang up(
  2. b丅151组成的充电器电路_BT151S-500R118
  3. C/C++编译、测试须知、须会,CMake、Boost等
  4. Android Studio没有看到设备
  5. 超强1000个jquery极品插件!
  6. java中的@Override标签
  7. opencv图片序列转换成视频
  8. 我的年终总结:做了9年SOC的一点点实践体会
  9. 财务分析报表APP的功能优势
  10. FME入门视频教程:第三节 FME界面及常用设置
  11. 联想启天电脑教室黑屏硬盘保护系统EDU8.0.2.19修复手记
  12. 解决output directory already exists
  13. 不可多得的MBA相关书籍推荐
  14. 计算机演示题打不开,win10系统计算机文件打不开的修复教程
  15. 计量经济学笔记——自相关的检验和处理(转载)
  16. 算法竞赛进阶指南---0x05(排序)七夕祭
  17. 生育登记服务制度啥意思?生育服务证和准生证一回事吗?生育那些事
  18. V型测试,W型测试和H型测试
  19. 关于TCP快速重传的细节-重传优先级与重传触发条件
  20. 整理了21场kaggle比赛TOP方案

热门文章

  1. python package for Regime switching model 马尔可夫区制转换模型代码
  2. RGB值转换HSV的值
  3. SpringBoot整合阿里云视频点播
  4. React中使用SWR处理数据请求
  5. TX2 用文件IO的方式操作GPIO
  6. 2014 360校园招聘技术类笔试题
  7. 关于vs2022设置默认浏览器
  8. 下面不是计算机网络面临的主要威胁是,网络安全复习题2
  9. 数据库的增删改查加遍历
  10. 移动文件后图标变白解决方法