- 單片機C語言程序設(shè)計實訓(xùn)100例
- 彭偉編著
- 533字
- 2018-12-27 05:12:07
3.20 數(shù)碼管顯示撥碼開關(guān)編碼
撥碼開關(guān)常用于編碼設(shè)置或狀態(tài)設(shè)置,例如,多媒體教室常用的硬件廣播卡就是用撥碼開關(guān)來設(shè)置編碼的。本例用數(shù)碼管顯示當(dāng)前撥碼開關(guān)所設(shè)定的編碼,系統(tǒng)運行過程中如果改動撥碼設(shè)置,新的編碼會立即顯示在數(shù)碼管上。
本例電路如圖3-17所示。

圖3-17 數(shù)碼管顯示撥碼開關(guān)編碼電路
程序設(shè)計調(diào)試與實訓(xùn):
本例直接讀取連接在P1端口的撥碼開關(guān)編碼值,然后將其分解為3個數(shù)位并顯示在數(shù)碼管上。語句m = 0xFE用于設(shè)置數(shù)碼管位碼初值,即11111110,在for循環(huán)內(nèi)會進(jìn)行3次循環(huán)左移,m依次為11111101,11111011,11110111,這3個位碼中,0分別位于1,2,3位,這分別與4位數(shù)碼管的2,3,4位對應(yīng),因此所讀取的值會顯示在數(shù)碼管右3位上。
如果在系統(tǒng)運行時調(diào)整撥碼開關(guān),新的編碼會立即顯示在數(shù)碼管上。
讀者可修改本例,使3個數(shù)位從數(shù)碼管左邊開始顯示,同時將高位無效的0屏蔽。
源程序代碼:
//----------------------------------------------------------------- // 名稱: 數(shù)碼管顯示撥碼開關(guān)編碼 //----------------------------------------------------------------- // 說明: 系統(tǒng)顯示撥碼開關(guān)所設(shè)置的編碼000~255。 //----------------------------------------------------------------- #include <reg51.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned int //各數(shù)字的數(shù)碼管段碼 uchar code DSY_CODE[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //顯示緩沖 uchar DSY_Buffer[3] = {0,0,0}; //----------------------------------------------------------------- // 延時 //----------------------------------------------------------------- void DelayMS(uint x) { uchar i; while(x--) for(i = 0; i < 120; i++); } //----------------------------------------------------------------- // 主程序 //----------------------------------------------------------------- void main() { uchar i,m,Num; P0 = 0xFF; P2 = 0xFF; while(1) { m = 0xFE; //讀取撥碼開關(guān)的值 Num = P1; DSY_Buffer[0] = Num /100; DSY_Buffer[1] = Num /10 % 10; DSY_Buffer[2] = Num % 10; //刷新顯示在數(shù)碼管上 for(i = 0; i < 3; i++) { m = _crol_(m,1); P2 = m; P0 = DSY_CODE[ DSY_Buffer[i] ]; DelayMS(10); } } }
推薦閱讀
- Oracle從入門到精通(第3版)
- Flask Blueprints
- PHP+MySQL網(wǎng)站開發(fā)技術(shù)項目式教程(第2版)
- 高級C/C++編譯技術(shù)(典藏版)
- Swift細(xì)致入門與最佳實踐
- R語言:邁向大數(shù)據(jù)之路(加強版)
- Managing Microsoft Hybrid Clouds
- Distributed Computing in Java 9
- 寫給大家看的Midjourney設(shè)計書
- 數(shù)據(jù)分析與挖掘算法:Python實戰(zhàn)
- Hack與HHVM權(quán)威指南
- SaaS攻略:入門、實戰(zhàn)與進(jìn)階
- SQL Server 2014 Development Essentials
- 計算思維與Python編程
- 第五空間戰(zhàn)略:大國間的網(wǎng)絡(luò)博弈