PIC的AD转换用LCD和数码管显示

PIC的AD转换用LCD和数码管显示

ID:37924047

大小:43.00 KB

页数:5页

时间:2019-06-02

PIC的AD转换用LCD和数码管显示_第1页
PIC的AD转换用LCD和数码管显示_第2页
PIC的AD转换用LCD和数码管显示_第3页
PIC的AD转换用LCD和数码管显示_第4页
PIC的AD转换用LCD和数码管显示_第5页
资源描述:

《PIC的AD转换用LCD和数码管显示》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、是用PIC16F887单片机写的C程序,供初学者交流参考。#include//引入头文件__CONFIG(0x20F1);//设置CHOFIG位,调试用__CONFIG(0x3FFF);#defineRSRD4//LCD的引脚的宏定义#defineRWRD5#defineERD6voidBCD(unsignedint);//BCD转换子程序voidSPI_WRITE(char*);//写一字节命令或数据voidDISP_FOUR(char*);//显示4个数据,最先发的移到最后charA[4],WW,QW,BW,SW,GW;//万位,

2、千位。。。到个位constcharLED_CODE[11]=//数码管显示代码{0b11000000,//00b11111001,//10b10100100,//20b10110000,//30b10011001,0b10010010,0b10000010,0b11111000,0b10000000,0b10010000,//90b11111111};//灭unsignedintX,Y;//X用于存AD转换结果,Y用于存AD采样通道的电压voiddelay_us(char);//延时us子程序voiddelay_ms(unsignedint);//

3、延时ms子程序voidwrite(charm);//对LCD写数据,子程序voidenable(charm);//对LCD写的位置,子程序voiddisp_init();//LCD初始化voidCSH(void);//芯片初始化子程序voidmain(void){CSH();disp_init();while(1){ADCON0=0b01101001;//设置ADCON0为通道10转换,AD模块使能chari;for(i=0;i<5;i++)NOP();//延时20us让保持电容充电GODONE=1;//AD转换开始while(GODONE==1)

4、;//等待AD转换结束ADIF=0;//清AD转换结束标志位X=0;X=ADRESH<<8;//X用来存AD转换结果X

5、=ADRESL;enable(0x80);//在LCD第一行显示if((X&0x0200)==0)//以下为分别判断X的第9位到第0位的状态,然后分别显示到LCD上,如为0则显示0,反之为1则显示1{write(0x30+0);}else{write(0x30+1);}if((X&0x0100)==0){write(0x30+0);}else{write(0x30+1);}if((X&0x0080)==0){write(0x30+

6、0);}else{write(0x30+1);}if((X&0X0040)==0){write(0x30+0);}else{write(0x30+1);}if((X&0x0020)==0){write(0x30+0);}else{write(0x30+1);}if((X&0x0010)==0){write(0x30+0);}else{write(0X30+1);}if((X&0x0008)==0){write(0x30+0);}else{write(0x30+1);}if((X&0x0004)==0){write(0x30+0);}else{wri

7、te(0x30+1);}if((X&0x0002)==0){write(0x30+0);}else{write(0X30+1);}if((X&0x0001)==0){write(0x30+0);}else{write(0X30+1);}//以上为LCD显示的10位转换结果Y=(int)(X/1023*5000);//Y用来存AD采样电压放大1000倍BCD(Y);//将Y转换为BCD然后送去给数码管显示A[0]=GW;//最先发的个位移到最后A[1]=SW;A[2]=BW;A[3]=QW;DISP_FOUR(A);//要根据LED的在板上的实际位置

8、,确定哪个是千位..个位}}voidCSH(void){TRISD=0;//D口输出PORTD=0;TRISB1=1;//RB1为通道10ANS10=1;//设为模拟口ADCON1=0b10000000;//AD结果右对齐TRISC=0b00010000;//RC3输出(SCK),RC4输入(SDI),RC5输出(SDO)SSPEN=1;//SPI串口使能CKP=1;//空闲时钟为高电平SSPM3=0;SSPM2=0;SSPM1=0;SSPM0=1;//SPI主控模式,时钟为fosc/16SMP=1;//在数据输出时间的末端采样输入数据CKE=0;

9、//在SCK上升沿传输数据}voiddisp_init()//LCD初始化{enable(0x02);//光标归零enab

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。