第一篇:單片機課設
單片機
基于
劉慧
2012128040 1211電工
2014年11月02日
單片機的電壓顯示電路
目錄
第一章
設計任務和要求??????????4
第二章 單元電路設計及仿真?????????5
第三章 電路模塊功能的分析??????????10
第四章 心得與體會?????????????12
前言
我們在做一個單片機系統時,常常會遇到這樣那樣的數集,在這些被采集的數據中,大部分可以通過我們的 I/O 口擴展接口電路直接得到,由于 51 單片機大部分不帶 AD 轉換器,所以模擬量的采集就必須靠 A/D或 V/F 實現。下現我們就來了解一下AD0809與51 單片機的接口及其程序設計。數字電壓表(Digital Voltmeter)簡稱DVM,它是采用數字化測量技術,把連續的模擬量(直流輸入電壓)轉換成不連續、離散的數字形式并加以顯示的儀表。目前,由各種單片A/D 轉換器構成的數字電壓表,已被廣泛用于電子及電工測量、工業自動化儀表、自動測試系統等領域,顯示出強大的生命力。與此同時,由DVM擴展而成的各種通用及專用數字儀器儀表,也把電量及非電量測量技術提高到嶄新水平。
第一章
設計任務和要求
直流數字電壓表主要由
AD轉換器ADC0809,單片機芯片AT89S51控制電路,液晶顯示電路三部分構成。其中由ADC0809組成的轉換電路,將輸入的模擬量信號進行取樣、轉換,然后將轉換的數字信號送進單片機,單片機控制電路主要實現對數據進行處理,顯示電路主要用于將單片機得信號數據轉換后顯示測量結果。方案的主要特點是:
(1)用液晶1602能直接精確、清晰顯示所測電壓數值,使整機線路簡化。
(2)采用+5V和—5V兩組電源供電。
(3)采用AT89S51單片機芯片實現整個電路控制。(4)顯示亮度較高。
(5)采用轉換器AD0809,實現八路直流電壓檢測,電壓測量范圍為0—10V,能顯示指定電壓通道和電壓值。(6)電路有8條模擬量輸入通道由16個10K電阻,8組阻值為1:1構成,采用降壓原理實現0V-10V電壓測量。
第二章 單元電路設計及仿真
1、AD0809 的邏輯結構
ADC0809 是8位逐次逼近型A/D轉換器。它由一個8路模擬開關、一個地址鎖存譯碼器、一個A/D 轉換器和一個三態輸出鎖存器組成(見圖1)。多路開關可選通8個模擬通道,允許 8 路模擬量分時輸入,共用 A/D 轉換器進行轉換。三態輸出鎖器用于鎖存 A/D 轉換完的數字量,當OE 端為高電平時,才可以從三態輸出鎖存器取走轉換完的數據。
2、AD0809 的工作原理
IN0-IN7:8 條模擬量輸入通道 ADC0809 對輸入模擬量要求:信號單極性,電壓范圍是 0-5V,若信號太小,必須進行放大;輸入的模擬量在轉換過程中應該保持不變,如若模擬量變化太快,則需在輸入前增加采樣保持電路。地址輸入和控制線:4條 ALE為地址鎖存允許輸入線,高電平有效。當ALE線為高電平時,地址鎖存與譯碼器將 A,B,C 三條地址線的地址信號進行鎖存,經譯碼后被選中的通道的模擬量進轉換器進行轉換。A,B 和 C 為地址輸入線用于選通 IN0-
IN上的一路模擬量輸
入。通道選擇表如下表所示。
C B A 選擇的通道
0 0 0 IN0 0 0 1 IN1 0 1 0 IN2 0 1 1 IN3 1 0 0 IN4 1 0 1 IN5 1 1 0 IN6 1 1 1 IN7 數字量輸出及控制線:11 條 ST 為轉換啟動信號。當 ST 上跳沿時,所有內部寄存器清零;下跳沿時,開始進行 A/D 轉換;在轉換期間,ST 應保持低電平。EOC 為轉換結束信號。當 EOC 為高電平時,表明轉換結束;否則,表明正在進行A/D 轉換。OE為輸出允許信號,用于控制三條輸出鎖存器向單片機輸出轉換得到的數據。OE=1,輸出轉換得到的數據;OE=0,輸出數據線呈高阻狀態。D7-D0 為數字量輸出線。CLK為時鐘輸入信號線。因ADC0809的內部沒有時鐘電路,所需時鐘信號必須由外界提供,通常使用頻率為 500KHZ,VREF(+),VREF(-)為參考電壓輸入。
3、ADC0809 應用說明
(1)ADC0809 內部帶有輸出鎖存器,可以與AT89S51 單片機直接相連。
(2)初始化時,使 ST 和OE信號全為低電平。
(3)送要轉換的哪一通道的地址到 A,B,C端口上。
(4)在ST 端給出一個至少有 100ns 寬的正脈沖信號。
(5)是否轉換完畢,我們根據EOC 信號來判斷。
(6)當EOC變為高電平時,這時給OE 為高電平,轉換的數據就輸出給單片機了。
4、AD0809 的應用
電路說明:主要由 AD 轉換器 AD0809,頻率發生器 SUN7474,單片機 AT89S51及顯示用數碼管組成。AD0809的啟動方式為脈沖啟動方式,啟動信號START啟動后開始轉換,EOC 信號在START 的下降沿10us后才變為無效的低電平。這要求查詢程序待EOC無效后再開始查詢,轉換完成后,EOC 輸出高電平,再由 OE 變為高電平來輸出轉換數據。我們在設計程序時可以利用 EOC 信號來通知單片機(查詢法或中斷法)讀入已轉換的數據,也可以在啟動AD0809 后經適當的延時再讀入已轉換的數據。AT89S51的輸出頻為晶振頻的1/6(2MHZ),AT89S1 與SUN7474連接經與7474的ST腳提供 AD0809 的工作時鐘。AD0809 的工作頻范圍為 10KHZ-1280KHZ,當頻率范圍為500KHZ 時,其轉換速度為128us。AD0809 的數據輸出公式為:Dout=Vin*255/5=Vin*51,其中Vin為輸入模擬電壓,Vout 為輸出數據。
當輸入電壓為 5V 時,讀得的數據為 255 再乘以 2,得 510。我們用 510*98%得 499,再將百位數碼管的小數點點亮,顯示為4.99V,顯示值與輸入值基本吻合。編程思路:
(1)向AD0809 寫入通道號并啟動轉換
(2)延時 1ms 后等待EOC 出現高電平(JNB
EOC,$)(3)給OE 置高并讀入轉換數據存入數據地址或數組中。
(4)顯示
根據設計要求,結合硬件電路,在輸入模擬信號時采用電阻分壓,最終價的采樣輸入電壓只有實際輸入電壓的二分之一,所以在變下程序時,要編寫一段數據調整程序,其中還應注意硬件顯示電路采用了液晶顯示,液晶顯示的頻率有一定的要求,這就要求再編寫程序時,還要考慮到顯示子程序。程序設計流程圖如圖
應用程序設計
(1)程序起始地址MCS-51系列單片機復位后,(PC)=0000H,而0003H~002BH分別為各中斷源的入口地址。所以,編寫程序時,應在0000H處寫一條跳轉指令。當CPU接到中斷請求信號并予以響應后,CPU把當前的PC內容壓入棧中進行保護,然后轉入響應的中斷服務程序
(2)(2)AD0809時鐘脈沖信號本方案中,采用軟件定時的方式,該單片機的時鐘頻率為12MHZ,1個機器周期時間為1us,可以計算出計數初值:TC=65536-5,即有TH0=(65536-5)/256;TL0=(65536-5)%256;定時器T0以定時方式1完成定時。程序如下;
#include
#define uchar unsigned char
#define uint unsigned int sbit st=P3^2;sbit oe=P3^1;sbit eoc=P3^0;
uchar code tab[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};//數碼管顯示段碼 uchar code td[]={0x00,0x10,0x20,0x30,0x40,0x50,0x60,0x70};//通道先擇數組
uint ad_0809,ad_data1,ad_data2,ad_data3,ad_data0;uchar m,number;
uchar x[8];//八通道數據待存數組
void delaynms(uint x);//nms延時程序
void display();//顯示程序
void ad0809();//芯片啟動程序
void key();//鍵掃描程序
main()
{
number=1;
P1=0x00;
while(1)
{
ad0809();//調AD0809 啟動子程序
key();//調按鍵子程序
ad_0809=x[number];//把相關通道數據給 ad_0809
display();//調顯示
}}
//nms 延時程序
void delaynms(uint x){
uchar i;
while(x-->0)
{
for(i=0;i<125;i++)
{;}}} void display(){
uchar a;
ad_data1=(ad_0809*49/25)/100;//讀得的數據乘以2 再乘以98%除以100 得百位 ad_data2=((ad_0809*49/25)%100)/10;//讀得的數據乘以 2 再乘以 98%再分出十位
ad_data3=(((ad_0809*49/25)%100)%10);//讀得的數據乘以2 再乘以98%再分出個位
for(a=0;a<10;a++){
P0=tab[ad_data3];//送小數點后第二位顯示
P2=0x07;//選通第一個數碼管 delaynms(3);
P0=tab[ad_data2];//送小數點后第一位顯示
P2=0x0b;//選通第二個數碼管
delaynms(3);
P0=tab[ad_data1];//送整數顯示
P0_7=0;//點亮第三個數碼管小數點
P2=0x0d;//
選通第三個數碼管
delaynms(3);
P0=tab[number];//送通道號顯示
P2=0x0e;delaynms(3);}}
void ad0809()
{
uchar i,m=1;
for(i=0;i<8;i++)
{
P0=td[i];//選通通道
oe=0;//以下三條指令為起動 AD0809
st=0;
st=1;
st=0;
delaynms(1);
while(!eoc);//等待轉換結束
oe=1;//取出讀得的數據
x[m]=P2;//送相關通道數組
oe=0;
m++;}}
void key(){
if(!P3_5)//P3.5 是否按下
{
delaynms(20);//延時判誤
if(!P3_5)//再一次判斷 P3。5 是否按下
{
while(!P3_5);//等待P3。5 為高電平
numif(number>8)number=1;//八通道
}}} ber++;//通道號顯示加一
if(number>8)number=1;//八通道 }}}
電路原理圖如下:
第三章 電路模塊功能的分析
3.1液晶顯示部分
采用液晶1602,能夠16*02即32個字符(16列2行)。1602采用標準的16腳接口,其中,第1腳:VSS為電源地; 第2腳:VDD接5V電源正極;
第3腳:V0為液晶顯示器對比度調整端,接地電源時對比度最高(對
比度過高時會產生“鬼影”,使用時可以通過一個10K的電位器調整對比度)。
第4腳:RS為寄存器選擇,高電平1時選擇數據寄存器,低電平0時選擇指令寄存器。
第5腳:RW為讀寫信號線,高電平1時進行讀操作,低電平0時進行寫操作。
第6腳:E(或EN)端為使能端。第7-14腳:D0-D7為8位雙向數據端。
第15-16腳:空腳或背燈電源。15腳背光正極,16腳背光負極。3.2電路檢測部分
電路檢測部分由電阻和發光二極管組成,接通電源,電路連接無誤,燈亮。發光二極管用來檢測電路是否連通。電路檢測部分電路圖:
3.3切換通道電路部分 AD0809 轉換器有IN0-IN7共8 條模擬量輸入通道;電路功能測量時,用兩個大的按鍵開關來切換通道,實現測量。其中,一個是通過手按按鍵來切換,另一個按下則實現是自動順序切換,切換通道的電路圖如圖8所示:
四.心得與體會
這次設計是體現我專業優勢和特點的一次鍛煉。從選題,到選原理圖制版至最后的寫論文。其間查找資料,老師指導,與同學交流,反復修改原理圖,每一個過程都是對自己能力的一次檢驗和提高。通過這次實踐,我了解了數字電壓表的制作,工作原理及相關芯片的使用和工作原理,鍛煉了自己的實際動手能力,培養了自己獨立工作能力。我覺得這次實訓是對我專業知識和實際動手能力的一次綜合檢驗,同時也是為自己今后走向社會的一次熱身。
這次實訓收獲頗多,比如學會了查找有用信息跟相關資料,有用的數據,并熟悉了做板的流程和鞏固了相關專業知識。
第二篇:單片機課設
華 南 理 工 大 學 廣 州 學 院
單片機課程設計報告
題 目: 簡易電子時鐘
評 分
專業: 自動化 班級: 15級自動化一班 姓名: 黎澤鈞 同組隊員: 鄭立涵、曾迪濠、佘庭楓、李明志、方昊輝
學號/座位序號: 201510087034
日 期: 2017 年 03 月
一、設計目的
通過本次課程設計可以靈活運用單片機的基礎知識,依據課程設計內容,能夠完成從硬件電路圖設計,到軟件編程及系統調試實現系統功能,完成課程設計,加深對單片機基礎知識的理解并靈活運用。
二、設計要求和方案選擇
1.設計要求:
(1)通過程序直接對實時時鐘時間進行設置,啟動時鐘運行。用8位數碼管顯示。
(2)通過按鈕對實時時鐘時間進行設置,使時鐘能正常運行。(3)其他發揮功能。2.設計方案的選擇
(1)計時方案
方案1:采用現成實時時鐘芯片
使用一些實時時鐘集成電路,如DS1287、DS12887、DS1302等。這些實時時鐘芯片具備年、月、日、時、分、秒計時功能和多點定時等功能,計時數據的更新每秒自動進行一次,不需要程序干預。因此,在工業實時測控系統中多采用這類專用芯片來實現實時時鐘功能。
方案2:使用單片機內部的可編程定時器
利用單片機內部的定時計數器進行中斷定時,配合軟件延時實現時、分、秒的計時。該方案優點是節省硬件成本,可以利用程序代替。缺點是程序設計相對微型控制器時鐘電路聲光報時校時輸入數據顯示較為復雜,精確度不高,同時還可能會和延時沖突,導致顯示效果不佳。
鑒于以上原因,我們采用了方案二,使用了單片機內部的可編程定時器。(2)顯示器件的選擇與對比
方案一:采用LED數碼管顯示。
LED顯示器可以分為有靜態顯示方式和動態顯示方式兩種。靜態顯示就是當數碼管顯示某個字符時,相應的段恒定的導通,直到要顯示下一個字符為止。數碼管工作在靜態顯示方式時,共陰極COM端要接地;若為共陽極COM端接在+5V電源。每位的段選線應分別與一個8位數據口的輸出端相連,數碼管的各位是相互獨立的,且要顯示字符一經確定,相應數據的輸出將必須維持不變。靜態顯示數碼管一直在工作,因而數碼管靜態顯的亮度較高。在這種顯示方式編程比較容易,管理也較簡單,但占用I/O口線資源較多,因而在顯示位數較多的情況下,我們大都都采用數碼管動態顯示方式進行顯示。而對于動態顯示方式,雖可以避免靜態顯示的問題,但設計上如果處理不當,易造成亮度低,有閃爍等問題。方案二:采用LCD顯示。
LCD液晶顯示具有豐富多樣性、靈活性、電路簡單、易于控制而且功耗小等優點,對于一般的段式液晶屏,需要專門的驅動電路,而且也經顯示作為一種被動顯示,可視性相對較差;對于具有驅動電路和微處理器接口的液晶顯示模塊(字符或點陣),一般多采用并行機接口,對于微處理器的接口要求較高,占用資源多。另外,89C52本身沒有專門的液晶驅動接口。
鑒于上述原因,我們采用方案一,采用了數碼管顯示方式。數碼管作為一種主動顯示器件,具有亮度高、價格便宜、功耗低、驅動簡單等優點。
三、硬件部分
1.STC89C52單片機(1)結構
STC89C52RC是STC公司生產的一種低功耗、高性能CMOS8位微控制器,具有 8K字節系統可編程Flash存儲器。STC89C52使用經典的MCS-51內核,但做了很多的改進使得芯片具有傳統51單片機不具備的功能。在單芯片上,擁有靈巧的8 位CPU 和在系統可編程Flash,使得STC89C52為眾多嵌入式控制應用系統提供高靈活、超有效的解決方案。
同時具有以下標準功能: 8k字節Flash,512字節RAM,32 位I/O 口線,看門狗定時器,內置4KB EEPROM,MAX810復位電路,3個16 位定時器/計數器,4個外部中斷,一個7向量4級中斷結構(兼容傳統51的5向量2級中斷結構),全雙工串行口。另外 STC89C52 可降至0Hz 靜態邏輯操作,支持2種軟件可選擇節電模式。空閑模式下,CPU 停止工作,允許RAM、定時器/計數器、串口、中斷繼續工作。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。最高運作頻率35MHz,6T/12T可選。(2)主要特性
8K字節程序存儲空間; 512字節數據存儲空間; 內帶4K字節EEPROM存儲空間;可直接使用串口下載;(3)器件參數
1.增強型8051單片機,6 時鐘/機器周期和12 時鐘/機器周期可以任意 選擇,指令代碼完全兼容傳統8051.2.工作電壓:5.5V~3.3V(5V單片機)/3.8V~2.0V(3V 單片機)3.工作頻率范圍:0~40MHz,相當于普通8051 的0~80MHz,實際工作 頻率可達48MHz 4.用戶應用程序空間為8K字節 5.片上集成512 字節RAM 6.通用I/O 口(32 個),復位后為:P1/P2/P3 是準雙向口/弱上拉,P0 口是漏極開路輸出,作為總線擴展用時,不用加上拉電阻,作為 I/O 口用時,需加上拉電阻。
7.ISP(在系統可編程)/IAP(在應用可編程),無需專用編程器,無 需專用仿真器,可通過串口(RxD/P3.0,TxD/P3.1)直接下載用戶程 序,數秒即可完成一片
8.具有EEPROM 功能
9.共3 個16 位定時器/計數器。即定時器T0、T1、T2 10.外部中斷4 路,下降沿中斷或低電平觸發電路,Power Down 模式可 由外部中斷低電平觸發中斷方式喚醒
11.通用異步串行口(UART),還可用定時器軟件實現多個UART 12.工作溫度范圍:-40~+85℃(工業級)/0~75℃(商業級)13.PDIP封裝
STC89C52單片機的引腳如圖所示:
2.時鐘電路
STC89C52內部有一個用于構成振蕩器的高增益反相放大器,引腳RXD和TXD分別是此放大器的輸入端和輸出端。時鐘可以由內部方式產生或外部方式產生。內部方式的時鐘電路如圖(a)所示,在RXD和TXD引腳上外接定時元件,內部振蕩器就產生自激振蕩。定時元件通常采用石英晶體和電容組成的并聯諧振回路。晶體振蕩頻率可以在1.2~12MHz之間選擇,電容值在5~30pF之間選擇,電容值的大小可對頻率起微調的作用。外部方式的時鐘電路如圖(b)所示,RXD接地,TXD接外部振蕩器。對外部振蕩信號無特殊要求,只要求保證脈沖寬度,一般采用頻率低于12MHz的方波信號。片內時鐘發生器把振蕩頻率兩分頻,產生一個兩相時鐘P1和P2,供單片機使用。如圖所示,RXD接地,TXD接外部振蕩器。對外部振蕩信號無特殊要求,只要求保證脈沖寬度,一般采用頻率低于12MHz的方波信號。片內時鐘發生器把振蕩頻率兩分頻,產生一個兩相時鐘P1和P2,供單片機使用。RXD接地,TXD接外部振蕩器。對外部振蕩信號無特殊要求,只要求保證脈沖寬度,一般采用頻率低于12MHz的方波信號。片內時鐘發生器把振蕩頻率兩分頻,產生一個兩相時鐘P1和P2,供單片機使用。
內部時鐘電路如圖所示,在XTAL1和XTAL1引腳上外接定時元件,內部振蕩電路就產生自激振蕩。定時元件是石英晶體和電容組成的并聯諧振回路,晶體振蕩器選擇11.0532MHz,電容采用30PF。
3.按鍵輸入電路
獨立式按鍵采用每個按鍵單獨占有一個I/O口的結構,這是最簡單的鍵盤輸入設計。當按下和釋放按鍵時,輸入到I/O口端的電平是不一樣的,單片機程序根據不同端口的電平變化判斷是否有鍵按下以及是哪一個鍵被按下。獨立式鍵盤的原理簡單,每個按鍵的電路是獨立的,占用一條數據線。
LED數碼管電路
LED顯示器工作方式有兩種:靜態顯示方式和動態顯示方式。靜態顯示的特點是每個數碼管的段選必須接一個8位數據線來保持顯示的字形碼。當送入一次字形碼后,顯示字形可一直保持,直到送入新字形碼為止。這種方法的優點是占用CPU時間少,顯示便于監測和控制。缺點是硬件電路比較復雜,成本較高。動態顯示的特點是將所有位數碼管的段選線并聯在一起,由位選線控制是哪一位數碼管有效。選亮數碼管采用動態掃描顯示。所謂動態掃描顯示即輪流向各位數碼管送出字形碼和相應的位選,利用發光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數碼管同時都在顯示。動態顯示的亮度比靜態顯示要差一些,所以在選擇限流電阻時應略小于靜態顯示電路中的。一個八段數碼管稱為一位,多個數碼管并列在一起可構成多位數碼管,它們的段選線連在一起,而各自的公共端稱為位選線。顯示時,都從段選線送入字符編碼,而選中哪個位選線,那個數碼管便會被點亮。
四、軟件設計
#include
unsigned char dispbuf[8]={0,0,16,0,0,16,2,1};unsigned char dispbitcnt;unsigned char second;unsigned char minite;unsigned char hour;unsigned int tcnt;unsigned char mstcnt;unsigned char i,j;void main(void){ TMOD=0x02;TH0=0x06;TL0=0x06;TR0=1;ET0=1;EA=1;while(1){ if(P0_0==0){ for(i=5;i>0;i--)for(j=248;j>0;j--);if(P0_0==0){ second++;if(second==60){ second=0;} dispbuf[0]=second%10;dispbuf[1]=second/10;while(P0_0==0);} } if(P0_1==0){ for(i=5;i>0;i--)for(j=248;j>0;j--);if(P0_1==0){ minite++;if(minite==60){ minite=0;} dispbuf[3]=minite%10;dispbuf[4]=minite/10;while(P0_1==0);} } if(P0_2==0){ for(i=5;i>0;i--)for(j=248;j>0;j--);if(P0_2==0){ hour++;if(hour==24){ hour=0;} dispbuf[6]=hour%10;dispbuf[7]=hour/10;while(P0_2==0);} } } } void t0(void)interrupt 1 using 0 {
mstcnt++;if(mstcnt==8){ mstcnt=0;
P3=0xff;//關閉所有顯示
P1=dispcode[dispbuf[dispbitcnt]];P3=dispbitcode[dispbitcnt];dispbitcnt++;if(dispbitcnt==8){ dispbitcnt=0;} } tcnt++;if(tcnt==4000){ tcnt=0;second++;if(second==60){ second=0;minite++;if(minite==60){ minite=0;hour++;if(hour==24){ hour=0;} } } dispbuf[0]=second%10;dispbuf[1]=second/10;dispbuf[2]=17;dispbuf[3]=minite%10;dispbuf[4]=minite/10;dispbuf[5]=17;dispbuf[6]=hour%10;dispbuf[7]=hour/10;} }
五、調試及運行結果
六、總結(感想和心得等)
在這次的課程設計中,開始以為電路很簡單,但是做實物的時候才知道走線的重要性。數碼管的走線都弄成一塊了,看來確實得多實踐。因為電腦上畫的圖跟實物有很大區別,得要注意好布局。應該多開設些實踐課,為以后的求職之路打下了基礎。課程設計分成了硬件和軟件兩大模塊。總的來說,硬件部分很好入手,電路也教簡單,主要涉及的是簡單的按鍵、電容、電阻、晶振和數碼管。在軟件部分,細分為了按鍵模塊、顯示模塊、定時/計數模塊,最后把幾個模塊整合在主程序模塊中。整個設計過程中遇到的最大問題是軟件的編寫,由于采用的是匯編語言,其間使用到的各種寄存器、存儲器地址、變量很多,很難對程序的整體把握。通過電子鐘的設計,對單片機的原理、結構、外圍電路進一步的了解。要了解在整個設計過程中學到了團體精神和獨立解決問題的重要性。
第三篇:單片機課設心得體會
單片機課設心得體會一:單片機課設心得體會
這個學期的單片機課已經早早的上完了,但是理論純屬理論,沒有與實踐的結合總讓我們學的不踏實,感覺沒有達到學以致用的效果。所慶幸的是在課程介紹考試完之后,老師給我們安排了這次單片機課程設計,給了我們學以致用的做好的實踐。
關于這次課程設計,我們花費了比較多的心思,既是對課程理論內容的一次復習和鞏固,還讓我們豐富了更多與該專業相關的其他知識,比如軟件應用等,在摸索中學習,在摸索中成長,在學習的過程中帶著問題去學我發現效率很高,這是我做這次課程設計的又一收獲,在真正設計之前我們做了相當豐富的準備,首先鞏固一下課程理論,再一遍熟悉課程知識的構架,然后結合加以理論分析、總結,有了一個清晰的思路和一個完整的的軟件流程圖之后才著手設計。在設計程序時,我們不能妄想一次就將整個程序設計好,反復修改、不斷改進是程序設計的必經之路;養成注釋程序的好習慣是非常必要的,一個程序的完美與否不僅僅是實現功能,而應該讓人一看就能明白你的思路,這樣也能為資料的保存和交流提供了方便;我覺得在設計課程過程中遇到問題是很正常,但我們應該將每次遇到的問題記錄下來,并分析清楚,以免下次再碰到同樣的問題的課程設計又出錯了。
除了對此次設計的準備工作之外,我們還學到了很多平時難得的東西,首先是團隊協作,在這次設計當中,難免和同學產生觀點和意見的分歧,以及分工明細、時間安排等不合理,通過這次設計,我們體會到了團結合作的重要性及力量之強大,還有讓我們處理事情更加有條理,思路更加清晰明了了,發現、提出、分析、解決問題和實踐能力的提高都將受益于我在以后的學習、工作和生活中。
此次的設計,其實也是我們所學知識的一次綜合運用,讓我深深的認識到了學習單片機要有一定的基礎,要有電子技術方面的數字電路和模擬電路等方面的理論基礎,特別是數字電路;也要有編程語言的匯編語言或c語言。要想成為單片機高手,我們首先要學好匯編語言,然后轉入c語言學習,所以我們不能學到后面就忘了前面的知識,更應該將所學的知識緊緊的結合在一起,綜合運用,所謂設計,就是要求創新,只有將知識綜合運用起來才能真正的設計好。
單片機課設心得體會二:單片機學習心得體會 時光飛逝,一轉眼,一個學期又進尾聲了,本學期的單片機綜合課程設計也在一周內完成了。
俗話說“好的開始是成功的一半”。說起課程設計,我認為最重要的就是做好設計的預習,認真的研究老師給的題目,選一個自己有興趣的題目。其次,老師對實驗的講解要一絲不茍的去聽去想,因為只有都明白了,做起設計就會事半功倍,如果沒弄明白,就迷迷糊糊的去選題目做設計,到頭來一點收獲也沒有。最后,要重視程序的模塊化,修改的方便,也要注重程序的調試,掌握其方法。
雖然這次的課程設計算起來在實驗室的時間只有三天,不過因為我們都有自己的實驗板,所以在宿舍里做實驗的時間一定不止三天。
硬件的設計跟焊接都要我們自己動手去焊,軟件的編程也要我們不斷的調試,最終一個能完成課程設計的勞動成果出來了,很高興它能按著設計的思想與要求運動起來。
當然,這其中也有很多問題,第一、不夠細心比如由于粗心大意焊錯了線,由于對課本理論的不熟悉導致編程出現錯誤。第二,是在學習態度上,這次課設是對我的學習態度的一次檢驗。對于這次單片機綜合課程實習,我的第一大心得體會就是作為一名工程技術人員,要求具備的首要素質絕對應該是嚴謹。我們這次實習所遇到的多半問題多數都是由于我們不夠嚴謹。第三,在做人上,我認識到,無論做什么事情,只要你足夠堅強,有足夠的毅力與決心,有足夠的挑戰困難的勇氣,就沒有什么辦不到的。
在這次難得的課程設計過程中我鍛煉了自己的思考能力和動手能力。通過題目選擇和設計電路的過程中,加強了我思考問題的完整性和實際生活聯系的可行性。在方案設計選擇和芯片的選擇上,培養了我們綜合應用單片機的能力,對單片機的各個管腳的功能也有了進一步的認識。還鍛煉我們個人的查閱技術資料的能力,動手能力,發現問題,解決問題的能力。并且我們熟練掌握了有關器件的性能及測試方法。
再次感謝老師的輔導以及同學的幫助,是他們讓我有了一個更好的認識,無論是學習還是生活,生活是實在的,要踏實走路。課程設計時間雖然很短,但我學習了很多的東西,使我眼界打開,感受頗深。
單片機課設心得體會三:單片機課設心得體會
兩周的單片機課程設計實訓,真是讓我們受益匪淺,學到了很多東西,不管怎么樣,先感謝學校給我的這么多機會.真正的學到了東西。
此次課程設計軟件與硬件相結合,考察了我們的焊接水平與編程能力.因為以前做過關于焊接的電工實習,所以對于我們機械設計專業的學生而言焊接是不成問題,也很順利;可到了編程時就出現了很大的障礙,先開始的顯示時鐘還算順利,本來還以為編程會很簡單的,等到實際操作起來才知道它的復雜性,沒有想像中的那么得心應手,理解流程是有思維的前提。其實本身程序的思維是正確的,只是步驟中有點小錯誤,所以導致整個程序的結果很亂,在仔細修改程序之后,終于一步步地達到效果了。
系統以at89s51為核心部件,利用軟件編程,通過鍵盤控制和液晶顯示實現了秒表的功能,能實現本設計題目的基本要求和發揮部分。盡量做到硬件電路簡單穩定,充分發揮軟件編程的優點,減小因元器件精度不夠引起的誤差。
我們將各個部分的程序編好后怎么都連不起來,出不了預期的效果.對于硬件在編程過程中pcb板的接觸又是一個頭疼的問題,在進行編譯的時候,數碼顯示管上什么都沒有,按一下旁邊與之相連的元器件時就有顯示了,所以也花費了好多時間在pcb板的重新焊接上,最后在全組人竭盡全力,老師的精心指導下,程序基本編寫成功,這是我們共同努力的結果,在享受我們成果之時,不得不感慨單片機的重要性與高難度性,所以為期兩周的單片機課程設計沒有浪費,我們從中學到了很多知識,也讓我們對單片機有了更深一步的了解.雖然最后結果是出來了,可這與老師的精心指導是分不開的,他引導我們的思路,本來一竅不通的我們經過老師的點撥基本上通了,所以說老師是功不可抹的。
由于時間有限和本身知識水平的限制,本系統還存在一些不夠完善的地方,要作為實際應用還有一些具體細節問題需要解決。
踉踉蹌蹌地忙碌了兩周,我的單片機課程設計也終將告一段落。設計實物也基本達到預期的效果,但由于能力和時間的關系,總是覺得有很多不盡人意的地方,譬如功能不全、外觀粗糙??數不勝數。但我可以自豪的說,這里面的每一段代碼,都有我的勞動。當看著自己的程序,自己成天相伴的系統能夠健康的運行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最終都會化為甜美的甘泉。
總而言之,單片機課程設計對于我們有很大的幫助,我們從中受益匪淺。
第四篇:單片機課設任務書
《微機應用原理及接口技術》課程設計
一、課程設計題目匯總: 題目
一、數字輸入與顯示器
題目二、十六進制加法計算器 題目四、十進制加法計算器
題目
五、單片機8255矩陣式鍵盤接口電路設計 題目
六、LED、步進電機和喇叭的控制 題目
七、實時時鐘 題目
八、智能搶答器
題目
九、檢測與報警系統的設計 題目
十、自動交通管理系統
題目
十一、基于單片機的函數發生器設計和開發 題目十二 單片機主從式多機串口通信
二、各題設計任務:
題目
一、數字輸入與顯示器
設計一鍵盤顯示裝置,鍵盤上只需定義16個十六進制數字鍵,其它鍵不定義無響應。
要求按下數字鍵后,相應的數字信息在顯示器上予以顯示。(擴展:可連續輸入,將多個輸入值同時顯示或總顯示最新的輸入的功能切換)
題目二、十六進制加法計算器
設計一鍵盤顯示裝置,鍵盤上除需定義16個十六進制數字鍵外還要相應的功能鍵,其它鍵不定義無響應。利用此系統可分別可輸入解雇單位十六進制被加數與加數,實現兩數相加并將結果顯示出來。(擴展:兩位無符號16進制數相加,如溢出蜂鳴器響)
題目四、十進制加法計算器
設計一鍵盤顯示裝置,鍵盤上除需定義10個十進制數字鍵外還要相應的功能鍵,其它鍵不定義無響應。利用此系統可分別可輸入十進制被加數與加數,實現兩數相加并將結果以十進制形式顯示出來。(擴展:多位10進制數相加)題目
五、單片機8255矩陣式鍵盤接口電路設計
用PROTEUS設計出顯示系統的硬件圖,再進行程序設計。最后在PROTEUS軟件內完成軟硬件的調試。實現按下相應的鍵后,在LED上顯示出來。
題目六 單片機碼值轉換
設計鍵盤顯示功能,鍵盤上定義16個進制數字鍵及相應功能鍵,要求將輸入的單個16進制數轉換成對應的二進制,十進制,8進制顯示.題目六:LED、步進電機和喇叭的控制
一、設計目的
利用所學單片機的理論知識進行軟硬件整體設計,鍛煉學生理論聯系實際、綜合應用的能力。
二、設計內容:單片機對LED、步進電機和喇叭的控制。
三、設備和器材:單片機最小開發系統,4個按鍵開關、4個LED指示燈、一個4相步進電機、一個蜂鳴片等。其他器件任選。
四、設計要求:
1、設計接口電路,將這些外設構成一個簡單的單片機應用系統,畫出接口的連接圖。
2、編寫下列控制程序
① 上電后,4個LED二極管依次循環點亮。
② 單獨按下開關1,步進電機正向慢走50,反向快走100步,依次循環。
③ 同時開關2,開關3時,步進電機來回走100步,然后揚聲器發聲10次,依次循環。
④ 單獨按下開關4時,步進電機先慢走50步,揚聲器響2聲,停留50秒,揚聲器再響兩聲,最后停機。
題目七:實時時鐘
一、設計目的
利用所學單片機的理論知識進行軟硬件整體設計,鍛煉學生理論聯系實際、綜合應用的能力。
二、設計內容:以單片機為控制器,采用定時器中斷的方法,設計一個一天24小時進制的實時時鐘,并用6個發光二極管分別顯示時、分、秒的記時,且整點報時(幾點鐘報幾下)。
三、設備和器材:單片機最小系統,一片8155或8255、6個共陽的七段發光二極管由8155驅動(對于實驗系統),一個風鳴片等其他器件任選。
四、設計要求:
1、設計硬件接口電路,將以上硬件構成一個簡單的單片機應用系統,畫出接口的連接圖。
2、編寫驅動軟件,實現以下功能:
① 采用定時器中斷的方法,設計一個一天24小時進制的實時時鐘; ② 用6個發光二極管分別顯示時、分、秒的記時; ③ 能進行整點報時。
④ 可以從鍵盤中預置、修改時鐘值。
題目
八、智能搶答器
一、設計目的
利用所學單片機的理論知識進行軟硬件整體設計,鍛煉學生理論聯系實際、綜合應用的能力。
二、設計內容:設計基于單片機的6人搶答器,并編程實現其功能.三、設備和器材:單片機最小開發系統,中斷控制器8259A一片(自選),并行接口8255A一片或8155(用單片機開發板),發光二極管12只(紅,黃各6只),LED數碼管若干只,按鈕或按鍵10個,其他器件任選。
四、設計要求:
1、設計硬件接口電路,將這些外設構成一個簡單的單片機應用系統,畫出接口的連接圖。
2、編寫下列控制程序
① 1—6號手中先按下按鈕者,LED數碼管顯示其選手號碼(后按下無效),且計時開始,1秒停止計時。
② 由裁判掌握,若回答正確,該選手對應黃燈亮,否則紅燈亮。③ 回答正確時,記分牌加10分,不正確減10分(初始分100分)
題目九:檢測與報警系統的設計
一、設計目的
利用所學單片機的理論知識進行軟硬件整體設計,鍛煉學生理論聯系實際、綜合應用的能力。
二、設計內容:以單片機為控制器,采用中斷方式,對2路0-5V的模擬電壓進行循環采集,采集的數據送LED顯示,并存入內存。超過界限時指示燈閃爍。
三、設備和器材:單片機最小開發系統、一路模擬直流電壓信號、ADC0809芯片,6個共陽的七段發光二極管由8155驅動。其他器件任選。
四、設計要求:
1、設計接口電路,將這些外設構成一個簡單的單片機應用系統,畫出接口的連接圖。
2、編寫程序實現下列功能:
① 對2路模擬信號輸入實行循環采集,每路連續采集16次,取平均值。
② 分別設定每一路的上限值,若采集的平均值超過該界限值,則對應通道的指示燈閃爍10次后一直亮,指示燈閃爍時喇叭發聲,以示警告。③ 采集的數據送LED顯示,并存入內存。
題目十:自動交通管理系統一、設計目的
利用所學單片機的理論知識進行軟硬件整體設計,鍛煉學生理論聯系實際、綜合應用的能力。
二、設計內容:設計用單片機控制的十字路口交通燈及撞紅燈報警控制系統,并實現這些功能。
三、設備和器材
計算機、51單片機最小系統板、并行接口芯片8255A一片或8155(自選),發光二極管紅、綠、藍各4只,2只LED數碼管,顯示時間秒,ADC0809一片)其他器件任選。
四、設計要求
1、設計接口電路,將這些外設構成一個簡單的單片機應用系統,畫出接口的連接圖。
2、編寫程序實現下列功能:
用紅、綠、黃三支共兩組發光二極管表示交通信號燈,利用單片機模擬有時間顯示的定時交通信號燈控制管理。信號燈的變化規律可如下:
① 放行線:綠燈亮放行25秒,黃燈亮警告5秒,然后紅燈亮禁止。② 禁示線:紅燈亮禁止30秒,然后綠燈亮放行。
③ 當某一方向的紅燈亮時,若該方向有車通過,則用揚聲器聲報警。(撞紅燈信號可用3-5V模擬量表示)
④ 同時用2位數碼管進行30秒鐘遞減時間顯示。
題目十一:基于單片機的函數發生器設計和開發
一、設計目的
利用所學單片機的理論知識進行軟硬件整體設計,鍛煉學生理論聯系實際、綜合應用的能力。
二、設計內容:以單片機為基礎,設計并開發能輸出多種波形(正弦波、三角波、鋸齒波、脈沖波、梯形波等)且頻率、幅度可變的函數發生器。
三、設備和器材:單片機最小開發系統,DAC0832一片,運算放大器,其他器件任選。
四、設計要求:
1、設計接口電路,將這些外設構成一個簡單的單片機應用系統,畫出接口的連接圖。
2、編寫控制程序,實現下列功能: ① 能輸出正弦波、三角波、鋸齒波、梯形波、脈沖波。② 能根據鍵盤命令進行波形切換。
③ 能根據鍵盤命令對輸出波形的頻率、幅度進行控制調節。
題目十二 單片機主從式多機串口通信
可以實現波特率的調節,利用鍵盤輸入從機地址,實現主機與從機之間的數據傳輸,并可以將傳輸的數據送顯示。
三、課程設計總體要求:
(1)(2)(3)(4)(5)(6)畫出硬件電路原理圖 畫出軟件程序框圖 編寫控制程序 上機調試、運行
機房檢驗編程結果、并提問 遞交的課程設計報告(打印稿),軟件應有適當的注釋。
四、課程設計論文參考格式 [ 注: 論文各部分具體格式要求按學校文件要求執行 ]
1、課程設計任務書
2、論文目錄
3、正文部分 [設計的具體內容:可分為硬件設計(含電路圖)、軟件設計(含程序流程圖)]
4、調試過程
5、設計小結,心得體會
6、附錄:(1)程序清單,后附程序注釋;(2)硬件連線圖
五、組織安排
注意:每個題目每個班最多安排3個學生,學生可以2人(不超過2人)一組。
實驗地點:電氣學院機房 實驗地點:測控實驗室
第五篇:單片機課設心得體會優秀
單片機課設心得體會優秀
結束了兩周的電視機實訓,我們又迎來了單片機課程設計實訓,真是讓我們受益匪淺啊?學到了很多東西,不管怎么樣,先感謝學校給我的這么多機會。真正的學到了東西。為期一周的單片機課程設計讓我們受益匪淺。此次課程設計軟件與硬件相結合,考察了我們的焊接水平與編程能力。對于我們應用電子技術的學生而言焊接是不成問題,也很順利;可到了編程時就出現了很大的障礙,先開始的顯示時鐘還算順利,下面的報警部分就花費了相當長的時間,還有加上報警時的音樂也是我們到圖書館里查閱資料由匯編轉化成C語言得來的。本來還以為編程會很簡單的,等到實際操作起來才知道它的復雜性,沒有想像中的那么得心應手,理解流程是有思維的前提。單片機是我們上學期開設的課程,所以很多專業知識也都忘記了。不過經過我們一步步的努力,花費的時間與精力終于沒有白費,效果漸漸地出現了。其實本身程序的思維是正確的,只是步驟中有點小錯誤,所以導致整個程序的結果很亂,在仔細修改程序之后,終于一步步地達到效果了。
我們將各個部分的程序編好后怎么都連不起來,出不了預期的效果。對于硬件在編程過程中PCB板的接觸又是一個頭疼的問題,在進行編譯的時候,數碼顯示管上什么都沒有,按一下旁邊與之相連的元器件時就有顯示了,所以也花費了好多時間在PCB板的重新焊接上。對于軟件我們在時鐘完成后就對其加入了報警系統,可加了之后發現程序亂了,以前的時鐘也不可以控制了。經過反復研究,發現接地接錯了位置,導致了用來報警的紅燈跟綠燈根本不亮,然后就將接地線重新焊接了一下,功夫不負有心人,紅燈亮了,配合編好的程序,用紙板擋住了發射管與接收管之間的信號傳輸,數碼顯示管出現閃爍的效果,并且沒信號的時候綠燈亮,有信號的時候紅燈就亮了,這個現象讓我們喜出望外。經過修改時鐘程序和報警系統都被使用上了,可更大的難題就是如何讓它報警?這困擾了我們,數碼顯示管上終于有了閃爍的效果,可報警聲還沒加的上去。老師的要求是除了蜂鳴器上的報警聲再加一段音樂。翻閱了圖書館里的書籍,查出來的音樂程序都是用匯編編的,要將此程序放到主程序中就必須將匯編程序改編成C語言程序。這再次困擾了我們,雖然以前也學過匯編跟C之間的互換,可都是簡單的,從沒涉及到這么復雜的程序過,改編很是有壓力,經過研究,我們將匯編程序舍棄了,到網上下載了一段音樂程序,是C語言編的。要讓音樂在我們的紅外報警系統中唱出來可不是什么簡單的事情,雖然找到了音樂程序,但要讓音樂程序跟我們的主程序融合在一起得花費點心思了。
最后在全組人竭盡全力,老師的精心指導下,程序基本編寫成功,這是我們共同努力的結果,在享受我們成果之時,不得不感慨單片機的重要性與高難度性,所以為期一周的單片機課程設計沒有浪費,我們從中學到了很多知識。也讓我們對單片機有了更深一步的了解。雖然最后結果是出來了,可這與老師的精心指導是分不開的,她引導我們的思路,本來一竅不通的我們經過老師的。點撥基本上通了,所以說老師是功不可抹的。
總而言之,單片機課程設計對于我們有很大的幫助,我們從中受益匪淺。