完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
#include #include #define uchar unsigned char #define TRA4_H TRA4=1 #define TRA4_L TRA4=0;PRA4=0 //------------------------------------------------------- void reset(void); void write(uchar date); void get_tem(void); uint read(void); void disp(uchar num1,uchar num2,uchar num3,uchar num4); //------------------------------------------------------- const rom uchar sz[]={0x3f , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d ,0x7d , 0x07 , 0x7f , 0x6f}; const rom uchar sz1[]={0xbf , 0x86 , 0xdb , 0xcf , 0xe6 , 0xed ,0xfd , 0x87 , 0xff , 0xef}; uint temper; uchar a1,a2,a3,a4; //------------------------------------------------------- void main() { ADCON1=0b00001111; TRISD=0; PORTD=0x3f; TRA1=0; TRA2=0; TRA3=0; TRA5=0; while(1) { uchar num; get_tem(); for(num=20;num>0;num--) disp(a1,a2,a3,a4); } } //------------------------------------------------------ void reset(void) { uchar st=1; TRA4_H; Delay1TCY();Delay1TCY(); while(st) { TRA4_L; Delay100TCYx(75); TRA4_H; Delay10TCYx(75); if(PRA4==0) st=1; else st=0; Delay100TCYx(50); } } //----------------------------------------------------- void write(uchar date) { uchar i,temp; TRA4_H; Delay1TCY();Delay1TCY(); for(i=8;i>0;i--) { temp=date&0x01; TRA4_L; Delay10TCYx(4); if(temp==1) TRA4_H; Delay10TCYx(11); TRA4_H; date=date>>1; } } //---------------------------------------------------- uint read(void) { uint i,temp,date; date=0; for(i=16;i>0;i--) { date=date>>1; TRA4_H; Delay1TCY();Delay1TCY(); Delay1TCY();Delay1TCY(); TRA4_L; Delay10TCYx(2); TRA4_H; Delay10TCYx(1); if(PRA4) date=date|0x8000; Delay10TCYx(8); } return (date); } //---------------------------------------------------------- void get_tem(void) { float aaa; uchar tem1,tem2,num; reset(); write(0xCC); //复位 write(0x44); //温度转换 for(num=20;num>0;num--) disp(a1,a2,a3,a4); reset(); write(0xCC); write(0xBE); aaa=read()*6.25; temper=(int)aaa; a1=temper/1000; a2=temper%1000/100; a3=temper%100/10; a4=temper%10; } //----------------------------------------------------- void disp(uchar num1,uchar num2,uchar num3,uchar num4) { PORTD=sz[num4]; //显示第一个数码管 PRA1=1; Delay1KTCYx(1); PRA1=0; PORTD=sz[num3]; //显示第二个数码管 PRA2=1; Delay1KTCYx(1); PRA2=0; PORTD=sz1[num2]; //显示第三个数码管 PRA3=1; Delay1KTCYx(1); PRA3=0; PORTD=sz[num1]; //显示第四一个数码管 PRA5=1; Delay1KTCYx(1); PRA5=0; } //----------------------------------------------------- |
|
相关推荐
|
|
学习了
|
|
|
|
|
|
{:1:}
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
求解外围电路实现的是4脚给持续低电平复位并正常工作,高电平不工作的原因
2084 浏览 1 评论
3629 浏览 3 评论
PIC1946程序有一个变量在运行过程中恢复初始值其他变量保持不变
2336 浏览 2 评论
2763 浏览 0 评论
PIC16F1825的RC5引脚,在主程序中操作无效,在中断中可以改变是为什么?
4024 浏览 5 评论
972浏览 0评论
用XC8编译PIC18F25K80时提示下面Error,求怎么解决这个问题
6358浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-2 18:27 , Processed in 1.149566 second(s), Total 72, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号