電子開發(fā)網(wǎng)

電子開發(fā)網(wǎng)電子設(shè)計(jì) | 電子開發(fā)網(wǎng)Rss 2.0 會(huì)員中心 會(huì)員注冊(cè)
搜索: 您現(xiàn)在的位置: 電子開發(fā)網(wǎng) >> 電子開發(fā) >> 單片機(jī) >> 正文

單片機(jī)的PO口和P2口的結(jié)構(gòu):八路鍵控?cái)?shù)碼管顯示制作,LED dispalyer

作者:佚名    文章來(lái)源:本站原創(chuàng)    點(diǎn)擊數(shù):    更新時(shí)間:2018-02-20

八路鍵控?cái)?shù)碼管顯示制作,LED dispalyer

關(guān)鍵字:單片機(jī)數(shù)碼管顯示電路

 
  通過(guò)制作《八路鍵控?cái)?shù)碼管》的實(shí)訓(xùn)項(xiàng)目學(xué)會(huì)單片機(jī)的PO口和P2口的結(jié)構(gòu)特點(diǎn)及數(shù)據(jù)的輸入/輸出使用方法、鍵盤輸入原理、數(shù)碼管顯示原理等知識(shí)點(diǎn),為以后制作多功能八路搶答器做好準(zhǔn)備。
  一、任務(wù)目標(biāo)
  
  使用八路直控鍵盤控制一位共陰極數(shù)碼管顯示數(shù)字。
  二、硬件電路設(shè)計(jì)
  
  1.顯示電路設(shè)計(jì)
  
  數(shù)碼管由8個(gè)發(fā)光二極管(以下簡(jiǎn)稱字段)構(gòu)成,通過(guò)不同的組合可用來(lái)顯示數(shù)字0—9、字符A~F、H、L、P、R、U、Y、符號(hào)“-”及小數(shù)點(diǎn)“.”。
 
  數(shù)碼管又分為共陰極和共陽(yáng)極兩種結(jié)構(gòu),如下左圖所示為共陰極數(shù)碼管的外型結(jié)構(gòu)示意圖。下右圖為共陰極數(shù)碼管的內(nèi)部結(jié)構(gòu)圖。
  共陰極數(shù)碼管的8個(gè)發(fā)光二極管的陰極(二極管負(fù)端)連接在一起。通常,共陰極接低電平(一般接地),其他管腳接段驅(qū)動(dòng)電路輸出端,當(dāng)某段驅(qū)動(dòng)電路的輸出端為高電平時(shí),則該端所連接的字段導(dǎo)通并點(diǎn)亮,根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字和字符。此時(shí),要求段驅(qū)動(dòng)電路能提供額定的段導(dǎo)通電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來(lái)確定相應(yīng)的限流電阻。
  我們知道單片機(jī)的PO口可以驅(qū)動(dòng)8個(gè)LS型TTL負(fù)載(低電平灌輸電流為3.2mA,高電平上拉電流為0)。因此我們選擇單片機(jī)的PO口作為共陰極數(shù)碼管的段驅(qū)動(dòng)電路輸出端,但是必須外接上拉電阻。數(shù)碼管顯示電路圖如下圖。
  現(xiàn)在只需要通過(guò)指令控制單片機(jī)的PO口輸出相應(yīng)的高低電平就可以控制數(shù)碼管顯示數(shù)字0~9。
  如:MOV PO,#06H;顯示數(shù)字1。
  MOV PO,#5BH;顯示數(shù)字2。
  數(shù)碼管字型編碼表如下表所示。
  2.鍵盤電路設(shè)計(jì)
  
  常見的鍵盤電路形式有直接編碼輸入鍵盤電路(簡(jiǎn)稱直控鍵盤)和矩陣鍵盤電路,直控鍵盤是直接用I/O口線構(gòu)成的單個(gè)按鍵電路,其特點(diǎn)是每個(gè)按鍵單獨(dú)占用一根I/O口線,每個(gè)按鍵的工作不會(huì)影響其它I/O口線的狀態(tài),直控鍵盤的典型電路如下圖所示。
  直控鍵盤電路配置靈活,軟件結(jié)構(gòu)簡(jiǎn)單,但每個(gè)按鍵必須占用一根I/O口線,因此,在按鍵較多時(shí),I/O口線浪費(fèi)較大,不宜采用,應(yīng)采用矩陣鍵盤,矩陣鍵盤就不詳細(xì)討論了。
  上圖中按鍵輸入均采用低電平有效,因?yàn)镻2口內(nèi)部自帶了上拉電阻,所以外電路可不接上拉電阻。
  3.八路鍵控?cái)?shù)碼管電路
  
  
  鍵盤電路作為單片機(jī)的輸入部分,數(shù)碼顯示電路作為單片機(jī)的輸出部分,由鍵盤電路通過(guò)單片機(jī)控制數(shù)碼管顯示電路的八路鍵控?cái)?shù)碼管電路設(shè)計(jì)如下圖。
 
 
 
