




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机制作的电压表#include<reg52.h>
#include<intrins.h>
#defineucharunsignedchar
#defineuintunsignedint
sfrADC_CONTR=0xBC;//A/D转换功能允许寄存器
sfrADC_RES=0xBD;
//A/D转换结果寄存器
sfrADC_RESL=0xBE;//A/D转换结果寄存器低
sfrAUXR1=0xA2;//辅助寄存器1
sfrP1_ASF=0x9D;
//A/D转换控制寄存器
sbitADIO=P1^7;
//1.7口接测量电压
sbitU3_DS=P1^5;
sbitU3_STCP=P1^4;
sbitU3_SHCP=P1^3;sbitU4_DS=P1^2;
sbitU4_STCP=P1^1;
sbitU4_SHCP=P1^0;
ucharkey_val[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G'};
ucharcodekey_code[]={0x77,0x7B,0x7D,0x7E,0xB7,0xBB,0xBD,0xBE,0xD7,0xDB,0xDD,0xDE,0xE7,0xEB,0xED,0xEE};
ucharkey,count;
voiddelay(unsignedintn);
//74HC595
voidU3_595(unsignedcharnum)
{
unsignedcharcount1;
for(count1=0;count1<=7;count1++)
{
if((num&0x80)==0x80)//最高位为1,则向SDATA_595发送1
{
U3_DS=1;
}
else
{
U3_DS=0;
}
U3_SHCP=0;
U3_SHCP=1;
num<<=1;//左移
}
U3_STCP=0;
U3_STCP=1;
}
voidU4_595(unsignedcharnum)//发送指令到RS,RW,E(4,5,6位)
{
unsignedcharcount2;
for(count2=0;count2<=7;count2++)
{
if((num&0x80)==0x80)
{
U4_DS=1;
}
else
{
U4_DS=0;
}
U4_SHCP=0;
U4_SHCP=1;
num<<=1;
}
U4_STCP=0;
U4_STCP=1;
}
//LCD延时子程序n=1时延时1ms
voiddelay(unsignedintn)
{
unsignedchari;
for(;n>0;n--)
for(i=0;i<125;i++)
_nop_();
}
//写指令到LCD
voidwcmd(unsignedcharcmd)
{
U4_595(0x0F);
U3_595(cmd);
U4_595(0x4F);
U4_595(0x0F);
}
//写要显示的数据到LCD
voidwdat(unsignedchardat)
{
U4_595(0x1F);//低4位全为1屏蔽8段数码管
U3_595(dat);
U4_595(0x5F);
U4_595(0x1F);
}
//初始化LCD
voidinit()
{
wcmd(0x38);//设置8位总线双行显示,5*7点阵
delay(20);
wcmd(0x0C);//开显示,开光标,不闪烁
delay(20);
wcmd(0x06);//读写字符时地址加1
delay(20);
wcmd(0x01);//清屏
delay(20);
wcmd(0x82);
}
//键盘扫描子程序
ucharkeyscan(void)
{
unsignedcharhang,lie,keycode;
chari;
P0=0xf0;
hang=P0;
if((hang&0xf0)!=0xf0)
//有键按下?
{
delay(5);
//去抖动
hang=P0;
if((hang&0xf0)!=0xf0)
//有键按下
{
P0=0x0f;
lie=P0;
keycode=hang|lie;
//获得键码
for(i=15;i>=0;i--)
{
if(keycode==key_code[i])//查找键码
{
key=i;
return(key);
}
}
}
}
else
return(key);
}
voidkeydown()
//判断按键按下和显示程序{
P0=0xf0;
if((P0&0xf0)!=0xf0)
{
while(P0!=0xf0)
keyscan();
//获得键码
wcmd(0xCF);
//设置键值显示位置
wdat(key_val[16-key]);
}
}
voidADC_POWER_ON()//开ADC电源,第一次使用要打开内部模拟电源
{
ADC_CONTR=0x80;
delay(10);
}
voidSET_P1ASF(unsignedcharchannel)//设置模拟功能口
{
unsignedchari,final=0x01;
for(i=0;i<=channel;i++)
final<<=1;
P1_ASF=final;
}
voidSET_ADC_CHANNEL(unsignedcharchannel)//设置A/D转换通道
{
channel|=0xc0;
ADC_CONTR=channel;
delay(100);
}
floatGET_ADC_RESULT()
{
unsignedcharflag=0x10,temp=0x00;
ADC_RES=0x00;
ADC_RESL=0x00;
AUXR1=0x04;//设置10位AD
ADC_CONTR|=0x08;//启动A/D转换
_nop_();
_nop_();
_nop_();
_nop_();
do{temp=flag&ADC_CONTR;}while(temp==0x00);
ADC_CONTR=ADC_CONTR&0xc7;//清零ADC_FLAGADC_START位
return256*ADC_RES+ADC_RESL;
}
voidmain()
{
floatv;
unsignedtemp,temp1,temp2;
init();
ADC_POWER_ON();
while(1)
{
key=keyscan();
keydown();
if(16-key==1)
//量程5V
{
SET_P1ASF(6);
SET_ADC_CHANNEL(6);
v=GET_ADC_RESULT();
v=v*5/1024;
temp=v;
wcmd(0x82);delay(5000);
wdat(0x30+temp);
temp1=(v-temp)*10;
wdat(46);//小数点
wdat(0x30+temp1);
temp2=(v-temp)*100-temp1*10;
wdat(0x30+temp2);
wdat(86);//V
wdat(32);//空白
}
if(16-key==2)//量程5-20V
{
SET_P1ASF(6);
SET_ADC_CHANNEL(6);
v=GET_ADC_RESULT();
v=4*v*5/1024;
temp=v/10;
wcmd(0x82);delay(5000);
wdat(0x30+temp);
temp1=(int)v%10;
wdat(0x30+temp1);
wdat(46);//小数点
temp2=v*10;
wdat(0x30+temp2%10);
temp2=v*100;
wdat(0x30+temp2%10);
wdat(86);//V
}
if(16-key==3)//量程20-100V
{
SET_P1ASF(6);
SET_ADC_CHANNEL(6);
v=GET_ADC_RESULT();
v=19.8*5*v/1024;
temp=v/10;
wcmd(0x82);d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于Petri网的失调系统故障容错建模与优化-洞察阐释
- 儿童伞画创意课件
- 《陋室铭》说课课件
- 使用Construct2建立平台游戏-初学者指南
- 《蜀道难》说课课件
- 牙髓炎临床表现和医疗护理
- 中考历史复习第一讲史前时期早期国家与社会变革材料
- 8.2诚信经营 依法纳税 课件高中政治统编版选择性必修二法律与生活
- 美国非学位证书制度解析与未来发展预测
- 2024年中小学生环保知识竞赛试题库附答案
- 排水管网改造工程施工组织设计方案
- 员工入职申请表(完整版)
- 养老机构九防培训课件
- 杭州市拱墅区部分校教科版六年级下册期末考试科学试卷(解析版)
- 2025年邮政运营面试试题及答案
- 农产品电商直播营销策略研究
- 交际英语视听说(山东联盟)知到智慧树章节测试课后答案2024年秋齐鲁师范学院
- 上海2025年上海电机学院教师招聘100人笔试历年参考题库附带答案详解
- 2025年山东省新动能基金管理有限公司招聘笔试参考题库含答案解析
- 【博观研究院】2025年跨境进口保健品市场分析报告
- 2023年浙江省宁波市江北区小升初语文毕业考试试卷
评论
0/150
提交评论