單片機(jī)驅(qū)動數(shù)碼管顯示設(shè)計
圖6 |
現(xiàn)在讓我們把目標(biāo)文件"smg1.hex"燒寫到單片機(jī)中去,看看實際的效果吧,將ISP編程器硬件連接好(見下圖7)。
圖7:ISP |
將產(chǎn)品配套光盤中的“ISP編程器驅(qū)動軟件”文件夾復(fù)制到你電腦硬盤的D盤根目錄下,并將其目錄下的所有文件的只讀屬性去掉,具體操作如下:全選文件夾中的文件,鼠標(biāo)右鍵單擊出現(xiàn)文件屬性對話框,單擊“只讀”屬性前面復(fù)選框中的勾,使其只讀屬性去掉即可。然后雙擊文件夾中的“ISP編程器驅(qū)動軟件.exe”啟動編程軟件,點擊"文件",在打開文件的對話框中找到工程文件夾中的目標(biāo)文件"smg1.hex"打開即可,然后點擊“AUTORUN”將程序燒寫到單片機(jī)內(nèi)部(如下圖8)。
圖8:將程序燒寫到單片機(jī)內(nèi)部 |
燒寫完成了,把單片機(jī)從編程器中取出,然后插到S51增強(qiáng)型實驗板上,插上USB電源,看看顯示效果是不是和上面圖4顯示一樣,是否有一點點的成就感呀!初學(xué)者也許會問:數(shù)碼管顯示一個數(shù)字“6”就要15行程序,太復(fù)雜了?的確有點復(fù)雜了,在上面程序中為了顯示數(shù)字“6”,數(shù)碼管的段碼"b"、段碼"dp"輸出的是高電平,其它引腳輸出的是低電平,實際上從單片機(jī)的P0.0~P0.7輸出的是二進(jìn)制碼“10000010”,轉(zhuǎn)換成十六進(jìn)制為82H。因此,我們只要把所有要顯示的數(shù)字和字符的段碼根據(jù)硬件連接編制一個字形表,顯示時直接把相應(yīng)的字形碼送到P0口就可以了。
共陽LED數(shù)碼管字形(段碼)表 | ||||||||||
顯示數(shù)字 (字符) | P0.7 "dp" | P0.6 "g" | P0.5 "f" | P0.4 "e" | P0.3 "d" | P0.2 "c" | P0.1 "b" | P0.0 "a" | 二進(jìn)制代碼 | 十六進(jìn)制代碼 |
0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 11000000 | C0H |
1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 11111001 | F9H |
2 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 10100100 | A4H |
3 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 10110000 | B0H |
4 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 10011001 | 99H |
5 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 10010110 | 92H |
6 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 10000010 | 82H |
7 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 11111000 | F8H |
8 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 10000000 | 80H |
9 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 10010000 | 90H |
A | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 10001000 | 88H |
B | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 10000011 | 83H |
C | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 11000110 | C6H |
D | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 10100001 | A1H |
E | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 10000110 | 86H |
F | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 10001110 | 8EH |
H | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 10001001 | 89H |
O | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 11000000 | A3H |
P | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 10000100 | 8CH |
N | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 11001000 | C8H |
從上面表格中可以看到,顯示“6”的十六進(jìn)制段碼值為"82H",因此我們把剛才的程序修改一下,修改后的完整程序如下:
MAIN:MOV P0,#82H ;將數(shù)字"6"的段碼輸出到P0口
MOV P2,#0FEH;從P2口輸出數(shù)碼管選通代碼,即輸出二進(jìn)制“11111110”
AJMPMAIN;跳轉(zhuǎn)到開始重新進(jìn)行
END ;程序結(jié)束
手機(jī)電池相關(guān)文章:手機(jī)電池修復(fù)
單片機(jī)相關(guān)文章:單片機(jī)教程
單片機(jī)相關(guān)文章:單片機(jī)視頻教程
單片機(jī)相關(guān)文章:單片機(jī)工作原理
評論