三、程序設(shè)計(jì)
  
  1.?dāng)?shù)碼管工作原理分析
  
  本電路采用的是共陰極數(shù)碼管,接到單片機(jī)的PO口,現(xiàn)在只要向PO口輸出相應(yīng)的字型編碼就可以顯示相應(yīng)的數(shù)字。
  2.鍵盤工作原理分析
  
  P2口作為輸入口使用時(shí),要先向P2口寫入高電平后才能讀取到正確的輸入電平。在讀取電平的時(shí)候應(yīng)考慮下面幾點(diǎn):
 
  (1)檢測(cè)有無(wú)按鍵按下,并采取軟件措施,消除按鍵機(jī)械觸點(diǎn)抖動(dòng)的影響。一般采用軟件措施:在檢測(cè)到有按鍵按下時(shí),執(zhí)行一個(gè)10ms左右的延時(shí)子程序后,再檢測(cè)該鍵電平是否仍保持閉合狀態(tài)電平,若仍保持閉合狀態(tài)電平,則確認(rèn)該鍵處于閉合狀態(tài);同理,在檢測(cè)到該鍵釋放后,也應(yīng)采用相同的步驟進(jìn)行確認(rèn),從而可消除抖動(dòng)的影響。
  (2)有可靠的邏輯處理辦法。每次只處理一個(gè)按鍵,其間任何按鍵的操作對(duì)系統(tǒng)不產(chǎn)生影響,且無(wú)論一次按鍵時(shí)間有多長(zhǎng),系統(tǒng)僅執(zhí)行一次按鍵功能程序。
  (3)準(zhǔn)確輸出按鍵值(或鍵號(hào)),以滿足控制功能的要求。
  3.程序流程圖設(shè)計(jì)
  
  根據(jù)數(shù)碼管工作原理的分析和鍵盤工作原理的分析,我們?cè)O(shè)計(jì)的程序流程圖如下圖。
 
 
  4.程序設(shè)計(jì)
  
  本程序?qū)?huì)用到下面的條件跳轉(zhuǎn)指令:
  JZ REL;指令功能:A為0跳轉(zhuǎn)指令,既當(dāng)累加器A=OOH時(shí)跳轉(zhuǎn),否則順序執(zhí)行。
  其中REL是跳轉(zhuǎn)的相對(duì)偏移量,可以是正,向后跳,也可以是負(fù),向前跳,不過(guò)不能超過(guò)一個(gè)頁(yè)面。
  不過(guò)編程者經(jīng)常不寫實(shí)際偏移量而用標(biāo)號(hào)代替,編譯時(shí),軟件自動(dòng)算出當(dāng)前位置到目標(biāo)位置的偏移量。
  JB BIT.REL指令功能:指定位為1跳轉(zhuǎn)指令,即當(dāng)BIT=1時(shí)跳轉(zhuǎn),否則順序執(zhí)行。
  其中BIT是一個(gè)位變量,如P1.1,PSW.5等。
  ORG OOOOH;隨后的指令代碼從OOOOH單元開始存放。
  LJMP START;轉(zhuǎn)到標(biāo)號(hào)START處ORG 0030H;隨后的指令代碼從0030H單元開始存放。
  START:MOV P0,#OOH;關(guān)閉數(shù)碼管,不顯示任何內(nèi)容。
  SAOMIAO:MOV P2,#OFFH;對(duì)P2口所有位寫1,也就是處于讀狀態(tài),確保讀數(shù)正確。
  CLRA;對(duì)累加器A清零。
  MOV A,P2;第一次讀取P2口的數(shù)據(jù),并送入累加器A中。
  CPL A;對(duì)A按位取反,如果沒(méi)有鍵按下,A為OOH,如果有鍵按下,相應(yīng)的位為1。
  JZ SAOMIAO;如果A=OOH,說(shuō)明沒(méi)有鍵按下,跳到標(biāo)號(hào)SAOMIAO處繼續(xù)掃描。如果A不等于OOH,說(shuō)明有鍵按下,應(yīng)該調(diào)用10MS的延時(shí)去抖子程序。
  LCALL DELAY10MS;調(diào)用10MS的延時(shí)去抖子程序。
  MOVA,P2;第二次讀取P2口的數(shù)據(jù),并送入累加器A中。
  CPL A;對(duì)A按位取反,如果沒(méi)有鍵按下,A為OOH,如果有鍵按下,相應(yīng)的位為1。
  JZ SAOMIAO.;如果A=OOH,說(shuō)明沒(méi)有鍵按下,跳到標(biāo)號(hào)SAOMIAO處繼續(xù)掃描。如果A不等于OOH,說(shuō)明確實(shí)有鍵按下,順序執(zhí)行下面的程序,判斷是哪個(gè)鍵按下了。
  JB ACC.O,SZO;如果SO鍵按下,  則ACC.0=1,轉(zhuǎn)去執(zhí)行顯示數(shù)字0,否則順序執(zhí)行。
  JB ACC.1,SZ1;如果S1鍵按下,  則ACC.1=1,轉(zhuǎn)去執(zhí)行顯示數(shù)字1,否則順序執(zhí)行。
  JB ACC.2,SZ 2;如果S2鍵按下,  則ACC.2=1,轉(zhuǎn)去執(zhí)行顯示數(shù)字2,否則順序執(zhí)行。
  JB ACC.3,SZ 3;如果S3鍵按下,  則ACC.3=1,轉(zhuǎn)去執(zhí)行顯示數(shù)字3,否則順序執(zhí)行。
  JB ACC.4,SZ 4;如果S4鍵按下,  則ACC.4=1,轉(zhuǎn)去執(zhí)行顯示數(shù)字4,否則順序執(zhí)行。
  JB ACC.5,SZ 5;如果S5鍵按下,  則ACC.5=1,轉(zhuǎn)去執(zhí)行顯示數(shù)字5,否則順序執(zhí)行。
  JB ACC.6,SZ 6;如果S6鍵按下,  則ACC.6=1,轉(zhuǎn)去執(zhí)行顯示數(shù)字6,否則順序執(zhí)行。
  JB ACC.7,SZ 7;如果S7鍵按下,  則ACC.7=1,轉(zhuǎn)去執(zhí)行顯示數(shù)字7,否則順序執(zhí)行。
  LJMP SAOMJAO;跳轉(zhuǎn)到 SAOMJAO處繼續(xù)掃描。
  SZO:MOVPO,#3FH;顯示數(shù)字0。
  LJMPSAOMIAO;跳轉(zhuǎn)到SAOMIAO處繼續(xù)掃描按鍵。
  SZ1:MOVPO,#06H;顯示數(shù)字1。
  LJMPSAOMIAO;跳轉(zhuǎn)到SAOMIAO處繼續(xù)掃描按鍵。
  S22:MOVPO,#5BH;顯示數(shù)字2。
  LJMPSAOMIAO;跳轉(zhuǎn)到SAOMIAO處繼續(xù)掃描按鍵。
  S23:MOVPO,#4FH;顯示數(shù)字3。
  LJMPSAOMIAO:跳轉(zhuǎn)到SAOMIAO處繼續(xù)掃描按鍵。
  S24:MOVPO,#66H;顯示數(shù)字4。
  LJMPSAOMIAO:跳轉(zhuǎn)到SAOMIAO處繼續(xù)掃描按鍵。
  S25:MOVPO,#6DH;顯示數(shù)字5。
  LJMPSAOMIAO:跳轉(zhuǎn)到SAOMIAO處繼續(xù)掃描按鍵。
  S26:MOVPO,#7DH;顯示數(shù)字6。
  LJMPSAOMIAO;跳轉(zhuǎn)到SAOMIAO處繼續(xù)掃描按鍵。
  S27:MOVPO,#07H;顯示數(shù)字7。
  LJMPSAOMIAO:跳轉(zhuǎn)到SAOMIAO處繼續(xù)掃描按鍵。
