资源简介
通过51单片机搭建模拟电压转为数字电压的电路,用ADTLC549芯片实现模数转换,并且通过LED显示器显示出来。编译通过并且仿真运行可以达到想要的效果,实际搭建电路也可以实现但有轻微的闪烁。
代码片段和文件信息
#include
#include
#define uchar unsigned char
uchar voltage=0;
sbit CLK = P1^0;
sbit CS = P1^1;
sbit DATAOUT = P1^2;
sbit S1 =P2^0;
sbit S2 =P2^1;
sbit S3 =P2^2;
void delay(int);
void collect_voltage();
unsigned char code LEDMAP[] =
{
0x3f 0x06 0x5b 0x4f 0x66
0x6d 0x7d 0x07 0x7f 0x6f
};
void main(void)
{
uchar abcd;
//P2=0x0f;
S1=S2=S3=0;
P0=0x00;
for(d=0;d<20;d++)
delay(1000);
CS=1;
_nop_();
while(1)
{
collect_voltage();
//Delay(3);
P2=~0x04;
//S1=1;S2=0;S3=0;
a=voltage/51;
P0=LEDMAP[a]+0x80;
delay(100);
P2=~0x02;
//S1=0;S2=1;S3=0;
b=voltage%51/5;
P0=LEDMAP[b];
delay(100);
P2=~0x01;
//S1=0;S2=0;S3=1;
c=voltage%51%5*2;;
P0=LEDMAP[c];
delay(100);//这里要有足够的延时,否则采样可能还没结束,造成闪烁
//delay(10000);
}
}
void delay(int n)
{
int i;
for(i = 0; i < n; i++)
_nop_();
}
void collect_voltage()
{
uchar count temp;
uchar i;
temp = 0;
CS = 1;
CLK = 0;
CS = 0; //CS为低表示选中TLC549
_nop_();
//delay(10);
for(count = 0; count < 8; count++)
{
CLK = 1;
temp = (temp<<1) | DATAOUT; //CLK的高低电平之间每次读取一位,上次的那一位移到高位再加上这次的一位(DATAOUT)
CLK = 0;
}
CS = 1;
voltage = temp;//8次后采集到一个完整的数据
delay(20);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4626 2012-07-23 23:30 LED数码管5V数字电压表\1
文件 1369 2012-07-23 23:30 LED数码管5V数字电压表\1.c
文件 1024 2012-07-23 23:30 LED数码管5V数字电压表\1.hex
文件 35 2012-07-23 23:30 LED数码管5V数字电压表\1.lnp
文件 4061 2012-07-23 23:30 LED数码管5V数字电压表\1.LST
文件 7363 2012-07-23 23:30 LED数码管5V数字电压表\1.M51
文件 4389 2012-07-23 23:30 LED数码管5V数字电压表\1.OBJ
文件 1073 2012-07-24 01:05 LED数码管5V数字电压表\1.Opt
文件 810 2012-07-24 01:05 LED数码管5V数字电压表\1.plg
文件 2154 2012-07-08 19:26 LED数码管5V数字电压表\1.Uv2
文件 1071 2012-07-23 18:15 LED数码管5V数字电压表\1_Opt.Bak
文件 2154 2012-07-08 10:19 LED数码管5V数字电压表\1_Uv2.Bak
文件 188709 2012-07-06 09:28 LED数码管5V数字电压表\Backup Of new.DBK
文件 191519 2012-07-08 09:39 LED数码管5V数字电压表\Last Loaded new.DBK
文件 187499 2012-07-23 15:59 LED数码管5V数字电压表\Last Loaded new2.DBK
文件 964 2012-07-23 15:56 LED数码管5V数字电压表\new.PWI
文件 196062 2012-07-06 22:41 LED数码管5V数字电压表\new1.DSN
文件 187483 2012-07-23 16:00 LED数码管5V数字电压表\new2.DSN
文件 938 2012-07-23 16:00 LED数码管5V数字电压表\new2.PWI
文件 6376 2005-03-22 15:22 LED数码管5V数字电压表\STARTUP.A51
文件 14048 2012-07-23 23:30 LED数码管5V数字电压表\STARTUP.LST
文件 758 2012-07-23 23:30 LED数码管5V数字电压表\STARTUP.OBJ
目录 0 2012-10-11 20:56 LED数码管5V数字电压表
----------- --------- ---------- ----- ----
1004485 23
- 上一篇:jdk8安装包
- 下一篇:南自以太网103规约及上位机代码.zip
相关资源
- 基于51单片机的计算器Proteus仿真.rar
- 51+bmp180+lcd1602+proteus.zip
- 基于AT89C51单片机的温度控制系统
- tdc-gp2的测试程序
- 51单片机上实现对短信猫控制的程序
- 51单片机读电池电量
- 51单片机最小系统Protel99SE原文件
- 51单片机汇编语言音乐程序
- 51单片机迷宫小车
- 微机原理课程设计--数据采集控制与数
- 基于51单片机的记分器
- 单片机温度测量,与protues仿真
- 基于51单片机的比赛用记分器
- 用DS1302与LCD12864设计的可调电子钟及仿
- 51单片机nrf24L01遥控小车
- 51单片机的数字温度,使用DS18B20,数
- 51单片机的步进电机控制,lcd1602显示
- stc 51单片机实现的交通灯包括keil程序
- 51单片机光敏电阻寻光程序
- 基于51单片机的遥控小车设计小车和遥
- 基于51单片机的DDS函数信号发生器的设
- 51单片机定时器初值计算器
- 单片机光敏电阻源码
- 基于51单片机的自感应风扇系统prote
- 电子万年历毕业设计基于AT89C51单片机
- 51单片机封装库
- C51单片机密码锁4×4矩阵键盘+LCD1602液
- 基于51单片机的万年历程序
- 基于51单片机的lcd篮球计分器程序
- 51单片机 等精度测频率 LCD显示 C程序
评论
共有 条评论