浓毛老太交欧美老妇热爱乱,蜜臀性色av免费,妺妺窝人体色www看美女,久久久久久久久久久大尺度免费视频,麻豆人妻无码性色av专区

位置:51電子網(wǎng) » 技術(shù)資料 » 單 片 機(jī)

單片機(jī)C語(yǔ)言編程基礎(chǔ)

發(fā)布時(shí)間:2008/8/16 0:00:00 訪問(wèn)次數(shù):859

  單片機(jī)的外部結(jié)構(gòu):

  1、 dip40雙列直插;
  2、 p0,p1,p2,p3四個(gè)8位準(zhǔn)雙向i/o引腳;(作為i/o輸入時(shí),要先輸出高電平)
  3、 電源vcc(pin40)和地線gnd(pin20);
  4、 高電平復(fù)位reset(pin9);(10uf電容接vcc與reset,即可實(shí)現(xiàn)上電復(fù)位)
  5、 內(nèi)置振蕩電路,外部只要接晶體至x1(pin18)和x0(pin19);(頻率為主頻的12倍)
  6、 程序配置ea(pin31)接高電平vcc;(運(yùn)行單片機(jī)內(nèi)部rom中的程序)
  7、 p3支持第二功能:rxd、txd、int0、int1、t0、t1
  單片機(jī)內(nèi)部i/o部件:(所為學(xué)習(xí)單片機(jī),實(shí)際上就是編程控制以下i/o部件,完成指定任務(wù))
  1、 四個(gè)8位通用i/o端口,對(duì)應(yīng)引腳p0、p1、p2和p3;
  2、 兩個(gè)16位定時(shí)計(jì)數(shù)器;(tmod,tcon,tl0,th0,tl1,th1)
  3、 一個(gè)串行通信接口;(scon,sbuf)
  4、 一個(gè)中斷控制器;(ie,ip)
  針對(duì)at89c52單片機(jī),頭文件at89x52.h給出了sfr特殊功能寄存器所有端口的定義。教科書(shū)的160頁(yè)給出了針對(duì)mcs51系列單片機(jī)的c語(yǔ)言擴(kuò)展變量類(lèi)型。
  單片機(jī)c語(yǔ)言編程基礎(chǔ)
  1、 十六進(jìn)制表示字節(jié)0x5a:二進(jìn)制為01011010b;0x6e為01101110。
  2、 如果將一個(gè)16位二進(jìn)數(shù)賦給一個(gè)8位的字節(jié)變量,則自動(dòng)截?cái)酁榈?位,而丟掉高8位。
  3、 ++var表示對(duì)變量var先增一;var—表示對(duì)變量后減一。
  4、 x |= 0x0f;表示為 x = x | 0x0f;
  5、 tmod = ( tmod & 0xf0 ) | 0x05;表示給變量tmod的低四位賦值0x5,而不改變tmod的高四位。
  6、 while( 1 ); 表示無(wú)限執(zhí)行該語(yǔ)句,即死循環(huán)。語(yǔ)句后的分號(hào)表示空循環(huán)體,也就是{;}
  在某引腳輸出高電平的編程方法:(比如p1.3(pin4)引腳)
  #include //該頭文檔中有單片機(jī)內(nèi)部資源的符號(hào)化定義,其中包含p1.3
  void main( void ) //void 表示沒(méi)有輸入?yún)?shù),也沒(méi)有函數(shù)返值,這入單片機(jī)運(yùn)行的復(fù)位入口
  {
  p1_3 = 1; //給p1_3賦值1,引腳p1.3就能輸出高電平vcc
  while( 1 ); //死循環(huán),相當(dāng) loop: goto loop;
  }
  注意:p0的每個(gè)引腳要輸出高電平時(shí),必須外接上拉電阻(如4k7)至vcc電源。
  在某引腳輸出低電平的編程方法:(比如p2.7引腳)
  #include //該頭文檔中有單片機(jī)內(nèi)部資源的符號(hào)化定義,其中包含p2.7
  void main( void ) //void 表示沒(méi)有輸入?yún)?shù),也沒(méi)有函數(shù)返值,這入單片機(jī)運(yùn)行的復(fù)位入口
  {
  p2_7 = 0; //給p2_7賦值0,引腳p2.7就能輸出低電平gnd
  while( 1 ); //死循環(huán),相當(dāng) loop: goto loop;
  }
  在某引腳輸出方波編程方法:(比如p3.1引腳)
  #include //該頭文檔中有單片機(jī)內(nèi)部資源的符號(hào)化定義,其中包含p3.1
  void main( void ) //void 表示沒(méi)有輸入?yún)?shù),也沒(méi)有函數(shù)返值,這入單片機(jī)運(yùn)行的復(fù)位入口
  {
  while( 1 ) //非零表示真,如果為真則執(zhí)行下面循環(huán)體的語(yǔ)句
  {
  p3_1 = 1; //給p3_1賦值1,引腳p3.1就能輸出高電平vcc
  p3_1 = 0; //給p3_1賦值0,引腳p3.1就能輸出低電平gnd
  } //由于一直為真,所以不斷輸出高、低、高、低……,從而形成方波
  }
  將某引腳的輸入電平取反后,從另一個(gè)引腳輸出:( 比如 p0.4 = not( p1.1) )
  #include //該頭文檔中有單片機(jī)內(nèi)部資源的符號(hào)化定義,其中包含p0.4和p1.1
  void main( void ) //void 表示沒(méi)有輸入?yún)?shù),也沒(méi)有函數(shù)返值,這入單片機(jī)運(yùn)行的復(fù)位入口
  {
  p1_1 = 1; //初始化。p1.1作為輸入,必須輸出高電平
  while( 1 ) //非零表示真,如果為真則執(zhí)行下面循環(huán)體的語(yǔ)句
  {
  if( p1_1 == 1 ) //讀取p1.1,就是認(rèn)為p1.1為輸入,如果p1.1輸入高電平vcc
  { p0_4 = 0; } //給p0_4賦值0,引腳p0.4就能輸出低電平gnd
  else //否則p1.1輸入為低電平gnd
  //{ p0_4 = 0; } //給p0_4賦值0,引腳p0.4就能輸出低電平gnd
  { p0_4 = 1; } //給p0_4賦值1,引腳p0.4就能輸出高電平vcc
  } //由于一直為真,所以不斷根據(jù)p1.1的輸入情況,改變p0.4的輸出電平
  }
  將某端口8個(gè)引腳輸入電平,低四位取反后,從另一個(gè)端口8個(gè)引腳輸出:( 比如 p2 = not( p3 ) )
  #include //該頭文檔中有單片機(jī)內(nèi)部資源的符號(hào)化定義,其中包含p2和p3
  void main( void ) //void 表示沒(méi)有輸入?yún)?shù),也沒(méi)有函數(shù)返值,這入單片機(jī)運(yùn)行的復(fù)位入口
  {
  p3 = 0xff; //初始化。p3作為輸入,必須輸出高電平,同時(shí)給p3口的8個(gè)引腳輸出高電平
  while( 1 ) //非零表示真,如果為真則執(zhí)行下面循環(huán)體的語(yǔ)句
  { //取反的方法是異或1,而不取反的方法則是異或0

  單片機(jī)的外部結(jié)構(gòu):

  1、 dip40雙列直插;
  2、 p0,p1,p2,p3四個(gè)8位準(zhǔn)雙向i/o引腳;(作為i/o輸入時(shí),要先輸出高電平)
  3、 電源vcc(pin40)和地線gnd(pin20);
  4、 高電平復(fù)位reset(pin9);(10uf電容接vcc與reset,即可實(shí)現(xiàn)上電復(fù)位)
  5、 內(nèi)置振蕩電路,外部只要接晶體至x1(pin18)和x0(pin19);(頻率為主頻的12倍)
  6、 程序配置ea(pin31)接高電平vcc;(運(yùn)行單片機(jī)內(nèi)部rom中的程序)
  7、 p3支持第二功能:rxd、txd、int0、int1、t0、t1
  單片機(jī)內(nèi)部i/o部件:(所為學(xué)習(xí)單片機(jī),實(shí)際上就是編程控制以下i/o部件,完成指定任務(wù))
  1、 四個(gè)8位通用i/o端口,對(duì)應(yīng)引腳p0、p1、p2和p3;
  2、 兩個(gè)16位定時(shí)計(jì)數(shù)器;(tmod,tcon,tl0,th0,tl1,th1)
  3、 一個(gè)串行通信接口;(scon,sbuf)
  4、 一個(gè)中斷控制器;(ie,ip)
  針對(duì)at89c52單片機(jī),頭文件at89x52.h給出了sfr特殊功能寄存器所有端口的定義。教科書(shū)的160頁(yè)給出了針對(duì)mcs51系列單片機(jī)的c語(yǔ)言擴(kuò)展變量類(lèi)型。
  單片機(jī)c語(yǔ)言編程基礎(chǔ)
  1、 十六進(jìn)制表示字節(jié)0x5a:二進(jìn)制為01011010b;0x6e為01101110。
  2、 如果將一個(gè)16位二進(jìn)數(shù)賦給一個(gè)8位的字節(jié)變量,則自動(dòng)截?cái)酁榈?位,而丟掉高8位。
  3、 ++var表示對(duì)變量var先增一;var—表示對(duì)變量后減一。
  4、 x |= 0x0f;表示為 x = x | 0x0f;
  5、 tmod = ( tmod & 0xf0 ) | 0x05;表示給變量tmod的低四位賦值0x5,而不改變tmod的高四位。
  6、 while( 1 ); 表示無(wú)限執(zhí)行該語(yǔ)句,即死循環(huán)。語(yǔ)句后的分號(hào)表示空循環(huán)體,也就是{;}
  在某引腳輸出高電平的編程方法:(比如p1.3(pin4)引腳)
  #include //該頭文檔中有單片機(jī)內(nèi)部資源的符號(hào)化定義,其中包含p1.3
  void main( void ) //void 表示沒(méi)有輸入?yún)?shù),也沒(méi)有函數(shù)返值,這入單片機(jī)運(yùn)行的復(fù)位入口
  {
  p1_3 = 1; //給p1_3賦值1,引腳p1.3就能輸出高電平vcc
  while( 1 ); //死循環(huán),相當(dāng) loop: goto loop;
  }
  注意:p0的每個(gè)引腳要輸出高電平時(shí),必須外接上拉電阻(如4k7)至vcc電源。
  在某引腳輸出低電平的編程方法:(比如p2.7引腳)
  #include //該頭文檔中有單片機(jī)內(nèi)部資源的符號(hào)化定義,其中包含p2.7
  void main( void ) //void 表示沒(méi)有輸入?yún)?shù),也沒(méi)有函數(shù)返值,這入單片機(jī)運(yùn)行的復(fù)位入口
  {
  p2_7 = 0; //給p2_7賦值0,引腳p2.7就能輸出低電平gnd
  while( 1 ); //死循環(huán),相當(dāng) loop: goto loop;
  }
  在某引腳輸出方波編程方法:(比如p3.1引腳)
  #include //該頭文檔中有單片機(jī)內(nèi)部資源的符號(hào)化定義,其中包含p3.1
  void main( void ) //void 表示沒(méi)有輸入?yún)?shù),也沒(méi)有函數(shù)返值,這入單片機(jī)運(yùn)行的復(fù)位入口
  {
  while( 1 ) //非零表示真,如果為真則執(zhí)行下面循環(huán)體的語(yǔ)句
  {
  p3_1 = 1; //給p3_1賦值1,引腳p3.1就能輸出高電平vcc
  p3_1 = 0; //給p3_1賦值0,引腳p3.1就能輸出低電平gnd
  } //由于一直為真,所以不斷輸出高、低、高、低……,從而形成方波
  }
  將某引腳的輸入電平取反后,從另一個(gè)引腳輸出:( 比如 p0.4 = not( p1.1) )
  #include //該頭文檔中有單片機(jī)內(nèi)部資源的符號(hào)化定義,其中包含p0.4和p1.1
  void main( void ) //void 表示沒(méi)有輸入?yún)?shù),也沒(méi)有函數(shù)返值,這入單片機(jī)運(yùn)行的復(fù)位入口
  {
  p1_1 = 1; //初始化。p1.1作為輸入,必須輸出高電平
  while( 1 ) //非零表示真,如果為真則執(zhí)行下面循環(huán)體的語(yǔ)句
  {
  if( p1_1 == 1 ) //讀取p1.1,就是認(rèn)為p1.1為輸入,如果p1.1輸入高電平vcc
  { p0_4 = 0; } //給p0_4賦值0,引腳p0.4就能輸出低電平gnd
  else //否則p1.1輸入為低電平gnd
  //{ p0_4 = 0; } //給p0_4賦值0,引腳p0.4就能輸出低電平gnd
  { p0_4 = 1; } //給p0_4賦值1,引腳p0.4就能輸出高電平vcc
  } //由于一直為真,所以不斷根據(jù)p1.1的輸入情況,改變p0.4的輸出電平
  }
  將某端口8個(gè)引腳輸入電平,低四位取反后,從另一個(gè)端口8個(gè)引腳輸出:( 比如 p2 = not( p3 ) )
  #include //該頭文檔中有單片機(jī)內(nèi)部資源的符號(hào)化定義,其中包含p2和p3
  void main( void ) //void 表示沒(méi)有輸入?yún)?shù),也沒(méi)有函數(shù)返值,這入單片機(jī)運(yùn)行的復(fù)位入口
  {
  p3 = 0xff; //初始化。p3作為輸入,必須輸出高電平,同時(shí)給p3口的8個(gè)引腳輸出高電平
  while( 1 ) //非零表示真,如果為真則執(zhí)行下面循環(huán)體的語(yǔ)句
  { //取反的方法是異或1,而不取反的方法則是異或0

相關(guān)IC型號(hào)
版權(quán)所有:51dzw.COM
深圳服務(wù)熱線:13692101218  13751165337
粵ICP備09112631號(hào)-6(miitbeian.gov.cn)
公網(wǎng)安備44030402000607
深圳市碧威特網(wǎng)絡(luò)技術(shù)有限公司
付款方式


 復(fù)制成功!