DELAY10MS:MOVR7,#20;從本行開始,到RET結(jié)束,為10MS延時(shí)去抖子程序。
D1: MOV R6,#250
D2: DJNZ R6,D2
DJNZ R7,D1
RET
END
 
  四、制作步驟
  
  第一步:按照電路原理圖,列出器件清單,并購(gòu)買相應(yīng)的器件材料,正常的價(jià)格是20元以內(nèi)。
  第二步:焊接成電路板,具體步驟可以參考前面幾期的文章。
  第三步:使用Keil C51 uVision2編輯源程序,編譯源代碼并生成目標(biāo)程序代碼。再把目標(biāo)程序代碼通過(guò)編程器寫入到單片機(jī)芯片中。
  第四步:把單片機(jī)芯片插到“八路鍵控?cái)?shù)碼管電路”的緊鎖坐上,并通電、測(cè)試、觀察結(jié)果。按下SO到S7號(hào)按鍵時(shí),數(shù)碼管顯示立刻顯示數(shù)字0到7。如果同時(shí)按下2個(gè)按鍵,只會(huì)顯示編號(hào)小的數(shù)字。例如:如同時(shí)按下S5和S6,只會(huì)顯示按鍵編號(hào)為S5對(duì)應(yīng)的數(shù)字“5”,而不會(huì)顯示數(shù)字“6”。
  本功能的實(shí)現(xiàn)是為了以后我們制作八路搶答器,實(shí)踐當(dāng)中不會(huì)出現(xiàn)同時(shí)按下多個(gè)按鍵的可能性,總會(huì)有時(shí)間差異的。
 

