版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、AD0809简易数字电压表简易数字电压表一一AD0809电压表设计要求电压表设计要求 要求:要求: 设计一个简易的数字电压表,用来丈量我们焊接的单片设计一个简易的数字电压表,用来丈量我们焊接的单片机开发板中机开发板中AD0809模块前端电位器模块前端电位器R40的实时电压值,并的实时电压值,并用电路板中左位数码管的前三位显示当前模拟电压的十进用电路板中左位数码管的前三位显示当前模拟电压的十进制数字量值,同时用右数码管显示当前的模拟电压值制数字量值,同时用右数码管显示当前的模拟电压值 附加要求:附加要求: 为了防止数字电压表运用时出现丈量值与实践值存在误为了防止数字电压表运用时出现丈量值与实践值
2、存在误差的问题差的问题,须添加能经过按键对十进制数字量丈量值进展须添加能经过按键对十进制数字量丈量值进展100以内补偿值设定的功能以内补偿值设定的功能.二、转换的流程图开场左右数码管显示十进制初始化在中显示数码管中的数值判别能否按键按下?判别是加1还是减1?否是加1减1终了三、设计中的问题三、设计中的问题n1、串口在线下载问题;、串口在线下载问题;n2、数码管的显示问题;、数码管的显示问题;n3、用周立公芯片实现按键加一;、用周立公芯片实现按键加一;n4、LCD的显示;的显示;n5、调试中遇到显示不稳定;、调试中遇到显示不稳定;四、解答上述问题四、解答上述问题硬件问题: 串口不能下载程序,经过
3、一步步检测MAX232能否与串口连通,能否 与单片机接受和发送的端口衔接上,借助万用表查看电阻、电容以及芯片能否正常任务。 软件问题: 经过了解zlg7290.h文件、zlg7290.c文件、VIIC_C51.h文件以 及 VIIC_C51.c文件,主要是zlg7290.c文件中Test_Key子函数、 DispValue子函数、ZLG7290_Download子函数。经过在主函数中调用子函数,并且多处的运用for、while、if语句,经过编译,再一步步排查询题。 五、程序五、程序#include #includeZLG7290.h#includeI2C.h#include/#include
4、#define data_point P0#define uchar unsigned chartypedef unsigned char BYTE;/重新定义typedef unsigned int WORD; /重新定义typedef bit BOOL;/重新定义BYTE code disp21=V;BYTE code disp33=.-+;BYTE code disp4=Stander:;sbit rs=P13;/定义P13端口为rssbit ep=P15;sbit rw=P14; /lcdsbit EOC=P33;sbit ADDA=P20;sbit ADDB=P21;sbit ADD
5、C=P22;sbit OE=P25;sbit START=P26;/sbit CLK=P27;volatile bit FlagINT = 0;unsigned char AD=0;char count=0;unsigned char disp7=0,0,0,0,0,0,0;unsigned int t0count=0;void delay(unsigned char t)doTH1 = 0 xD8;TL1 = 0 xf0;TR1 = 1;while ( !TF1 );TF1= 0;TR1 = 0; while (-t);BOOL lcd_bz()BOOL result;rs=0;rw=1;e
6、p=1;_nop_();_nop_();_nop_();_nop_();result=(BOOL)(P0 & 0 x80);ep=0;return result;lcd_wcmd(BYTE cmd)while(lcd_bz()=1);rs=0;rw=0;ep=0;_nop_();_nop_();P0=cmd;_nop_();_nop_();_nop_();_nop_();ep=1;_nop_();_nop_();_nop_();_nop_();ep=0;lcd_pos(BYTE pos)lcd_wcmd(pos | 0 x80); lcd_wdat(BYTE dat)while(lcd
7、_bz();rs=1;rw=0;ep=0;P0=dat;_nop_();_nop_();_nop_();_nop_();ep=1;_nop_();_nop_();_nop_();_nop_();ep=0;lcd_init()lcd_wcmd(0 x38);lcd_wcmd(0 x0c);lcd_wcmd(0 x06);/lcd_wcmd(0 x00);/delay(1);/lcd_wcmd(0 x14);/delay(1);lcd_wcmd(0 x01);/lcd_pos(12);/lcd_wdat(disp21); void INT0_SVC() interrupt 0FlagINT = 1
8、;void SystemInit()I2C_Init();TMOD = 0 x01; delay(1);/等待ZLG7290复位终了void ClearAll()unsigned char x;for ( x=0; x8; x+ )ZLG7290_Download(x,0,0,31);void display()unsigned int i,j,k=0 xfb; for(i=0;i=1; for(j=200;j0;j-);/P1=0 xff;unsigned int ADC0809() unsigned int d;ADDC=0;ADDB=0;ADDA=0;TR1=1;START=1;STAR
9、T=0;while(EOC=0);OE=1;d=data_point;OE=0;TR1=0;return d;void covert(unsigned char x)unsigned int X; char code dispcode=0 x00,0 x01,0 x02,0 x03,0 x04,0 x05,0 x06,0 x07,0 x08,0 x09 ; X=x * (1.0) * 5000 / 255;/x=(x*100*1.0)/51;disp0=dispcodeX/1000; disp1=dispcodeX%1000/100; / x/50 x/100; /disp0=disp0+0
10、x80;disp2=dispcodeX%1000%100/10;/x/10 x%100/10;disp3=dispcodeX%1000%100%10;/ x%100%10;/disp4=k/100;/disp5=k%100/10;/disp6=k%100%10; void DispValue(char x, unsigned char dat)unsigned char d;d = dat/100;ZLG7290_Download(x+2,0,0,d); d = dat % 100/10;ZLG7290_Download(x+1,0,0,d);d = dat%100%10;ZLG7290_Do
11、wnload(x,0,0,d);disp4=dat/100;disp5=dat % 100/10; disp6= dat%100%10;void Test_Key() char fuhao;unsigned char KeyValue;/BYTE i;/i=0;unsigned char i=0,k=0,l=0;/unsigned char RepeatCnt;/unsigned char FnKeyValue;ClearAll();EA = 0;IT0 = 1; /负边沿触发中断EX0 = 1;/允许外部中断EA = 1;for (;)if ( FlagINT )/假设有键按下/去除中断标志
12、FlagINT = 0;/读取键值、连击计数器值、功能键值ZLG7290_ReadReg(ZLG7290_Key,&KeyValue);/ZLG7290_ReadReg(ZLG7290_RepeatCnt,&RepeatCnt);/ZLG7290_ReadReg(ZLG7290_FunctionKey,&FnKeyValue);/显示键值、连击计数器值、功能键值 if(KeyValue=2) count+;/DispValue(0,count);if(KeyValue=3) count-;/DispValue(0,count); if(count=100) count=
13、100;if(count=0) /AD=ADC0809();/DispValue(0,KeyValue);/DispHexValue(3,RepeatCnt);/DispHexValue(6,FnKeyValue); lcd_pos(0); /for(i=0;i6;i+)/AD=ADC0809();covert(AD+count);display();DispValue(5,AD+count);while(disp4i!=0)lcd_wdat(disp4i);i+;lcd_pos(0 x09);lcd_wdat(0 x30+disp0);lcd_pos(0 x0A);lcd_wdat(disp
14、30);/ 0 x30+lcd_pos(0 x0B);lcd_wdat(0 x30+disp1);lcd_pos(0 x0C);lcd_wdat(0 x30+disp2);lcd_pos(0 x0D);lcd_wdat(0 x30+disp3);lcd_pos(0 x0E); lcd_wdat(disp20); /0 x30+lcd_pos(0 x46); for(l=4;l7;l+) lcd_wdat(0 x30+displ);/lcd_wdat(0 x30+disp5);/lcd_wdat(0 x30+disp6);delay(100); i=0;/PCON |= 0 x01;/使CPU进入空闲形状,任一中断可唤醒void main()BYTE i;i=0;TMOD=0 x10;/TH1=(65536-10000)/256;/TL1=(65536-10000)%256;/TH1=256-2;/TL1=256-2;/ET0=1;/ET1=1;/EA=1;/TR0=1;OE=0;START=0;EOC=1;SystemInit
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年城市物流货车短期租赁协议
- 2024年工厂企业排水系统施工合同
- 2024年失业人员再就业安置协议
- 2024年家电购买合同范本
- 2024年医疗专家竞业禁止协议书
- 2024年工业硫矿采购合同
- 2024年全球投资促进合作协议
- 2024年定制:旅游度假区酒店管理合同
- 2024年养殖废弃物处理与资源化利用合同
- 2(2024版)电子商务平台运营数据保密协议
- 2024秋人教版一年级数学上册《11-20的认识》教学设计
- 2024年国家机关事务管理局机关服务中心招聘历年高频考题难、易错点模拟试题(共500题)附带答案详解
- 油漆作业风险和隐患辨识、评估分级与控制措施一览表
- 流体力学期末复习试题含答案(大学期末复习资料)
- 空气栓塞培训课件
- HG∕T 5248-2017 风力发电机组叶片用环氧结构胶粘剂
- 医院感染监测标准考试试题附有答案
- 内外部项目合作管理制度
- 输尿管软镜的手术操作
- 高血压病三级预防策略 医学类模板 医学课件
- 教师进企业实践日志
评论
0/150
提交评论