導航:首頁 > 操作系統 > 單片機課程設計電子鍾

單片機課程設計電子鍾

發布時間:2025-09-06 02:36:10

1. 求單片機簡易數字鍾的課程設計 :要求自製一個單片機最小系統,包括串口下載、復位電路,採用內部定時器計

下面的程序配合這個電路運行就是對的

這個是完整的程序,電路圖如下

#include<reg52.h>

//定義共陽極字型碼0123456789-

unsignedcharcodedispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

unsignedchartime[]={0,0,0,0};//用來儲存分秒

unsignedchardate[]={0,0,0,0};//用來儲存日時

unsignedcharyear[]={0,0,0,0};//用來儲存年月

typedefstruct__SYSTEMTIME__

{

unsignedcharSecond;

unsignedcharMinute;

unsignedcharHour;

unsignedcharWeek;

unsignedcharDay;

unsignedcharMonth;

unsignedcharYear;

unsignedcharDateString[9];

unsignedcharTimeString[9];

}SYSTEMTIME; //定義的時間類型

SYSTEMTIMEtime1;

sbitDS1302_CLK=P1^6;//實時時鍾時鍾線引腳

sbitDS1302_IO=P1^7;//實時時鍾數據線引腳

sbitDS1302_RST=P1^5;//實時時鍾復位線引腳

sbitACC0=ACC^0;

sbitACC7=ACC^7;

sbitP10=P1^0;

sbitP11=P1^1;

sbitP12=P1^2;

sbitP13=P1^3;

sbitP14=P1^4;

//#defineAM(X) X

//#definePM(X) (X+12) //轉成24小時制

#defineDS1302_SECOND 0x80//秒寄存器

#defineDS1302_MINUTE 0x82//分寄存器

#defineDS1302_HOUR 0x84

#defineDS1302_WEEK 0x8A

#defineDS1302_DAY 0x86

#defineDS1302_MONTH 0x88

#defineDS1302_YEAR 0x8C

#defineDS1302_RAM(X) (0xC0+(X)*2) //用於計算DS1302_RAM地址的宏

voidDS1302InputByte(unsignedchard) //實時時鍾寫入一位元組(內部函數)

{

unsignedchari;

ACC=d;

for(i=8;i>0;i--)

{

DS1302_IO=ACC0; //相當於匯編中的RRC

DS1302_CLK=1;

DS1302_CLK=0;//發一個高跳變到低的脈沖

ACC=ACC>>1;

}

}

unsignedcharDS1302OutputByte(void) //實時時鍾讀取一位元組(內部函數)

{

unsignedchari;

for(i=8;i>0;i--)

{

ACC=ACC>>1; //相當於匯編中的RRC

ACC7=DS1302_IO;

DS1302_CLK=1;

DS1302_CLK=0;//發一個高跳變到低的脈沖

}

return(ACC);

}

voidWrite1302(unsignedcharucAddr,unsignedcharucDa) //ucAddr:DS1302地址,ucData:要寫的數據

{

DS1302_RST=0;

DS1302_CLK=0;

DS1302_RST=1;

DS1302InputByte(ucAddr); //地址,命令

DS1302InputByte(ucDa); //寫1Byte數據

DS1302_CLK=1;

DS1302_RST=0;//RST0->1->0,CLK0->1

}

unsignedcharRead1302(unsignedcharucAddr) //讀取DS1302某地址的數據

{

unsignedcharucData;

DS1302_RST=0;

DS1302_CLK=0;

DS1302_RST=1;//enable

DS1302InputByte(ucAddr|0x01);//地址,命令

ucData=DS1302OutputByte();//讀1Byte數據

DS1302_CLK=1;//RST0->1->0,CLK0->1

DS1302_RST=0;

return(ucData);

}

voidDS1302_SetProtect(bitflag)//是否防寫

{

if(flag)

Write1302(0x8E,0x10);//WP=1,不能寫入

else

Write1302(0x8E,0x00);//WP=0,可以寫入

}

voidDS1302_SetTime(unsignedcharAddress,unsignedcharValue)//設置時間函數

{

DS1302_SetProtect(0);

Write1302(Address,((Value/10)<<4|(Value%10)));//高4位為十位,低4位為個位

}

voidDS1302_GetTime(SYSTEMTIME*Time)

