《單片機(jī)應(yīng)用技術(shù)課程整體教學(xué)設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《單片機(jī)應(yīng)用技術(shù)課程整體教學(xué)設(shè)計(jì)(39頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
.
《單片機(jī)應(yīng)用技術(shù)》
整體教學(xué)設(shè)計(jì)
(2015~ 2016學(xué)年第2學(xué)期)
課程名稱: 單片機(jī)應(yīng)用技術(shù)
所屬系部: 信息與智能工程系
制定人: 郭志勇 鞏雪潔
合作人: 李自成 張留忠
制定時(shí)間: 2016.1.16
安徽電子信息職業(yè)技術(shù)學(xué)院
一、課程基本信息
課程名稱:單片機(jī)應(yīng)用技術(shù)
課程代碼:085011
學(xué)分:6.5
學(xué)時(shí):90
授課時(shí)間:第2學(xué)期
授課對(duì)象:高職學(xué)生
課程類型:計(jì)算機(jī)控制技術(shù)等專業(yè)職業(yè)能力必修課
先修課程:計(jì)算機(jī)電路、C語言程序設(shè)計(jì)
后續(xù)課程:嵌入式系統(tǒng)、智能機(jī)器人
一、課程定位
本課程主要是以智能控制、智能電子產(chǎn)品、智能機(jī)器人工程項(xiàng)目為主線,采用企業(yè)真實(shí)工作任務(wù),通過“項(xiàng)目驅(qū)動(dòng)”教學(xué)模式,對(duì)國內(nèi)外廣泛應(yīng)用的MCS-51系列單片機(jī)的AT89S52單片機(jī)工作原理、應(yīng)用系統(tǒng)的剖析,使學(xué)生獲得有關(guān)單片機(jī)硬件、軟件的基本概念、基本知識(shí)和單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)編程入門知識(shí)以及用C語言進(jìn)行程序設(shè)計(jì)、運(yùn)行、調(diào)試等基本技能,培養(yǎng)學(xué)生分析問題和解決問題的能力。
1. 崗位分析:
本課程主要培養(yǎng)具有智能電子產(chǎn)品和智能控制設(shè)計(jì)、分析、調(diào)試和制作能力的技術(shù)技能型人才,可以從事智能電子產(chǎn)品和智能控制設(shè)計(jì)開發(fā)、生產(chǎn)、銷售與服務(wù)等相關(guān)工作,如圖1所示。
單片機(jī)應(yīng)用技術(shù)(專業(yè)技術(shù)課程)
計(jì)算機(jī)控制技術(shù)、物聯(lián)網(wǎng)應(yīng)用技術(shù)等相關(guān)專業(yè)
智能電子產(chǎn)品生產(chǎn)、銷售和服務(wù)
智能電子產(chǎn)品開發(fā)和智能控制
崗位群
專業(yè)
課程
圖1 課程與崗位
2. 課程分析:
本課程是計(jì)算機(jī)控制技術(shù)、物聯(lián)網(wǎng)應(yīng)用技術(shù)等相關(guān)專業(yè)的職業(yè)能力必修課程,是計(jì)算機(jī)控制技術(shù)專業(yè)核心課程。在計(jì)算機(jī)控制技術(shù)專業(yè)課程體系中,基于單片機(jī)應(yīng)用技術(shù)的課程結(jié)構(gòu)如圖2所示。
計(jì)算機(jī)應(yīng)用基礎(chǔ)
計(jì)算機(jī)電路
C語言程序設(shè)計(jì)
單片機(jī)應(yīng)用技術(shù)(核心課程)
嵌入式系統(tǒng)、智能移動(dòng)終端、智能機(jī)器人等專業(yè)課程
圖2 基于單片機(jī)應(yīng)用技術(shù)的課程結(jié)構(gòu)
位于最底層的是本課程的先修課程,也是專業(yè)基礎(chǔ)課程;本課程是專業(yè)核心課程;位于最上層的是本課程的后續(xù)課程,既專業(yè)課程?;趩纹瑱C(jī)應(yīng)用技術(shù)的課程結(jié)構(gòu)實(shí)現(xiàn)了無縫對(duì)接,同時(shí)也是我們學(xué)校其它相關(guān)專業(yè)的骨干課程,如嵌入式技術(shù)、電子信息工程技術(shù)、機(jī)電一體化、電氣自動(dòng)化、數(shù)控技術(shù)等專業(yè)都開設(shè)本課程。
二、課程目標(biāo)設(shè)計(jì)
總體目標(biāo):
學(xué)通過本課程的學(xué)習(xí),學(xué)生能熟練使用Proteus仿真軟件、C語言編程,能完成簡單的智能電子產(chǎn)品和智能控制設(shè)計(jì)開發(fā);能根據(jù)智能電子產(chǎn)品和智能控制設(shè)計(jì)要求進(jìn)行元器件焊接組裝、軟硬件調(diào)試;培養(yǎng)學(xué)生具有一定的創(chuàng)新思維能力,科學(xué)的工作方法和良好的職業(yè)道德意識(shí),為提高學(xué)生職業(yè)技能奠定良好基礎(chǔ)。
能力目標(biāo):
(1)會(huì)運(yùn)用keil集成開發(fā)環(huán)境,能用C語言編寫控制程序、下載調(diào)試、查閱幫助的技能;
(2)會(huì)運(yùn)用Proteus仿真軟件,在計(jì)算機(jī)上完成從單片機(jī)電路設(shè)計(jì)、調(diào)試與仿真運(yùn)行的技能;
(3)會(huì)智能電子產(chǎn)品、智能控制的開發(fā)流程和設(shè)計(jì)方法;
(4)能編制出智能電子產(chǎn)品、智能控制的總體設(shè)計(jì)方案;
(5)能根據(jù)智能電子產(chǎn)品、智能控制設(shè)計(jì)要求,完成元器件采購、焊接組裝、軟硬件調(diào)試;
(6)具備智能電子產(chǎn)品、智能控制的運(yùn)行維護(hù)、技術(shù)改造、生產(chǎn)管理崗位的能力。
知識(shí)目標(biāo):
(1)知道MCS-51單片機(jī)的組成、內(nèi)部結(jié)構(gòu)和引腳功能;
(2)會(huì)C51的C語言程序基本結(jié)構(gòu)、數(shù)據(jù)類型和基本語句;
(3)會(huì)C語言程序分析、應(yīng)用程序設(shè)計(jì)和中斷服務(wù)程序編寫;
(4)知道MCS-51單片機(jī)中斷的概念及中斷系統(tǒng);
(5)會(huì)靈活應(yīng)用MCS-51單片機(jī)的定時(shí)器/計(jì)數(shù)器;
(6)能應(yīng)用MCS-51單片機(jī)的I/O接口,完成顯示、鍵盤、D/A轉(zhuǎn)換、A/D轉(zhuǎn)換、串行通信的設(shè)計(jì)。
素質(zhì)目標(biāo):
(1)能制定出切實(shí)可行的工作計(jì)劃,提出解決實(shí)際問題的方法;
(2)具有對(duì)新知識(shí)、新技術(shù)的學(xué)習(xí)能力,通過不同途徑獲取信息的能力,以及對(duì)工作結(jié)果進(jìn)行評(píng)估的能力;
(3)具有決策能力,能記錄、收集、處理、保存各類專業(yè)技術(shù)的信息資料。
(4)具有良好的思想品德、敬業(yè)與團(tuán)隊(duì)精神及協(xié)調(diào)人際關(guān)系的能力;
(5)具有一定的語言和文字表達(dá)能力;
(6)具有科學(xué)的創(chuàng)新精神、決策能力和執(zhí)行能力;
(7)具有從事專業(yè)工作安全生產(chǎn)、環(huán)保、職業(yè)道德等意識(shí)。
職業(yè)技能證書要求:
本課程對(duì)應(yīng)的職業(yè)技能證書要求如表1所示。
表1 職業(yè)技能證書表
序號(hào)
職業(yè)資格名稱
頒證單位
等級(jí)
1
家用電子產(chǎn)品維修工
人力資源和社會(huì)保障部
中級(jí)
2
計(jì)算機(jī)裝調(diào)員
人力資源和社會(huì)保障部
中級(jí)
3
嵌入式單片機(jī)設(shè)計(jì)工程師
中國軟件行業(yè)協(xié)會(huì)嵌入式系統(tǒng)分會(huì)
中級(jí)
3、 課程內(nèi)容設(shè)計(jì):
本課程主要是以智能電子產(chǎn)品和智能控制工程項(xiàng)目為主線,采用企業(yè)真實(shí)工作任務(wù),通過Proteus仿真軟件設(shè)計(jì)和C語言編程,實(shí)現(xiàn)在計(jì)算機(jī)上完成從單片機(jī)電路設(shè)計(jì)、軟件設(shè)計(jì)、調(diào)試與仿真一氣呵成,同時(shí)在每個(gè)項(xiàng)目中融入了元器件焊接組裝、軟硬件調(diào)試,真正實(shí)現(xiàn)從概念到產(chǎn)品的完整設(shè)計(jì)與制作。
本課程內(nèi)容與職業(yè)崗位標(biāo)準(zhǔn)密切接軌,從職業(yè)崗位技能出發(fā),課程內(nèi)容分為技能基礎(chǔ)、技能提高和技能綜合應(yīng)用(即單片機(jī)項(xiàng)目開發(fā)實(shí)訓(xùn))三部分部分,其中技能綜合應(yīng)用是停課一周進(jìn)行,如圖3所示。
LED控制
模擬量輸入輸出設(shè)計(jì)
鍵盤控制電機(jī)方向轉(zhuǎn)速
LED循環(huán)點(diǎn)亮控制
數(shù)碼管顯示控制
鍵盤的設(shè)計(jì)與實(shí)現(xiàn)
定時(shí)器/計(jì)數(shù)器應(yīng)用
串行通信設(shè)計(jì)
按鍵設(shè)置液晶電子鐘
8路溫度采集監(jiān)控系統(tǒng)
點(diǎn)陣顯示設(shè)計(jì)與實(shí)現(xiàn)
單片機(jī)項(xiàng)目開發(fā)
技能基礎(chǔ)訓(xùn)練
技能提高訓(xùn)練
技能綜合訓(xùn)練
技術(shù)逐漸綜合
難度逐漸增加
圖3 課程內(nèi)容組織設(shè)計(jì)
總課時(shí)在90學(xué)時(shí)左右,用11個(gè)智能電子產(chǎn)品和智能控制項(xiàng)目作為載體組織教學(xué)內(nèi)容,將相關(guān)知識(shí)、能力要求貫穿于每個(gè)項(xiàng)目實(shí)踐中。
技能基礎(chǔ)模塊安排64學(xué)時(shí)左右,主要注重職業(yè)崗位的基本技能訓(xùn)練,使學(xué)生能完成簡單的智能電子產(chǎn)品設(shè)計(jì)制作和調(diào)試;技能提高模塊可以根據(jù)實(shí)際需要選擇項(xiàng)目,安排26學(xué)時(shí)左右,主要注重職業(yè)崗位的開發(fā)技能訓(xùn)練以及學(xué)生的課程設(shè)計(jì),使學(xué)生具有智能電子產(chǎn)品和智能控制開發(fā)制作和調(diào)試的能力。本課程內(nèi)容安排如表2所示。
表2 課程內(nèi)容安排表
序號(hào)
模塊(或子模塊)名稱
學(xué)時(shí)
1
技能基礎(chǔ)模塊(64學(xué)時(shí))
發(fā)光二極管LED控制
8
2
LED循環(huán)點(diǎn)亮控制
10
3
數(shù)碼管顯示控制
10
4
鍵盤的設(shè)計(jì)與實(shí)現(xiàn)
10
5
定時(shí)器/計(jì)數(shù)器綜合應(yīng)用
8
6
模擬量輸入輸出設(shè)計(jì)與實(shí)現(xiàn)
8
7
單片機(jī)串行通信設(shè)計(jì)與實(shí)現(xiàn)
10
8
技能提高模塊(任選)
鍵盤控制電機(jī)方向和轉(zhuǎn)速
8
9
按鍵設(shè)置液晶電子鐘
8
10
8路溫度采集監(jiān)控系統(tǒng)
8
11
點(diǎn)陣顯示設(shè)計(jì)與實(shí)現(xiàn)
10
合 計(jì)
90
4、 能力訓(xùn)練項(xiàng)目設(shè)計(jì)
學(xué)習(xí)情境
參考學(xué)時(shí)
情境名稱
情境描述
學(xué)習(xí)情境1
技能基礎(chǔ)部分
(1)知道單片機(jī)的組成、內(nèi)部結(jié)構(gòu)和引腳功能;
(2)知道C語言程序基本結(jié)構(gòu)、數(shù)據(jù)類型和基本語句;
(3)會(huì)C語言程序分析、應(yīng)用程序設(shè)計(jì)和中斷服務(wù)程序編寫;
(4)知道中斷的概念及MCS-51單片機(jī)的中斷系統(tǒng);
(5)會(huì)靈活使用定時(shí)器/計(jì)數(shù)器;
(6)會(huì)應(yīng)用I/O接口、顯示、鍵盤接口、D/A、A/D轉(zhuǎn)換接口、串行接口;
(7)能完成智能電子產(chǎn)品元器件焊接組裝、軟硬件調(diào)試。
64學(xué)時(shí)
學(xué)習(xí)情境2
技能提高部分
(1)會(huì)智能電子產(chǎn)品和智能控制電路設(shè)計(jì)以及實(shí)現(xiàn)的方法;
(2)會(huì)用C語言編寫智能電子產(chǎn)品和智能控制程序以及實(shí)現(xiàn)的方法;
(3)會(huì)編制智能電子產(chǎn)品和智能控制的系統(tǒng)總體設(shè)計(jì)方案;
(4)能根據(jù)產(chǎn)品系統(tǒng)設(shè)計(jì)方案和要求進(jìn)行元器件采購、焊接組裝、軟硬件調(diào)試;
(5)具備單片機(jī)技術(shù)應(yīng)用系統(tǒng)的系統(tǒng)維護(hù)、技術(shù)改造、運(yùn)行管理崗位的能力。
26學(xué)時(shí)
學(xué)習(xí)情境3
單片機(jī)項(xiàng)目開發(fā)實(shí)訓(xùn)部分.
通過單片機(jī)項(xiàng)目開發(fā)實(shí)訓(xùn)完成,學(xué)生能識(shí)別電子元器件,會(huì)電路板元器件焊接以及電路板調(diào)試,能完成單片機(jī)項(xiàng)目開發(fā)程序設(shè)計(jì),能完成單片機(jī)項(xiàng)目開發(fā)軟硬件運(yùn)行與調(diào)試。
停課一周
26學(xué)時(shí)
五、項(xiàng)目情境設(shè)計(jì)
學(xué)習(xí)情境1 參考學(xué)時(shí):64學(xué)時(shí)
學(xué)習(xí)目標(biāo):
(1)知道單片機(jī)的組成、內(nèi)部結(jié)構(gòu)和引腳功能;
(2)知道C語言程序基本結(jié)構(gòu)、數(shù)據(jù)類型和基本語句;
(3)會(huì)C語言程序分析、應(yīng)用程序設(shè)計(jì)和中斷服務(wù)程序編寫;
(4)知道中斷的概念及MCS-51單片機(jī)的中斷系統(tǒng);
(5)會(huì)靈活使用定時(shí)器/計(jì)數(shù)器;
(6)會(huì)應(yīng)用I/O接口、顯示、鍵盤接口、D/A、A/D轉(zhuǎn)換接口、串行接口;
(7)能完成智能電子產(chǎn)品元器件焊接組裝、軟硬件調(diào)試。
學(xué)習(xí)情境
教學(xué)方法和建議
子情境1
任務(wù)載體
采用“教、學(xué)、做”一體化教學(xué)方法模式。
項(xiàng)目的實(shí)施可采用小組合作的學(xué)習(xí)方法。
能完成單片機(jī)最小系統(tǒng)和輸出電路設(shè)計(jì),能應(yīng)用C語言程序完成單片機(jī)輸入輸出控制,實(shí)現(xiàn)對(duì)LED控制的設(shè)計(jì)、運(yùn)行及調(diào)試。
發(fā)光二極管LED控制
子情境2
任務(wù)載體
采用“教、學(xué)、做”一體化教學(xué)方法模式。
項(xiàng)目的實(shí)施可采用小組合作的學(xué)習(xí)方法。
能完成單片機(jī)的輸入輸出電路設(shè)計(jì),能應(yīng)用C語言程序完成單片機(jī)輸入輸出控制,實(shí)現(xiàn)對(duì)LED循環(huán)點(diǎn)亮控制的設(shè)計(jì)、運(yùn)行及調(diào)試。
LED循環(huán)點(diǎn)亮控制
子情境3
任務(wù)載體
采用“教、學(xué)、做”一體化教學(xué)方法模式。
項(xiàng)目的實(shí)施可采用小組合作的學(xué)習(xí)方法。
能熟練掌握單片機(jī)與數(shù)碼管的接口技術(shù),能完成單片機(jī)的數(shù)碼管動(dòng)態(tài)及靜態(tài)顯示電路設(shè)計(jì),能完成數(shù)碼管動(dòng)態(tài)和靜態(tài)顯示的C語言程序的設(shè)計(jì)、運(yùn)行及調(diào)試。
數(shù)碼管顯示控制
子情境4
任務(wù)載體
采用“教、學(xué)、做”一體化教學(xué)方法模式。
項(xiàng)目的實(shí)施可采用小組合作的學(xué)習(xí)方法。
能獨(dú)立完成單片機(jī)鍵盤電路的設(shè)計(jì),能使用C語言實(shí)現(xiàn)對(duì)鍵盤的掃描和按鍵識(shí)別控制程序的設(shè)計(jì)、運(yùn)行及調(diào)試。
鍵盤的設(shè)計(jì)與實(shí)現(xiàn)
子情境5
任務(wù)載體
采用“教、學(xué)、做”一體化教學(xué)方法模式。
項(xiàng)目的實(shí)施可采用小組合作的學(xué)習(xí)方法。
能完成單片機(jī)的定時(shí)器/計(jì)數(shù)器相關(guān)電路的設(shè)計(jì),能應(yīng)用C語言程序完成單片機(jī)定時(shí)器初始化及相關(guān)編程控制,實(shí)現(xiàn)對(duì)定時(shí)器應(yīng)用于相關(guān)電路的設(shè)計(jì)、運(yùn)行及調(diào)試。
定時(shí)/計(jì)數(shù)器綜合應(yīng)用
子情境6
任務(wù)載體
采用“教、學(xué)、做”一體化教學(xué)方法模式。
項(xiàng)目的實(shí)施可采用小組合作的學(xué)習(xí)方法。
能完成單片機(jī)與ADC0808/ADC0809模/數(shù)轉(zhuǎn)換芯片、DAC0832數(shù)/模轉(zhuǎn)換芯片的電路和C語言程序設(shè)計(jì),掌握ADC0808/ADC0809、DAC0832與單片機(jī)的連接及編程技能。
模擬量輸入輸出設(shè)計(jì)與實(shí)現(xiàn)
子情境7
任務(wù)載體
采用“教、學(xué)、做”一體化教學(xué)方法模式。
項(xiàng)目的實(shí)施可采用小組合作的學(xué)習(xí)方法。
通過串行通信基本知識(shí)和單片機(jī)串行通信基本原理的學(xué)習(xí),能夠掌握單片機(jī)點(diǎn)對(duì)點(diǎn)、點(diǎn)對(duì)多數(shù)據(jù)傳輸?shù)脑O(shè)計(jì)方法及編程方法。
單片機(jī)串行通信設(shè)計(jì)與實(shí)現(xiàn)
學(xué)習(xí)情境2 參考學(xué)時(shí):26學(xué)時(shí)
學(xué)習(xí)目標(biāo):
(1)會(huì)智能電子產(chǎn)品和智能控制電路設(shè)計(jì)以及實(shí)現(xiàn)的方法;
(2)會(huì)用C語言編寫智能電子產(chǎn)品和智能控制程序以及實(shí)現(xiàn)的方法;
(3)會(huì)編制智能電子產(chǎn)品和智能控制的系統(tǒng)總體設(shè)計(jì)方案;
(4)能根據(jù)產(chǎn)品系統(tǒng)設(shè)計(jì)方案和要求進(jìn)行元器件采購、焊接組裝、軟硬件調(diào)試;
(5)具備單片機(jī)技術(shù)應(yīng)用系統(tǒng)的系統(tǒng)維護(hù)、技術(shù)改造、運(yùn)行管理崗位的能力。
學(xué)習(xí)情境
教學(xué)方法和建議
子情境1
任務(wù)載體
采用“教、學(xué)、做”一體化教學(xué)方法模式。
項(xiàng)目的實(shí)施可采用小組合作的學(xué)習(xí)方法。
能利用AT89S52單片機(jī)及獨(dú)立鍵盤,通過C語言程序?qū)崿F(xiàn)鍵盤控制步進(jìn)電機(jī)和直流電機(jī)的速度和方向,完成單片機(jī)輸入輸出控制系統(tǒng)的設(shè)計(jì)、運(yùn)行及調(diào)試。
鍵盤控制電機(jī)方向和轉(zhuǎn)速
子情境2
任務(wù)載體
采用“教、學(xué)、做”一體化教學(xué)方法模式。
項(xiàng)目的實(shí)施可采用小組合作的學(xué)習(xí)方法。
能利用AT89S52單片機(jī)及RT12864液晶屏,通過按鍵設(shè)置液晶電子鐘電路設(shè)計(jì)、C語言程序設(shè)計(jì),完成按鍵設(shè)置液晶電子鐘的設(shè)計(jì)、運(yùn)行及調(diào)試。
按鍵設(shè)置液晶電子鐘
子情境3
任務(wù)載體
采用“教、學(xué)、做”一體化教學(xué)方法模式。
項(xiàng)目的實(shí)施可采用小組合作的學(xué)習(xí)方法。
能利用AT89S52單片機(jī)及DS18B20單總線數(shù)字傳感器,通過C語言程序?qū)崿F(xiàn)8路溫度采集監(jiān)控,完成單片機(jī)輸入輸出控制系統(tǒng)的設(shè)計(jì)、運(yùn)行及調(diào)試。
8路溫度采集監(jiān)控系統(tǒng)
子情境4
任務(wù)載體
采用“教、學(xué)、做”一體化教學(xué)方法模式。
項(xiàng)目的實(shí)施可采用小組合作的學(xué)習(xí)方法。
能完成點(diǎn)陣顯示電路設(shè)計(jì),充分理解電路中關(guān)于I/O擴(kuò)展、存儲(chǔ)擴(kuò)展和I2C總線等硬件電路的設(shè)計(jì)方法和原理,并能夠用C語言實(shí)現(xiàn)對(duì)點(diǎn)陣屏、I2C通訊總線的控制和對(duì)外擴(kuò)存儲(chǔ)的訪問,最終實(shí)現(xiàn)點(diǎn)陣屏漢字、日期和溫度顯示等功能。
點(diǎn)陣顯示設(shè)計(jì)與實(shí)現(xiàn)
學(xué)習(xí)情境3 參考學(xué)時(shí):26學(xué)時(shí)
學(xué)習(xí)目標(biāo):
通過單片機(jī)項(xiàng)目開發(fā)實(shí)訓(xùn)完成,學(xué)生能識(shí)別電子元器件,會(huì)電路板元器件焊接以及電路板調(diào)試,能完成單片機(jī)項(xiàng)目開發(fā)程序設(shè)計(jì),能完成單片機(jī)項(xiàng)目開發(fā)軟硬件運(yùn)行與調(diào)試。
學(xué)習(xí)情境
教學(xué)方法和建議
子情境1
任務(wù)載體
采用“教、學(xué)、做”一體化教學(xué)方法模式。
項(xiàng)目的實(shí)施可采用小組合作的學(xué)習(xí)方法。
(1)認(rèn)識(shí)電子元器件;
(2)電路設(shè)計(jì)及電子元器件焊接;
(3)編寫C語言程序及調(diào)試;
(4)系統(tǒng)整體調(diào)試。
(5)單片機(jī)項(xiàng)目開發(fā)實(shí)訓(xùn)任務(wù)考核
(1)火車站臺(tái)警戒系統(tǒng)驅(qū)動(dòng)板
(2)滾梯節(jié)能控制系統(tǒng)
(3)溫度控制語音播報(bào)系統(tǒng)
(4)門窗防盜系統(tǒng)
(5)智能超聲波測距系統(tǒng)
六、課程進(jìn)程表
見單片機(jī)應(yīng)用技術(shù)授課計(jì)劃。
7、 第一次課設(shè)計(jì)和最后一次課設(shè)計(jì)
項(xiàng)目一 發(fā)光二極管LED控制
1.1 工作模塊1 點(diǎn)亮一個(gè)LED(第一次課)
工作任務(wù):
使用AT89S52單片機(jī)的I/O引腳接發(fā)光二極管LED,通過C語言程序控制,點(diǎn)亮一個(gè)發(fā)光二極管。
終極目標(biāo):
能完成單片機(jī)最小系統(tǒng)和輸出電路設(shè)計(jì),能應(yīng)用C語言程序完成單片機(jī)輸入輸出控制,實(shí)現(xiàn)對(duì)LED控制的設(shè)計(jì)、運(yùn)行及調(diào)試。
促成目標(biāo):
1. 知道AT89S52單片機(jī)結(jié)構(gòu);
2. 知道AT89S52單片機(jī)的引腳功能;
3. 會(huì)AT89S52單片機(jī)最小系統(tǒng)電路設(shè)計(jì);
4. 會(huì)C語言基本構(gòu)成和基本語句;
5. 會(huì)利用單片機(jī)I/O口實(shí)現(xiàn)點(diǎn)亮一個(gè)LED。
教學(xué)方法:
采用“教、學(xué)、做”一體化教學(xué)方法模式,項(xiàng)目的實(shí)施可采用小組合作的學(xué)習(xí)方法。
教學(xué)設(shè)計(jì):
在工作模塊1點(diǎn)亮一個(gè)發(fā)光二極管中,用Proteus仿真軟件完成第一個(gè)單片機(jī)電路、用Keil C51完成第一個(gè)C語言LED控制程序;
通過“邊做邊學(xué)”,學(xué)習(xí)AT89S52單片機(jī)結(jié)構(gòu)、引腳功能,完成最小系統(tǒng)電路和LED電路設(shè)計(jì);
通過“邊做邊學(xué)”,學(xué)習(xí)基于單片機(jī)的C語言基本構(gòu)成和基本語句,完成單片機(jī)點(diǎn)亮一個(gè)LED的程序設(shè)計(jì)。
課時(shí):4學(xué)時(shí)
教學(xué)過程:
1.1.1 用Proteus設(shè)計(jì)第一個(gè)LED控制電路
Proteus是英國Labcenter Electronics公司開發(fā)的多功能EDA軟件。Proteus不僅是模擬電路、數(shù)字電路、模/數(shù)混合電路的設(shè)計(jì)與仿真平臺(tái),也是目前較先進(jìn)的單片機(jī)和嵌入式系統(tǒng)的設(shè)計(jì)與仿真平臺(tái)。它實(shí)現(xiàn)了在計(jì)算機(jī)上完成從原理圖與電路設(shè)計(jì)、電路分析與仿真、單片機(jī)代碼級(jí)調(diào)試與仿真、系統(tǒng)測試與功能驗(yàn)證到形成PCB的完整的電子設(shè)計(jì)、研發(fā)過程。
1.點(diǎn)亮一個(gè)LED電路
按照工作任務(wù)要求,點(diǎn)亮一個(gè)LED電路由AT89S52單片機(jī)最小系統(tǒng)和一個(gè)LED電路構(gòu)成。LED點(diǎn)亮電路設(shè)計(jì)如圖1-1所示。
圖1-1 LED點(diǎn)亮電路
在LED點(diǎn)亮電路中,LED的陽極通過220W限流電阻后連接到5V電源上,限流電阻在這里起到了限流的作用,使通過LED的電流被限制在十幾毫安左右。P1.0引腳接LED的陰極,P1.0引腳輸出低電平時(shí)對(duì)應(yīng)的LED點(diǎn)亮,輸出高電平時(shí)對(duì)應(yīng)的LED熄滅。
2.用Proteus仿真軟件完成點(diǎn)亮一個(gè)LED電路
用Proteus仿真軟件完成第一個(gè)LED控制電路,步驟如下:
(1)雙擊桌面上的ISIS 7 Professional圖標(biāo)或者單擊屏幕左下方的“開始”→“程序”→Proteus 7 Professional→ISIS 7 Professional,進(jìn)入Proteus ISIS集成環(huán)境;
(2)新建設(shè)計(jì)文件、設(shè)置圖紙尺寸、設(shè)置網(wǎng)格、保存設(shè)計(jì)文件為“點(diǎn)亮一個(gè)LED.DSN”;
(3)從Proteus元器件庫中選取元器件AT89S52也可用AT89C52代替(單片機(jī))、CRYSTAL(晶振)、CAP(電容)、CAP-ELEC(電解電容)、RES(電阻)、LED-RED(紅色發(fā)光二極管);
(4)按圖1-1所示放置元器件、編輯元器件、放置終端,然后進(jìn)行連線和屬性設(shè)置;
(5)最后進(jìn)行電氣規(guī)則檢測。單擊“工具”→“電氣規(guī)則檢查”命令,彈出檢查結(jié)果窗口,完成電氣檢測。若檢測出錯(cuò),根據(jù)提示修改電路圖并保存,直至檢測成功。
1.1.2 用Keil C51設(shè)計(jì)第一個(gè)C語言LED控制程序
Keil C51是德國Keil軟件公司開發(fā)的基于8051 內(nèi)核的微控制器軟件開發(fā)平臺(tái),是51系列單片機(jī)C語言軟件開發(fā)系統(tǒng),是目前開發(fā)8051 內(nèi)核單片機(jī)的主流工具。Keil C51軟件提供了豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,可以完成工程建立和管理、編譯、連接、目標(biāo)代碼的生成、軟件仿真和硬件仿真等完整的開發(fā)流程。
1.編寫點(diǎn)亮一個(gè)LED程序
由于P1.0引腳接LED的陰極,LED的陽極通過220限流電阻后連接到5V電源上,所以從P1.0引腳輸出低電平就可以點(diǎn)亮LED。“點(diǎn)亮一個(gè)LED”的C語言程序如下:
#include
//包含AT89X52.H頭文件
sbit LED=P1^0; //定義LED為P1.0引腳
void main (void)
{
LED=0; //P1.0引腳輸出低電平點(diǎn)亮LED
while(1);
}
程序編程說明:
(1)“#include ”語句是一個(gè)“文件包含”處理,是將AT89X52.H頭文件的內(nèi)容全部包含進(jìn)來。這里程序中包含AT89X52.H頭文件的目的是為了要使用P1^0這個(gè)符號(hào),即通知C編譯器,程序中所寫的P1^0是指AT89S52單片機(jī)的P1.0引腳。
(2)P1.0不能直接使用,這里用 “sbit LED=P1^0;”就是定義用符號(hào)LED來表示 P1.0 引腳,也可以起P1_0 或P10一類的名字。
(3)“LED=0;”語句是使P1.0引腳輸出低電平,點(diǎn)亮發(fā)光二極管LED。
(4)“while(1);”語句的表達(dá)式是1,也就是說while語句的表達(dá)式始終為真,進(jìn)入死循環(huán),LED始終點(diǎn)亮。
(5)Keil C 支持 C++風(fēng)格的注釋,可以用“//”進(jìn)行注釋,也可以用/*……*/進(jìn)行注釋。
2.建立第一個(gè)C程序項(xiàng)目
雙擊桌面上的Keil μVision2圖標(biāo)或者單擊屏幕左下方的“開始”→“程序”→Keil μVision2,進(jìn)入Keil μVision2集成開發(fā)環(huán)境。
(1)建立工程文件,選擇單片機(jī)。單擊“工程”→“新建工程”命令,在彈出的“新建工程”對(duì)話框中指定文件夾,輸入文件名“點(diǎn)亮一個(gè)LED”,單擊“保存”按鈕,在彈出的為目標(biāo)Target 1選擇設(shè)備對(duì)話框中選擇單片機(jī)型號(hào)(Atmel的89S52),單擊“確定”按鈕。
(2)建立源文件并加載。單擊 “文件”→“新建”命令,在文件編輯窗口輸入“點(diǎn)亮一個(gè)LED”的C語言源程序,單擊 “文件”→“保存”命令,在彈出的“另存”對(duì)話框中指定文件夾(一般與工程文件放在同一文件夾中),輸入文件名“點(diǎn)亮一個(gè)LED.c”(c為C語言源程序的后綴),單擊“保存”按鈕,完成源文件的建立。
在工程窗口中右擊Target 1文件夾下的Source Group 1文件夾后,單擊彈出菜單的AddFiels to Group‘Source Group 1’,在彈出的AddFiels to Group‘Source Group 1’對(duì)話框中將文件類型設(shè)為C Source file (*.c),單擊剛才保存的源文件名“點(diǎn)亮一個(gè)LED.c”,單擊Add按鈕再單擊“關(guān)閉”按鈕,完成源文件加載。
(3)設(shè)置工程的配置參數(shù)。在工程窗口中右擊Target 1文件夾,單擊彈出快捷菜單中的Options for Target‘Target 1’,在彈出的Options for Target‘Target 1’對(duì)話框中做以下設(shè)置:Target標(biāo)簽頁的晶振頻率欄設(shè)為12MHz,Output標(biāo)簽頁選中Create Hex Files復(fù)選框,其余采用默認(rèn)設(shè)置。單擊“確定”按鈕,完成配置參數(shù)設(shè)置。
(4)進(jìn)行編譯和連接。單擊“工程”→“構(gòu)造目標(biāo)”,完成編譯,生成名為“點(diǎn)亮一個(gè)LED.hex”的HEX文件。通過輸出窗口查看編譯信息,若提示出錯(cuò),雙擊輸出窗口的出錯(cuò)信息行,文件編輯窗口中出錯(cuò)指令所在行左側(cè)會(huì)有箭頭提示,逐個(gè)排除錯(cuò)誤后重新編譯。
(5)進(jìn)入調(diào)試模式,打開P1口對(duì)話框。在調(diào)試模式中,單擊 “外圍設(shè)備”→I/O-Ports→Port 1,打開P1口對(duì)話框。
(6)全速運(yùn)行程序。單擊“調(diào)試”→“運(yùn)行到”或調(diào)試工具欄的“運(yùn)行”按鈕,通過P1口對(duì)話框觀察P1.0引腳是否輸出低電平,打勾為高電平,不打勾則為低電平,Pins為引腳的狀態(tài)。
1.1.3 用Proteus仿真運(yùn)行調(diào)試
1.加載“點(diǎn)亮一個(gè)LED.hex ”目標(biāo)代碼文件
首先打開Proteus的“點(diǎn)亮一個(gè)LED”電路,然后雙擊單片機(jī)AT89S52,在彈出的“編輯元件”對(duì)話框中單擊Program File欄的“打開”按鈕,在彈出的“選擇文件名”對(duì)話框中找到前面編譯生成的“點(diǎn)亮一個(gè)LED.hex”文件,單擊“打開”按鈕,完成“點(diǎn)亮一個(gè)LED.hex ”文件的加載。同時(shí)將Clock Frequency欄中的頻率設(shè)為12MHz,單擊“確定”按鈕,即可完成加載目標(biāo)代碼文件。
2.仿真運(yùn)行調(diào)試
(1)單擊仿真工具欄的“單步運(yùn)行”按鈕,進(jìn)入單步運(yùn)行狀態(tài)。單擊“調(diào)試”→8051 CPU Registers,單擊“調(diào)試”→8051 CPU SFR Memory,分別打開工作寄存器窗口和特殊功能寄存器窗口。單擊源代碼調(diào)試窗口的“單步執(zhí)行”按鈕一次,執(zhí)行一條指令,通過各調(diào)試窗口觀察每條指令執(zhí)行后數(shù)據(jù)處理的結(jié)果,以加深對(duì)硬件結(jié)構(gòu)和指令的理解。
(2)單擊仿真工具欄的“運(yùn)行”按鈕,單片機(jī)全速運(yùn)行程序,對(duì)“點(diǎn)亮一個(gè)LED”進(jìn)行Proteus仿真運(yùn)行。在編輯區(qū)“點(diǎn)亮一個(gè)LED”電路中,可以看到接在P1.0引腳上的LED被點(diǎn)亮,同時(shí)在打開的工作寄存器窗口和特殊功能寄存器窗口中也能看到P1口為0xFE,即P1.0引腳為低電平,其他引腳都為高電平。
【技能訓(xùn)練1-1】單片機(jī)最小系統(tǒng)應(yīng)用——開關(guān)控制LED點(diǎn)亮
模塊1是通過程序使P1.0引腳輸出低電平來點(diǎn)亮LED的。在這里如果通過開關(guān)控制LED點(diǎn)亮,那么如何實(shí)現(xiàn)呢?
1.電路設(shè)計(jì)
開關(guān)控制LED點(diǎn)亮是AT89S52單片機(jī)的一種最簡單電路,它包含3個(gè)部分:單片機(jī)最小系統(tǒng)、輸入電路和輸出電路。單片機(jī)最小系統(tǒng)由AT89S52單片機(jī)、晶振電路和上電復(fù)位電路構(gòu)成。輸入部件是開關(guān)SW,輸出部件是LED,如圖1-2所示。由于只使用內(nèi)程序存儲(chǔ)器,AT89S52的EA端接電源正端。
圖1-2 開關(guān)控制LED點(diǎn)亮電路
2.程序設(shè)計(jì)
(1)開關(guān)控制點(diǎn)亮LED分析。
開關(guān)閉合:P1.0=0,LED點(diǎn)亮;開關(guān)斷開:P1.0=1,LED熄滅。流程圖如圖1-3所示。
圖1-3 開關(guān)控制點(diǎn)亮LED流程圖
(2)編寫開關(guān)控制LED點(diǎn)亮程序。
#include //包含AT89X52.H頭文件
sbit SW=P3^0; //定義SW是P3.0位對(duì)應(yīng)的引用符號(hào)
sbit LED=P1^0; //定義LED是P1.0位對(duì)應(yīng)的引用符號(hào)
void main (void)
{
while(1)
{
if(SW==0)
LED=0; //開關(guān)閉合SW=0:P1.0=0,LED點(diǎn)亮
else
LED=1; //開關(guān)斷開SW=1:P1.0=1,LED熄滅
}
}
【焊接制作訓(xùn)練】單片機(jī)最小系統(tǒng)和LED電路的制作與調(diào)試
1.制作任務(wù)
在萬能板上,焊接制作AT89S52單片機(jī)最小系統(tǒng)以及LED電路,并通過ISP接口下載程序,實(shí)現(xiàn)LED點(diǎn)亮和閃爍功能。
2.制作目的
(1)了解單片機(jī)最小系統(tǒng)制作過程,掌握電子元器件檢測、識(shí)別和焊接方法及硬件電路關(guān)鍵點(diǎn)測試方法。
(2)學(xué)會(huì)用ISP軟件加載程序到AT89S52單片機(jī)芯片,觀察LED運(yùn)行情況是否與設(shè)計(jì)功能相符,并掌握基本的調(diào)試手段和方法。
3.制作過程
焊接單片機(jī)最小系統(tǒng)和LED電路的元器件如表1-1所示。
表1-1 單片機(jī)最小系統(tǒng)和LED電路元件清單
元件注釋
封裝
數(shù)量
元件注釋
封裝
數(shù)量
單片機(jī)AT89S52
PDIP
1
輕微按鍵
SW
1
晶振11.0592M
JZ
1
電阻10K
AXIAL0.3
1
瓷片電容104
RAD0.1
2
電阻1K
AXIAL0.3
1
電解電容10μF
RAD0.1
1
LED
LED-1
1
IC插座
DIP40
1
根據(jù)“工作模塊1”圖1-1所示電路圖,完成單片機(jī)最小系統(tǒng)和LED電路電路焊接制作。焊接電子元器件原則是由小到大、由矮到高,首先焊接電阻、電容、發(fā)光二極管,然后焊接按鍵、晶振,最后焊接IC插座、接線端子。焊接好的電路板如圖1-4所示。
圖1-4 單片機(jī)最小系統(tǒng)和LED電路實(shí)物照片
元器件焊接時(shí)注意事項(xiàng)如下:
(1)電解電容(瓷片電容不分正負(fù)極)、發(fā)光二極管都具有一長一短兩個(gè)引腳,長腳為正極、短腳為負(fù)極。
(2)焊接底座時(shí)要先焊接兩個(gè)對(duì)角引腳,將其固定在線路板子上,防止底座焊接不平,然后焊接其它引腳。底座焊接完后,將單片機(jī)芯片兩排引腳分別向內(nèi)側(cè)壓一下,以便插入芯片底座。
(3)晶振電路盡量靠近單片機(jī)芯片進(jìn)行焊接,以減少寄生電容,更好地保證振蕩器穩(wěn)定和可靠地工作。選用復(fù)位電路所使用的開關(guān)時(shí),最好選用點(diǎn)觸開關(guān),便于操作。
(4)焊接后,元器件外觀要整齊、焊點(diǎn)要飽滿(防止虛焊)、引腳不宜過高。在放置元器件時(shí),還要考慮為方便以后開發(fā),在線路板上預(yù)留一定空間。
4.硬件檢測與調(diào)試
(1)上電前,檢測單片機(jī)VCC 和GND 是否短路。上電后,檢測單片機(jī)40腳和20腳之間是否有5V電壓。
(2)檢測晶振兩端(第18-19引腳)電壓是否為0.5-1.6V,如果有則說明晶振電路工作正常。
(3)按下復(fù)位按鍵,檢測第9腳的電壓是否會(huì)變化。如果按鍵沒有按下時(shí)電壓為0V,按鍵按下后電壓立刻變?yōu)?V,之后很快降為0V,則表示復(fù)位電路正常。
5.軟件下載與調(diào)試
通過ISP下載器把“項(xiàng)目一LED控制.hex”文件燒入單片機(jī)芯片中,如果LED運(yùn)行結(jié)果與設(shè)計(jì)功能相符,說明上面焊接過程和程序均正常,否則需進(jìn)行調(diào)試,直到功能實(shí)現(xiàn)。軟件下載、調(diào)試步驟如下:
(1)首先在計(jì)算機(jī)上打開Easy 51Pro.exe,出現(xiàn)如圖1-5所示主窗口畫面。點(diǎn)擊右下角的設(shè)置按扭,彈出如圖1-6所示程序燒錄界面,在編程器類型中設(shè)置選擇“使用Easy ISP下載線”。
圖1-5 ISP下載器主窗口 圖1-6 ISP下載線設(shè)置界面
(2)把下載器的8P的排線和單片機(jī)的ISP下載接口相接,另一端連接到PC機(jī)。接著在燒錄界面中選擇實(shí)際要燒錄的芯片型號(hào)(AT89S52),再點(diǎn)擊“檢測器件”的按鈕看是否可以檢測到所燒錄的目標(biāo)芯片。
(3)單擊“自動(dòng)打開文件”按鈕,選擇需要下載的程序HEX文件,可以一步一步的手動(dòng)完成,也可以點(diǎn)擊“自動(dòng)完成”后,就會(huì)一項(xiàng)一項(xiàng)的往下進(jìn)行,燒錄完成就可以運(yùn)行實(shí)驗(yàn)程序了。
上電后,即可觀察到LED能點(diǎn)亮或閃爍,直到電源關(guān)閉才能熄滅。
教學(xué)小結(jié):
1.Proteus能在計(jì)算機(jī)上完成從原理圖與電路設(shè)計(jì)、電路分析與仿真、單片機(jī)代碼級(jí)調(diào)試與仿真、系統(tǒng)測試與功能驗(yàn)證到形成PCB的完整的電子設(shè)計(jì)、研發(fā)過程。
2.Keil C51是基于8051內(nèi)核的微控制器軟件開發(fā)平臺(tái),是51系列單片機(jī)C語言軟件開發(fā)系統(tǒng)。可以完成工程建立和管理、編譯、連接、目標(biāo)代碼的生成、軟件仿真和硬件仿真等完整的開發(fā)流程。
3.單片機(jī)主要應(yīng)用在家用電器、智能卡、智能儀器儀表、網(wǎng)絡(luò)與通信以及工業(yè)控制等方面。
4.AT89S52單片機(jī)最小系統(tǒng)就是指由單片機(jī)和一些基本的外圍電路所組成的一個(gè)可以工作的單片機(jī)系統(tǒng)。一般來說,它包括單片機(jī)、電源、晶振電路和復(fù)位電路。
5.“#include ”語句是一個(gè)“文件包含”處理,是將AT89X52.H頭文件的內(nèi)容全部包含進(jìn)來。 “sbit LED=P1^0;” 語句是定義用符號(hào)LED來表示 P1.0 引腳。Keil C支持C++風(fēng)格的注釋,可以用“//”進(jìn)行注釋,也可以用/*……*/進(jìn)行注釋。
【問題與討論】
1-1 簡述Keil C51和Proteus軟件的主要功能。
1-2 簡述單片機(jī)的主要應(yīng)用領(lǐng)域。
1-3 簡述單片機(jī)的主要特點(diǎn)。
1-4 單片機(jī)最小系統(tǒng)由哪幾部分組成?現(xiàn)要求LED的陽極接在P1.0引腳上,請(qǐng)完成LED點(diǎn)亮電路及其C語言程序設(shè)計(jì)。
項(xiàng)目十一 點(diǎn)陣顯示設(shè)計(jì)與實(shí)現(xiàn)
11.2 工作模塊28 1632LED點(diǎn)陣顯示設(shè)計(jì)(最后一次課)
工作任務(wù):
利用AT89S52單片機(jī)及88點(diǎn)陣顯示模塊,完成1632點(diǎn)陣顯示電路設(shè)計(jì),采用逐列掃描方法,用C語言程序?qū)崿F(xiàn)1632點(diǎn)陣分屏顯示和移動(dòng)顯示4個(gè)漢字。
終極目標(biāo):
能利用AT89S52單片機(jī)及88點(diǎn)陣顯示模塊,完成1632點(diǎn)陣顯示電路設(shè)計(jì),充分理解電路中關(guān)于I/O擴(kuò)展等硬件電路的設(shè)計(jì)方法和原理,能夠用C語言程序?qū)崿F(xiàn)1632點(diǎn)陣分屏顯示和移動(dòng)顯示漢字等功能,完成1632點(diǎn)陣顯示的設(shè)計(jì)、運(yùn)行及調(diào)試。
促成目標(biāo):
1.知道88點(diǎn)陣顯示模塊結(jié)構(gòu)和工作原理;
2.會(huì)利用88點(diǎn)陣顯示模塊構(gòu)建1632點(diǎn)陣顯示模塊以及測試方法;
3.知道74LS138、74LS154和74LS595芯片的功能和使用方法;
4.會(huì)利用74LS138、74LS154和74LS595芯片設(shè)計(jì)行列驅(qū)動(dòng)電路;
5.會(huì)1632LED點(diǎn)陣逐列掃描顯示和逐行掃描方法,以及1632點(diǎn)陣顯示程序的設(shè)計(jì)方法。
教學(xué)方法:
采用“教、學(xué)、做”一體化教學(xué)方法模式,項(xiàng)目的實(shí)施可采用小組合作的學(xué)習(xí)方法。
教學(xué)設(shè)計(jì):
目前,在市場上常見的LED點(diǎn)陣顯示屏主要有 57、88、1616 等幾種規(guī)格。若要顯示阿拉伯?dāng)?shù)字、英文字母、特殊符號(hào)等,可采用 57、88 的點(diǎn)陣即可夠用,若要顯示中文字,則需要 4 片 88 的點(diǎn)陣組成 1616 LED點(diǎn)陣顯示屏才能顯示一個(gè)中文字。
通過“邊做邊學(xué)”,學(xué)習(xí)88點(diǎn)陣LED的內(nèi)部電路、工作過程、88點(diǎn)陣顯示模塊構(gòu)建1632點(diǎn)陣顯示模塊以及測試方法,完成1632點(diǎn)陣顯示電路設(shè)計(jì);
通過“邊做邊學(xué)”,學(xué)習(xí)1632LED點(diǎn)陣逐列掃描顯示和逐行掃描方法,以及1632點(diǎn)陣顯示程序的設(shè)計(jì)方法,完成1632點(diǎn)陣顯示程序設(shè)計(jì)、運(yùn)行與調(diào)試。
課時(shí):4學(xué)時(shí)
教學(xué)過程:
11.2.1 1632LED點(diǎn)陣顯示電路設(shè)計(jì)
隨著信息產(chǎn)業(yè)的高速發(fā)展,LED 顯示屏作為信息傳播的一種重要手段成為現(xiàn)代信息化社會(huì)的一個(gè)閃亮標(biāo)志。LED點(diǎn)陣顯示屏制作簡單,安裝方便,可以用來顯示溫度、日期和文字信息等,主要應(yīng)用場合有:排隊(duì)叫號(hào)、公交車報(bào)站、廣告屏等。
1.認(rèn)識(shí)LED點(diǎn)陣漢字顯示屏
LED點(diǎn)陣顯示屏是由高亮發(fā)光二極管點(diǎn)陣組成的矩陣模塊,通過控制這個(gè)二極管矩陣達(dá)到在顯示屏上顯示符號(hào)、文字等信息的目的。目前,在市場上常見的LED點(diǎn)陣顯示屏主要有 57、88、1616 等幾種規(guī)格。若要顯示阿拉伯?dāng)?shù)字、英文字母、特殊符號(hào)等,可采用 57、88 的點(diǎn)陣即可夠用,若要顯示中文字,則需要 4 片 88 的點(diǎn)陣組成 1616 LED點(diǎn)陣顯示屏才能顯示一個(gè)中文字。
1632LED點(diǎn)陣漢字顯示電路由AT89S52單片機(jī)最小系統(tǒng)、LED顯示屏、行驅(qū)動(dòng)電路和列驅(qū)動(dòng)電路等模塊構(gòu)成。
2.1632LED點(diǎn)陣漢字顯示模塊設(shè)計(jì)
按照工作任務(wù)要求,1632LED點(diǎn)陣漢字顯示模塊的列數(shù)據(jù)由P0口和P2口發(fā)送,P1口送列碼,通過逐列掃描實(shí)現(xiàn)1632LED點(diǎn)陣漢字顯示。
構(gòu)建一塊1632LED點(diǎn)陣模塊,需要八塊88 LED點(diǎn)陣模塊,設(shè)計(jì)1632LED點(diǎn)陣模塊步驟如下:
(1)先把八個(gè)“MATRIX-8X8-RED”元器件對(duì)應(yīng)的行線和列線分別進(jìn)行連接,每一條行線引腳接一行32個(gè)LED,每一條列線引腳接一列16個(gè)LED。
(2)然后標(biāo)注行列引腳連線標(biāo)號(hào),相同行標(biāo)注同一個(gè)連線標(biāo)號(hào),相同列標(biāo)注同一個(gè)連線標(biāo)號(hào)。1~8行引腳連線標(biāo)號(hào)分別為P00~ P07,9~16行引腳連線標(biāo)號(hào)分別為P20~ P27;1~32列引腳連線標(biāo)號(hào)分別為S00~ S31,如圖11-1所示。
圖11-1 1632 LED點(diǎn)陣行列引腳連線標(biāo)號(hào)
(3)分開的88 LED點(diǎn)陣模塊并不能達(dá)到好的效果,需要把8個(gè)88 LED點(diǎn)陣模塊并攏成1632 LED點(diǎn)陣模塊。先選中一塊88 LED點(diǎn)陣模塊,然后拖動(dòng)并使其與另一塊相并攏,原來的連線已經(jīng)自動(dòng)隱藏了。做成的LED點(diǎn)陣的行線有16個(gè)引腳(在左側(cè)),列線有32個(gè)引腳(在右側(cè)只能看到16個(gè)引腳,其他16個(gè)引腳隱藏了),行線高電平有效,列線低電平有效,如圖11-2所示。
圖11-2 1632 LED點(diǎn)陣顯示模塊
Proteus仿真小技巧:
完成以后,在仿真運(yùn)行時(shí)你會(huì)發(fā)現(xiàn)1632LED點(diǎn)陣模塊會(huì)有紅綠小點(diǎn)閃爍,那是在Proteus中實(shí)時(shí)顯示的電平信號(hào)。解決這個(gè)問題方法是:可以在“System”菜單下點(diǎn)擊“Set Animation Options…”子菜單;打開“Anmated Circuits Configuration”對(duì)話框;然后將“Animation Options”選項(xiàng)下面的“Show Logic State of Pins?”復(fù)選框中去掉選中標(biāo)志。改變?cè)O(shè)置以后,重新仿真運(yùn)行就不會(huì)有紅綠小點(diǎn)閃爍了。
3.列控制電路設(shè)計(jì)
列驅(qū)動(dòng)電路是由2個(gè)74LS154譯碼器和一個(gè)74LS04反相器構(gòu)成。
U2芯片74LS154的4個(gè)輸入端(A、B、C、D)接P1口的P1.0、P1.1、P1.2和P1.3引腳,E1端接P1口的P1.4引腳(作為片擇信號(hào)), 16個(gè)輸出端(0~15)分別接1632 LED點(diǎn)陣的前16列(S00~S15列);
U 3芯片74LS154的4個(gè)輸入端(A、B、C、D)接P1口的P1.0、P1.1、P1.2和P1.3引腳,E1端經(jīng)過U4芯片74LS04接P1口的P1.4引腳,16個(gè)輸出端(0~15)分別接1632 LED點(diǎn)陣的后16列(S16~S31列),如圖11-3所示。
圖11-3 1632 LED點(diǎn)陣列驅(qū)動(dòng)電路
74LS154為4線-16線譯碼器,74LS154的四個(gè)輸入端(A、B、C、D)是四位二進(jìn)制代碼、有十六種狀態(tài),十六個(gè)輸出端(0~15)分別對(duì)應(yīng)其中一種輸入狀態(tài),輸出端以低電平譯出。74LS154譯碼器每次可輸出相應(yīng)一個(gè)I/O口的低電平,正好與點(diǎn)陣屏的低電平選中列相對(duì)。
74LS154的E1和E2為二個(gè)控制輸入端(又稱使能端)。當(dāng)E1、E2為低電平時(shí),譯碼器處于工作狀態(tài),否則譯碼器被禁止,所有的輸出端被封鎖在高電平上。在這里,我們把2個(gè)74LS154的E2端接地,P1口的P1.4引腳直接接U2芯片74LS154的E1端,并通過74LS04反相器接U3芯片74LS154的E1端。當(dāng)P1.4引腳為低電平時(shí),選中U2芯片74LS154;為高電平時(shí),經(jīng)過74LS04反相為低電平,選中U3芯片74LS154。這樣,就可以通過P1.0、P1.1、P1.2、P1.3和P1.4引腳,完成對(duì)1632LED點(diǎn)陣的32列逐列掃描控制了。
3.行控制電路設(shè)計(jì)
行驅(qū)動(dòng)電路是由2個(gè)74LS245芯片和一個(gè)排阻構(gòu)成。
U5芯片74LS245的8個(gè)輸入端接P0口,8個(gè)輸出端接1632 LED點(diǎn)陣的前8行(P00~P07行),排阻是P0口的上拉電阻;U6芯片74LS245的8個(gè)輸入端接P2口,8個(gè)輸出端接1632 LED點(diǎn)陣的后8行(P20~P27行),如圖11-4所示。
圖11-4 1632 LED點(diǎn)陣行驅(qū)動(dòng)電路
4.1632LED點(diǎn)陣顯示電路設(shè)計(jì)
通過前面的1632LED點(diǎn)陣漢字顯示模塊、列控制電路和行控制電路設(shè)計(jì),下面我們利用Proteus軟件實(shí)現(xiàn)1632LED點(diǎn)陣顯示電路設(shè)計(jì),如圖11-5所示。
圖11-5 1632 LED點(diǎn)陣行驅(qū)動(dòng)電路
運(yùn)行Proteus軟件,新建“1632LED點(diǎn)陣顯示” 設(shè)計(jì)文件。按圖11-11所示放置并編輯AT89S52、CRYSTAL、CAP、CAP-ELEC、RES、RESPACK-8、74LS245、74LS154、74LS04、BUTTON和MATRIX-8X8-RED等元器件。完成1632LED點(diǎn)陣顯示電路設(shè)計(jì)后,進(jìn)行電氣規(guī)則檢測,直至檢測成功。
11.2.2 1632LED點(diǎn)陣漢字顯示程序設(shè)計(jì)
按照工作任務(wù)要求和電路設(shè)計(jì),P0口和P2口送列數(shù)據(jù),P1口送列碼,C語言程序通過逐列掃描實(shí)現(xiàn)1632LED點(diǎn)陣分屏顯示和移動(dòng)顯示4個(gè)漢字。在這里,顯示的4個(gè)漢字是“電子學(xué)院”。
1.PCtoLCD2002獲取漢字字模
1632LED點(diǎn)陣漢字顯示的內(nèi)容是“電子學(xué)院”,那么這4個(gè)漢字的漢字字模是如何獲取的呢,下面主要介紹PCtoLCD2002作為1632LED點(diǎn)陣漢字顯示字模提取軟件的使用方法。
(1)認(rèn)識(shí)漢字字模
什么是漢字字模呢?可以這么理解漢字字模是一組數(shù)字,但它的意義卻與數(shù)字的意義有了根本的變化,它是用數(shù)字的各位信息來記載字符或漢字的形狀。如漢字的1616點(diǎn)陣“你”的字模,如圖11-6所示。
圖11-6 “你”漢字字模
從上圖我們可以看出,一個(gè)1616點(diǎn)陣的漢字字模需要占用32個(gè)字節(jié)。如果需要顯示4個(gè)漢字那么就需要128 Byte,也就是需要聲明一個(gè)4行32列的二維數(shù)組,來存放4個(gè)漢字的漢字字模。
(2)PCtoLCD2002字模選項(xiàng)設(shè)置
單擊菜單欄的“選項(xiàng)”按鈕,打開“字模選項(xiàng)”的對(duì)話框,如圖11-7所示。用戶可以根據(jù)自己的實(shí)際需要而進(jìn)行設(shè)置,設(shè)置完成后,單擊左下角的確定保存。下面簡單介紹主要字模選項(xiàng)。
圖11-7 字模選項(xiàng)對(duì)話框
取模方式有逐列式、逐行式、列行式和行列式四種方式。逐行式是橫向逐行取點(diǎn),逐列式是縱向逐列取點(diǎn)。
1)列行式首先是從第1列開始向下取前8個(gè)點(diǎn)作為第1個(gè)字節(jié)、第2列開始向下取前8個(gè)點(diǎn)作為第2個(gè)字節(jié)、……、第16列開始向下取前8個(gè)點(diǎn)作為第16個(gè)字節(jié),然后在從第1列開始向下取后8個(gè)點(diǎn)作為第17個(gè)字節(jié)、第2列開始向下取后8個(gè)點(diǎn)作為第18個(gè)字節(jié)、……、第16列開始向下取后8個(gè)點(diǎn)作為第32個(gè)字節(jié)。由此可以看出,列行式的取模方式是先取上半字的16個(gè)字節(jié),后取下半字的16個(gè)字節(jié)。
2)行列式首先是從第1行開始向右取前8個(gè)點(diǎn)作為第1個(gè)字節(jié)、第2行開始向右取前8個(gè)點(diǎn)作為第2個(gè)字節(jié)、……、第16行開始向右取前8個(gè)點(diǎn)作為第16個(gè)字節(jié),然后在從第1行開始向右取后8個(gè)點(diǎn)作為第17個(gè)字節(jié)、第2行開始向右取后8個(gè)點(diǎn)作為第18個(gè)字節(jié)、……、第16行開始向右取后8個(gè)點(diǎn)作為第32個(gè)字節(jié)。同樣可以看出,行列式的取模方式是先取左半字的16個(gè)字節(jié),后取右半字的16個(gè)字節(jié)。
3)取模走向有逆向和順向,逆向是低位在前、高位在后,順向是高位在前、低位在后。
4)點(diǎn)陣格式有陰碼和陽碼,陰碼是“1”為點(diǎn)亮、陽碼是“0”為點(diǎn)亮。
(3)獲取漢字字模
1632LED點(diǎn)陣漢字顯示是采用1616點(diǎn)陣、宋體、列行式、陰碼、逆向、十六進(jìn)制數(shù)等方式,來獲取“電子學(xué)院”4個(gè)漢字的字模,如圖11-8所示。
圖11-8 “電子學(xué)院”字模獲取
“電”的字模:
{0x00,0x00,0xF8,0x88,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x88,0xF8,0x00,0x00,0x00,
0x00,0x00,0x1F,0x08,0x08,0x08,0x08,0x7F,0x88,0x88,0x88,0x88,0x9F,0x80,0xF0,0x00},
......
字模中的數(shù)據(jù),16進(jìn)制轉(zhuǎn)化為2進(jìn)制,2進(jìn)制中的“1”就代表1632LED點(diǎn)陣上相應(yīng)的點(diǎn)亮起來,“0”代表不亮,這樣在1632LED點(diǎn)陣上顯示出來了,如圖11-9所示。
圖11-9 1632LED點(diǎn)陣上顯示的效果
2.1632LED點(diǎn)陣漢字顯示相關(guān)變量定義
(1)1632LED點(diǎn)陣接口相關(guān)變量定義
#define LED_L16 P0 //1632LED點(diǎn)陣低16行接口
#define LED_H16 P2 //1632LED點(diǎn)陣高16行接口
#define LED_COL P1 //1632LED點(diǎn)陣列選接口
(2)1632LED點(diǎn)陣顯示相關(guān)變量定義
uchar i,j; //定義二維數(shù)組aFont[j][i]的下標(biāo)
uchar s; //定義逐列掃描變量,從0列到31列
uchar time; //定義刷新顯示次數(shù)變量,保持內(nèi)容顯示一定時(shí)間
uchar start; //定義顯示的起始列變量
/*聲明一個(gè)二維數(shù)組,用來存放“電子學(xué)院”4個(gè)漢字的字模*/
uint code aFont[4][32]=
{
/*“電”,0,前16B是“電”的上半字,后16B是“電”的下半字*/
{0x00,0x00,0xF8,0x88,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x88,0xF8,0x00,0x00,0x00,
0x00,0x00,0x1F,0x08,0x08,0x08,0x08,0x7F,0x88,0x88,0x88,0x88,0x9F,0x80,0xF0,0x00},
.......
};
3.延時(shí)程序
1632LED點(diǎn)陣漢字顯示的延時(shí)程序,在逐列掃描顯示時(shí),主要是保持每列點(diǎn)亮一段時(shí)間和熄滅一段時(shí)間,延時(shí)時(shí)間是根據(jù)形式參t來決定的。
4.切換顯示程序
顯示1個(gè)漢字需要166點(diǎn)陣,1632點(diǎn)陣可以顯示2個(gè)漢字,4個(gè)漢字只能分成2屏顯示,分屏顯示代碼如下:
void Leddis(uchar p)
{
for(time=0;time<100;time++) //每屏刷新顯示100次,保持一定時(shí)間
{
s=0;
for(j=(p-1)*2;j<(p-1)*2+2;j++)
{
for(i=0;i<16;i++)
{
LED_COL=s; //逐列掃描顯示
LED_L16=aFont[j][i]; //顯示上半字
LED_H16=aFont[j][i+16]; //顯示下半字
delay(40);
LED_L16=0; //顯示完一列,重新初始化防止重影
LED_H16=0;
delay(2);
s++;
}
}
}
} //End Leddis()
5.左移顯示程序
左移顯示分為右進(jìn)顯示和左出顯示兩個(gè)過程。在這里,左移顯示是每次左移8列,既左移半個(gè)字。
右進(jìn)顯示先從右邊開始顯示第1個(gè)字的前半個(gè)字,也就是從第24列開始顯示,并保持顯示一定時(shí)間。然后在左移右進(jìn)8列顯示,直至滿屏顯示前2個(gè)漢字,右進(jìn)顯示完成;左出顯示先從第1個(gè)字的后半個(gè)字、第2個(gè)字和第3個(gè)字的前半個(gè)字開始顯示,并保持顯示一定時(shí)間。然后在左出8列顯示,直至左出完成。
(1)右進(jìn)顯示代碼如下:
/*右進(jìn)顯示(只右進(jìn)顯示第一屏)num為一屏顯示的字?jǐn)?shù),movecol為每次右進(jìn)的列數(shù)*/
void RightJ(uchar num,uchar movecol)
{
start=16*num-movecol; //計(jì)算右進(jìn)顯示的起始列
while(1)
{
for(time=0;time<100;time++)
{
s=start; //把右進(jìn)顯示的起始列賦給逐列掃描變量
for(j=0;j<4;j++)
{
for(i=0;i<16;i++)
{
LED_COL=s;
LED_L16=aFont[j][i];
LED_H16=aFont[j][i+16];
delay(40);
LED_L16=0;
LED_H16=0;
delay(2);
s++;
if(s>31) break;
}
if(s>31) break;
}
}
if(start>0)
{
start-=movecol; //每次右進(jìn)顯示的起始列加movecol列
}
else
{
break; //如果右進(jìn)顯示的起始列到了第0列,右進(jìn)顯示結(jié)束
}
}
}
(2)左出顯示代碼參考右進(jìn)顯示代碼
6.1632LED點(diǎn)陣漢字顯示主程序
到目前為止,就完成了1632LED點(diǎn)陣漢字顯示所有子程序的設(shè)計(jì),那么這些子程序怎樣組成一個(gè)完整的系統(tǒng)呢?
單片機(jī)的源程序一般由主程序(只能有一個(gè)主程序)、完成特定功能的子程序及等部分組成。程序的運(yùn)行是從主程序開始的,然后在主程序中調(diào)用相應(yīng)的子程序,從而實(shí)現(xiàn)系統(tǒng)的功能。1632LED點(diǎn)陣漢字顯示main()函數(shù)代碼如下:
void main(void)
{
鏈接地址:http://www.820124.com/p-13175818.html