找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3159|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

這個(gè)是學(xué)習(xí)51過程中非常經(jīng)典的一些程序,AD09原理圖與pcb,非常適合初學(xué)者

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
這個(gè)是學(xué)習(xí)51過程中非常經(jīng)典的一些程序,,非常適合初學(xué)者


AD09原理圖與pcb:


提取一個(gè)狀態(tài)機(jī)按鍵程序:
  1. #include <STC12C5A60S2.H>

  2. sbit K_OUT4 = P2^7;
  3. sbit K_OUT3 = P2^6;
  4. sbit K_OUT2 = P2^5;
  5. sbit K_OUT1 = P2^4;

  6. sbit K_IN1 = P2^0;
  7. sbit K_IN2 = P2^1;
  8. sbit K_IN3 = P2^2;
  9. sbit K_IN4 = P2^3;

  10. bit KeySta = 1;

  11. void UART_Sent(char dat);

  12. void main()
  13. {
  14.         bit backup = 1;
  15.         unsigned char cnt = 0;
  16.         K_OUT4 = 0;
  17.         K_IN1 = 1;
  18.         EA=1;
  19.        
  20.         /*第一步:設(shè)置串口工作模式*/
  21.         SM0 = 0;
  22.         SM1 = 1;
  23.         /*第二步:設(shè)置波特率發(fā)生器*/
  24.         AUXR |= (1 << 0);                        //選擇:獨(dú)立波特率發(fā)生器
  25.         AUXR |= (1 << 2);                        //每一個(gè)時(shí)鐘計(jì)數(shù)一次
  26.         BRT = 0xE6;
  27.         AUXR |= (1 << 4);                        //開啟獨(dú)立波特率發(fā)生器
  28.         TMOD = 0x01;                                        //使用定時(shí)器0的模式1:即16位計(jì)數(shù)器,優(yōu)點(diǎn):可裝載的值較多,計(jì)時(shí)可較長(zhǎng)
  29.         TH0 = 0xF8;
  30.         TL0 = 0xCD;         
  31.         ET0=1;
  32.         TR0=1;


  33.         while(1)
  34.         {                               
  35.                 if(KeySta != backup)
  36.                    {
  37.                                    if(backup == 0)
  38.                                 {
  39.                                         cnt++;
  40.                                         if(cnt >= 10)
  41.                                         {
  42.                                                 cnt = 0;
  43.                                         }
  44.                                         UART_Sent(cnt+48);
  45.                                 }
  46.                                 backup = KeySta;
  47.                    }         
  48.         }         
  49. }

  50. void UART_Sent(char dat)
  51. {       

  52.         SBUF=dat;
  53.         while(!TI);
  54.         TI=0;
  55. }

  56. void timer_0() interrupt 1
  57. {
  58.         static unsigned char keybuf =0xff;

  59.         TH0 = 0xF8;
  60.         TL0 = 0xCD;

  61.        
  62.         keybuf = (keybuf <<1) |K_IN1;         
  63.         if(keybuf == 0x00)
  64.         {
  65.                 KeySta = 0;       
  66.         }
  67.         else if(keybuf == 0xFF)
  68.         {
  69.                 KeySta = 1;
  70.         }
  71.         else
  72.         {
  73.         }
  74. }               


復(fù)制代碼


下載:
51初學(xué)者各個(gè)模塊程序.zip (625.45 KB, 下載次數(shù): 19)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:150077 發(fā)表于 2017-5-5 23:31 | 只看該作者
謝謝分享。。。。。。!
回復(fù)

使用道具 舉報(bào)

板凳
ID:194780 發(fā)表于 2017-5-6 08:49 | 只看該作者
謝謝分享!!收下了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表