{

unsignedcharReadValue;

ReadValue=Read1302(DS1302_SECOND);

Time->Second=((ReadValue&0x70)>>4)*10+(ReadValue&0x0F);//轉換成10進制的秒

ReadValue=Read1302(DS1302_MINUTE);

Time->Minute=((ReadValue&0x70)>>4)*10+(ReadValue&0x0F);

ReadValue=Read1302(DS1302_HOUR);

Time->Hour=((ReadValue&0x70)>>4)*10+(ReadValue&0x0F);

ReadValue=Read1302(DS1302_DAY);

Time->Day=((ReadValue&0x70)>>4)*10+(ReadValue&0x0F);

ReadValue=Read1302(DS1302_WEEK);

Time->Week=((ReadValue&0x70)>>4)*10+(ReadValue&0x0F);

ReadValue=Read1302(DS1302_MONTH);

Time->Month=((ReadValue&0x70)>>4)*10+(ReadValue&0x0F);

ReadValue=Read1302(DS1302_YEAR);

Time->Year=((ReadValue&0xf0)>>4)*10+(ReadValue&0x0F);

}

voidInitial_DS1302(void)

{

unsignedcharSecond=Read1302(DS1302_SECOND);

if(Second&0x80)//如果第七為1(表明沒有啟動),則啟動時鍾

DS1302_SetTime(DS1302_SECOND,0);

}

voiddelay(unsignedchari)//延時子程序

{

unsignedcharj;

while((i--)!=0)

{

for(j=625;j>0;j--);

}

}

/*unsignedcharbutton_time(n,x,y)//時鍾調整子程序

unsignedcharn,x,y;

{

if(P1^7==0)

{

delay(50);

if(P1^7==0)

{

n++;

if(n==x)

n=0;

while(P1^7==0);

}

}

if(P1^1==0)

{

delay(50);

if(P1^1==0)

{

if(n==0)

n=y;

else

n--;

while(P1^1==0);

}

}

returnn;

}

*/

/*unsignedcharbutton_date(n,x,y)//日期調整子程序

unsignedcharn,x,y;

{

if(P1^7==0)

{

delay(50);

if(P1^7==0)

{

n++;

if(n==x)

n=1;

while(P1^7==0);

}

}

if(P1^1==0)

{

delay(50);

if(P1^1==0)

{

if(n==1)

n=y;

else

n--;

while(P1^1==0);

}

}

returnn;

}*/

voiddisplay1(minute10,minute1,second10,second1) //顯示第一頁分秒子程序

//unsignedcharsecond10,second1,minute10,minute1;

{

P2=0x08;

P0=dispcode[second1];//顯示秒的個位

delay(1);

P2=0x04;

P0=dispcode[second10]; //顯示秒的十位

delay(1);

P2=0x02;

P0=dispcode[minute1]; //顯示分的個位

delay(1);

P2=0x01;

P0=dispcode[minute10];//顯示分的十位

delay(1);

}

voiddisplay2(data10,data1,hour10,hour1) //顯示第二頁天時子程序

//unsignedchardata10,data1,hour10,hour1;

{

P2=0xf8;

P0=dispcode[data1];//顯示天的個位

delay(1);

P2=0xf4;

P0=dispcode[data10]; //顯示天的十位

delay(1);

P2=0xf2;

P0=dispcode[hour1]; //顯示時的個位

delay(1);

P2=0xf1;

P0=dispcode[hour10];//顯示時的十位

delay(1);

}

voiddisplay3(year10,year1,month10,month1) //顯示第三頁年月子程序

//unsignedcharyear10,year1,month10,month1;

{

P2=0xf2;

P0=dispcode[month1];//顯示月的個位

delay(1);

P2=0xf1;

P0=dispcode[month10]; //顯示月的十位

delay(1);

P2=0xf8;

P0=dispcode[year1]; //顯示月的個位

delay(1);

P2=0xf4;

P0=dispcode[year10];//顯示月的十位

delay(1);

}

voidmain()

