當前位置:首頁 » 課程大全 » 單片機簡易課程設計

單片機簡易課程設計

發布時間: 2020-11-28 00:05:41

Ⅰ 單片機課程設計:簡易數字鍾

20. 數字鍾[★]
1. 實驗任務

(1. 開機時,顯示12::00的時間開始計時;

(2. P0.0/AD0控制「秒」的調整,每按一次加1秒;

(3. P0.1/AD1控制「分」的調整,每按一次加1分;

(4. P0.2/AD2控制「時」的調整,每按一次加1個小時;

#include <AT89X51.H>
unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,0x00};
unsigned char dispbitcode[]={0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f};
unsigned char dispbuf[8]={0,0,16,0,0,16,0,0};
unsigned char dispbitcnt;

unsigned char second;
unsigned char minite;
unsigned char hour;
unsigned int tcnt;
unsigned char mstcnt;

unsigned char i,j;

void main(void)
{
TMOD=0x02;
TH0=0x06;
TL0=0x06;
TR0=1;
ET0=1;
EA=1;

while(1)
{
if(P0_0==0)
{
for(i=5;i>0;i--)
for(j=248;j>0;j--);
if(P0_0==0)
{
second++;
if(second==60)
{
second=0;
}
dispbuf[0]=second%10;
dispbuf[1]=second/10;
while(P0_0==0);
}
}
if(P0_1==0)
{
for(i=5;i>0;i--)
for(j=248;j>0;j--);
if(P0_1==0)
{
minite++;
if(minite==60)
{
minite=0;
}
dispbuf[3]=minite%10;
dispbuf[4]=minite/10;
while(P0_1==0);
}
}
if(P0_2==0)
{
for(i=5;i>0;i--)
for(j=248;j>0;j--);
if(P0_2==0)
{
hour++;
if(hour==24)
{
hour=0;
}
dispbuf[6]=hour%10;
dispbuf[7]=hour/10;
while(P0_2==0);
}
}
}
}
void t0(void) interrupt 1 using 0
{
mstcnt++;
if(mstcnt==8)
{
mstcnt=0;
P1=dispcode[dispbuf[dispbitcnt]];
P3=dispbitcode[dispbitcnt];
dispbitcnt++;
if(dispbitcnt==8)
{
dispbitcnt=0;
}
}
tcnt++;
if(tcnt==4000)
{
tcnt=0;
second++;
if(second==60)
{
second=0;
minite++;
if(minite==60)
{
minite=0;
hour++;
if(hour==24)
{
hour=0;
}
}
}
dispbuf[0]=second%10;
dispbuf[1]=second/10;
dispbuf[3]=minite%10;
dispbuf[4]=minite/10;
dispbuf[6]=hour%10;
dispbuf[7]=hour/10;

}

}

Ⅱ 單片機課程設計,哪個設計簡單

單片機課程設計,最簡單當然是最小系統,控制一個LED燈點亮或者閃爍。

Ⅲ 簡易頻率計設計(單片機課設)

要說也沒什麼難的,就是挺復雜,主要是輸入信號的電壓變化區間比較大,考慮的話那就要首先採集最高電壓峰值,然後轉換電平比較電壓值來實現進一步的頻率測量。如不考慮的話,電壓的量程范圍受 能測量 0.1V 的限制不能太高。不過你使用 較貴的 運放 可以忽略,比如 10元左右的 OP27。
使用 OP27 運放 正負5V 至 正負15V做電源 採用差分放大100或1000倍連接,輸入端採用10M歐及100K歐電阻分壓後分別輸入到差分放大電路的兩個輸入端,差分放大的特點是 正輸入 和負輸入 比較 誰電勢高輸出誰,正輸入電勢高輸出正並且放大100倍或1000倍電壓最高到運放源電壓正,負輸入電勢高則輸出負並且放大100倍或1000倍電壓最高到運放源電壓負。其實只需要再這里弄兩個光耦把正負運放源電壓變成 單片機的 高低電平就OK了。採用10M歐和100K歐電阻分壓後220V的交流電被分壓到2.2V差,0.1V 的電壓被分壓到 0.001V差,沒關系,我們的OP27能識別0.000002V的壓差。一個周期,兩個光耦會分別輸出一次低電平,取其中一個接入到I/O 口 做中斷,單片機調用自己定義的兩個地址B到兩個地址A並以兩個地址A內容循環刷顯數碼管以100mS做一個周期,循環結束時對自己定義的兩個地址B清零,中斷產生時兩個地址B加1,並注意進位。這樣一來,兩個地址B會在100mS內產生 一個周期加1的特點,如超過量程 自動跳轉到 10mS做周期的循環去,同理,,,,,,頻率越高就採用更短的循環周期。顯示這里用數組查表顯示即可。此法只可測頻率電壓范圍可以為1000V 到 10mV 。頻率視單片機的最高頻率而定可到M級單位。

Ⅳ 求一個簡單點的單片機課程設計實例

你是新學的嗎,那樣你可以用單片機編寫一個時鍾,可以加強一下中斷,定時器的用法,而且網上也有很多例子,可以參考。

Ⅳ 課程設計:用51單片機設計一個簡易計算器

『哦啦啦啊呀呀有個子系統好嗎啉了解我在不在』

Ⅵ 單片機課程設計

P1口接一個數碼管,一個按鍵可以接在P3.2作外部中斷。

Ⅶ 求一個簡單的89c51單片機課程設計 什麼設計都得不用太復雜...急急急急

/* 程序詳細功能介紹:
* 監視按鍵K5(接在P3.3埠上),用發光二極體L0(接在單片機P0.0埠上)顯示開關狀態,
* 如果按住按鍵,則L1亮;松開按鍵,則L1熄滅。
* 開關狀態的檢測過程
* 單片機對開關狀態的檢測相對於單片機來說,是從單片機的P3.3埠輸入信號,
* 而輸入的信號只有高電平和低電平兩種,當松開按鍵 K5 ,即輸入埠懸空為高電平
* 當按住按鍵 K5 ,按鍵被接到地,即輸入低電平
* 單片機可以採用JBBIT,REL或者是JNBBIT,REL指令來完成對開關狀態的檢測即可。
*/

#include <AT89X51.H>
sbit K1=P3^3;
sbit L1=P0^0;
void main(void)
{
while(1)
{
if(K1==0) // 如果K1=0,則燈亮
{
L1=0; //燈亮
}
else // K=1,則燈滅
{
L1=1; //燈滅
}
}
}

熱點內容
武漢大學學生會輔導員寄語 發布:2021-03-16 21:44:16 瀏覽:612
七年級學生作文輔導學案 發布:2021-03-16 21:42:09 瀏覽:1
不屑弟高考成績 發布:2021-03-16 21:40:59 瀏覽:754
大學畢業證會有成績單 發布:2021-03-16 21:40:07 瀏覽:756
2017信陽學院輔導員招聘名單 發布:2021-03-16 21:40:02 瀏覽:800
查詢重慶2018中考成績查詢 發布:2021-03-16 21:39:58 瀏覽:21
結業考試成績怎麼查詢 發布:2021-03-16 21:28:40 瀏覽:679
14中醫醫師資格筆試考試成績查分 發布:2021-03-16 21:28:39 瀏覽:655
名著賞析課程標准 發布:2021-03-16 21:27:57 瀏覽:881
北京大學商業領袖高端培訓課程 發布:2021-03-16 21:27:41 瀏覽:919