單片機設計_單片機設計問題

基于單片機的畢業設計那個相對簡單些1、基于單片機控制的電子密碼鎖設計
2、基于單片機的智能電子鐘
3、基于AT89C52智能無線報警器的設計
4、基于單片機的數字秒表設計
5、路燈控制器電路設計
6、數字溫度計的設計
7、實用便攜式數字溫度計電路設計
8、基于單片機的溫度控制系統設計
9、單片機串行通信發射部分設計
10、室內照明控制系統設計
11、單片機在ABS系統應用
12、基于單片機的交通燈控制器的設計
13、基于8031單片機的漢字顯示設計
14、PWM多路輸出開關電源的設計
15、基于溫度傳感器的空調溫控系統的設計
這些題中4.5.10是最簡單的題,其實這些應該是課設級別才對 。
做單片機軟件設計時 , 都應該考慮哪些事情1.首先要保證實現所需要的各種功能,要做到零故障 , 準確無誤,做到零BUG 。
2.其次,凡是需要人工操作的,要做到操作簡便,避免可能出現的誤操作 , 必須在軟件上加以限制 , 做到零錯誤 。
3.需要顯示時,做到顯示明確,避免用戶誤會,應準確顯示出系統狀態,出現故障時應及時提示和報警 。
4.在軟件編寫時 , 做到模塊化,層次清晰,結構合理 , 易懂易讀易移植,利用團隊合作完成 。
5.在軟件上 , 要有防止干擾的措,加看門狗,防止飛程序,禁止死循環 。
這些是主要幾點,對于一個項目 , 一個產品,在研發時,公司會有嚴密的管理制度和措施,更會有硬件軟件的設計要求的,會更詳細具體 。
單片機設計看了上邊的對話 , 挺有意思的 。有能力就自己做,想讓別人做就花點錢,碼程序300起步多正常 。
單片機硬件設計需要注意哪些問題(1)存儲器擴展:容量需求,在選擇時就考慮到單片機的內部存儲器資源,如能滿足要求就不需要進行擴展,在必須擴展時注意存儲器的類型、容量和接口,一般盡量留有余地,并且盡可能減少芯片的數量 。選擇合適的方法、ROM和RAM的形式,RAM是否要進行掉電保護等 。
(2)I/O接口的擴展:單片機應用系統在擴展I/O接口時應從體積、價格、負載能力、功能等幾個方面考慮 。應根據外部需要擴展電路的數量和所選單片機的內部資源(空閑地址線的數量)選擇合適的地址譯碼方法 。
(3)輸入通道的設計:輸入通道設計包括開關量和模擬輸入通道的設計 。開關量要考慮接口形式、電壓等級、隔離方式、擴展接口等 。模擬量通道的設計要與信號檢測環節(傳感器、信號處理電路等)結合起來,應根據系統對速度、精度和價格等要求來選擇.
(4)輸出通道的設計:輸出通道設計包括開關量和模擬量輸出通道的設計 。
(5)人機界面的設計:人機界面的設計包括輸入鍵盤、開關、撥碼盤、啟/停操作、復位、顯示器、打印、指示、報警等
(6)通信電路的設計:單片機應用系統往往作為現場測控設備 , 常與上位機或同位機構成測控網絡 。
(7)印刷電路板的設計與制作:電路原理圖和印刷電路板的設計常采用專業設計軟件進行設計 , 如Protel,OrCAD等 。
(8)負載容限的考慮:單片機總線的負載能力是有限的 。如MCS-51的P0口的負載能力為4mA,最多驅動8個TTL電路 , P1~P3口的負載能力為2mA,最多驅動4個TTL電路 。
(9)信號邏輯電平兼容性的考慮:在所設計的電路中 , 可能兼有TTL和CMOS器件
(10)電源系統的配置:單片機應用系統一定需要電源,要考慮電源的組數、輸出功率、抗干擾 。
(11)抗干擾的實施:采取必要的抗干擾措施是保證單片機系統正常工作的重要環節
關于單片機的畢業設計會單片機的,比如參加過競賽的,一個星期就可以完成畢業設計
什么都不會的 , 除了抄,就是買,要不就來蒙混過關
按您的說法,估計你不太會單片機,這個真的自己做,多向老師同學請教,也至少需要數月吧 。否則作出“實物”,不太現實 。這個過程下來 , 你也可以了解下單片機是什么東西,看你自己愿意在實驗室呆幾個月 , 還是出去找一個適合自己的工作....
買一個是有錢人的上策!
單片機設計問題【單片機設計_單片機設計問題】#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
bit flag;
uchar cnt;
uint freq;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
void delay(void)
{
uchar i,j;
for(i=0;i<5;i++)
for(j=0;j<120;j++);
}
void display(void)
{
uchar dis[5],i;
dis[0]=freq/10000;
dis[1]=freq%10000/1000;
dis[2]=freq%1000/100;
dis[3]=freq%100/10;
dis[4]=freq%10;
for(i=0;i<5;i++)
    {
    P2=1<<i;
    P0=table[dis[i]];
    delay();
    }
}
void main(void)
{
TMOD=0x15;
TH0=0;
TL0=0;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
ET1=1;
EA=1;
while(1)
    {
    display();
    if(flag)
    {
    flag=0;
    TH0=0;
    TL0=0;
    TR1=0;
    TR0=1;
    }
     }
}
void Time_T1(void) interrupt 3//中斷計時器1S計算產生的頻率 。
{
TH1=(65536-50000)/256;   
TL1=(65536-50000)%256;
cnt++;       //20ms
if(cnt>=20) //時間循環50次為1s
{
cnt=0;
TR0=0;
TR1=0;
freq=TH0*256+TL0;
flag=1;
}
}