{

unsignedcharflag=0;

Initial_DS1302(); //初始化DS1302這個時鍾晶元,

P10=0;//點亮測試燈

while(1)

{

DS1302_GetTime(&time1); //讀取時間參數

time[3]=(time1.Second)%10; //把秒的個位數據存入time[3]

time[2]=(time1.Second)/10; //把秒的十位數據存入time[2]

time[1]=(time1.Minute)%10; //把分的個位數據存入time[1]

time[0]=(time1.Minute)/10; //把分的十位數據存入time[0]

date[3]=(time1.Day)%10;

date[2]=(time1.Day)/10;

date[1]=(time1.Hour)%10;

date[0]=(time1.Hour)/10;

year[3]=(time1.Year)%10;

year[2]=(time1.Year)/10;

year[1]=(time1.Month)%10;

year[0]=(time1.Month)/10;

//display1(time[0],time[1],time[2],time[3]);

if(P11==0)

{

delay(50);

if(P11==0)

{

flag++;

if(flag>2)//flag:1顯示第二頁日時;2顯示第三頁年月0:顯示第一頁分秒

{

flag=0;

}

}

while(P11==0);

}

/*if(P1^6==0) //如果按下TimeSet鍵一下,開始顯示日期,再按一下進入日期跟時鍾的調節模式

{

delay(50);

if(P1^6==0)

{

flag++;

if(flag>6)

{

flag=0;

}

}

while(P1^6==0);

}*/

switch(flag)

{

case0:display1(time[0],time[1],time[2],time[3]); //調用子函數display,把存入數組time的數據給顯示出來

break;

case1:display2(date[0],date[1],date[2],date[3]); //調用子函數display,把存入數組date的數據給顯示出來

break;

case2:display3(year[0],year[1],year[2],year[3]);

break;

/* case3:time1.Month=button_date(time1.Month,13,12); //調整月

DS1302_SetTime(0x88,time1.Month);

display(10,10,date[2],date[3]);

break;

case4:time1.Day=button_date(time1.Day,32,31); //調整日

DS1302_SetTime(0x86,time1.Day);

display(10,10,date[4],date[5]);

break;

case5:time1.Minute=button_time(time1.Minute,60,59); //調整分

DS1302_SetTime(0x82,time1.Minute);

display(time[2],time[3],10,10);

break;

case6:time1.Second=button_time(time1.Second,60,59); //調整秒

DS1302_SetTime(0x80,time1.Second);

display(10,10,time[4],time[5]);

break;*/

}

}

}

2. 單片機89c51的電子時鍾課程設計

#include <reg52.h>

#include<stddef.h>

#define uchar unsigned char

#define uint unsigned int

#define LCD1602_FLAG

#define LCD1602_PORT P0


sbit lcd1602_rs=P2^0;

sbit lcd1602_e=P2^2;

sbit lcd1602_rw=P2^1;

sbit lcd1602_busy=P0^7;

sbit key_ch=P3^5;

sbit key_add=P3^6;

sbit key_minus=P3^7;


uchar i,sec,min,h,date,month,flag;

uint year;

uchar *chgstr[7]={" ","sec","min","hour","date","min","year"};

uchar j,k,m,n,o,p;

uchar code table[]={

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};

uchar timestr[10],datestr[10];

void init();

void delay(uint);

void time_display();

void date_display();

void control();

void time();

/*

************************************

* 函數名稱:lcd1602_CheckBusy()

* 函數功能:狀態查詢

************************************

*/


void lcd1602_CheckBusy()

{

do

{

lcd1602_busy=1;

lcd1602_rs=0;

lcd1602_rw=1;

lcd1602_e=0;

lcd1602_e=1;

}

while(lcd1602_busy);

}


/*

***************************************

* 函數名稱: lcd1602_WriteCmd()

* 函數功能:寫命令

* 入口參數:命令字

* 出口參數:無

***************************************

*/


void lcd1602_WriteCmd(const uchar cmd)

{

lcd1602_CheckBusy();

lcd1602_rs=0;

lcd1602_rw=0;

lcd1602_e=1;

LCD1602_PORT=cmd;

lcd1602_e=0;

}


/*

*******************************************

* 函數名稱:lcd1602_WriteData()

* 函數功能:寫數據

* 入口參數:c--待寫數據

* 出口參數:無

*********************************************

*/


void lcd1602_WriteData(const uchar c)

{

lcd1602_CheckBusy();

lcd1602_rs=1;

lcd1602_rw=0;

lcd1602_e=1;

LCD1602_PORT=c;

lcd1602_e=0;

}


/*

***********************************************

* 函數名稱:lcd1602_Init()

* 函數功能:初始化LCD

* 入口參數:無

* 出口參數:無

***********************************************

*/


void lcd1602_Init()

{

lcd1602_WriteCmd(0x38); //顯示模式為8位2行5*7點陣

lcd1602_WriteCmd(0x0c); //display enable,flag enable,flash enable,

lcd1602_WriteCmd(0x06); //flag move to right,screen don't move

lcd1602_WriteCmd(0x01); //clear screen

}


