長沙市電子工業學校 劉國云
數碼顯示是《單片機編程控制技術》課程中必講的教學內容,同時也是難點內容。該內容之所以難,一是老師難教,二是學生難學,教學都難的癥結在于數碼顯示管的結構和顯示原理不便于直觀演示和觀察。老師用幾張PPT或幾幀動畫,可以把數碼顯示管的結構和顯示原理講清楚,部分學生也能聽懂,但由于缺乏體驗感,很難激發大部分學生的學習興趣和參與性,教學效果不很理想。筆者使用PROTEUS仿真軟件,用發光二極管設計了一個7字段數碼顯示管,并通過撥碼開關或單片機芯片實現數碼顯示功能,仿真電路如圖1所示。

圖1 用PROTEUS仿真軟件制作的數碼顯示管和控制電路
筆者首先演示講解了該數碼管的結構,并演示用兩個撥碼開關和單片機芯片控制數碼顯示的操作方法和效果,講解了數碼顯示管的極性、顯示原理和編程方法,吸引了學生的注意力、激發了探知欲。再組織學生仿真設計上述電路、操作控制數碼顯示,虛擬仿真和理實一體化體驗式學習,較好地提高了教學效果。現將制作和應用要點介紹如下。
首先要明確仿真電路的設計意圖,沒有目標,也就沒有設計的意義。該電路的設計意圖就是:直觀演示數碼管的結構、極性、數碼顯示原理、用開關或單片機控制數碼顯示的操作方法和編程方法,并讓學生通過體驗式學習,激發學習興趣和參與性,提高教學效果。為實現上述目標,我設計了上述電路。
筆者使用發光二極管拼成a、b、c、d、e、f、g7個字段,發光二極管有陽極和陰極兩個管腳,用A表示陽極、K表示陰極,陽極A和陰極K前面標字段符號,如字段A的陽極和陰極分別標為:AA、AK。構成字段的4個發光二極管不能串聯,只能并聯,原因是:5V電源無法驅動4個串聯的發光二極管。為減少連接線,采用了網絡標號。用網絡標號替代連接導線的另一個好處是方便驗證單片機不同端口的字段控制碼。學生通過制作數碼顯示管,記憶深刻的掌握了數碼顯示管的結構。
數碼顯示管有共陰極和共陽極兩種極性,學生應用撥碼開關進行仿真操作,學習如何根據數碼顯示管的極性連接電路的方法、控制數碼管線顯示不同數碼的操作方法和工作原理。比如:學生通過將圖中DSW1和DSW2中的7個撥碼開關全部接通和斷開,直觀明了地掌握什么是共陽極數碼顯示管及其接線方法。他們只要根據所需顯示的數碼,撥通DSW2中對應字段的控制開關,就可以實現數碼顯示,輕松地掌握了共陽極數碼顯示管的顯示原理。
本教學內容的重點是用單片機編程控制數碼顯示,在了解了數碼管的結構、極性、顯示原理后,再學習單片機控制數碼顯示的基礎編程就簡單多了。單片機控制字段的端口就相當于上述共陽極數碼管的字段控制開關DSW2,讓對應的輸出端口輸出低電平即可實現顯示。
電路采用80C52芯片P2端口控制數碼管的7個字段,用P3.0所接的按鈕做開關或單片機控制方式的選擇開關。默認為開關控制方式,每次按下切換為另一種控制方式。采用網絡標號連接電路,可以方便修改數碼管的極性和單片機控制端口,便于教師變化教學。
比如:要實現共陰極數碼管編程控制,只要將DSW2撥碼開關全部接地,DSW1全部斷開,將控制方式選擇為單片機控制即可實現其數碼顯示。單片機控制數碼顯示的基礎程序非常簡單,由于版面限制,筆者就不在此提供了。
數碼顯示基礎編程的難點就是根據單片機的字段控制端口,編寫十六進制控制段碼。筆者除了用上述仿真電路,還制作了表1,幫助學生根據數碼顯示管的極性,程式化地編寫控制段碼,取得了很好的效果。筆者通過修改仿真電路中數碼顯示管的極性及表1中的P2端口所連接的字段,輕松地進行舉一反三教學和學生練習。

表1 0-9數碼、P2真值表與十六進制段碼對應表
表1中,共陰極和共陽極數碼顯示管的字段控制碼存在逐位取反關系,筆者通過表2進一步總結了它們的和等于FF的關系,應用這種關系可以幫助我們在不了解數碼顯示管極性時,通過“~”指令或用FF減去該碼值,來獲得所需要的段碼。

表2 共陰極和共陽極段碼之間的關系對應表