#include<reg52.h>

#include<stdio.h>

#include<intrins.h>

#define uchar unsigned char

#define uint unsigned int

sbit dula=P2^6;

sbit wela=P2^7;

sbit adwr=P3^6;

sbit adrd=P3^7;

uchar flag,a;

uchar flag_uart,flag_time,flag_on,a,i,t0_num,ad_val;

float ad_vo;

uchar code table[]=

{

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71

};

void delayms(uint xms)

{

uint i,j;

for(i=xms;i>0;i--)

for(j=110;j>0;j--);

}

void init()

{

TMOD=0x21;

// SCON=0x50;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

TH1=0xfd;

TL1=0xfd;

TR1=1;

ET0=1;

SM0=0;

SM1=1;

REN=1;

EA=1;

ES=1;

}





void display(uchar value)

{

uchar bai,shi,ge;

bai=value/100;

shi=value%100/10;

ge=value%10;

dula=1;

P0=table[bai];

dula=0;

P0=0xff;

wela=1;

P0=0x7e;

wela=0;

delayms(5);

dula=1;

P0=table[shi];

dula=0;

P0=0xff;

wela=1;

P0=0x7d;

wela=0;

delayms(5);

dula=1;

P0=table[ge];

dula=0;

P0=0xff;

wela=1;

P0=0x7b;

wela=0;

delayms(5);

}





uchar get_ad()

{

uchar adval;

adwr=1;

_nop_();

adwr=0;

_nop_();

adwr=1;

_nop_();

adrd=1;

_nop_();

adrd=0;

_nop_();

adval=P1;

adrd=1;

return adval;

}





void main()

{

init();

wela=1;

P0=0x7f;

wela=0;

while(1)

{

if(flag_uart==1)

{

flag_uart=0;

ES=0;

TI=1;

switch(flag_on)

{

case 0:puts("Turn on ad!\n");

TR0=1;

break;

case 1:printf("Turn off ad!\n");

TR0=0;

break;

case 2:puts("Error!\n");

break;

}

while(!TI)

TI=0;

ES=1;

}

if(flag_time==1)

{

flag_time=0;

ad_val=get_ad();

ad_vo=(float)ad_val*5.0/256.0;

ES=0;

TI=1;

printf("The voltage is %fV\n",ad_vo);

while(!TI);

TI=0;

ES=1;

}

display(ad_val);

}

}





void timer0() interrupt 1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

t0_num++;

if(t0_num==20)

{

t0_num=0;

flag_time=1;

}

}





void ser() interrupt 4

{

RI=0;       //接受中断标志位

a=SBUF;

flag_uart=1;

if(a==1)

flag_on=0;

else if(a==2)

flag_on=1;

else 

flag_on=2;

}

