|
全部在壓縮包里面
51hei.gif (146.69 KB, 下載次數(shù): 0)
下載附件
2024-12-27 03:15 上傳
單片機(jī)源程序如下:- #include "reg52.h"
- #include "intrins.h"
- #include "onewire.h"
- sfr AUXR=0x8e;
- sbit S30=P3^0;unsigned int KEY_zhufan=0;
- sbit S31=P3^1;unsigned int KEY_dingshi=0;
- sbit S32=P3^2;unsigned int KEY_jia=0;
- sbit S33=P3^3;unsigned int KEY_jian=0;
- unsigned char SMG[10]={0x3f,0x06,0x5b,0x4f,0x66,
- 0x6d,0x7d,0x07,0x7f,0x6f};
- unsigned char SMG_DOT[10]={0xbf,0x86,0xdb,0xbf,0xe6,
- 0xed,0xfd,0x87,0xff,0xef};
- unsigned char WMG[6]={0xfe,0xfd,0xfb,0xf7,0XEF,0XDF};
- unsigned int temp;unsigned int decide_temp=30;
- unsigned int number=120;unsigned int frequency=0;
- void Delay(unsigned int t){
- while(t--);
- }
- void put_one(unsigned int pos,unsigned char dat){
- P2=WMG[pos];
- P0=dat;
- }
- void put_temp(){
- put_one(0,0x00);
- Delay(100);
- put_one(1,0x00);
- Delay(100);
- put_one(2,0x00);
- Delay(100);
- put_one(3,SMG[(temp/100)%10]);
- Delay(100);
- put_one(4,SMG[(temp/10)%10]);
- Delay(100);
- put_one(5,SMG[temp%10]);
- Delay(100);
- }
- void put_temp_dingshi(){
- put_one(0,SMG[(number/100)%10]);
- Delay(100);
- put_one(1,SMG[(number/10)%10]);
- Delay(100);
- put_one(2,SMG[number%10]);
- Delay(100);
- put_one(3,0x00);
- Delay(100);
- put_one(4,SMG[(temp/10)%10]);
- Delay(100);
- put_one(5,SMG[temp%10]);
- Delay(100);
- }
- void Delay_temp(unsigned int t){
- while(t--){
- put_temp();
- }
- }
- void DS28B20_temp(){
- unsigned char LSB,MSB;
-
- init_ds18b20();
- Write_DS18B20(0xcc);
- Write_DS18B20(0x44);
- Delay_temp(200);
- init_ds18b20();
- Write_DS18B20(0xcc);
- Write_DS18B20(0xbe);
-
- LSB=Read_DS18B20();
- MSB=Read_DS18B20();
- temp=MSB;
- temp=(temp<<8)|LSB;
- temp=temp*0.0625;
- }
- void DS28B20_temp_dingshi(){
- unsigned char LSB,MSB;
-
- init_ds18b20();
- Write_DS18B20(0xcc);
- Write_DS18B20(0x44);
- Delay(200);
- init_ds18b20();
- Write_DS18B20(0xcc);
- Write_DS18B20(0xbe);
-
- LSB=Read_DS18B20();
- MSB=Read_DS18B20();
- temp=MSB;
- temp=(temp<<8)|LSB;
- temp=temp*0.0625;
- }
- void put_number(){
- put_one(0,SMG[(number/100)%10]);
- Delay(100);
- put_one(1,SMG[(number/10)%10]);
- Delay(100);
- put_one(2,SMG[number%10]);
- Delay(100);
- put_one(3,0x00);
- Delay(100);
- put_one(4,0x00);
- Delay(100);
- put_one(5,0x00);
- Delay(100);
- }
- void Init_timer0(void)
- {
- AUXR &= 0x7F;
- TMOD &= 0xF0;
- TL0 = 0x00;
- TH0 = 0xDC;
- TF0 = 0;
- TR0=1;
-
- ET0=1;
- EA=1;
- }
- void Timer0_break()interrupt 1
- {
- frequency++;
- if(frequency==100*60){
- if(number==0){
- TR0=0;
- KEY_zhufan=0;KEY_dingshi=0;KEY_jia=0;KEY_jian=0;
- }
- if(number!=0){
- number--;
- frequency=0;
- }
- }
- }
- void OFF(){
- put_one(0,0x5c);//0101 1100
- Delay(100);
- put_one(1,0x71);
- Delay(100);
- put_one(2,0x71);
- Delay(100);
- put_one(3,0x00);
- Delay(100);
- put_one(4,0x00);
- Delay(100);
- put_one(5,0x00);
- Delay(100);
- }
- void KEY(){
- if(S30==0){
- Delay(30000);
- if(S30==1){
- KEY_zhufan=1;
- KEY_dingshi=0;
- KEY_jia=0;KEY_jian=0;
- }
- }
- if(S31==0){
- Delay(30000);
- if(S31==1){
- KEY_jia=0;KEY_jian=0;KEY_zhufan=0;
- KEY_dingshi=1;
- Init_timer0();
- }
- }
- if(S32==0){
- Delay(30000);
- if(S32==1){
- KEY_zhufan=0;KEY_dingshi=0;KEY_jian=0;
- number+=10;
- KEY_jia=1;
- }
- }
- if(S33==0){
- Delay(30000);
- if(S33==1){
- KEY_zhufan=0;KEY_dingshi=0;KEY_jia=0;
- number-=10;
- KEY_jian=1;
- }
- }
- }
- void main(){
- P1=0x7f;
- while(1){
- KEY();
- if(KEY_jia+KEY_jian+KEY_zhufan+KEY_dingshi==0){
- OFF();
- }
- if(KEY_jia==1||KEY_jian==1){
- put_number();
- }
- if(KEY_zhufan==1){
- DS28B20_temp();
- //put_temp();
- if(temp>=decide_temp){
- P1=0x3f; //0011 1111
- put_temp();
- KEY_zhufan=0;
- }
- if(temp<decide_temp){
- P1=0xff; //1111 1111
- put_temp();
- }
- }
- if(KEY_dingshi==1){
- DS28B20_temp_dingshi();
- if(temp>=decide_temp){
- P1=0x3f;
- put_temp_dingshi();
-
- }
- if(temp<decide_temp){
- P1=0xff;
- put_temp_dingshi();
-
- }
- }
-
- }
- }
復(fù)制代碼
|
-
-
仿真程序.7z
2024-12-27 03:16 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
103.1 KB, 下載次數(shù): 0, 下載積分: 黑幣 -5
代碼
評(píng)分
-
查看全部評(píng)分
|