




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、通过对两个单片机的控制实现电压信号的采集以及显示波形,可以调整显示频率.主单片机控制12864的显示,从单片机实现对ADC0809的驱动转换.下面是该系统的程序:主单片机:#include<reg51.h>#include<math.h>#define uchar unsigned char #define uint unsigned int#define dataIO P1#define ADdataIO P0unsigned char p=0xf7,0xfb,0xfd,0xfe;int num;static int count=20;sbit RS=P25;sbit
2、 RW=P24;sbit E=P23;sbit PSB=P22;sbit NC=P21;sbit BF=P17;sbit EOC=P34;sbit EN=P35;static unsigned char DATA128=0;void delay(long int x)long int i;for(i=0;i<x;i+);void checkbusy()RS=0;RW=1;E=1;while(BF);E=0;void transfer(uchar word ,bit a ,bit b) /数据交换, a:1数据, 0指令
3、; b:1读,0写。/checkbusy();RS=a;RW=b;E=1;dataIO = word;delay(2);E=0;RS=RS;RW=RW;uchar readRAM(bit a)/a:1.data 2.cmd/uchar x;checkbusy();dataIO=0xff;RS=a;RW=1;E=1;delay(2);x=dataIO;delay(2);E=0;RS=RS;RW=RW;return(x);void clear()transfer(0x01,0,0);delay(10);void LCDstatus(uchar a)checkbusy();transfe
4、r(a,0,0);void clr()unsigned char x,y,i;checkbusy();transfer(0x36,0,0);for(i=0;i<9;i+=8)for(x=0;x<32;x+)for(y=0;y<16;y+)transfer(x+0x80,0,0);transfer(y+0x80+i,0,0);transfer(0x00,1,0);transfer(0x00,1,0);void Point(unsigned char x,unsigned char y) char x_real,y_real,data_H,data_L, Memory_H,Mem
5、ory_L;if(x>=128|y>=64);else if(y<32) x_real=x/16+0x80; y_real=0x80+y; else x_real=x/16+0x88; y_real=0x80+y%32; if(x%16<8) data_
6、H=(0x01<<(7-x%16); data_L=0; else data_H=0; data_L=(0x01<<(15-x%16); checkbusy();transfer(0x36,0,0);transfer(y_real,0,0);transfer(x_real,0,0);transfer(0x34,0,0);transfer(0x30,0,0);checkbusy();readRAM(1)
7、;Memory_H=readRAM(1);Memory_L=readRAM(1);checkbusy();data_H=data_H|Memory_H;data_L=data_L|Memory_L;checkbusy();transfer(0x36,0,0);transfer(y_real,0,0);transfer(x_real,0,0);transfer(data_H,1,0);transfer(data_L,1,0);void reset()delay(2000); transfer(0x30,0,0); delay(50); &
8、#160; /选择基本指令集 transfer(0x30,0,0); /选择8bit数据流 delay(20); transfer(0x0c,0,0); /开显示(无游标、不反白) delay(20); transf
9、er(0x01,0,0); /清除显示,并且设定地址指针为00H delay(500); transfer(0x06,0,0); /指定在资料的读取及写入时,设定游标的移动方向及指定显示的移位 delay(0);void enterdata(char * word)while(*word!='0')transfer(*word,1,0);word+;delay(10
10、);void line(uchar x0,uchar y0,uchar x1,uchar y1)char temp;char dx,dy; /定义起点到终点的横、纵坐标增加值char s1,s2,status,i;uchar Dx,Dy;int sub;dx=x1-x0;if(dx>=0)
11、160; /X的方向是增加的 s1=1;Dx=dx;else /X的方向是降低的 s1=-1; Dx=-dx;dy=y1-y0; &
12、#160; /判断Y的方向是增加还是降到的if(dy>=0)s2=1;Dy=dy;elses2=-1;Dy=-dy;/* Dx=fabs(x1-x0); /计算横、纵标志增加值的绝对值Dy=fabs(y1-y0);*/if(Dy>Dx)
13、160; / /以45度角为分界线,靠进Y轴是status=1,靠近X轴是status=0 temp=Dx;Dx=Dy;Dy=temp;status=1; elsestatus=
14、0;/*Bresenham算法画任意两点间的直线*/ sub=2*Dy-Dx; /第1次判断下个点的位置for(i=0;i<Dx;i+) Point(x0,y0); /画点 if(sub>=0)
15、60; if(status=1)
16、 /在靠近Y轴区,x值加1 x0+=s1; else /在靠近X轴区,y值加1
17、160; y0+=s2; sub-=2*Dx; /判断下下个点的位置 if(status=1)y0+=s2; else &
18、#160; x0+=s1; sub+=2*Dy; main()unsigned char x,x_m,y_m,i;TCON=0x05;IE=0x85;reset();clr();EOC=0;while(1)x_m=0;for(x=0;x<128;)if(EOC=1);EN=1;DATAx+=ADdataIO;EN=0; i=0;while(i<=count)i+;y_m=DATA0/4;for(x=0;x<128;x+) line(x_m,y_m,x,DATAx/4); x_m = x; y_m = DATAx/4;clr();void stop() interrupt 0 /*用两个外部中断实现对频率的控制*/count-;delay(100);void stop1() interrupt 2count+;delay(100);从单片机程序:#include<reg51.h>sbi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国钼合金行业发展战略及前景趋势分析报告
- 2025-2030年中国透明聚丙烯行业运行状况及发展规划分析报告
- 2025-2030年中国过氧化二异丙苯行业运行现状及发展前景分析报告
- 2025-2030年中国苗圃产业市场十三五规划及发展建议分析报告
- 2025-2030年中国纳米银市场运行态势及投资战略研究报告
- 2025-2030年中国紫菜市场竞争格局与发展策略分析报告
- 2025-2030年中国管壳式换热器行业运行态势与未来发展战略研究报告
- 2025-2030年中国硬质纤维板行业运行态势及投资战略研究报告
- 天津师范大学津沽学院《半导体器件》2023-2024学年第二学期期末试卷
- 江西交通职业技术学院《测量学基础》2023-2024学年第二学期期末试卷
- 幼儿园垃圾分类PPT
- 申请提取住房公积金个人授权、承诺书(样表)
- 施工作业申请表
- 浸出液的净化与沉积
- 银行间本币市场交易员资格考试真题模拟汇编(共586题)
- 苯乙酸安全技术说明书(msds)
- 幼儿园大班《防欺凌》教案5篇,幼儿园大班防欺凌活动教案
- 卫生管理初中级职称大纲
- 《当代网络文学作品发展研究6300字(论文)》
- 孟氏骨折与盖氏骨折讲解学习
- GB/T 9386-2008计算机软件测试文档编制规范
评论
0/150
提交评论