找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2835|回復: 0
打印 上一主題 下一主題
收起左側(cè)

51單片機 點陣 電機 數(shù)碼管 鍵盤

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:262 發(fā)表于 2014-6-17 16:14 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
[size=13.333333969116211px]1)      單個按鍵與多個數(shù)碼管—點陣(位操作—輸入與字節(jié)操作—輸出)—動態(tài)
[size=13.333333969116211px]1.  多個按鍵 → 鍵盤與多個LED燈—最小系統(tǒng)—輸出擴展與掃描輸入口
[size=13.333333969116211px]a)       多個按鍵,單個LED燈—動態(tài)輸入—掃描函數(shù)
[size=13.333333969116211px]b)       多個按鍵,多個LED燈—動態(tài)—掃描函數(shù)—數(shù)組對照
[size=13.333333969116211px]c)         多個按鍵,多個LED燈—單數(shù)碼管—掃描函數(shù)—數(shù)組對照
[size=13.333333969116211px]d)       鍵盤,多個LED燈—單數(shù)碼管
[size=13.333333969116211px]2. 多個按鍵 鍵盤與多個LED燈最小系統(tǒng)輸出擴展與掃描輸入口
[size=13.333333969116211px]1)       多個按鍵,單個LED燈—動態(tài)輸入—掃描函數(shù)
[size=13.333333969116211px]2)       多個按鍵,多個LED燈—動態(tài)—掃描函數(shù)—數(shù)組對照
[size=13.333333969116211px]3)       多個按鍵,多個LED燈—單數(shù)碼管—掃描函數(shù)—數(shù)組對照
[size=13.333333969116211px]4)       鍵盤,多個LED燈—單數(shù)碼管
[size=13.333333969116211px]3.              多個按鍵 → 鍵盤、數(shù)碼管與點陣—最小系統(tǒng)—輸入與輸出掃描
[size=13.333333969116211px]a)         多個按鍵,多個LED燈—多數(shù)碼管—掃描函數(shù)—數(shù)組對照
[size=13.333333969116211px]b)        鍵盤,多個LED燈—單數(shù)碼管—掃描函數(shù)—數(shù)組對照
[size=13.333333969116211px]c)         多個按鍵,多個LED燈—單點陣—掃描函數(shù)—數(shù)組對照
[size=13.333333969116211px]d)        鍵盤,多個LED燈—多點陣—掃描函數(shù)—數(shù)組對照
[size=13.333333969116211px]2. 多個按鍵 鍵盤、數(shù)碼管與點陣最小系統(tǒng)輸入與輸出掃描
[size=13.333333969116211px]1) 多個按鍵,多個LED燈多數(shù)碼管掃描函數(shù)數(shù)組對照
[size=13.333333969116211px]LED燈是由發(fā)光二極管制成的,它的工作原理與標準或說普通二極管相同—單向?qū)щ娦浴⒍鄠發(fā)光二極管按照8字形安排,則構(gòu)成一個7段數(shù)碼管;按照米字形則構(gòu)成13段數(shù)碼管。后者在字節(jié)處理方面不是8的倍數(shù),則會帶來一些麻煩。前者雖缺一位,但加上小數(shù)點位則恰到好處。
[size=13.333333969116211px]
[size=13.333333969116211px]//源程序—4個一組的數(shù)碼管實現(xiàn):
[size=13.333333969116211px]#define LEDS 4
[size=13.333333969116211px]#include"reg51.h"
[size=13.333333969116211px]//led T選iffl1號
[size=13.333333969116211px]//unsigned char code Select[]={0x01,0x02,0x04,0x08,0x10,0x20};
[size=13.333333969116211px]unsigned char code Select[]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,};
[size=13.333333969116211px]unsigned char code LED_CODES[]=
[size=13.333333969116211px]{ 0xc0,0xF9,0xA4,0xB0,0x99,//0-4
[size=13.333333969116211px]0x92,0x82,0xF8,0x80,0x90,//5-9
[size=13.333333969116211px]0x88,0x83,0xC6,0xA1 ,0x86,//A,b,C,d,E
[size=13.333333969116211px]0x8E,0xFF,0x0C,0x89,0x7F,0xBF//F,空格,P,H,.,-
[size=13.333333969116211px]};
[size=13.333333969116211px]void main()
[size=13.333333969116211px]{
[size=13.333333969116211px]char i=0;
[size=13.333333969116211px]long int j;
[size=13.333333969116211px]long int n;
[size=13.333333969116211px]while(1)
[size=13.333333969116211px]{
[size=13.333333969116211px]P2=0;
[size=13.333333969116211px]P2=LED_CODES[n];
[size=13.333333969116211px]//P1=1;
[size=13.333333969116211px]P1=Select;
[size=13.333333969116211px]for(j=3000;j>0;j--); //該LED 模型靠脈沖點亮,第 i 位靠脈沖點亮后,會自動熄來頭。
[size=13.333333969116211px]//修改循環(huán)次數(shù),改變點亮下一位之前的延時,可得到不同的顯示效果。
[size=13.333333969116211px]i++;
[size=13.333333969116211px]if(i>5) i=0;
[size=13.333333969116211px]n++;
[size=13.333333969116211px]if(n>16) n=0;
[size=13.333333969116211px]}
[size=13.333333969116211px]}
[size=13.333333969116211px]
[size=13.333333969116211px]l  多數(shù)碼管循環(huán)移動
[size=13.333333969116211px]
[size=13.333333969116211px]#include
[size=13.333333969116211px]#include
[size=13.333333969116211px]#define uchar unsigned char
[size=13.333333969116211px]#define uint unsigned int
[size=13.333333969116211px]uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
[size=13.333333969116211px]0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};//0—F字符陽極管
[size=13.333333969116211px]uchar code DUA_CODE[]={0x08,0x04,0x02,0x01,0x08,0x04,0x02,0x01,
[size=13.333333969116211px]0x08,0x04,0x02,0x01,0x08,0x04,0x02,0x01};//右向左移動
[size=13.333333969116211px]uchar code DUA_CODE[]={0x01,0x02,0x04,0x08 };//左向右移動
[size=13.333333969116211px]
[size=13.333333969116211px]******關(guān)于移位函數(shù)的使用—P3=_crol_(P3,1);或P3=_cror_(P3,1);左右移位*******
[size=13.333333969116211px]//延時
[size=13.333333969116211px]void DelayMS(uint x)
[size=13.333333969116211px]{
[size=13.333333969116211px]uchar t;
[size=13.333333969116211px]while(x--) for(t=0;t<120;t++);
[size=13.333333969116211px]}
[size=13.333333969116211px]//主程序
[size=13.333333969116211px]void main()
[size=13.333333969116211px]{
[size=13.333333969116211px]uchar i;
[size=13.333333969116211px]while(1)
[size=13.333333969116211px]{
[size=13.333333969116211px]for(i=0;i<16;i++)
[size=13.333333969116211px]{
[size=13.333333969116211px]P2=0x00;
[size=13.333333969116211px]P2=DSY_CODE; //發(fā)送段碼
[size=13.333333969116211px]P3=DUA_CODE; //發(fā)送位碼  
[size=13.333333969116211px]DelayMS(10);
[size=13.333333969116211px]}
[size=13.333333969116211px]}
[size=13.333333969116211px]}
[size=13.333333969116211px]
[size=13.333333969116211px]2) 鍵盤,多個LED燈單數(shù)碼管掃描函數(shù)數(shù)組對照
[size=13.333333969116211px]
[size=13.333333969116211px]3) 多個按鍵,多個LED燈單點陣掃描函數(shù)數(shù)組對照
[size=13.333333969116211px]
[size=13.333333969116211px]4) 鍵盤與點陣
[size=13.333333969116211px]字母輸入與實現(xiàn)技術(shù)
[size=13.333333969116211px]文本顯示技術(shù)
[size=13.333333969116211px]多個LED燈,多個按鍵 鍵盤
[size=13.333333969116211px]A) 單“位”P口1位--單個燈位輸出,單個按鍵控制硬控制與軟控制
[size=13.333333969116211px]一個按鍵,一盞照明燈,一個繼電器。硬件接口問題—線路連接、硬件硬驅(qū)動問題(程序稱為軟驅(qū)動)。
[size=13.333333969116211px]說明:
[size=13.333333969116211px]硬件特性,驅(qū)動與控制信號,程序編寫
[size=13.333333969116211px]由繼電器引出的強電驅(qū)動電器的控制問題,如電動機交流電機、直流電機、步進電機、伺服電機;單項或多項
[size=13.333333969116211px]

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表