版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
./附录:程序与仿真图1.程序如下:#include<lcd.h>sbitP2_0=P2^0;sbitST=P3^6;//启动控制端sbitOE=P3^7; //输出允许控制端sbitEOC=P3^3; //转换结束检测codecharCgramData0[]={0x08,0x0f,0x12,0x0f,0x0a,0x1f,0x02,0x02};//年codecharCgramData1[]={0x0f,0x09,0x0f,0x09,0x0f,0x09,0x11,0x00};//月codecharCgramData2[]={0x1f,0x11,0x11,0x1f,0x11,0x11,0x1f,0x00};//日codecharCgramData3[]={0x00,0x04,0x1f,0x0a,0x04,0x0a,0x11,0x00};//XcodecharCgramData4[]={0x00,0x04,0x14,0x14,0x14,0x04,0x0c,0x00};//codecharCgramData5[]={0x08,0x1e,0x1a,0x16,0x1a,0x16,0x1e,0x00};//自codecharCgramData6[]={0x04,0x04,0x1F,0x0E,0x15,0x1F,0x04,0x00};//本unsignedcharY[6],getdata1=0,i,j;unsignedintgetdata=0;ucharVoltage[]="Voltage=1.541";ucharzifu[]="liuchangyin";ucharzifu1[]="Number:200501167";unsignedintk=0;unsignedlongV;unsignedcharcount=0; //定时用bitbiaozhi=0; //动态换屏用voiddelay10us<>//延时,增加显示稳定性{for<i=0;i<10;i++>;}voidxianshi<> //显示函数{V=getdata*500000/255;for<i=0;i<6;i++>//LCD显示数操作{Y[i]=V%10;V/=10;} //LCD1602显示 Voltage[8]=Y[5]+48; Voltage[9]='.'; Voltage[10]=Y[4]+48; Voltage[11]=Y[3]+48; Voltage[12]=Y[2]+48; Voltage[13]='\0'; display_str<0x40+0x80,Voltage>; delay10us<>; getdata=0;}voidmain<void>{lcd_init<>;display_str<0x80,zifu>;//第一行显示字符串P2_0=0;//P2_0一直为低,便于用P3_6和P3_7控制启动AD和读取数据OE=1; //不允许读取数据EX1=1; //外部中断1使能IT1=1; //外部中断1为边沿触发TMOD=0x10;//定时器0选用方式1TH1=0x3C;//TL1=0xB0;//50msTR1=1;//启动T1计时ET1=1;//定时器0中断使能 EA=1; //开中断P0=0xf8;//选择通道1delay10us<>;ST=1;ST=0;ST=1;//启动AD转换 while<1> {}}voidt1<void>interrupt3using0//定时器1中断执行部分{count++;if<count==5>{if<biaozhi==0> //显示:"自本105040501167"{ write_cgram<0x40,CgramData5>; display_cgram<0x80,0x00>; write_cgram<0x48,CgramData6>; display_cgram<0x81,0x01>; display_str<0x82,"105040501167">;//第一行显示字符串 }if<biaozhi==1> //显示:"20xx07月10日X"{ display_str<0x80,"2008">; write_cgram<0x60,CgramData0>; display_cgram<0x84,0x04>; display_str<0x85,"07">; write_cgram<0x78,CgramData1>; display_cgram<0x87,0x07>; display_str<0x88,"10">; write_cgram<0x40,CgramData2>; display_cgram<0x8A,0x00>; write_cgram<0x50,CgramData3>; display_cgram<0x8C,0x02>; write_cgram<0x58,CgramData4>; display_cgram<0x8D,0x03>; } biaozhi=~biaozhi; count=0;}TH1=0x3C;//TL1=0xB0;//50msTR1=1;//启动T1计时P1=~P1;}voidint1<void>interrupt2using0 //外部中断1执行部分 {P0=0xff;OE=0;//传输数据使能getdata1=P0; //得到转换数据OE=1; //不允许传输数据getdata+=getdata1;//10次求和取平均值k++;if<k==10>{EX1=0; //关闭外部中断1 getdata=getdata/10;//取平均值 xianshi<>;//利用LCD显示电压值 k=0; EX1=1; //允许外部中断1 }P0=0xf8;//选择通道1ST=1;ST=0;ST=1;//重新启动AD转换 }//*************************************//lcd头文件//*************************************#include<reg52.h>#include<string.h>#include<absacc.h>#definelcd_dataP0//定义端口#defineucharunsignedchar#defineuintunsignedintsbitRS=P2^1;sbitRW=P2^2;sbitE=P2^3;sbitBF=P0^7;//***************************************//延时函数//***************************************voiddelay<uinti>{ while<i-->;}//***************************************//写控制字//***************************************voidwrite_struct<uchartemp> { E=0; delay<100>; //while<BF==1>; RW=0; RS=0; lcd_data=temp; delay<3>; E=1; delay<3>; E=0;}//**************************************//写数据//**************************************voidwrite_data<uchartemp>{ delay<100>; //while<BF==1>; E=0; RS=1; RW=0; lcd_data=temp; E=1; delay<3>; E=0;}//***************************************//lcd初始化//***************************************voidlcd_init<>{ write_struct<0x38>; //设置接口DB宽度<8位>和LCM显示行数<2行> write_struct<0x08>; // write_struct<0x01>; //执行清屏操作 write_struct<0x06>; //设置光标为加1模式 write_struct<0x0c>; //设置光标为移位模式}//***************************************//向CGRAM写入数据//***************************************voidwrite_cgram<unsignedcharadress,unsignedchar*p>{chari;for<i=0;i<8;i++> { write_struct<adress+i>; write_data<p[i]>; }}//显示CGRAM数据//***************************************voiddisplay_cgram<unsignedcharadress,unsignedcharp>{ write_struct<adress>; write_data<p>; }//显示字符//***************************************voiddisplay<chartemp0,char*p>{ write_struct<temp0>; delay<3>; write_data<*p>;}//****************************************//显示字符串//****************************************voiddisplay_str<chartemp0,char*p>{ chari; write_struct<temp0>; for<i=0;i<16;i++> { if<*p=='\0'> break; write_data<*p>; p++; }}//*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年-2024年公司项目部负责人安全教育培训试题附答案【黄金题型】
- 立秋文化在新媒体的传播
- 《材料工程原理绪论》课件
- 《监督培训材料》课件
- 激光打标机打标软件与PLC通信稳定性的研究
- 部编版七年级历史下册期末复习专题课件2024版
- 云安全隐私保护机制-洞察分析
- 营养产业可持续发展-洞察分析
- 外观模式可维护性-洞察分析
- 稀有金属国际市场动态-洞察分析
- 【8地星球期末】安徽省合肥市包河区智育联盟校2023-2024学年八年级上学期期末地理试题(含解析)
- 2024-2025学年冀人版科学四年级上册期末测试卷(含答案)
- 【8物(科)期末】合肥市庐阳区2023-2024学年八年级上学期期末质量检测物理试卷
- 国家安全知识教育
- 2024-2030年中国停车场建设行业发展趋势投资策略研究报告
- 蓝军战略课件
- 物业管理重难点分析及解决措施
- 北京邮电大学《数据库系统》2022-2023学年第一学期期末试卷
- 湖北省黄冈市2023-2024学年高一上学期期末考试化学试题(含答案)
- 中国HDMI高清线行业市场动态分析及未来趋势研判报告
- 物流公司安全生产监督检查管理制度
评论
0/150
提交评论