找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3659|回復(fù): 5
收起左側(cè)

輸入2個(gè)模擬信號(hào),并對(duì)比大小 然后單片機(jī)處理

[復(fù)制鏈接]
ID:342352 發(fā)表于 2018-5-31 21:34 | 顯示全部樓層 |閱讀模式
12黑幣
程序接線如圖輸入2個(gè)模擬信號(hào),要求對(duì)比2個(gè)信號(hào)的大小。如果信號(hào)大小一致,則不顯示。若信號(hào)大小不一致,則開始計(jì)時(shí),并送入八段數(shù)碼管顯示小時(shí)和分鐘,同時(shí)LED燈亮。八段數(shù)碼管共陰極,要求用c語言匯編。(主要是自己編寫的程序有問題)感謝各位的幫助

QQ圖片20180531175639.png
回復(fù)

使用道具 舉報(bào)

ID:191165 發(fā)表于 2018-5-31 22:10 | 顯示全部樓層
把你的程序放上面看看
回復(fù)

使用道具 舉報(bào)

ID:342352 發(fā)表于 2018-6-1 08:55 | 顯示全部樓層
#include<reg51.h>
#include<absacc.h>
#define uchar unsigned char
#define uint unsigned int
#define IN0 XBYTE[0x7ff8]
sbit ad_busy=P3^3;
sbit led=P2^4;//LED端口定義
sbit Axs=P2^0; sbit Bxs=P2^1; sbit Cxs=P2^2;sbit Dxs=P2^3;//數(shù)碼管位選端口
char table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共陰極數(shù)碼管顯示編碼
unsigned int h,m,s,t,n,a;
void change(uchar idata*x)
{
uchar i;
uchar xdata*ad_adr;
ad_adr=&IN0;
for(i=0;i<2;i++)
{
*ad_adr=0;
i=i;
i=i;
while(ad_busy!=0);
x[i]=*ad_adr;
ad_adr++;
}
}
void YS(char hs)//延時(shí)函數(shù)
{
char hk;for(;hs>0;hs--)
{for(hk=200;hk>0;hk--);}
}
void DS(int xh,int xm) //顯示子函數(shù)
{
char d1,d2,d3,d4;
d1=(xh/1)%10; d2=(xh/10)%10;//分離小時(shí)
d3=(xm/1)%10; d4=(xm/10)%10;//分離分鐘
P1=table[d1];Cxs=0;YS(10);Cxs=1;//小時(shí)個(gè)位
P1=table[d2];Dxs=0;YS(10);Dxs=1;//小時(shí)十位
P1=table[d3];Axs=0;YS(10);Axs=1;//分鐘個(gè)位
P1=table[d4];Bxs=0;YS(10);Bxs=1;//分鐘十位
P1=0x80; P2=0x01; YS(10); P2=0x00;//小數(shù)點(diǎn)
}
void main(void)
{static uchar idata ad[10];
change(ad);

TH0=(65536-100)/256; TL0=(65536-100)%256;
TMOD=0x01; EA=1; ET0=1; TR0=1;//定時(shí)器初始化
a=ad[1]-ad[0];
while(1)
{
if(a==0){YS(10);if(a==0){h++;if(h>23){h=0;}}while(!a){DS(h,m);}}
if(a==0){YS(10);if(a==0){m++;if(m>59){m=0;}}while(!a){DS(h,m);}}
DS(h,m);//調(diào)用數(shù)碼管顯示函數(shù)
led=~led;
}
}

void int1() interrupt 1 //定時(shí)器中斷
{
TH0=(65536-100)/256; TL0=(65536-100)%256; n++;
if(n>1000){n=0;s++;}//如果達(dá)到一秒,秒加一
if(s>59){s=0;m++;}//如果達(dá)到一分,分加一
if(m>59){m=0;h++;}//如果達(dá)到一小時(shí),小時(shí)加一
if(h>23){h=0;}//如果達(dá)到24小時(shí),小時(shí)清零



這是我再網(wǎng)上半抄半寫的,A/D轉(zhuǎn)換采用的是查詢方式,數(shù)碼管同的是動(dòng)態(tài)顯示
回復(fù)

使用道具 舉報(bào)

ID:296837 發(fā)表于 2018-6-1 09:32 | 顯示全部樓層
占樓,表示你這個(gè)有點(diǎn)邏輯混亂啊,看不懂,你能不能把邏輯理順了
回復(fù)

使用道具 舉報(bào)

ID:303383 發(fā)表于 2018-6-1 10:01 | 顯示全部樓層
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
回復(fù)

使用道具 舉報(bào)

ID:342352 發(fā)表于 2018-6-1 11:08 | 顯示全部樓層
hk0506 發(fā)表于 2018-6-1 09:32
占樓,表示你這個(gè)有點(diǎn)邏輯混亂啊,看不懂,你能不能把邏輯理順了

主要邏輯是判斷輸入2個(gè)信號(hào)的大小是否相同,判斷大小不相同時(shí),計(jì)時(shí)器開始計(jì)時(shí)并送到八段數(shù)碼管顯示計(jì)時(shí)時(shí)間。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表