




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、程序1:直流稳压电源的显示/数显直流稳压电源程序/头文件#include <reg52.h>#include <intrins.h>/宏定义#define uint unsigned int#define uchar unsigned char/定义变量uchar table6="00.00V" /液晶显示字符串uchar num,temp;uint voltage; /被测电压的100倍赋给voltage/TLC549、液晶位声明sbit ad_clk=P33; /TLC549时钟sbit ad_out=P34; /TLC549数据输出sbit a
2、d_cs=P35; /TLC549片选sbit lcden=P24; /液晶使能端sbit lcdrs=P25; /液晶数据命令选择端/子函数声明void delayms(uint xms); /延时函数void write_com(uchar com); /液晶写命令函数void write_data(uchar date); /液晶写数据函数void led_init(); /液晶初始化函数void tlc549_ad(); /TLC549获取数据及显示数据函数/主函数void main()led_init();tlc549_ad();/液晶初始化函数void led_init()lcde
3、n=0;write_com(0x38); /设置16×2显示,5×7点阵,8位数据接口write_com(0x0c); write_com(0x06); write_com(0x01); /TLC549获取数据及液晶显示数据函数 void tlc549_ad() ad_cs=1; ad_clk=0;ad_cs=0; 高位_nop_(); _nop_();for(num=0;num<8;num+) / temp<<=1; temp|=ad_out; ad_clk=1; _nop_(); ad_clk=0; ad_cs=1;for(num=17;num>
4、0;num-)_nop_();voltage=(uint)(5.0/256*temp*400); 赋给voltage temp=0;table0=voltage/1000+48; table1=voltage%1000/100+48; table3=voltage%1000%100/10+48;table4=voltage%1000%100%10+48;write_com(0x80); for(num=0;num<6;num+) /设置开显示,不显示光标 /写一个字符后地址指针加1/显示清0,数据指针清0/ad_cs置高,片选无效/ad_cs置低,片选有效,同时ad_out输出最/延时至
5、少1.4s /串行数据移位输出/ad_cs置高,片选无效 /延时约17s/串行数据转化为十进制输入电压,乘以400/串行数据清0 /整数部分装入字符串 /小数部分装入字符串/设置数据地址指针 /显示字符串table6write_data(tablenum); delayms(5);delayms(2000); /延时函数void delayms(uint xms) uint i,j;for(i=xms;i>0;i-) for(j=110;j>0;j-); /液晶写命令函数void write_com(uchar com) lcdrs=0;P0=com;delayms(5);lcde
6、n=1;delayms(5);lcden=0;/液晶写数据函数void write_data(uchar date) lcdrs=1;P0=date;delayms(5);lcden=1;delayms(5);lcden=0;/数据显示2s程序2:电容和电感测量值的显示/简易电容、电感测量仪程序/初始化#include <reg52.h>#define uint unsigned int#define uchar unsigned char#define ulong unsigned long#define PI 3.1415926uchar code table18="
7、Welcome!"uchar table216="f(Hz)="uchar table316="C(pF)="uchar table416="L(uH)="uchar num,a=0,th0,tl0;uint C,L;ulong f;sbit lcden=P24; /液晶使能端sbit lcdrs=P25; /液晶数据命令选择端sbit key_C=P14; /测量电容按键sbit key_L=P15; /测量电感按键sbit C_out=P12 /测量电容信号输入sbit L_out=P13; /测量电感信号输入/声明子函
8、数void delayms(uint xms); /延时函数void write_com(uchar com); /液晶写命令函数void write_data(uchar date); /液晶写数据函数void led_init(); /液晶初始化函数void t_init(); /定时器0初始化函数void keyscan(); /键盘检测函数(确定被测元件为电容或电感) void display_f(ulong f); /频率显示函数void display_C(uint C); /电容显示函数void display_L(uint L); /电感显示函数/主函数void main()l
9、ed_init();t_init();keyscan();write_com(0x01);while(1)display_f(f);switch(a)case 1:C=(int)(100000000.0/153/0.6931472/f+0.5);display_C(C);break; case 2:L=(int)(1000000000000.0/0.1/PI/PI/f/f+0.5);display_L(L);break; /中断函数void T0_count() interrupt 1switch(a)case 1:while(C_out);while(!C_out);TH0=0;TL0=0;
10、while(C_out);while(!C_out);th0=TH0;tl0=TL0;TR0=0;break;case 2:while(L_out);while(!L_out);TH0=0;TL0=0;while(L_out);while(!L_out);th0=TH0;tl0=TL0;TR0=0;break;f=1000000.0/1.085069/(th0*256+tl0)+0.5;/延时函数void delayms(uint xms)uint i,j;for(i=xms;i>0;i-) for(j=110;j>0;j-); /液晶写命令函数void write_com(uch
11、ar com) lcdrs=0;P0=com;delayms(5);lcden=1;delayms(5);lcden=0;/液晶写数据函数void write_data(uchar date) lcdrs=1;P0=date;delayms(5);lcden=1;delayms(5);lcden=0;/液晶初始化函数 void led_init()lcden=0;write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80); for(num=0;num<8;num+) write_d
12、ata(table1num); delayms(5); /设置16×2显示,5×7点阵,8位数据接口/设置开显示,不显示光标 /写一个字符后地址指针加1 /显示清0,数据指针清0 /显示欢迎界面/定时器0初始化函数void t_init()TMOD=0x01; /设置定时器0工作方式1(M1M0=0x0001)TH0=0; /装初值TL0=0;EA=1; /开总中断ET0=1; /开定时器0中断TR0=1; /启动定时器0/键盘检测函数(确定被测元件为电阻、电容或电感)void keyscan()if(key_C=0)delayms(10);if(key_C=0)a=1;e
13、lseif(key_L=0)delayms(10);if(key_L=0)a=2;elsewhile(key_C&&key_L); /按键按下时退出死循环/频率显示函数void display_f(ulong f)uchar count=0;ulong f0;f0=f;while(f)f=f/10;count+;for(num=5+count;num>5;num-) table2num=f0%10+48; f0=f0/10;write_com(0x80);for(num=0;num<6+count;num+) write_data(table2num); delayms(5);/电容显示函数void display_C(uint C) uchar count=0;uint C0;C0=C;while(C)C=C/10;count+;for(num=5+count;num>5;num-) table4num=C0%10+48; C0=C0/10;write_com(0x80+0x40);for(num=0;num<6+count;num+) write_data(table4num); delayms(5);/电感显示函数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 员工绩效面谈技巧与记录表模板
- 职业性格MBTI测试解析报告
- 建筑装饰制图考试题库及答案
- 减速机减速比考试试题及答案
- 小学三年级语文写作训练指导
- 跨部门工作协调会议制度范本
- 保险理赔定位技术详解
- 高三物理力学重点难点突破训练
- 高中数学复习指导与专题练习
- 人教版语文《不义而富且贵》教案设计
- 2025年中国替代蛋白新式发酵行业市场分析及投资价值评估前景预测报告
- 2025年中国马格利相二氧化钛(Ti4O7)行业市场分析及投资价值评估前景预测报告
- 商场顾客急救知识培训课件
- 2025-2026学年江苏省徐州市八年级(上)第一次月考数学试卷(含答案)
- 2025至2030中国航空制造业行业发展现状及细分市场及有效策略与实施路径评估报告
- (2025年)社区工作者考试真题库附答案
- 氮气安全知识培训课件
- 流延膜设备安全操作培训课件
- 2025中国航空工业集团陕飞校园招聘笔试历年参考题库附带答案详解
- 专题1:匀变速直线运动的重要结论+课件-2025-2026学年高一上学期物理人教(2019)必修第一册
- 学困生教学课件
评论
0/150
提交评论