完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
这个段选和位选为什么之定义了P2-6,P2-7,原理图怎么连!!!
/************************************************************************* 亲测可用,误差1-2摄氏度,元件是k型热电偶,51单片机,晶振11.0592,4位共阴数码管显示 **************************************************************************/ #include #include "intrins.h"//_nop_();延时函数用 #define uchar unsigned char //用uchar代替unsigned char,1字节0-255 #define uint unsigned int //用uint代替nsigned int,2字节0-26653 ***it SO=P1^0; //P1.0口与SO相连 ***it CS=P1^1; //P1.1口与CS相连 ***it SCK=P1^2; //P1.2口与SCK相连 ***it dula=P2^6;//段选 ***it wela=P2^7;//位选 uint j,h; float wendu;//4字节(6位数字) uint Re_Convert();//热电偶数据读取,返回温度 void Disp_temp();//温度显示 uchar qian=0,bai=0,shi=0,ge=0,xiao=0; uint P_Temp; uint temp; uchar code table3[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, //共阴数码管 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; void delay(unsigned int z)//延时 { unsigned int x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } uint Re_Convert() //热电偶数据读取,返回温度 { uchar i; unsigned long Temp_2; Temp_2=0; CS=1; SCK=0; _nop_();_nop_(); //这个_nop_()等效与汇编里面的NOP指令,也就是空一个机器周期, //在51单片机中_nop_()等于空12个时钟周期【即一个机器周期】 CS=0; for(i=0;i<16;i++)//16位数据读取 { Temp_2<<=1;//向右移一位 _nop_(); SCK=1;//上升 if(SO==1){Temp_2=Temp_2|0x01;} else Temp_2=Temp_2|0x00; _nop_(); SCK=0; _nop_(); } CS=1; //读取完后对CS置1进行温度转换!MAX6675的转换时间是典型值:0.17s,最大值0.22s。 Temp_2=Temp_2<<1; //向左移一位,取0-14位 Temp_2=Temp_2>>4; //向右移4位,取3-14位 Temp_2=Temp_2*10/4;//变换为温度值--每LSB代表0.25度,注意:在此处先乘了个10 return(Temp_2); } void Disp_temp()//温度显示 { uint temp; // wendu=Re_Convert();// 热电偶数据读取,返回温度 temp=wendu; xiao=temp%10; //取小数位数字 temp=temp/10; ge =temp%10;//取个位数字 temp=temp/10; shi =temp%10;//取十位数字 bai =temp/10;//去百位数字 //动态扫描显示各位数字 dula=0; P0=table3[bai]; dula=1; dula=0; wela=0; P0=0x7e; wela=1; wela=0; delay(1); dula=0; P0=table3[shi]; dula=1; dula=0; wela=0; P0=0x7d; wela=1; wela=0; delay(1); dula=0; P0=table3[ge]; dula=1; dula=0; wela=0; P0=0x7b; wela=1; wela=0; delay(1); dula=0; P0=table3[xiao]; dula=1; dula=0; wela=0; P0=0x77; wela=1; wela=0; delay(1); } void main()//主程序 { while(1) { for(j=250;j>0;j--) { if(j==250){wendu=Re_Convert();} // 热电偶数据读取,返回温度,每刷新250次(大约0.5秒)进行一次MAX6675的温度转换,MAX6675的转换时间典型值:0.17s,最大值0.22s。 Disp_temp(); //温度显示 } } } |
|
相关推荐
2个回答
|
|
位端口和段端口有类似573的扩展芯片
|
|
|
|
谢谢楼主分享,正在学习中。。。。。。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-shell脚本编写之变量
447 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-shell脚本编写之本地脚本的编写和执行
616 浏览 0 评论
【xG24 Matter开发套件试用体验】深入了解Silicon Labs xG24 Matter开发套件
749 浏览 0 评论
662 浏览 0 评论
688 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
10945 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-1 13:57 , Processed in 0.726809 second(s), Total 74, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191