![]() |
發布時間: 2019-7-9 23:44
正文摘要:這張是顯示的圖紙! 單片機源程序如下:#include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit led1=P3^3; sbit led=P1^5; sbit led2=P ... |
#include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit led1=P3^3; sbit led=P1^5; sbit led2=P3^6; sbit fan=P1^6; sbit ptc=P3^4; sbit we1=P2^6; sbit we2=P2^7; sbit we3=P2^1; sbit we4=P2^0; sbit we5=P2^2; sbit fm=P2^5; sbit sw1=P1^0; sbit sw2=P1^4; sbit sw3=P3^5; sbit sw4=P3^7; uchar code duma[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e }; uchar counter, time,time_counter, h; uchar i ; void delay(uint z); void delay(uint z) { while (z--); } void display(uchar mshi,uchar mge,uchar sge,uchar sshi,uchar hge,uchar hshi ) { mge=time_counter%10; mshi=time_counter/10; sge=time/10; sshi=time%10; hge=h/10; hshi=h%10; P0=0XFF; we1=0; we2=1; we3=1; we4=1; P0=duma[mge]; delay(100); P0=0XFF; we1=1; we2=0; we3=1; we4=1; P0=duma[mshi]; delay(100); P0=0XFF; we1=1; we2=1; we3=0; we4=1; P0=duma[sshi]; delay(100); P0=0XFF; we1=1; we2=1; we3=1; we4=0; P0=duma[sge]; delay(100); } void keypros() { if(sw1==0) { delay(10); if(sw1==0&&time!=60) { time+=1; fm=0; delay(10000); fm=1; delay(10000); while(!sw1); } } if(sw2==0) { delay(10); if(sw2==0&&time!=0) { time-=1; fm=0; delay(10000); fm=1; delay(10000); while(!sw2); } } if(sw3==0) { delay(10); if(sw3==0) { fm=0; delay(10000); fm=1; delay(10000); TR1=0; led=1; time=0; time_counter=0; fan=1; ptc=1; while(!sw3); } } if(sw4==0) { delay(10); if(sw4==0) { TR1=~TR1; led=~led; fm=0; delay(10000); fm=1; delay(10000); ptc=~ptc; fan=~fan; while(!sw4); } } } void init() { TMOD=0x10; TH1=0x4b; TL1=0x00; TR1=0; } void main() { init(); led2=0; while(1) { keypros(); if(TF1==1) { TF1=0; TH1=0x4b; TL1=0x00; counter++; } if(counter==20) { counter=0; time_counter++; led1=~led1; } if(time_counter==60) { time--; time_counter=0; } if(time==0) { TR1=0; led=1; led1=1; ptc=1; fan=1; time=60; } display(); } } 現 這個是正常顯示,,這個程序是60分鐘,倒計時,時間可以調,時間到停止輸出 LED1,FAN風扇,PTC加熱,都停止輸出,這個程序是用在艾灸上,謝謝大家指點!有你們真好! |
素還真.____ 發表于 2019-7-10 23:41 WE,就是位選信號。 |
hantu 發表于 2019-7-11 10:11 謝謝,上面的顯示函數寫成了靜態顯示了,改了動態就可以了, |
謝謝,知道了,謝謝 |
多只數碼管的顯示,一是要動態掃描,二是要消影。 |
你這個太亂了,一個注澤都沒,wea、web、wec也不知道是什么
你顯示完一個數碼管,要把位清0,不然一輪下來所有位都在顯示,會亂碼。 進位不知道你指的什么,counter, time,time_counter, h; 看不出來你這幾個變量的具體作用
|
顯示亂碼我知道了,是數碼管是共陽極的,我用的共陰極的表,才導致顯示亂碼,但這個顯示函數怎么寫,進位顯示數碼管, |