Tags:單片機(jī),PO口,P2口,八路鍵控?cái)?shù)碼管  
責(zé)任編輯:admin
  • 上一篇文章:
  • 下一篇文章: 沒(méi)有了
  • 請(qǐng)文明參與討論,禁止漫罵攻擊,不要惡意評(píng)論、違禁詞語(yǔ)。 昵稱:
    1分 2分 3分 4分 5分

    還可以輸入 200 個(gè)字
    [ 查看全部 ] 網(wǎng)友評(píng)論
    關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
    返回頂部
    刷新頁(yè)面
    下到頁(yè)底
    晶體管查詢
    麻豆AV一区二区三区久久| 国产午夜亚洲精品不卡电影| 免费一级特黄欧美大片勹久久网| 亚洲欧美日韩综合精品网| 东北大坑第二部txt| 精品国产亚洲一区二区三区在线观看| 日本www在线观看| 国产嫩草在线观看| 九九久久精品无码专区| 黑白配hd视频| 明星ai人脸替换造梦在线播放 | 美美女高清毛片视频免费观看| 欧美成人精品第一区二区三区 | 国产激情一区二区三区在线观看 | 污视频在线看网站| 性初第一次电影在线观看| 国产AV寂寞骚妇| 东京无码熟妇人妻AV在线网址| 紧扣的星星完整版免费观看| 无码日韩人妻精品久久| 国产99久久久国产精品~~牛| 东京热加勒比无码少妇| 猫咪AV成人永久网站在线观看 | 男人和男人一起差差| 性色AV一区二区三区夜夜嗨| 国产国产人免费人成成免视频| 久久精品日日躁夜夜躁欧美| 色多多网站入口| 无码丰满熟妇浪潮一区二区AV| 四虎精品成人免费影视| 一级做a免费视频观看网站| 狠狠躁日日躁夜夜躁2022麻豆| 天天影院成人免费观看| 偷炮少妇宾馆半推半就激情| asspics美女裸体chinese| 欧美日韩一区二区视频图片| 在车上狠狠的吸她的奶| 亚洲精品国产首次亮相| 18精品久久久无码午夜福利| 日韩视频中文字幕专区| 国产另类ts人妖一区二区|