串口通讯 ADC0804 数码管的更多相关文章

  1. C#串口通讯实例

    本文参考<C#网络通信程序设计>(张晓明  编著) 程序界面如下图: 参数设置界面代码如下: using System; using System.Collections.Generic; ...

  2. delphi之动态库调用和串口通讯

    串口通讯: Spcomm 控件属性: CommName  :表示COM1,COM2等串口的名字: BaudRate:设定波特率9600,4800等 StartComm StopComm 函数Write ...

  3. 用SPCOMM 在 Delphi中实现串口通讯 转

      用Delphi 实现串口通讯,常用的几种方法为:使用控件如MSCOMM和SPCOMM,使用API函数或者在Delphi 中调用其它串口通讯程序.利用API编写串口通信程序较为复杂,需要掌握大量通信 ...

  4. 西门子plc串口通讯方式

    西门子plc串口通讯的三种方式 时间:2015-10-25 14:31:55编辑:电工栏目:西门子plc 导读:西门子plc串口通讯的三种方式,分为RS485 串口通信.PPI 通信.MPI 通信,自 ...

  5. 教程-Delphi MSComm 实时串口通讯

    Delphi  MSComm 实时串口通讯 MSComm控件具有丰富的与串口通信密切相关的属性,提供了对串口进行的多种操作,进而使串行通信变得十分简便.MSComm的控件属性较多,常用的属性如下:1) ...

  6. 浅析PC机串口通讯流控制

    转自浅析PC机串口通讯流控制 我们在串行通讯处理中,常常看到RTS/CTS和XON/XOFF这两个选项,这就是两个流控制的选项,目前流控制主要应用于调制解调器的数据通讯中,但对普通RS232编程,了解 ...

  7. STM32F10x 学习笔记6(USART实现串口通讯 2)

    这次讲讲利用串口收发中断来进行串口通讯.STM32 上为每个串口分配了一个中断.也就是说无论是发送完成还是收到数据或是数据溢出都产生同一个中断.程序需在中断处理函数中读取状态寄存器(USART_SR) ...

  8. STM32F10x 学习笔记5(USART实现串口通讯 1)

    STM32F10x 系列单片机中都包含了USART 模块,所谓USART,就是通用同步异步收发器.通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间 ...

  9. Java利用Rxtx进行串口通讯

    最近在做传感器数据采集的工作,底层是基于Zigbee的无线传感网络,所有数据采集到Zigbee协调器上然后通知上位机数据采集完成,上位机通过USB转串口去读取数据就可以了.那么问题来了,如何进行串口通 ...

随机推荐

  1. oc5--方法

    // main.m // 第一个OC类-方法2 #import <Foundation/Foundation.h> // 1.编写类的声明 @interface Iphone : NSOb ...

  2. 一个简单的演示用的Linux字符设备驱动程序

    实现如下的功能:--字符设备驱动程序的结构及驱动程序需要实现的系统调用--可以使用cat命令或者自编的readtest命令读出"设备"里的内容--以8139网卡为例,演示了I/O端 ...

  3. JAVA课设——中药古籍《太平圣惠方》数据处理与分析系统

    一.配置JAVA环境 本次课设是在Windows 10(64bit)平台上实现的,所以首先得配置下JAVA环境. 步骤一:先下载一个JDK(1.7)安装包,安装好JDK: 步骤二:JDK环境配置(由于 ...

  4. Appium 环境搭建 - macOS

    本文没有安装 Appium Desktop,Appium Server 直接在命令行中进行即可. Homebrew,macOS 包管理器: ruby -e "$(curl -fsSL htt ...

  5. hdu 2768 Cat vs. Dog 最大独立集 巧妙的建图

    题目分析: 一个人要不是爱狗讨厌猫的人,要不就是爱猫讨厌狗的人.一个人喜欢的动物如果离开,那么他也将离开.问最多留下多少人. 思路: 爱猫和爱狗的人是两个独立的集合.若两个人喜欢和讨厌的动物是一样的, ...

  6. go开发和运行环境的配置

    1.运行环境的下载.安装.配置: 下载:http://www.golangtc.com/download  官网下载经常被墙屏蔽,所以就从golang中国下载; 安装及其配置:http://jingy ...

  7. junit使用第一弹

    知识点——断言 断言是编写测试用例的核心实现方式,即期望值是多少,测试的结果是多少,以此来判断测试是否通过. 1. 断言核心方法 assertArrayEquals(expecteds, actual ...

  8. equal height

    https://css-tricks.com/the-perfect-fluid-width-layout/ http://nicolasgallagher.com/multiple-backgrou ...

  9. 命令行 RSA, Base64, Hash

    序 # -n 可以去掉换行符 echo -n '777777' RSA算法 加密 # 利用管道命令传递字符串加密 echo -n '777777' | openssl rsautl -encrypt ...

  10. 使用Storm实现实时大数据分析!

    随着数据体积的越来越大,实时处理成为了许多机构需要面对的首要挑战.Shruthi Kumar和Siddharth Patankar在Dr.Dobb's上结合了汽车超速监视,为我们演示了使用Storm进 ...