#include<reg51.h>
#include<intrins.h>
sbit ST=P2^4;
sbit OE=P2^5;
sbit EOC=P2^6;
sbit CLK=P2^7;
sbit P34=P3^4;
sbit P35=P3^5;
sbit P36=P3^6;
sbit P1_0=P1^0;
sbit P1_1=P1^1;
sbit P1_2=P1^2;
sbit P1_3=P1^3;
sbit P0_7=P0^7;
sbit P2_0=P2^0;
sbit P2_1=P2^1; //定义数码管位码端口
sbit P2_2=P2^2;
sbit P2_3=P2^3;
unsigned char code table1[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00};//带小数点的0~5六个
unsigned char code table2[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳极0~9十个段码/段码
unsigned char volt_data;
unsigned char i;
unsigned char j;
unsigned char a=1;
void KeyScan();
void Dispaly();
void delay();
void key ();
void delay(unsigned char z)
{
unsigned char x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void timer0() interrupt 0
{
j++;
if(j==8)
j=0;
}
void timer1() interrupt 2
{
if(a==1)
{a=0;}
else
{a=1;}
}
void Dispaly(unsigned char volt_data) //显示程序
{
if(a==0)
{ST=0;
P0=table1[0];
P2_0=1;
P2_1=1;
P2_2=1;
P2_3=1;
}
else
{
P0=table1[j+1];
P2_0=1;
delay(10);
P2_0=0;
P0=table1[volt_data*196/10000];
//AD转换的个位的电压值
P2_1=1;
delay(10);
P2_1=0;
P0=table2[volt_data*196/1000%10];
P2_2=1; //显示小数点的后的第一位
delay(10);
P2_2=0;
P0=table2[volt_data*196/100%10];
P2_3=1; //显示小数点的后的第二位
delay(10);
P2_3=0;
//P0=table2[volt_data*196/10%10];
//P2_3=1; //显示小数点的后的第二位
//delay(10);
//P2_3=0;
}
}
void t1(void) interrupt 3 using 0
{
TH1=(65536-200)/256;
TL1=(65536-200)%256;
CLK=~CLK;
}
void TimeInitial()
{
TMOD=0x10;
TH1=(65536-200)/256;
TL1=(65536-200)%256;
EA=1;
ET1=1;
TR1=1;
}
void main()
{
TimeInitial();
EA=1;//开总中断
EX0=1;//开外部0中断
IT0=1; //下跳沿触发
TR0=1;//启动定时器0
EX1=1;//开外部0中断
IT1=1; //下跳沿触发
TR1=1;//启动定时器0
while(1)
{
ST=0;
OE=0;
ST=1;
ST=0;
switch (j)
{
case 0: P36=0;P35=0;P34=0;break;
case 1: P36=0;P35=0;P34=1;break;
case 2: P36=0;P35=1;P34=0;break;
case 3: P36=0;P35=1;P34=1;break;
case 4: P36=1;P35=0;P34=0;break;
case 5: P36=1;P35=0;P34=1;break;
case 6: P36=1;P35=1;P34=0;break;
case 7: P36=1;P35=1;P34=1;break;
default:break;
}
;
while(EOC==0);
OE=1; //允许输出
volt_data=P1;
Dispaly(volt_data); //调用数据处理子程序
OE=0;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
DA.rar_AD conversion ;
共55个文件
c:7个
bak:6个
hex:4个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 170 浏览量
2022-09-19
22:58:54
上传
评论
收藏 153KB RAR 举报
温馨提示
通过本教程,初学者可以了解单片机的DA原理和方法,同时也可以了解单片机编程、调试方法。
资源推荐
资源详情
资源评论
收起资源包目录
DA.rar (55个子文件)
4
lab4_1
main.OBJ 2KB
4_Opt.Bak 1KB
4.PWI 862B
4.M51 4KB
4.plg 144B
4.lnp 37B
main.c 789B
global.c 0B
4.DSN 82KB
4_1.hex 679B
main.LST 3KB
key.c 211B
4_Uv2.Bak 2KB
Last Loaded 4.DBK 81KB
4.hex 737B
4.Uv2 2KB
4.Opt 1KB
4 2KB
4-2
4_Opt.Bak 1KB
4.OBJ 7KB
4.M51 12KB
4.plg 39KB
4.lnp 31B
lcd.c 1KB
lcd.h 99B
Backup Of 4_2.DBK 165KB
4_2.DSN 3KB
4_Uv2.Bak 2KB
4.c 3KB
Last Loaded 4_2.DBK 153KB
STARTUP.A51 6KB
4.hex 2KB
lcd.OBJ 4KB
4_2.PWI 1KB
4.Uv2 2KB
4.Opt 2KB
4.LST 6KB
lcd.LST 3KB
4 10KB
4-1
4-1.plg 4KB
4-1.Opt 974B
lcd.c 1KB
4-1.LST 4KB
4_1.PWI 864B
4-1_Opt.Bak 973B
4-1_Uv2.Bak 0B
4-1.OBJ 4KB
4-1.hex 960B
4-1.lnp 23B
4-1.M51 5KB
4_1.DSN 110KB
4-1.c 1KB
4-1.Uv2 2KB
Last Loaded 4_1.DBK 110KB
4-1 3KB
共 55 条
- 1
资源评论
小波思基
- 粉丝: 74
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功