/*

************************************************

* 函數名稱:lcd1602_Display()

* 函數功能: 字元顯示

* 入口參數:ptr--字元或字元串指針

* 出口參數:無

* 說 明:用戶可通過以下方式來調用:

* 1)lcd1602_Display("Hello,world!");

* 2) INT8U 存儲類型 txt[]="要顯示的字元串";

* 或者 INT8U 存儲類型 txt[]={'t','x','t',..,''};

* INT8U *ptr;

* ptr=&txt;

* lcd1602_Display(ptr);

* 或 lcd1602_Display(txt);

* 或 lcd1602_Display(&txt);

************************************************

*/


void lcd1602_Display(const uchar *ptr,uchar line,uchar xaddr)

{

uchar data i=0;

uchar *data q;


q=ptr;

switch(line)

{

case 0:

lcd1602_WriteCmd(0x80+xaddr);

while(q!=NULL && (*q!='') && i<16)

{

lcd1602_WriteData(*q);

q++;

i++;

}

break;

case 1:

lcd1602_WriteCmd(0xc0+xaddr);

while(q!=NULL && (*q!='') && i<16)

{

lcd1602_WriteData(*q);

q++;

i++;

}

break;

}

}



void main()

{

lcd1602_Init();

init();

while(1)

{

time_display();

date_display();

control();

}

}

void init()

{

i=0;

sec=0;

min=30;

h=7;

date=17;

month=10;

year=2017;

flag=0;

EA=1;

ET0=1;

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

TR0=1;

}

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

void time_display()

{

timestr[7]=0x30+sec%10;

timestr[6]=0x30+sec/10;

timestr[5]=':';

timestr[4]=0x30+min%10;

timestr[3]=0x30+min/10;

timestr[2]=':';

timestr[1]=0x30+h%10;

timestr[0]=0x30+h/10;

timestr[8]=0;

lcd1602_Display(timestr,1,3);

}

void date_display()

{

datestr[9]=0x30+date%10;

datestr[8]=0x30+date/10;

datestr[7]=':';

datestr[6]=0x30+month%10;

datestr[5]=0x30+month/10;

datestr[4]=':';

datestr[3]=0x30+year%10;

datestr[2]=0x30+year/10%10;

datestr[1]=0x30+year/100%10;

datestr[0]=0x30+year/1000;

lcd1602_Display(datestr,0,2);

}

void control()

{

if(!key_ch)

{

delay(5);

if(!key_ch)

{

flag++;

TR0=0;

if(flag==7)

{flag=0;TR0=1;lcd1602_Init();}

lcd1602_Display(chgstr[flag],1,12);

}

}

while(!key_ch);

if(flag==1&&key_add==0)

{

while(!key_add);

sec++;

if(sec==60)

sec=0;

}

if(flag==1&&key_minus==0)

{

while(!key_minus);

sec--;

if(sec==-1)

sec=59;

}


if(flag==2&&key_add==0)

{

while(!key_add);

min++;

if(min==60)

min=0;

}

if(flag==2&&key_minus==0)

{

while(!key_minus);

min--;

if(min==-1)

min=59;

}


if(flag==3&&key_add==0)

{

while(!key_add);

h++;

if(h==24)

h=0;

}

if(flag==3&&key_minus==0)

{

while(!key_minus);

h--;

if(h==-1)

h=23;

}


if(flag==4&&key_add==0)

{

while(!key_add);

date++;

if(date==29)

if((year%4!=0)&&(month==2))

date=1;

if(date==30)

if((year%4==0)&&(month==2))

date=1;

if(date==31)

if((month==4)||(month==6)||(month==9)||(month==11))

date=1;

if(date==32)

if((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)||(month==12))

date=1;

}


if(flag==4&&key_minus==0)

{

while(!key_minus);

if(date>1)date--;

}


if(flag==5&&key_add==0)

{

while(!key_add);

month++;

if(month==13)

month=1;

}

if(flag==5&&key_minus==0)

{

while(!key_minus);

month--;

if(month==0)

month=12;

}


if(flag==6&&key_add==0)

{

while(!key_add);

year++;

if(year==99)

year=1;

}

if(flag==6&&key_minus==0)

{

while(!key_minus);

year--;

if(year==0)

year=99;

}

}


void T0_rpt() interrupt 1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

i++;

time();

}


void time()

