版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、AD0809简易数字电压表,一AD0809电压表设计要求,要求: 设计一个简易的数字电压表,用来测量我们焊接的单片机开发板中AD0809模块前端电位器R40的实时电压值,并用电路板中左位数码管的前三位显示当前模拟电压的十进制数字量值,同时用右数码管显示当前的模拟电压值 附加要求: 为了防止数字电压表使用时出现测量值与实际值存在误差的问题,须增加能通过按键对十进制数字量测量值进行100以内补偿值设定的功能.,二、转换的流程图,开始,左右数码管显示十进制,初始化,在中显示数码管中的数值,判断是否 按键按下?,判断是加1 还是减1?,否,是,加1,减1,结束,三、设计中的问题,1、串口在线下载问题;
2、 2、数码管的显示问题; 3、用周立公芯片实现按键加一; 4、LCD的显示; 5、调试中遇到显示不稳定;,四、解答上述问题,硬件问题: 串口不能下载程序,通过一步步检测MAX232是否与串口连通,是否 与单片机接受和发送的端口连接上,借助万用表查看电阻、电容以及芯片是否正常工作。 软件问题: 经过了解zlg7290.h文件、zlg7290.c文件、VIIC_C51.h文件以 及 VIIC_C51.c文件,主要是zlg7290.c文件中Test_Key子函数、 DispValue子函数、ZLG7290_Download子函数。通过在主函数中调用子函数,并且多处的运用for、while、if语句,
3、经过编译,再一步步排查问题。,五、程序,#include #includeZLG7290.h #includeI2C.h #include /#include #define data_point P0 #define uchar unsigned char typedef unsigned char BYTE;/重新定义 typedef unsigned int WORD;/重新定义 typedef bit BOOL;/重新定义 BYTE code disp21=V; BYTE code disp33=.-+; BYTE code disp4=Stander:; sbit rs=P13;/定
4、义P13端口为rs sbit ep=P15; sbit rw=P14; /lcd,sbit EOC=P33;sbit ADDA=P20;sbit ADDB=P21;sbit ADDC=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
5、xf0;TR1 = 1;while ( !TF1 );TF1= 0;TR1 = 0; while (-t);,BOOL lcd_bz()BOOL result;rs=0;rw=1;ep=1;_nop_();_nop_();_nop_();_nop_();result=(BOOL)(P0 ,_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_bz();rs=1;rw=
6、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;void System
7、Init()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;i4;i+)/P1=0 xff;if(i=0)ZLG7290_Download(3,1,0,dispi);delay(1);if(i=1)ZLG7290_Download(2,0,0, dispi);delay(1);if(i=2)ZLG7
8、290_Download(1,0,0,dispi);delay(1);,if(i=3)ZLG7290_Download(0,0,0,dispi); delay(1); / ZLG7290_Download(7,0,0,disp4);/ZLG7290_Download(6,0,0,disp5);/ZLG7290_Download(5,0,0,disp6);/P1=k;/ k=k=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;START=0
9、;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 x8
10、0;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_Down
11、load(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 )/如果有键按下/清除中断标志Fl
12、agINT = 0;/读取键值、连击计数器值、功能键值ZLG7290_ReadReg(ZLG7290_Key,/ZLG7290_ReadReg(ZLG7290_FunctionKey,/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
13、_pos(0 x09);lcd_wdat(0 x30+disp0);lcd_pos(0 x0A);lcd_wdat(disp30);/ 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();lcd_init()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公路工程识图与制图 课件 2断面图
- 教师资格综合素质(小学)
- 考研英语(阅读)模拟试卷251
- 道路清洁作业交接班管理手册
- 景点春节亮化工程管理手册
- 招标办招投标异议处理工作手册(标准版)
- 教师依法执教与师德规范结合手册
- Unit 5 Good manners(话题阅读精练)(原卷版)
- 医疗废弃物感染性风险防控安全手册
- 尿不湿生产无纺布裁切操作规范手册
- 2024年第二次广东省普通高中化学学业水平合格性考试真题卷含答案
- 【MOOC】心理学与生活-南京大学 中国大学慕课MOOC答案
- 分析化学(兰州大学)知到智慧树章节测试课后答案2024年秋兰州大学
- 2024-2025学年四川省泸州市泸县高一下学期6月期末考试化学检测试题(含答案)
- 【MOOC】断层影像解剖学-山东大学 中国大学慕课MOOC答案
- 汽车调光玻璃行业专题报告(技术路径、市场空间、竞争格局等)-2024-08-零部件
- 临沂2024年山东临沂科技职业学院招聘教师和教辅人员33人笔试历年典型考题及考点附答案解析
- MOOC 航天推进理论基础-西北工业大学 中国大学慕课答案
- 国内外同类技术分析报告
- 远离电子产品保护视力
- 2024-年广州市小升初英语真题含答案
评论
0/150
提交评论