亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

P1

  • 串行編程器源程序(Keil C語言)

    串行編程器源程序(Keil C語言)//FID=01:AT89C2051系列編程器//實現編程的讀,寫,擦等細節//AT89C2051的特殊處:給XTAL一個脈沖,地址計數加1;P1的引腳排列與AT89C51相反,需要用函數轉換#include <e51pro.h> #define C2051_P3_7 P1_0#define C2051_P1 P0//注意引腳排列相反#define C2051_P3_0  P1_1#define C2051_P3_1 P1_2#define C2051_XTAL P1_4#define C2051_P3_2 P1_5#define C2051_P3_3 P1_6#define C2051_P3_4 P1_7#define C2051_P3_5 P3_5 void InitPro01()//編程前的準備工作{ SetVpp0V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=0; Delay_ms(20); nAddress=0x0000; SetVpp5V();} void ProOver01()//編程結束后的工作,設置合適的引腳電平{ SetVpp5V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=1;} BYTE GetData()//從P0口獲得數據{ B_0=P0_7; B_1=P0_6; B_2=P0_5; B_3=P0_4; B_4=P0_3; B_5=P0_2; B_6=P0_1; B_7=P0_0; return B;} void SetData(BYTE DataByte)//轉換并設置P0口的數據{ B=DataByte; P0_0=B_7; P0_1=B_6; P0_2=B_5; P0_3=B_4; P0_4=B_3; P0_5=B_2; P0_6=B_1; P0_7=B_0;} void ReadSign01()//讀特征字{ InitPro01(); Delay_ms(1);//----------------------------------------------------------------------------- //根據器件的DataSheet,設置相應的編程控制信號 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(20); ComBuf[2]=GetData(); C2051_XTAL=1; C2051_XTAL=0; Delay_us(20); ComBuf[3]=GetData(); ComBuf[4]=0xff;//----------------------------------------------------------------------------- ProOver01();} void Erase01()//擦除器件{ InitPro01();//----------------------------------------------------------------------------- //根據器件的DataSheet,設置相應的編程控制信號 C2051_P3_3=1; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(1); SetVpP12V(); Delay_ms(1); C2051_P3_2=0; Delay_ms(10); C2051_P3_2=1; Delay_ms(1);//----------------------------------------------------------------------------- ProOver01();} BOOL Write01(BYTE Data)//寫器件{//----------------------------------------------------------------------------- //根據器件的DataSheet,設置相應的編程控制信號 //寫一個單元 C2051_P3_3=0; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; SetData(Data); SetVpP12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); Delay_us(20); C2051_P3_4=0; Delay_ms(2); nTimeOut=0; P0=0xff; nTimeOut=0; while(!GetData()==Data)//效驗:循環讀,直到讀出與寫入的數相同 {  nTimeOut++;  if(nTimeOut>1000)//超時了  {   return 0;  } } C2051_XTAL=1; C2051_XTAL=0;//一個脈沖指向下一個單元//----------------------------------------------------------------------------- return 1;} BYTE Read01()//讀器件{ BYTE Data;//----------------------------------------------------------------------------- //根據器件的DataSheet,設置相應的編程控制信號 //讀一個單元 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=1; C2051_P3_7=1; Data=GetData(); C2051_XTAL=1; C2051_XTAL=0;//一個脈沖指向下一個單元//----------------------------------------------------------------------------- return Data;} void Lock01()//寫鎖定位{ InitPro01();//先設置成編程狀態//----------------------------------------------------------------------------- //根據器件的DataSheet,設置相應的編程控制信號 if(ComBuf[2]>=1)//ComBuf[2]為鎖定位 {  C2051_P3_3=1;  C2051_P3_4=1;  C2051_P3_5=1;  C2051_P3_7=1;  Delay_us(20);  SetVpP12V();  Delay_us(20);  C2051_P3_2=0;  Delay_us(20);  C2051_P3_2=1;  Delay_us(20);  SetVpp5V(); } if(ComBuf[2]>=2) {  C2051_P3_3=1;  C2051_P3_4=1;  C2051_P3_5=0;  C2051_P3_7=0;  Delay_us(20);  SetVpP12V();  Delay_us(20);  C2051_P3_2=0;  Delay_us(20);  C2051_P3_2=1;  Delay_us(20);  SetVpp5V(); }//----------------------------------------------------------------------------- ProOver01();} void PreparePro01()//設置pw中的函數指針,讓主程序可以調用上面的函數{ pw.fpInitPro=InitPro01; pw.fpReadSign=ReadSign01; pw.fpErase=Erase01; pw.fpWrite=Write01; pw.fpRead=Read01; pw.fpLock=Lock01; pw.fpProOver=ProOver01;}

    標簽: Keil 串行 C語言 編程器

    上傳時間: 2013-11-12

    上傳用戶:gut1234567

  • keil入門實例教程

    單片機開發中除必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變為CPU可以執行的機器碼有兩種方法,一種是手工匯編,另一種是機器匯編,目前已極少使用手工匯編的方法了。機器匯編是通過匯編軟件將源程序變為機器碼,用于MCS-51 單片機的匯編軟件有早期的A51,隨著單片機開發技術的不斷發展,從普遍使用匯編語言到逐漸使用高級語言開發,單片機的開發軟件也在不斷發展,Keil 軟件是目前最流行開發MCS-51 系列單片機的軟件,這從近年來各仿真機廠商紛紛宣布全面支持Keil 即可看出。Keil 提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境(uVision)將這些部份組合在一起。運行Keil 軟件需要Pentium 或以上的CPU,16MB或更多RAM、20M 以上空閑的硬盤空間、WIN98、NT、WIN2000、WINXP等操作系統。掌握這一軟件的使用對于使用51 系列單片機的愛好者來說是十分必要的,如果你使用C 語言編程,那么Keil 幾乎就是你的不二之選(目前在國內你只能買到該軟件、而你買的仿真機也很可能只支持該軟件),即使不使用C 語言而僅用匯編語言編程,其方便易用的集成環境、強大的軟件仿真調試工具也會令你事半功倍。我們將通過一些實例來學習Keil 軟件的使用,在這一部份我們將學習如何輸入源程序,建立工程、對工程進行詳細的設置,以及如何將源程序變為目標代碼。圖1 所示電路圖使用89C51 單片機作為主芯片,這種單片機性屬于MCS-51 系列,其內部有4K 的FLASH ROM,可以反復擦寫,非常適于做實驗。89C51 的P1 引腳上接8 個發光二極管,P3.2~P3.4 引腳上接4 個按鈕開關,我們的第一個任務是讓接在P1 引腳上的發光二極管依次循環點亮。 一、Keil 工程的建立首先啟動Keil 軟件的集成開發環境,這里假設讀者已正確安裝了該軟件,可以從桌面上直接雙擊uVision 的圖標以啟動該軟件。UVison啟動后,程序窗口的左邊有一個工程管理窗口,該窗口有3 個標簽,分別是Files、Regs、和Books,這三個標簽頁分別顯示當前項目的文件結構、CPU 的寄存器及部份特殊功能寄存器的值(調試時才出現)和所選CPU 的附加說明文件,如果是第一次啟動Keil,那么這三個標簽頁全是空的。

    標簽: keil 教程

    上傳時間: 2013-12-26

    上傳用戶:liulinshan2010

  • MCS 51單片機內部并行口及應用

    2.1 MCS-51 單片機并行口結構1.1.1  P0口結構  1.1.2  P1口結構 1.1.3  P2口結構  1.1.4  P3口結構2.2 MCS-51 單片機并行口應用在沒有外擴任何芯片時,MCS-51單片機內部并行口可以作為輸出口,直接與輸出外設連接,常用的輸出外設是發光二極管; MCS-51單片機內部并行口也可以作為輸入口,直接與輸入外設連接,常用的輸入外設是開關。1.2.1  直接做輸出口 1.2.2  直接做輸入口2.3 七段LED顯示器接口在單片機控制系統中顯示器是必不可少的外設。常用的顯示器有發光二極管,數碼管和液晶顯示器。本節介紹數碼管接口。1.3.1   數碼管簡介  1.3.2   單個七段LED數碼管的接口 1.3.3   多個七段LED數碼管的接口2.4 鍵盤接口 鍵盤是單片機控制系統最常用、最簡單的輸入設備。用戶可以通過鍵盤輸入數據或命令,實現簡單的人機通信。 1.4.1   鍵盤類型  1.4.2   非編碼鍵盤與單片機的接口 1.4.3   矩陣非編碼鍵盤與單片機的接口

    標簽: MCS 51單片機 并行口

    上傳時間: 2013-10-15

    上傳用戶:阿四AIR

  • RD系列微型打印機打印實例

    C51控制并口打印機實例:/* 沈陽新榮達電子 *//* 2004-12-7 */#include <reg52.h>#define uchar unsigned char#define uint unsigned int#define data_8 P0sbit BUSY = P1^2; //打印機 BUSY 接P1.2sbit STB = P1^0; //打印機 STB 接P1.0void print(uchar j) //打印子程序{ uchar i;while(BUSY){}; //BUSY=1,打印機忙,等待BUSY 為0 再發數data_8=j;STB=0;i++;i--;STB=1; //給出數據鎖存時鐘BUSY=1;}void main(void){BUSY = 1; //忙信號置高STB = 1; //選通信號置高print(0x1b); //打印機初始化命令print(0x38);print(0x04);for(;;){print(0xd0); //發送漢字內碼“新榮達”print(0xc2);print(0xc8);print(0xd9);print(0xb4);print(0xef);print(0x0d); //換行}}

    標簽: 微型打印機 打印

    上傳時間: 2013-11-13

    上傳用戶:lwq11

  • 微型打印機的C語言源程序

    微型打印機的C語言源程序:微型打印機的C51源程序#define uchar unsigned char#define uint unsigned int#include <reg52.h>#include <stdio.h>#include <absacc.h>#include <math.h>#include <string.h>#include <ctype.h>#include <stdlib.h>#define PIN XBYTE[0x8000]#define POUT XBYTE[0x9000]sbit PRINTSTB =P1^6;sbit DOG=P1^7;bdata char pin&#118alue;sbit PRINTBUSY=pin&#118alue^7;sbit PRINTSEL =pin&#118alue^6;sbit PRINTERR =pin&#118alue^5;sbit PRINTACK =pin&#118alue^4;  void PrintString(uchar *String1,uchar *String2);void initprint(void);void print(uchar a);  void initprint(void) //打印機初始化子程序 {  pin&#118alue=PIN;  if((PRINTSEL==1)&&(PRINTERR==1))  {    print(0x1b); print(0x40); print(0x1b); print(0x38); print(0x4);  }}void print(uchar a) //打印字符a{  pin&#118alue=PIN;  if((PRINTSEL==0)||(PRINTERR==0)) return;  for(;;) {    DOG=~DOG;    pin&#118alue=PIN;    if(PRINTBUSY==0) break;  }  DOG=~DOG;  POUT=a;  PRINTSTB=1;  PRINTSTB=1;  PRINTSTB=1;  PRINTSTB=1;  PRINTSTB=0;  PRINTSTB=0;  PRINTSTB=0;  PRINTSTB=0;  PRINTSTB=1;}void PrintString(uchar *String) //打印字符串后回車{  uchar CH;  for (;;) {   DOG=~DOG;   CH=*String;   if (CH==0) { print(0x0d); break; }   print(CH);   String++;  }  initprint();}

    標簽: 微型打印機 C語言 源程序

    上傳時間: 2013-10-18

    上傳用戶:hasan2015

  • Keil軟件的使用

    隨著單片機開發技術的不斷發展,目前已有越來越多的人從普遍使用匯編語言到逐漸使用高級語言開發,其中主要是以C語言為主,市場上幾種常見的單片機均有其C語言開發環境。這里以最為流行的80C51單片機為例來學習單片機的C語言編程技術。大家都有C語言基礎,但是編單片機程序,大家還得找專門的書來學習一下。這里我們只介紹Keil這種工具軟件的用法。學習一種編程語言,最重要的是建立一個練習環境,邊學邊練才能學好。Keil軟件是目最流行開發80C51系列單片機的軟件,Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境(µVision)將這些部份組合在一起。下面我以一個實驗舉一個例子,一步一步學習Keil軟件的使用。               首先我們看硬件原理圖:           很明顯,要點亮使發光二極管,必須使單片機的I/O口P1.0輸出低電平。于是我們的任務就是編程序使P1.0輸出地電平。1. 使用Keil前必須先安裝。安裝過程簡單,這里不在敘述。2. 安裝好了Keil軟件以后,我們打開它。打開以后界面如下:

    標簽: Keil 軟件

    上傳時間: 2013-11-07

    上傳用戶:wtrl

  • 單片機課程總結

    單片機基礎知識單片機的外部結構:1、 DIP40雙列直插;2、 P0,P1,P2,P3四個8位準雙向I/O引腳;(作為I/O輸入時,要先輸出高電平)3、 電源VCC(PIN40)和地線GND(PIN20);4、 高電平復位RESET(PIN9);(10uF電容接VCC與RESET,即可實現上電復位)5、 內置振蕩電路,外部只要接晶體至X1(PIN18)和X0(PIN19);(頻率為主頻的12倍)6、 程序配置EA(PIN31)接高電平VCC;(運行單片機內部ROM中的程序)7、 P3支持第二功能:RXD、TXD、INT0、INT1、T0、T1 單片機內部I/O部件:(所為學習單片機,實際上就是編程控制以下I/O部件,完成指定任務)1、 四個8位通用I/O端口,對應引腳P0、P1、P2和P3;2、 兩個16位定時計數器;(TMOD,TCON,TL0,TH0,TL1,TH1)3、 一個串行通信接口;(SCON,SBUF)4、 一個中斷控制器;(IE,IP)針對AT89C52單片機,頭文件AT89x52.h給出了SFR特殊功能寄存器所有端口的定義。教科書的160頁給出了針對MCS51系列單片機的C語言擴展變量類型。 C語言編程基礎:1、 十六進制表示字節0x5a:二進制為01011010B;0x6E為01101110。2、 如果將一個16位二進數賦給一個8位的字節變量,則自動截斷為低8位,而丟掉高8位。3、 ++var表示對變量var先增一;var—表示對變量后減一。4、 x |= 0x0f;表示為 x = x | 0x0f;5、 TMOD = ( TMOD & 0xf0 ) | 0x05;表示給變量TMOD的低四位賦值0x5,而不改變TMOD的高四位。6、 While( 1 ); 表示無限執行該語句,即死循環。語句后的分號表示空循環體,也就是{;}第一章    單片機最小應用系統:單片機最小系統的硬件原理接線圖:1、 接電源:VCC(PIN40)、GND(PIN20)。加接退耦電容0.1uF2、 接晶體:X1(PIN18)、X2(PIN19)。注意標出晶體頻率(選用12MHz),還有輔助電容30pF3、 接復位:RES(PIN9)。接上電復位電路,以及手動復位電路,分析復位工作原理4、 接配置:EA(PIN31)。說明原因。第二章      基本I/O口的應用第三章      顯示驅動第七章      串行接口應用

    標簽: 單片機

    上傳時間: 2013-10-30

    上傳用戶:athjac

  • 紅外遙控接收程序

    紅外遙控接收;=================================================;; zsMCU51實驗板配套學習例程;; 中山單片機學習網 智佳科技;; 作者:逸風 QQ:105558851;; http://www.zsmcu.com; E-mail:info@zsmcu.com;=================================================ORG 0000HLJMP START;轉入主程序ORG 0010HSTART:MAIN:JNB P2.2,IRLJMP MAIN;以下為進入P3.2腳外部中斷子程序,也就是解碼程序IR:MOV R6,#9SB:ACALL DELAY882 ;調用882微秒延時子程序JB P2.2,EXIT ;延時882微秒后判斷P3.2腳是否出現高電平如果有就退出解碼程序DJNZ R6, SB ;重復10次,目的是檢測在8820微秒內如果出現高電平就退出解碼程序;以上完成對遙控信號的9000微秒的初始低電平信號的識別。JNB P2.2, $ ;等待高電平避開9毫秒低電平引導脈沖ACALL DELAY2400JNB P2.2,IR_Rp ;ACALL DELAY2400 ;延時4.74毫秒避開4.5毫秒的結果碼MOV R1,#1AH ;設定1AH為起始RAM區MOV R2,#4PP:MOV R3,#8JJJJ:JNB P2.2,$ ;等待地址碼第一位的高電平信號LCALL DELAY882 ;高電平開始后用882微秒的時間尺去判斷信號此時的高低電平狀態MOV C,P2.2 ;將P3.2引腳此時的電平狀態0或1存入C中 JNC UUU ;如果為0就跳轉到UUULCALL DELAY1000UUU:MOV A,@R1 ;將R1中地址的給ARRC A ;將C中的值0或1移入A中的最低位MOV @R1,A ;將A中的數暫時存放在R1中DJNZ R3,JJJJ ;接收地址碼的高8位INC R1 ;對R1中的值加1,換下一個RAMDJNZ R2,PP ;接收完16位地址碼和8位數據碼和8位數據,存放在1AH/1BH/1CH/1DH的RAM中MOV P1,1DH ;將按鍵的鍵值通過P1口的8個LED顯示出來!CLR P2.3 ;蜂鳴器鳴響-嘀嘀嘀-的聲音,表示解碼成功LCALL DELAY2400LCALL DELAY2400LCALL DELAY2400SETB P2.3;蜂鳴器停止LJMP MAINIR_Rp:LJMP MAINEXIT:LJMP MAIN ;退出解碼子程序;=============================882DELAY882: ;1.085x ((202x4)+5)=882MOV R7,#202DELAY882_A:NOPNOPDJNZ R7,DELAY882_ARET;=============================1000DELAY1000: ;1.085x ((229x4)+5)=999.285MOV R7,#229DELAY1000_A:NOPNOPDJNZ R7,DELAY1000_ARET;=============================2400

    標簽: 紅外遙控 接收程序

    上傳時間: 2013-11-01

    上傳用戶:2525775

  • iccavr v6.31a破解版下載

    ICCAVR V6.31A下載,ICCAVR專業版,AVR單片機C語言開發軟件。目前國內用的最廣泛的AVR單片機開發軟件。 推薦大家使用:ICCAVR V6.31A。 1、運行iccavr6.31A進行軟件安裝,注此注冊機只支持這此版本。 2、打開安裝完的軟件,在HELP選項下選Register software,會彈出注冊窗口。 3、復制注冊窗口中的硬件碼。 4、運行keygen.P1里面的注冊機,將硬件碼寫入,執行生成命令(注意選擇軟件版本)。 5、將得到的密碼復制回注冊窗口,執行安裝即可。 6、軟件將自動關閉,重新打開后,即為正式版了。

    標簽: iccavr 6.31 破解版

    上傳時間: 2013-12-11

    上傳用戶:sklzzy

  • C51單片機并行口擴展設計及應用

    C51單片機是我們生活中最常用的系列,MCS-51系列單片機有4個并行口(P0,P1,P2,P3口),但對一個稍微復雜的應用系統來說,真正可供用戶使用的并行口,只有P1口可用,況且常常因擴展I2C和SPI的器件需占用某些P1口,迫使用戶不得不擴展并行口以滿足實際的需要。習慣上,常用的并行口接口芯片有8255、8155,這兩種芯片功能比較齊全,可以使用在相對比較復雜的系統中,但如是對一般的系統而言,這些功能往往閑置不用。那么就可以選用一些本來閑置不用的口線作為選通信號來進行并行口的擴展,這樣就能充分利用單片機有限的I/O資源,在本設計中是將P1口擴展成一個或幾個8位并行口,在每一個八位口上接入8個發光二極管做為輸出,二極管是做開關量來使用的,在這里設計了跑馬燈和流水燈程序,做到對開關量的開斷控制;配合開關量的控制筆者設計了一個共陽LED數碼管,用來顯示當前發光二極管發亮的序號,做到更加直觀的雙重控制效果,然后再將P0口通過D/A轉換器和一放大器輸出一個模擬信號,其結果可以通過示波器看出。這樣整個系統即有了數字信號輸出和模擬信號輸出,也有數碼管顯示功能,實用性能大提高了。2、 基于89C51的系統硬件設計2.1 并行口的擴展的電路設計 眾所周知,C51系列的單片機都有四個I/O口(P0、P1、P2、P3),那么AT89C51也不例外,但我們通常僅僅使用P1口作為并行口,而令其余口(P2、P3)處于閑置狀態,所以這次設計,我們就是使用閑置不用的P3口做為選能信號線來將P1口進行并行口擴展。 (1) 種方式的并行口擴展優點 連線簡單; 不占用存儲器空間; (2) 編程也方便靈活。但也有很大的缺點 并行口擴展能力有限,(如使用74LS573(74LS373)且不進行驅動處理,則最多可擴展4個同樣類型的并行輸出端口,當然還需要與之對應的四個選通信號。) 如擴展較多,選通信號占用并行口位數太多,例如欲擴展8個并行輸出端口,則需要8個選能信號,此時,僅選能信號就占用了一個8位并行口,這對在I/O端口線有限的單片機系統中,如此浪費資源的現象是不能容忍的。在本次的設計中,采用芯片74HC573(帶三態輸出的八進制透明D型鎖存器)對P1口進行了一個8位并行口的擴展,選通信號選用P3口的P3.3引腳。原理圖如圖1所示:

    標簽: C51 單片機 并行口 擴展設計

    上傳時間: 2013-11-18

    上傳用戶:dbs012280

主站蜘蛛池模板: 玉林市| 黄冈市| 文登市| 化隆| 乌拉特前旗| 金阳县| 庄河市| 靖远县| 苗栗市| 开原市| 曲周县| 张掖市| 讷河市| 花莲县| 镇赉县| 盈江县| 金昌市| 海宁市| 海丰县| 商丘市| 常宁市| 灵山县| 筠连县| 申扎县| 阿坝| 墨竹工卡县| 丹阳市| 汉寿县| 绥芬河市| 曲阜市| 雅江县| 丹棱县| 昌乐县| 庄浪县| 荣昌县| 台北市| 诏安县| 盐边县| 延寿县| 泰州市| 石城县|