{

if(i==20)

{

i=0;

sec++;

if(sec==60)

{

sec=0;

min++;

if(min==60)

{

min=0;

h++;

if(h==24)

{

h=0;

min=0;

sec=0;

date++;

if(date==29)

if((year%4!=0)&&(month==2))

{

date=1;

month++;

if(month==13)

{

month=1;

year++;

}

}

if(date==30)

if((year%4==0)&&(month==2))

{

date=1;

month++;

if(month==13)

{

month=1;

year++;

}

}

if(date==31)

if((month==4)||(month==6)||(month==9)||(month==11))

{

date=1;

month++;

if(month==13)

{

month=1;

year++;

}

}

if(date==32)

if((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)||(month==12))

{

date=1;

month++;

if(month==13)

{

month=1;

year++;

}

}

}

}

}

}

}

3. 單片機課程設計的介紹

單片機課程設計,是很多高校,電子信息專業、自動化專業、通信專業等學生在校學習期間,必須完成的一項重要的動手實踐活動,但現在很多高校的課程設計流於形式,是典型的欺軟怕硬。凌陽教育根據對大學生整體動手能力和實踐能力的培養要求,精心選擇了單片機課程設計與工程應用實例,典型實例包括了單片機介面、A/D轉換、D/A轉換、道路交通燈控制、溫度測量、微機通信、LED點陣字元顯示、電子萬年歷、搶答器等。使學生在學習完後,能真正從事單片機或嵌入式的開發工作。包括項目概述、項目要求、系統設計、硬體設計、軟體設計、系統模擬及調試,提供完整的程序清單和電路原理圖。采了實際應用項目實例,力求理論和實踐相結合,同時考慮培養學生解決工程實際問題和綜合應用的能力。典型實例都來自實際工程應用,有助於學生動手能力的培養和鍛煉。

4. 單片機課程設計!不要復制百度!高分懸賞!!

1.單片機控制的60s倒計時
這個太簡單了,不用什麼提示吧?硬體上只要單片機最小系統加上數碼管兩個,程序上只要設置好定時器就行.
2.
基於單片機的電子鍾設計
這個要復雜一點.大概要單片機+數碼管+實時時鍾晶元如DS系列(ds1302加要電池)+存儲晶元如24C02,當然驅動數碼管的如解碼器或鎖存器也要有.
實在說你第一個設計網上能找到現成的,第二個設計網上也能找到現成的,不過要你自己使用keil、proteus軟體綜合調試模擬,這兩個內容都有,自己動手網路一下吧,不要太依賴別人.畢竟這樣才能提高一下你自己.

5. 跪求單片機課程設計 要完全呦

