編寫一個(gè)完整的單片機(jī)C51程序

2022-12-30 22:30

編寫一個(gè)完整的單片機(jī)C51程序,包括主程序和中斷服務(wù)程序,采用單片機(jī)的定時(shí)器0工作方式1,定時(shí)器定時(shí)5ms,晶振頻率12MHz,LED燈連接P1.0口,讓LED燈1s鐘閃爍一次。
3個(gè)回答
你正在考試吧?這個(gè)簡(jiǎn)單,就是考慮定時(shí)器中斷一次時(shí)間不夠,一次定時(shí)5ms,要中斷200次,然后P1.0取反
#include
#define uchar unsigned char
#define uint unsigned int
sbit LED = P1^0;
uchar T_Count = 0;
void main()
{
TMOD = 0x01;
TH0 = (65535-5000)/256;
TL0 = (65535-5000)%256;
IE = 0x82;
TR0 = 1;
while(1);
}

void LED_Flash() interrupt 1
{
TH0 = (65535-5000)/256;
TL0 = (65535-5000)%256;
if(++T_Count == 100)
{
LED = !LED;
T_Count = 0;
}
}
#include
sbit led=P1^0; //單片機(jī)管腳位聲明
void main()
{
TMOD=0x01; //定時(shí)器TO工作在方式1
TH0=(65536-5000)/256; //裝初值,12M晶振 1為1us; 5000為5000us=5ms;
TL0=(65536-5000)%256;
EA =1; //開總中斷
ET0=1; //開定時(shí)器TO中斷
TR0=1; //啟動(dòng)定時(shí)器
P1=0; //初始化P1口
while(1) ; //程序在這里等待中斷發(fā)生
}
void T0_time() interrupt 1
{
unsigned char num;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
num++;
if(num==100) //0.5S (1s閃爍1次==0.5S亮0.5S滅)
{
num=0;
led=~led; //led狀態(tài)取反
}
}
相關(guān)問答
編寫c51程序?
1個(gè)回答2023-01-05 07:06
你可以和程序員面對(duì)面探討一下
單片機(jī)c51!速求大神,跪求這個(gè)任務(wù)的詳細(xì)程序怎么編啊,單片機(jī)c51
2個(gè)回答2023-01-02 14:50
可以吧原理圖發(fā)給我我?guī)湍闩?/div>
世界第一編程高手編的程序
1個(gè)回答2024-03-08 13:56
與硬件不兼容
程序編程怎么寫?
1個(gè)回答2024-02-01 22:25
1、步驟如下:編寫設(shè)計(jì)環(huán)境,良好的編程習(xí)慣和風(fēng)格不僅可以使程序代碼更易于讀懂和修改,更重要的是,它可以使程序的結(jié)構(gòu)更加合理,有助于提高程序的執(zhí)行效率。 2、[驅(qū)動(dòng)器]:\\?\\程序\\英語1\...
全文
編程序。。。。
1個(gè)回答2024-03-02 15:06
#include int gcd(int x,int y) { int r; while((r=x%y)!=0) { x=y; y=r; ...
全文
編一個(gè)小程序
1個(gè)回答2024-03-02 06:44
MATLAB程序 for i=281:999 disp(sprintf('IP%d=172.18.%d.*',i,i-84)) end 999還可以改到更大 輸出 IP281=172.18...
全文
這個(gè)程序咋編
1個(gè)回答2024-03-30 04:21
#include int main() {int a[11][11]={0},i,j; ?a[1][1]=1; ?for(i=2;i<11;i++) for(j=1;j<=i;j++) ...
全文
如何編程序
1個(gè)回答2024-05-16 18:35
重在理解,你先去學(xué)Basic,再去學(xué)C,更快。不過,我建議你去學(xué)Pascal,這個(gè)更好理解,O(∩_∩)O~
編寫程序,
1個(gè)回答2024-03-31 21:09
不管小寫英文,還是大寫英文,都對(duì)應(yīng)一個(gè)ACSSII碼。我看你的,除了X→A,Y→B,Z→C;前面都是有規(guī)律的。A的ACSSII碼 65,65+3=68(D的ACSSII碼)。最后三個(gè)單獨(dú)判斷。雖然這個(gè)...
全文
編寫簡(jiǎn)單的程序
1個(gè)回答2024-08-07 05:49
//你確定是除1,和n外數(shù),看下面這個(gè)全格不 #include int main() { int n,i,sum; scanf("%d",&n); for(i=2,sum=0;i<n;...
全文
熱門問答