|
|
現(xiàn)在的情況是上電顯示00,按鍵無(wú)動(dòng)作,無(wú)法運(yùn)行,本人新手,請(qǐng)大神教下。
電路原理圖如下:
20190511130816.png (113.62 KB, 下載次數(shù): 36)
下載附件
2019-5-11 13:09 上傳
#include<a51.h>
#include<tm1650.h>
#define u8 unsigned char
#define u16 unsigned int
u8 b1,ss1,ss2,i,js;
bit dd;
sbit out=P3^5; ///輸出控制口
sbit s0=P3^0; ///啟動(dòng)鍵
sbit s1=P3^3; ///設(shè)置鍵
sbit s2=P3^4; ///減
sbit s3=P3^2; ///加
sbit ge=P3^7;
sbit shi=P3^1;
//uchar CODE[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //0~9顯示代碼
char code shu[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00}; //數(shù)碼管段碼
void delay(u16 q) //普通延時(shí)函數(shù)
{
char d;
while(q--)
for(d=123;d>0;d--);
}
void ZD_Init() //中斷初始化子函數(shù)
{
EA=1; //打開(kāi)總中斷開(kāi)關(guān)
ET0=1; //打開(kāi)定是器0開(kāi)關(guān)
TR0=0; //定時(shí)器0開(kāi)始工作
TMOD=0X01; //選擇定時(shí)器0工作模式1 16位定時(shí)器
TH0=(65536-30000)/256; //定時(shí)器高8位裝初值 定時(shí)50MS
TL0=(65536-30000)%256; //定時(shí)器低8位裝初值
}
void xianshi(u8 ss,u8 gg) //顯示函數(shù)
{
if(b1==2) //判斷各十位數(shù)閃爍標(biāo)志位
{
if(dd)
{
ss=10;
}
}
if(b1==1) //判斷各位數(shù)閃爍標(biāo)志位
{
if(dd)
{
gg=10;
}
}
P1=shu[ss]+0x80;
shi=1;
delay(2);
shi=0;
P1=shu[gg];
ge=1;
delay(2);
ge=0;
}
void jianpan() //鍵盤掃描子程序
{
if(s3==0) ///設(shè)置建
{
delay(5);
if(s3==0)
{
while(s3==0)xianshi(ss1,ss2); //松手檢測(cè)
b1++;
TR0=1;
if(b1>=3)
{
b1=0;
TR0=0;
}
}
}
if(b1!=0) ///判斷是否按下設(shè)置健
{
if(s2==0) ///加建
{
delay(5);
if(s2==0)
{
while(s2==0)xianshi(ss1,ss2); //松手檢測(cè)
if(b1==1) ////判斷各位數(shù)加
{
ss2++;
if(ss2==10)ss2=0;
}
if(b1==2) ///判斷十位數(shù)加
{
ss1++;
if(ss1==10)ss1=0;
}
}
}
if(s1==0) //減鍵
{
delay(5);
if(s1==0)
{
while(s1==0)xianshi(ss1,ss2); ///松手檢測(cè)
if(b1==1) ///判斷各位數(shù)減
{
ss2--;
if(ss2==255)ss2=9;
}
if(b1==2) ////判斷十位數(shù)減
{
ss1--;
if(ss1==255)ss1=9;
}
}
}
}
if(b1==0) ///啟動(dòng)電焊鍵
{
if(s0==0)
{
delay(5);
if(s0==0)
{
while(s0==0);
js=ss1*10+ss2;
if(js!=0)
{
TR0=1;
out=0;
}
}
}
}
}
void main()
{
ZD_Init(); //中斷初始化
while(1)
{//TM1650_Set(0x48,0x51);//為5級(jí)亮度,開(kāi)顯示八段顯示方式,后一個(gè)字節(jié)中高位用于亮度,低位用于七段或八段顯示方式和開(kāi)關(guān)顯示
//如:0x71為七級(jí)亮度,八段顯示方式,開(kāi)顯示;0x79為為七級(jí)亮度,七段顯示方式,開(kāi)顯示
//TM1650_Set(0x68,shu[xianshi(ss1)]);
//TM1650_Set(0x6A,shu[(xianshi(ss2)]);
TM1650_Set(0x6C,shu[ss2]);
TM1650_Set(0x6E,shu[ss1]);
//xianshi(ss1,ss2); //顯示子函數(shù)
jianpan(); //鍵盤子程序
}
}
void Time0() interrupt 1 using 0 //中斷函數(shù)
{
TH0=(65536-30000)/256; //定時(shí)器高8位裝初值 重裝初值
TL0=(65536-30000)%256; //定時(shí)器低8位裝初值 重裝初值
if(b1!=0)
{
i++;
if(i==10) //數(shù)碼管的閃爍
{
i=0;
dd=~dd;
}
out=1;
}
else
{
js--;
if(js==0) //點(diǎn)焊延時(shí)輸出
{
TR0=0;
out=1;
}
}
}
點(diǎn)焊機(jī).rar
(190.66 KB, 下載次數(shù): 32)
2019-5-11 13:03 上傳
點(diǎn)擊文件名下載附件
這是程序和電路
|
|