題 目:單片機課程設計報告
目 錄
一、設計目的
二、程設計具體要求
三、單片機發展簡史
四、8051單片機系統簡介
五、8051單片機內部定時器/計數器簡介
六、程序電路
七、程序流程
八、程序代碼
九實驗總結-要求寫出完整的論文以及心得體會
十參考資料及小結
原 文 : 一.目的
1. 進一步熟悉和掌握8051單片機的結構及工作原理。
2. 掌握單片機的介面技術及相關外圍晶元的外特性,控制方法。
3. 通過課程設計,掌握以單片機核心的電路設計的基本方法和技術,了解表關電路參數的計算方法。
4. 通過實際程序設計和調試,逐步掌握模塊化程序設計方法和調試技術。
5. 通過完成一個包括電路設計和程序開發的完整過程,使學生了解開發一單片機應用系統的全過程,為今後從事相應打下基礎。
二.課程設計的體要求
a) 原理圖設計。
1. 原理圖設計要符合項目的工作原理,連線要正確,端了要不得有標號。
2. 圖中所使用的元器件要合理選用,電阻,電容等器件的參數要正確標明。
3. 原理圖要完整,CPU,外圍器件,擴器介面,輸入/輸出裝置要一應俱全。
b) 程序調計
1. 根據要求,將總體項能分解成若干個子功能模塊,每個功能模塊完成一個特定的功能。
2. 根據總體要求及分解的功能模塊,確定各功能模塊之間的關系,設直出完整的程序流程圖。
c) 程序調試將設計完的程序輸入,匯編,排除語法錯誤,生成*OBJ文件。
1. 按所設計的原理圖,在實驗平台上連線,檢查無誤。
2. 將匯編後生成的*OBJ文件傳送到實驗裝置的,執行該程序,檢查該程序、是否達到設計要求,若未達到,修改程序,直到達到要求為止,
d) 說明書
1. 原理圖設計說明
簡要說明設計目的,原理圖中所使用的元器件功能及在圖中的作用,各器件的工作過程及順序。
2. 程序設計說明
對程序設計總體功能及結構進行說明,對各子模塊的功能以及各子模塊之間的關系作較詳細的描述。
3. 畫出工作原理圖,程序流程圖並給出程序清單。
目前,單片機已廣泛應用到圖民經濟建設和日常生活的許多領域,成為測控技術現代化必不可少的重要工具。下面介紹一本單片機課程設計的好書,介紹了很多實例有興趣者可以去買哦,價格不貴【圖書目錄】 - 8051單片機課程設計實訓教材
第1章 緒論
1.1 課程設計所需硬體工具
1.2 專題製作所需軟體使用工具
1.3 8051程序開發測試平台
1.4 使用免費匯編編譯
1.5 89CXX燒錄模擬器操作實例
1.6 自製8051微電腦單板IO51
1.7 IO51操作實例
1.8 以Windows98 工作模式結合DOS模式來執行
第2章 8051單片機課程設計中的基本軟硬體設計
2.1 8051各種基本的硬體設計
2.2 工作指示燈LED
2.3 8051延遲時間計算
2.4 基本按鍵設計
2.5 建立8051通信介面
2.6 簡易8051調試界面
2.7 壓電喇叭測試
2.8 鍵盤掃描
2.9 掃描控制七段顯示器
2.10 LCD介面控制
2.11 8051定時器模式的工作
2.12 定時器模式0測試
2.13 定時器模式1測試
2.14 定時器模式2測試
2.15 以定時器產生各種頻率的聲音
2.16 以定時器演奏—段旋律
第3章 帶單片機的LCD時鍾
第4章 定時鬧鈴
第5章 定時鬧鈴LCD
第6章 音樂倒數定時器
第7章 密碼鎖控制
第8章 可存儲式電子琴
第9章 8051八音盒
第10章 紅外線遙控器研究
10.1 紅外線遙控器動作原理
10.2 如何觀察紅外線遙控器信號
10.3 紅外線遙控器解碼功能說明
第11章 紅外線家電遙控
第12章 8051伺服機控制
12.1 伺服機工作原理及改裝
第1.3章 8051伺服車控制
13.1 功能說明
13.2 伺服車組裝及實驗
第14章 紅外線遙控伺服車
14.1 功能說明
14.2 遙控伺服車組裝及實驗
14.3 控制電路
14.4 控製程序
第15章 無線電家電遙控
15.1 功能說明
15.2 遙控編碼解碼控制
第16章 8051聲控設計
16.1 聲控基本知識介紹
16.2 系統組成
16.3 聲控模塊介紹
16.4 基本控制電路
16.5 基本控製程序
16.6 聲控課題設計

附錄H 如何使用KEIL 8051開發系統匯編和編譯程序及調試
附錄I EPM89 890XX燒錄模擬器特性
附錄J 1051 8051 10控制板特性
附錄K VCMM聲控模塊特性
附錄L IO51控制板完整電路圖
附錄M 需要從網站下載的相關資料的使用說明
附錄N 硬體介面板版權聲明及如何訂購
附錄A 簡易穩壓電源製作
附錄B 本書實驗所需軟硬體工具及零件
附錄C 8051內部控制寄存器介紹
附錄D 8051指令集
附錄E 如何自製8051單板
附錄F 課程設計報告參考內容
附錄G IO51控制板窗口版驅動程序使用說明

閱讀全文

與單片機課程設計電子鍾相關的資料

熱點內容
如何用命令方塊整出效果 瀏覽:29
如何用u盤自製加密狗 瀏覽:174
筆記本上能安裝什麼編譯器 瀏覽:685
程序員還是大齡剩女 瀏覽:95
android自定義view高度 瀏覽:215
開發一個軟體app需要什麼 瀏覽:38
如何查看伺服器共享名字 瀏覽:565
linux重啟mysql的命令行 瀏覽:368
fft演算法c程序 瀏覽:187
編譯出現時間標記 瀏覽:651
有什麼讀書的app 瀏覽:818
單片機可編程式控制制器 瀏覽:215
c語言編譯怎麼輸入中文 瀏覽:898
小孩子學習編程的目的 瀏覽:927
中國人民保險車險app是什麼 瀏覽:579
如何阻止伺服器安裝殺毒軟體 瀏覽:567
谷歌清理加密貨幣 瀏覽:359
阿里雲購買的雲伺服器可以退嗎 瀏覽:688
程序員也很無奈啊你看懂了嗎 瀏覽:518
手機如何開手游伺服器 瀏覽:36