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

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

脈寬<b>調(diào)制器</b>

  • function g=distance_classify(A,b) 距離判別法程序。 輸入已分類樣本A(元胞數組)

    function g=distance_classify(A,b) 距離判別法程序。 輸入已分類樣本A(元胞數組),輸入待分類樣本b 輸出待分類樣本b的類別g 注:一般還應計算回代誤差yita 輸入已知分類樣本的總類別數n 每類作為元胞數組的一列

    標簽: distance_classify function 判別 分類

    上傳時間: 2013-11-25

    上傳用戶:yyyyyyyyyy

  • LED數顯驅動芯片TM1629A/B/C/兼容替代VK1629A/B/C/D/

    VK元泰原廠LED的面板驅動產品主要應用于段式和點陣式LED的顯示驅動包括但不局限以下產品: 儀表顯示、大小家電、標志牌、健身器材顯示面板等,同時涉及顯示器控制器、雙斜率與顯示驅動ADC及顯示器驅動計數器相關產品,產品具備顯示、背光、按鍵掃描、單線、兩線及三線通訊等不同特色。LED面板顯示驅動控制芯片/段式和點陣式LED顯示驅動專家。樣品免費,大量原裝現貨!歡迎加Q索取產品PDF資料。       VK元泰原廠LED顯示屏驅動主要大量應用于以下這些產品簡介:   1:VCR、VCD、DVD 及家庭影院等產品的顯示屏驅動。 2:電磁爐、微波爐、冰箱、空調 、家庭影院等產品的高段位顯示屏驅動。 3:電子產品LED顯示屏驅動,電子秤及小家電產品的顯示屏驅動。 4:機頂盒、各種家電設備、智能電表等數碼管、多段位顯示屏驅動 VK1628概述 VK1628 是 1/5~1/8 占空比的 LED 顯示控制驅動電路。由 10 根段輸出、4 根柵輸出、3 根段/柵輸出,1 個顯示存儲器、控制電路、鍵掃描電路組成了一個高可靠性的單片機外圍 LED 驅動電路。串行數據通過4線串行接口輸入到 VK1628采用 SOP28 的封裝形式。 通訊接口:STB/CLK/DIO    電源電壓:5V(4.5~5.5V)    驅動點陣:70/52 共陰驅動:10段7位/13段4位 共陽驅動:7段10位  按鍵:10x2 封裝SOP28     VK1629A概述   VK1629A 是LED(發光二極管顯示器)驅動控制專用電路,內部集成有MCU 數字接口、數據鎖存器、LED 高壓驅動等電路。主要應用于冰箱、空調、家庭影院等產品的高段位顯示屏驅動。 通訊接口:STB/CLK/DIO    電源電壓:5V(4.5~5.5V)    驅動點陣:128 共陰驅動:16段8位   共陽驅動:8段16位   按鍵:---  封裝SOP32   VK1629B概述 VK1629B 是 LED(發光二極管顯示器)驅動控制專用電路,內部集成有 MCU 數字接口、數據鎖存器、鍵盤掃描、LED 高壓驅動等電路。主要應用于冰箱、空調、家庭影院等產品的高段位顯示屏驅動。 通訊接口:STB/CLK/DIO    電源電壓:5V(4.5~5.5V)    驅動點陣:112 共陰驅動:14段8位   共陽驅動:8段14位   按鍵:8x2  封裝SOP32   VK1629C 概述 VK1629C 是帶鍵盤掃描接口的 LED(發光二極管顯示器)驅動控制專用電路,內部集成有 MCU 數字接口、數據鎖存器、LED 高壓驅動、鍵盤掃描等電路。主要應用于冰箱、空調、家庭影院等產品的高段位顯示屏驅動。 通訊接口:STB/CLK/DIO    電源電壓:5V(4.5~5.5V)    驅動點陣:120 共陰驅動:15段8位  共陽驅動:8段15位   按鍵:8x1  封裝SOP32   VK1629D 概述 VK1629D 是 LED(發光二極管顯示器)驅動控制專用電路,內部集成有 MCU 數字接口、數據鎖存器、LED 高壓驅動等電路。主要應用于冰箱、空調、家庭影院等產品的高段位顯示屏驅動。 通訊接口:STB/CLK/DIO    電源電壓:5V(4.5~5.5V)    驅動點陣:96 共陰驅動:12段8位  共陽驅動:8段12位   按鍵:8x4  封裝SOP32 VK1640 概述 VK1640 是一款 LED(發光二極管顯示器)驅動控制專用電路,內部集成有 MCU 數字接口、數據鎖存器、LED 高壓驅動。本產品采用 CMOS 工藝,主要應用于小型 LED 顯示屏驅動。 通訊接口: CLK/DIN    電源電壓:5V(4.5~5.5V)    驅動點陣:128 共陰驅動:8段16位  共陽驅動:16段8位   按鍵:---  封裝SOP28    VK1640B概述 -----  SSOP24 超小封裝體積方便開發設計,更低成本單價! VK1640B 是一款 LED(發光二極管顯示器)驅動控制專用電路,內部集成有 MCU 數字接口、 數據鎖存器、LED 高壓驅動。本產品采用 CMOS 工藝,主要應用于小型 LED 顯示屏驅動。 通訊接口: CLK/DIN    電源電壓:5V(4.5~5.5V)    驅動點陣:96 共陰驅動:8段12位 共陽驅動:12段8位【封裝小,價格低】封裝SSOP24   VK1650概述 VK1650 是一種帶鍵盤掃描電路接口的 LED 驅動控制專用電路。內部集成有 MCU 輸入輸出控制數字接口、數據鎖存器、LED 驅動、鍵盤掃描、輝度調節等電路。本芯片性能穩定、質量可靠、抗干擾能力強,可適應于 24 小時長期連續工作的應用場合。 通訊接口: SCL/SDA    電源電壓:5V(3.0~5.5V)    驅動點陣:8x16 共陰驅動:8段4位   共陽驅動:4段8位   按鍵:7x4  封裝SOP16/DIP16   VK1651概述 VK1651 是一種帶鍵盤掃描接口的 LED(發光二極管顯示器)驅動控制專用電路,內部集成有 MCU 數字接口、數據鎖存器、LED 高壓驅動、鍵盤掃描等電路。本產品性能優良,質量可靠。主要應用于電磁爐。微波爐及小家電產品的顯示屏驅動。 通訊接口: SCL/SDA    電源電壓:5V(3.0~5.5V)    驅動點陣:8x14 共陰驅動:7段4位   共陽驅動:4段7位   按鍵:7x4  封裝SOP16/DIP16   VK1668概述 VK1668 是 1/5~1/8 占空比的 LED 顯示控制驅動電路。由 10 根段輸出、4 根柵輸出、3 根段/柵輸出,1 個顯示存儲器、控制電路、鍵掃描電路組成了一個高可靠性的單片機外圍 LED 驅動電路。串行數據通過4線串行接口輸入到 VK1668采用 SOP24 的封裝形式。   通訊接口:STB/CLK/DIO    電源電壓:5V(4.5~5.5V)    驅動點陣:70/52   共陰驅動:10段7位/13段4位 共陽驅動:7段10位 按鍵:10x2 封裝SOP24   VK6932概述 VK6932 是一款 LED(發光二極管顯示器)驅動控制專用電路,內部集成有 MCU 數字接口、數據鎖存器、LED 高壓驅動。本產品采用 CMOS 工藝,主要應用于 LED 顯示屏驅動。 通訊接口:STB/CLK/DIN    電源電壓:5V(4.5~5.5V)    驅動點陣:128 共陰驅動:8段16位17.5/140mA  共陽驅動:16段8位 按鍵:--- 封裝SOP32   VK16K33 概述 --- RAM映射16*8 LED控制器驅動器,帶按鍵控制 VK16K33是一個內存映射和多功能LED控制器驅動程序。最大顯示設備中的段是128個模式(16個SEG 和 8個COM),矩陣鍵為13*3(最大值)。掃描路。VK16K33的軟件配置特點使其適用于多個LED應用包括LED模塊和顯示子系統。VK16K33與大多數微控制器兼容,并且通過雙線雙向I2c總線進行通信。 內存映射的LED控制器及驅動器 通訊接口:SCL/SDA   電源電壓:5V(4.5V~5.5V)   驅動點陣:128/96/64    共陰驅動:16段8位/12段8位/8段8位 共陽驅動:8段16位/8段12位/8段8位 LCD/LED液晶控制器及驅動器系列 芯片簡介如下: RAM映射LCD控制器和驅動器系列 VK1024B  2.4V~5.2V   6seg*4com  6*3   6*2             偏置電壓1/2 1/3   S0P-16 VK1056B  2.4V~5.2V   14seg*4com 14*3  14*2             偏置電壓1/2 1/3   SOP-24/SSOP-24 VK1072B  2.4V~5.2V   18seg*4com 18*3  18*2             偏置電壓1/2 1/3   SOP-28 VK1072C  2.4V~5.2V  18seg*4com  18*3  18*2             偏置電壓1/2 1/3   SOP-28 VK1088B  2.4V~5.2V  22seg*4com  22*3                  偏置電壓1/2 1/3   QFN-32L(4MM*4MM) VK0192   2.4V~5.2V  24seg*8com                         偏置電壓1/4       LQFP-44 VK0256   2.4V~5.2V  32seg*8com                         偏置電壓1/4       QFP-64 VK0256B  2.4V~5.2V  32seg*8com                         偏置電壓1/4       LQFP-64 VK0256C  2.4V~5.2V  32seg*8com                         偏置電壓1/4       LQFP-52 VK1621S-1 2.4V~5.2V  32*4 32*3 32*2   偏置電壓1/2 1/3   LQFP44/48/SSOP48/SKY28/DICE裸片 VK1622B  2.7V~5.5V   32seg*8com                        偏置電壓1/4       LQFP-48 VK1622S  2.7V~5.5V   32seg*8com          偏置電壓1/4     LQFP44/48/52/64/QFP64/DICE裸片 VK1623S  2.4V~5.2V   48seg*8com          偏置電壓1/4     LQFP-100/QFP-100/DICE裸片 VK1625    2.4V~5.2V  64seg*8com                 偏置電壓1/4    LQFP-100/QFP-100/DICE VK1626    2.4V~5.2V  48seg*16com                偏置電壓1/5    LQFP-100/QFP-100/DICE  (高品質 高性價比:液晶顯示驅動IC  原廠直銷 工程技術支持!) (所有型號全部封裝均有現貨,歡迎加Q查詢 191 888 5898 許生) 高抗干擾LCD液晶控制器及驅動系列 VK2C21A  2.4~5.5V  20seg*4com  16*8          偏置電壓1/3 1/4   I2C通訊接口    SOP-28 VK2C21B  2.4~5.5V  16seg*4com  12*8          偏置電壓1/3 1/4   I2C通訊接口    SOP-24 VK2C21C  2.4~5.5V  12seg*4com  8*8           偏置電壓1/3 1/4   I2C通訊接口    SOP-20 VK2C21D  2.4~5.5V  8seg*4com   4*8           偏置電壓1/3 1/4   I2C通訊接口    NSOP-16 VK2C22A  2.4~5.5V  44seg*4com                偏置電壓1/2 1/3   I2C通訊接口    LQFP-52 VK2C22B  2.4~5.5V  40seg*4com                偏置電壓1/2 1/3   I2C通訊接口    LQFP-48 VK2C23A  2.4~5.5V  56seg*4com  52*8          偏置電壓1/3 1/4   I2C通訊接口    LQFP-64 VK2C23B  2.4~5.5V  36seg*8com                偏置電壓1/3 1/4   I2C通訊接口    LQFP-48 VK2C24   2.4~5.5V  72seg*4com 68*8 60*16     偏置電壓1/3 1/4 1/5  I2C通訊接口 LQFP-80                   超低功耗LCD液晶控制器及驅動系列 VKL060   2.5~5.5V  15seg*4com            偏置電壓1/2 1/3   I2C通訊接口   SSOP-24 VKL128   2.5~5.5V  32seg*4com            偏置電壓1/2 1/3   I2C通訊接口   LQFP-44 VKL144A  2.5~5.5V  36seg*4com            偏置電壓1/2 1/3   I2C通訊接口   TSSOP-48 VKL144B  2.5~5.5V  36seg*4com         偏置電壓1/2 1/3   I2C通訊接口   QFN48L (6MM*6MM)   靜態顯示LCD液晶控制器及驅動系列 VKS118   2.4~5.2V  118seg*2com           偏置電壓 --       4線通訊接口   LQFP-128 VKS232   2.4~5.2V  116seg*2com           偏置電壓1/1 1/2   4線通訊接口   LQFP-128             內存映射的LED控制器及驅動器 VK1628 --- 通訊接口:STB/CLK/DIO    電源電壓:5V(4.5~5.5V)    驅動點陣:70/52   共陰驅動:10段7位/13段4位  共陽驅動:7段10位   按鍵:10x2  封裝SOP28 VK1629 --- 通訊接口:STB/CLK/DIN/DOUT    電源電壓:5V(4.5~5.5V)    驅動點陣:128 共陰驅動:16段8位   共陽驅動:8段16位   按鍵:8x4  封裝QFP44 VK1629A --- 通訊接口:STB/CLK/DIO    電源電壓:5V(4.5~5.5V)    驅動點陣:128 共陰驅動:16段8位   共陽驅動:8段16位   按鍵:---  封裝SOP32 VK1629B --- 通訊接口:STB/CLK/DIO    電源電壓:5V(4.5~5.5V)    驅動點陣:112   共陰驅動:14段8位   共陽驅動:8段14位   按鍵:8x2  封裝SOP32 VK1629C --- 通訊接口:STB/CLK/DIO    電源電壓:5V(4.5~5.5V)    驅動點陣:120   共陰驅動:15段8位  共陽驅動:8段15位   按鍵:8x1  封裝SOP32 VK1629D --- 通訊接口:STB/CLK/DIO    電源電壓:5V(4.5~5.5V)    驅動點陣:96   共陰驅動:12段8位  共陽驅動:8段12位   按鍵:8x4  封裝SOP32 VK1640 --- 通訊接口: CLK/DIN    電源電壓:5V(4.5~5.5V)    驅動點陣:128 共陰驅動:8段16位  共陽驅動:16段8位   按鍵:---  封裝SOP28 VK1650 --- 通訊接口: SCL/SDA    電源電壓:5V(3.0~5.5V)    驅動點陣:8x16 共陰驅動:8段4位   共陽驅動:4段8位   按鍵:7x4  封裝SOP16/DIP16 VK1668 ---通訊接口:STB/CLK/DIO    電源電壓:5V(4.5~5.5V)    驅動點陣:70/52 共陰驅動:10段7位/13段4位  共陽驅動:7段10位   按鍵:10x2  封裝SOP24 VK6932 --- 通訊接口:STB/CLK/DIN    電源電壓:5V(4.5~5.5V)    驅動點陣:128 共陰驅動:8段16位17.5/140mA  共陽驅動:16段8位   按鍵:---  封裝SOP32 VK16K33 --- 通訊接口:SCL/SDA   電源電壓:5V(4.5V~5.5V)   驅動點陣:128/96/64    共陰驅動:16段8位/12段8位/8段8位   共陽驅動:8段16位/8段12位/8段8位 按鍵:13x3 10x3 8x3  封裝SOP20/SOP24/SOP28 (所有型號全部封裝均有現貨,歡迎加Q查詢 191 888 5898 許生)   以上介紹內容為IC參數簡介,難免有錯漏,且相關IC型號眾多,未能一一收錄。歡迎聯系索取完整資料及樣品! 請加許先生 QQ:191 888 5898聯系!謝謝     生意無論大小,做人首重誠信!本公司全體員工將既往開來,再接再厲。爭取為各位帶來更專業的技術支持,更優質的銷售服務,更高性價比的好產品.竭誠希望能與各位客戶朋友深入溝通,攜手共進,共同成長,合作共贏!謝謝。  

    標簽: 1629 LED TM VK 數顯 兼容 驅動芯片

    上傳時間: 2019-07-03

    上傳用戶:shubashushi66

  • 單相光伏并網逆變器固定滯環的電流控制

    并網型逆變器是太陽能光伏并網發電的關鍵部件,以Matlab/Simulink 為仿真平臺,建立光伏模塊和最大功率跟蹤控制器的數學模型和仿真模塊,分析光伏模塊的電氣特性,實現最大功率點的動態跟蹤,提出集成式光伏模塊和最大功率跟蹤控制的并網逆變器系統模型和電流滯環跟蹤控制的數學模型和控制策略,仿真結果驗證光伏模塊數學模型和最大功率跟蹤算法的有效性,對光伏并網逆變器受外界環境變化影響的動態響應進行了仿真,表明電流滯環跟蹤控制應用于光伏并網逆變器能改善注入電網電流的品質,使電網功率因數為1。

    標簽: 單相 光伏并網 逆變器 電流控制

    上傳時間: 2014-12-24

    上傳用戶:Aidane

  • 單片機指令系統原理

    單片機指令系統原理 51單片機的尋址方式 學習匯編程序設計,要先了解CPU的各種尋址法,才能有效的掌握各個命令的用途,尋址法是命令運算碼找操作數的方法。在我們學習的8051單片機中,有6種尋址方法,下面我們將逐一進行分析。 立即尋址 在這種尋址方式中,指令多是雙字節的,一般第一個字節是操作碼,第二個字節是操作數。該操作數直接參與操作,所以又稱立即數,有“#”號表示。立即數就是存放在程序存儲器中的常數,換句話說就是操作數(立即數)是包含在指令字節中的。 例如:MOV  A,#3AH這條指令的指令代碼為74H、3AH,是雙字節指令,這條指令的功能是把立即數3AH送入累加器A中。MOV  DPTR,#8200H在前面學單片機的專用寄存器時,我們已學過,DPTR是一個16位的寄存器,它由DPH及DPL兩個8位的寄存器組成。這條指令的意思就是把立即數的高8位(即82H)送入DPH寄存器,把立即數的低8位(即00H)送入DPL寄存器。這里也特別說明一下:在80C51單片機的指令系統中,僅有一條指令的操作數是16位的立即數,其功能是向地址指針DPTR傳送16位的地址,即把立即數的高8位送入DPH,低8位送入DPL。 直接尋址 直接尋址方式是指在指令中操作數直接以單元地址的形式給出,也就是在這種尋址方式中,操作數項給出的是參加運算的操作數的地址,而不是操作數。例如:MOV  A,30H  這條指令中操作數就在30H單元中,也就是30H是操作數的地址,并非操作數。 在80C51單片機中,直接地址只能用來表示特殊功能寄存器、內部數據存儲器以及位地址空間,具體的說就是:1、內部數據存儲器RAM低128單元。在指令中是以直接單元地址形式給出。我們知道低128單元的地址是00H-7FH。在指令中直接以單元地址形式給出這句話的意思就是這0-127共128位的任何一位,例如0位是以00H這個單元地址形式給出、1位就是以01H單元地址給出、127位就是以7FH形式給出。2、位尋址區。20H-2FH地址單元。3、特殊功能寄存器。專用寄存器除以單元地址形式給出外,還可以以寄存器符號形式給出。例如下面我們分析的一條指令 MOV  IE,#85H 前面的學習我們已知道,中斷允許寄存器IE的地址是80H,那么也就是這條指令可以以MOV  IE,#85H 的形式表述,也可以MOV  80H,#85H的形式表述。 關于數據存儲器RAM的內部情況,請查看我們課程的第十二課。 直接尋址是唯一能訪問特殊功能寄存器的尋址方式! 大家來分析下面幾條指令:MOV  65H,A       ;將A的內容送入內部RAM的65H單元地址中MOV  A,direct    ;將直接地址單元的內容送入A中MOV  direct,direct;將直接地址單元的內容送直接地址單元MOV  IE,#85H      ;將立即數85H送入中斷允許寄存器IE 前面我們已學過,數據前面加了“#”的,表示后面的數是立即數(如#85H,就表示85H就是一個立即數),數據前面沒有加“#”號的,就表示后面的是一個地址地址(如,MOV 65H,A這條指令的65H就是一個單元地址)。 寄存器尋址 寄存器尋址的尋址范圍是:1、4個工作寄存器組共有32個通用寄存器,但在指令中只能使用當前寄存器組(工作寄存器組的選擇在前面專用寄存器的學習中,我們已知道,是由程序狀態字PSW中的RS1和RS0來確定的),因此在使用前常需要通過對PSW中的RS1、RS0位的狀態設置,來進行對當前工作寄存器組的選擇。2、部份專用寄存器。例如,累加器A、通用寄存器B、地址寄存器DPTR和進位位CY。 寄存器尋址方式是指操作數在寄存器中,因此指定了寄存器名稱就能得到操作數。例如:MOV A,R0這條指令的意思是把寄存器R0的內容傳送到累加器A中,操作數就在R0中。INC R3這條指令的意思是把寄存器R3中的內容加1 從前面的學習中我產應可以理解到,其實寄存器尋址方式就是對由PSW程序狀態字確定的工作寄存器組的R0-R7進行讀/寫操作。 寄存器間接尋址 寄存間接尋址方式是指寄存器中存放的是操作數的地址,即操作數是通過寄存器間接得到的,因此稱為寄存器間接尋址。 MCS-51單片機規定工作寄存器的R0、R1做為間接尋址寄存器。用于尋址內部或外部數據存儲器的256個單元。為什么會是256個單元呢?我們知道,R0或者R1都是一個8位的寄存器,所以它的尋址空間就是2的八次方=256。例:MOV  R0,#30H  ;將值30H加載到R0中    MOV  A,@R0    ;把內部RAM地址30H內的值放到累加器A中    MOVX A,@R0    ;把外部RAM地址30H內的值放到累加器A中 大家想想,如果用DPTR做為間址寄存器,那么它的尋址范圍是多少呢?DPTR是一個16位的寄存器,所以它的尋址范圍就是2的十六次方=65536=64K。因用DPTR做為間址寄存器的尋址空間是64K,所以訪問片外數據存儲器時,我們通常就用DPTR做為間址寄存器。例:MOV   DPTR,#1234H  ;將DPTR值設為1234H(16位)    MOVX  A,@DPTR      ;將外部RAM或I/O地址1234H內的值放到累加器A中 在執行PUSH(壓棧)和POP(出棧)指令時,采用堆棧指針SP作寄存器間接尋址。例:PUSH  30H    ;把內部RAM地址30H內的值放到堆棧區中堆棧區是由SP寄存器指定的,如果執行上面這條命令前,SP為60H,命令執行后會把內部RAM地址30H內的值放到RAM的61H內。 那么做為寄存器間接尋址用的寄存器主要有哪些呢?我們前面提到的有四個,R0、R1、DPTR、SP 寄存器間接尋址范圍總結:1、內部RAM低128單元。對內部RAM低128單元的間接尋址,應使用R0或R1作間址寄存器,其通用形式為@Ri(i=0或1)。 2、外部RAM 64KB。對外部RAM64KB的間接尋址,應使用@DPTR作間址尋址寄存器,其形式為:@DPTR。例如MOVX A,@DPTR;其功能是把DPTR指定的外部RAM的單元的內容送入累加器A中。外部RAM的低256單元是一個特殊的尋址區,除可以用DPTR作間址寄存器尋址外,還可以用R0或R1作間址寄存器尋址。例如MOVX  A,@R0;這條指令的意思是,把R0指定的外部RAM單元的內容送入累加器A。 堆棧操作指令(PUSH和POP)也應算作是寄存器間接尋址,即以堆棧指針SP作間址寄存器的間接尋址方式。 寄存器間接尋址方式不可以訪問特殊功能寄存器!! 寄存器間接尋址也須以寄存器符號的形式表示,為了區別寄存器尋址我寄存器間接尋址的區別,在寄存器間接尋址方式式中,寄存器的名稱前面加前綴標志“@”。 基址寄存器加變址寄存器的變址尋址 這種尋址方式以程序計數器PC或DPTR為基址寄存器,累加器A為變址寄存器,變址尋址時,把兩者的內容相加,所得到的結果作為操作數的地址。這種方式常用于訪問程序存儲器ROM中的數據表格,即查表操作。變址尋址只能讀出程序內存入的值,而不能寫入,也就是說變址尋址這種方式只能對程序存儲器進行尋址,或者說它是專門針對程序存儲器的尋址方式。例:MOVC  A,@A+DPTR這條指令的功能是把DPTR和A的內容相加,再把所得到的程序存儲器地址單元的內容送A假若指令執行前A=54H,DPTR=3F21H,則這條指令變址尋址形成的操作數地址就是54H+3F21H=3F75H。如果3F75H單元中的內容是7FH,則執行這條指令后,累加器A中的內容就是7FH。 變址尋址的指令只有三條,分別如下:JMP    @A+DPTRMOVC   A,@A+DPTRMOVC   A,@A+PC 第一條指令JMP @A+DPTR這是一條無條件轉移指令,這條指令的意思就是DPTR加上累加器A的內容做為一個16位的地址,執行JMP這條指令是,程序就轉移到A+DPTR指定的地址去執行。 第二、三條指令MOVC   A,@A+DPTR和MOVC   A,@A+PC指令這兩條指令的通常用于查表操作,功能完全一樣,但使用起來卻有一定的差別,現詳細說明如下。我們知道,PC是程序指針,是十六位的。DPTR是一個16位的數據指針寄存器,按理,它們的尋址范圍都應是64K。我們在學習特殊功能寄存器時已知道,程序計數器PC是始終跟蹤著程序的執行的。也就是說,PC的值是隨程序的執行情況自動改變的,我們不可以隨便的給PC賦值。而DPTR是一個數據指針,我們就可以給空上數據指針DPTR進行賦值。我們再看指令MOVC   A,@A+PC這條指令的意思是將PC的值與累加器A的值相加作為一個地址,而PC是固定的,累加器A是一個8位的寄存器,它的尋址范圍是256個地址單元。講到這里,大家應可明白,MOVC   A,@A+PC這條指令的尋址范圍其實就是只能在當前指令下256個地址單元。所在,這在我們實際應用中,可能就會有一個問題,如果我們需要查詢的數據表在256個地址單元之內,則可以用MOVC   A,@A+PC這條指令進行查表操作,如果超過了256個單元,則不能用這條指令進行查表操作。剛才我們已說到,DPTR是一個數據指針,這個數據指針我們可以給它賦值操作的。通過賦值操作。我們可以使MOVC   A,@A+DPTR這條指令的尋址范圍達到64K。這就是這兩條指令在實際應用當中要注意的問題。 變址尋址方式是MCS-51單片機所獨有的一種尋址方式。 位尋址 80C51單片機有位處理功能,可以對數據位進行操作,因此就有相應的位尋址方式。所謂位尋址,就是對內部RAM或可位尋址的特殊功能寄存器SFR內的某個位,直接加以置位為1或復位為0。 位尋址的范圍,也就是哪些部份可以進行位尋址: 1、我們在第十二課學習51單片機的存儲器結構時,我們已知道在單片機的內部數據存儲器RAM的低128單元中有一個區域叫位尋址區。它的單元地址是20H-2FH。共有16個單元,一個單元是8位,所以位尋址區共有128位。這128位都單獨有一個位地址,其位地址的名字就是00H-7FH。這里就有一個比較麻煩的問題需要大家理解清楚了。我們在前面的學習中00H、01H。。。。7FH等等,所表示的都是一個字節(或者叫單元地址),而在這里,這些數據都變成了位地址。我們在指令中,或者在程序中如何來區分它是一個單元地址還是一個位地址呢?這個問題,也就是我們現在正在研究的位尋址的一個重要問題。其實,區分這些數據是位地址還是單元地址,我們都有相應的指令形式的。這個問題我們在后面的指令系統學習中再加以論述。 2、對專用寄存器位尋址。這里要說明一下,不是所有的專用寄存器都可以位尋址的。具體哪些專用寄存器可以哪些專用寄存器不可以,請大家回頭去看看我們前面關于專用寄存器的相關文章。一般來說,地址單元可以被8整除的專用寄存器,通常都可以進行位尋址,當然并不是全部,大家在應用當中應引起注意。 專用寄存器的位尋址表示方法: 下面我們以程序狀態字PSW來進行說明 D7 D6 D5 D4 D3 D2 D1 D0 CY   AC  F0  RS1  RS0  OV    P  1、直接使用位地址表示:看上表,PSW的第五位地址是D5,所以可以表示為D5H   MOV  C,D5H 2、位名稱表示:表示該位的名稱,例如PSW的位5是F0,所以可以用F0表示   MOV  C,F0 3、單元(字節)地址加位表示:D0H單元位5,表示為DOH.5    MOV  C,D0H.5 4、專用寄存器符號加位表示:例如PSW.5    MOV C,PSW.5 這四種方法實現的功能都是相同的,只是表述的方式不同而已。 例題:   1. 說明下列指令中源操作數采用的尋址方式。   MOV R5,R7 答案:寄存器尋址方式   MOV A,55H 直接尋址方式   MOV A,#55H 立即尋址方式   JMP @A+DPTR 變址尋址方式   MOV 30H,C 位尋址方式   MOV A,@R0 間接尋址方式   MOVX A,@R0 間接尋址方式 改錯題   請判斷下列的MCS-51單片機指令的書寫格式是否有錯,若有,請說明錯誤原因。   MOV R0,@R3 答案:間址寄存器不能使用R2~R7。   MOVC A,@R0+DPTR 變址尋址方式中的間址寄存器不可使用R0,只可使用A。   ADD R0,R1 運算指令中目的操作數必須為累加器A,不可為R0。   MUL AR0 乘法指令中的乘數應在B寄存器中,即乘法指令只可使用AB寄存器組合。

    標簽: 單片機指令 系統原理

    上傳時間: 2013-11-11

    上傳用戶:caozhizhi

  • pic單片機實用教程(提高篇)

    pic單片機實用教程(提高篇)以介紹PIC16F87X型號單片機為主,并適當兼顧PIC全系列,共分9章,內容包括:存儲器;I/O端口的復位功能;定時器/計數器TMR1;定時器TMR2;輸入捕捉/輸出比較/脈寬調制CCP;模/數轉換器ADC;通用同步/異步收發器USART;主控同步串行端口MSSP:SPI模式和I2C模式。突出特點:通俗易懂、可讀性強、系統全面、學練結合、學用并重、實例豐富、習題齊全。<br>本書作為Microchip公司大學計劃選擇用書,可廣泛適用于初步具備電子技術基礎和計算機知識基礎的學生、教師、單片機愛好者、電子制作愛好者、電器維修人員、電子產品開發設計者、工程技術人員閱讀。本教程全書共分2篇,即基礎篇和提高篇,分2冊出版,以適應不同課時和不同專業的需要,也為教師和讀者增加了一種可選方案。 第1章 EEPROM數據存儲器和FIASH程序存儲器1.1 背景知識1.1.1 通用型半導體存儲器的種類和特點1.1.2 PIC單片機內部的程序存儲器1.1.3 PIC單片機內部的EEPROM數據存儲器1.1.4 PIC16F87X內部EEPROM和FIASH操作方法1.2 與EEPROM相關的寄存器1.3 片內EEPROM數據存儲器結構和操作原理1.3.1 從EEPROM中讀取數據1.3.2 向EEPROM中燒寫數據1.4 與FLASH相關的寄存器1.5 片內FLASH程序存儲器結構和操作原理1.5.1 讀取FLASH程序存儲器1.5.2 燒寫FLASH程序存儲器1.6 寫操作的安全保障措施1.6.1 寫入校驗方法1.6.2 預防意外寫操作的保障措施1.7 EEPROM和FLASH應用舉例1.7.1 EEPROM的應用1.7.2 FIASH的應用思考題與練習題第2章 輸入/輸出端口的復合功能2.1 RA端口2.1.1 與RA端口相關的寄存器2.1.2 電路結構和工作原理2.1.3 編程方法2.2 RB端口2.2.1 與RB端口相關的寄存器2.2.2 電路結構和工作原理2.2.3 編程方法2.3 RC端口2.3.1 與RC端口相關的寄存器2.3.2 電路結構和工作原理2.3.3 編程方法2.4 RD端口2.4.1 與RD端口相關的寄存器2.4.2 電路結構和工作原理2.4.3 編程方法2.5 RE端口2.5.1 與RE端口相關的寄存器2.5.2 電路結構和工作原理2.5.3 編程方法2.6 PSP并行從動端口2.6.1 與PSP端口相關的寄存器2.6.2 電路結構和工作原理2.7 應用舉例思考題與練習題第3章 定時器/計數器TMR13.1 定時器/計數器TMR1模塊的特性3.2 定時器/計數器TMR1模塊相關的寄存器3.3 定時器/計數器TMR1模塊的電路結構3.4 定時器/計數器TMR1模塊的工作原理3.4.1 禁止TMR1工作3.4.2 定時器工作方式3.4.3 計數器工作方式3.4.4 TMR1寄存器的賦值與復位3.5 定時器/計數器TMR1模塊的應用舉例思考題與練習題第4章 定時器TMR24.1 定時器TMR2模塊的特性4.2 定時器TMR2模塊相關的寄存器4.3 定時器TMR2模塊的電路結構4.4 定時器TMR2模塊的工作原理4.4.1 禁止TMR2工作4.4.2 定時器工作方式4.4.3 寄存器TMR2和PR2以及分頻器的復位4.4.4 TMR2模塊的初始化編程4.5 定時器TMR2模塊的應用舉例思考題與練習題第5章 輸入捕捉/輸出比較/脈寬調制CCP5.1 輸入捕捉工作模式5.1.1 輸入捕捉摸式相關的寄存器5.1.2 輸入捕捉模式的電路結構5.1.3 輸入捕捉摸式的工作原理5.1.4 輸入捕捉摸式的應用舉例5.2 輸出比較工作模式5.2.1 輸出比較模式相關的寄存器5.2.2 輸出比較模式的電路結構5.2.3 輸出比較模式的工作原理5.2.4 輸出比較模式的應用舉例5.3 脈寬調制輸出工作模式5.3.1 脈寬調制模式相關的寄存器5.3.2 脈寬調制模式的電路結構5.3.3 脈寬調制模式的工作原理5.3.4 脈定調制模式的應用舉例5.4 兩個CCP模塊之間相互關系思考題與練習題第6章 模/數轉換器ADC6.1 背景知識6.1.1 ADC種類與特點6.1.2 ADC器件的工作原理6.2 PIC16F87X片內ADC模塊6.2.1 ADC模塊相關的寄存器6.2.2 ADC模塊結構和操作原理6.2.3 ADC模塊操作時間要求6.2.4 特殊情況下的A/D轉換6.2.5 ADC模塊的轉換精度和分辨率6.2.6 ADC模塊的內部動作流程和傳遞函數6.2.7 ADC模塊的操作編程6.3 PIC16F87X片內ADC模塊的應用舉例思考題與練習題第7章 通用同步/異步收發器USART7.1 串行通信的基本概念7.1.1 串行通信的兩種基本方式7.1.2 串行通信中數據傳送方向7.1.3 串行通信中的控制方式7.1.4 串行通信中的碼型、編碼方式和幀結構7.1.5 串行通信中的檢錯和糾錯方式7.1.6 串行通信組網方式7.1.7 串行通信接口電路和參數7.1.8 串行通信的傳輸速率7.2 PIC16F87X片內通用同步/異步收發器USART模塊7.2.1 與USART模塊相關的寄存器7.2.2 USART波特率發生器BRG7.2.3 USART模塊的異步工作方式7.2.4 USART模塊的同步主控工作方式7.2.5 USART模塊的同步從動工作方式7.3 通用同步/異步收發器USART的應用舉例思考題與練習題第8章 主控同步串行端口MSSP——SPI模式8.1 SPI接口的背景知識8.1.1 SPI接口信號描述8.1.2 基于SPI的系統構成方式8.1.3 SPI接口工作原理8.1.4 兼容的MicroWire接口8.2 PIC16F87X的SPI接口8.2.1 SPI接口相關的寄存器8.2.2 SPI接口的結構和操作原理8.2.3 SPI接口的主控方式8.2.4 SPI接口的從動方式8.3 SPI接口的應用舉例思考題與練習題第9章 主控同步串行端口MSSP——I(平方)C模式9.1 I(平方)C總線的背景知識9.1.1 名詞術語9.1.2 I(平方)C總線的技術特點9.1.3 I(平方)C總線的基本工作原理9.1.4 I(平方)C總線信號時序分析9.1.5 信號傳送格式9.1.6 尋址約定9.1.7 技術參數9.1.8 I(平方)C器件與I(平方)C總線的接線方式9.1.9 相兼容的SMBus總線9.2 與I(平方)C總線相關的寄存器9.3 典型信號時序的產生方法9.3.1 波特率發生器9.3.2 啟動信號9.3.3 重啟動信號9.3.4 應答信號9.3.5 停止信號9.4 被控器通信方式9.4.1 硬件結構9.4.2 被主控器尋址9.4.3 被控器接收——被控接收器9.4.4 被控器發送——被控發送器9.4.5 廣播式尋址9.5 主控器通信方式9.5.1 硬件結構9.5.2 主控器發送——主控發送器9.5.3 主控器接收——主控接收器9.6 多主通信方式下的總線沖突和總線仲裁9.6.1 發送和應答過程中的總線沖突9.6.2 啟動過程中的總線沖突9.6.3 重啟動過程中的總線沖突9.6.4 停止過程中的總線沖突9.7 I(平方)C總線的應用舉例思考題與練習題附錄A 包含文件P16F877.INC附錄B 新版宏匯編器MPASM偽指令總表參考文獻

    標簽: pic 單片機 實用教程

    上傳時間: 2013-12-14

    上傳用戶:xiaoyuer

  • 函數名稱:CRC-16 Process 函數原型:INT16U make_crc16(INT8U *msgaddr,INT8U datalen) 函數功能:進行CRC校驗和產生CRC代碼.這個函數

    函數名稱:CRC-16 Process 函數原型:INT16U make_crc16(INT8U *msgaddr,INT8U datalen) 函數功能:進行CRC校驗和產生CRC代碼.這個函數只影響全局變量crc16. 校驗字放在字符串最后,低8位在前高8位在后. msgaddr : 進行CRC16校驗的據塊的首地址 datalen : 進行CRC16校驗的據塊的個數 CRC-ITU的計算算法如下: a.寄存器組初始化為全"1"(0xFFFF)。 b.寄存器組向右移動一個字節。 c.剛移出的那個字節與數據字節進行異或運算,得出一個指向值表的索引。 d.索引所指的表值與寄存器組做異或運算。 f.數據指針加1,如果數據沒有全部處理完,則重復步驟b。 g.寄存器組取反,得到CRC,附加在數據之后(這一步可省略)。

    標簽: CRC INT 16 make_crc

    上傳時間: 2015-12-21

    上傳用戶:llandlu

  • 一個簡單的藥店進

    一個簡單的藥店進,銷,存系統。 本程序主要面向三類權限的用戶:藥庫管理員、藥品出售員、一般患者。他們分別具有以下基本權限: 1) 一般患者 具有查詢藥品價格、類別等一般信息,不能進行修改、添加。 2) 管理員 主要負責系統維護工作,包括增加用戶刪除用戶,數據備份與初始化等。 3) 出售員 出售員只能按處方出售藥品,不能修改藥品價格等信息。 以上各種用戶的基本需求,為了最大程度的方便用戶,我們還提供以下功能: a. 當管理員登錄時,對于庫存低的藥品會給出警示,藥品的最低庫存可自行設制。 b. 對每個月每種藥品的銷量做出統計,并作出示意圖。 c. 數據備份、恢復

    標簽:

    上傳時間: 2016-05-05

    上傳用戶:離殤

  • 這個是基于在CCS開發環境下

    這個是基于在CCS開發環境下,用DM642-B-ICETEK-5100USB仿真器,實現的sobel邊緣檢測算法的程序。

    標簽: CCS 開發環境

    上傳時間: 2016-08-14

    上傳用戶:ecooo

  • 12345

    /****************temic*********t5557***********************************/    #include   <at892051.h>     #include   <string.h>    #include   <intrins.h>     #include   <stdio.h>     #define    uchar    unsigned char     #define    uint     unsigned int     #define    ulong    unsigned long     //STC12C2051AD的SFR定義     sfr  WDT_CONTR = 0xe1;//stc2051的看門狗??????     /**********全局常量************/    //寫卡的命令     #define    write_command0       0//寫密碼     #define    write_command1       1//寫配置字     #define    write_command2       2//密碼寫數據     #define    write_command3       3//喚醒     #define    write_command4       4//停止命令     #define    TRUE       1     #define    FALSE      0     #define    OK         0     #define    ERROR      255     //讀卡的時間參數us     #define ts_min          250//270*11.0592/12=249//取近似的整數     #define ts_max          304//330*11.0592/12=304     #define t1_min          73//90*11.0592/12=83:-10調整     #define t1_max          156//180*11.0592/12=166     #define t2_min          184//210*11.0592/12=194     #define t2_max          267//300*11.0592/12=276     //***********不采用中斷處理:采用查詢的方法讀卡時關所有中斷****************/     sbit p_U2270B_Standby = P3^5;//p_U2270B_Standby PIN=13     sbit p_U2270B_CFE = P3^3;//p_U2270B_CFE     PIN=6     sbit p_U2270B_OutPut = P3^7;//p_U2270B_OutPut  PIN=2     sbit wtd_sck = P1^7;//SPI總線     sbit wtd_si = P1^3;    sbit wtd_so = P1^2;    sbit iic_data = P1^2;//lcd IIC     sbit iic_clk = P1^7;    sbit led_light = P1^6;//測試綠燈     sbit led_light1 = P1^5;//測試紅燈     sbit led_light_ok  = P1^1;//讀卡成功標志     sbit fengmingqi = P1^5;    /***********全局變量************************************/       uchar data Nkey_a[4] = {0xA0, 0xA1, 0xA2, 0xA3};//初始密碼             //uchar idata card_snr[4];   //配置字     uchar data bankdata[28] = {1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7};     //存儲卡上用戶數據(1-7)7*4=28     uchar data cominceptbuff[6] = {1,2,3,4,5,6};//串口接收數組ram     uchar command; //第一個命令     uchar command1;//     //uint  temp;     uchar j,i;    uchar myaddr = 8;    //uchar ywqz_count,time_count;             //ywqz jishu:     uchar bdata DATA;    sbit BIT0 = DATA^0;    sbit BIT1 = DATA^1;    sbit BIT2 = DATA^2;    sbit BIT3 = DATA^3;    sbit BIT4 = DATA^4;    sbit BIT5 = DATA^5;    sbit BIT6 = DATA^6;    sbit BIT7 = DATA^7;    uchar bdata DATA1;    sbit BIT10 = DATA1^0;    sbit BIT11 = DATA1^1;    sbit BIT12 = DATA1^2;    sbit BIT13 = DATA1^3;    sbit BIT14 = DATA1^4;    sbit BIT15 = DATA1^5;    sbit BIT16 = DATA1^6;    sbit BIT17 = DATA1^7;    bit i_CurrentLevel;//i_CurrentLevel  BIT 00H(Saves current level of OutPut pin of U2270B)     bit timer1_end;    bit read_ok = 0;    //緩存定時值,因用同一個定時器     union HLint { uint W;    struct   {    uchar H;uchar L;   }   B; };//union HLint idata a     union HLint data a;    //緩存定時值,因用同一個定時器     union HLint0 { uint W;    struct {   uchar H;   uchar L; } B; };//union HLint idata a     union HLint0 data b;    /**********************函數原型*****************/    //讀寫操作     void f_readcard(void);//全部讀出1~7 AOR喚醒     void f_writecard(uchar x);//根據命令寫不同的內容和操作     void f_clearpassword(void);//清除密碼     void f_changepassword(void);//修改密碼     //功能子函數     void write_password(uchar data *data p);//寫初始密碼或數據     void write_block(uchar x,uchar data *data p);//不能用通用指針     void write_bit(bit x);//寫位     /*子函數區*****************************************************/    void delay_2(uint x)    //延時,時間x*10us@12mhz,最小20us@12mhz     {    x--; x--;    while(x)    {      _nop_();      _nop_();      x--;    }    _nop_();//WDT_CONTR=0X3C;不能頻繁的復位     _nop_();    }    /////////////////////////////////////////////////////////////////////     void initial(void)    {    SCON = 0x50; //串口方式1,允許接收     //SCON  =0x50;     //01010000B:10位異步收發,波特率可變,SM2=0不用接收到有效停止位才RI=1,     //REN=1允許接收     TMOD = 0x21; //定時器1 定時方式2(8位),定時器0 定時方式1(16位)     TCON = 0x40; //設定時器1 允許開始計時(IT1=1)     TH1 = 0xfD;  //FB 18.432MHz 9600 波特率     TL1 = 0xfD;  //fd 11.0592 9600     IE = 0X90;     //EA=ES=1     TR1 = 1;     //啟動定時器     WDT_CONTR = 0x3c;//使能看門狗     p_U2270B_Standby = 0;//單電源     PCON = 0x00;    IP = 0x10;//uart you xian XXXPS PT1 PX1 PT0 PX0     led_light1 = 1;    led_light = 0;    p_U2270B_OutPut = 1;    }    /************************************************/    void f_readcard()//讀卡     {    EA = 0;//全關,防止影響跳變的定時器計時     WDT_CONTR = 0X3C;//喂狗     p_U2270B_CFE = 1;//      delay_2(232);  //>2.5ms            /*   //   aor    用喚醒功能來防碰撞   p_U2270B_CFE = 0; delay_2(18);//start gap>150us   write_bit(1);//10=操作碼讀0頁   write_bit(0);       write_password(&bankdata[24]);//密碼block7   p_U2270B_CFE =1 ;//    delay_2(516);//編程及確認時間5.6ms   */    WDT_CONTR = 0X3C;//喂狗     led_light = 0;    b.W = 0;    while(!(read_ok == 1))    {             //while(p_U2270B_OutPut);//等一個穩定的低電平?超時判斷?              while(!p_U2270B_OutPut);//等待上升沿的到來同步信號檢測1       TR0 = 1;      //deng xia jiang       while(p_U2270B_OutPut);//等待下降沿       TR0 = 0;   a.B.H = TH0;   a.B.L = TL0;   TH0 = TL0 = 0;   TR0 = 1;//定時器晚啟動10個周期       //同步頭       if((324 < a.W) && (a.W < 353)) ;//檢測同步信號1                  else     {     TR0 = 0;     TH0 = TL0 = 0;     goto read_error;    }      //等待上升沿        while(!p_U2270B_OutPut);   TR0 = 0;   a.B.H = TH0;   a.B.L = TL0;   TH0 = TL0 = 0;   TR0 = 1;//b.N1<<=8;            if(a.B.L < 195);//0.5p       else     {     TR0 = 0;     TH0 = TL0 = 0;     goto read_error;    }      //讀0~7塊的數據       for(j = 0;j < 28;j++)      {       //uchar i;                  for(i = 0;i < 16;i++)//8個位        {        //等待下降沿的到來         while(p_U2270B_OutPut);                TR0 = 0;     a.B.H = TH0;     a.B.L = TL0;     TH0 = TL0 = 0;     TR0 = 1;              if(t2_max < a.W/*)&&(a.W < t2_max)*/)//1P          {         b.W >>= 2;//先左移再賦值          b.B.L += 0xc0;                             i++;        }        else if(t1_min < a.B.L/*)&&(a.B.L < t1_max)*/)//0.5p         {         b.W >>= 1;         b.B.L += 0x80;                           }        else      {      TR0 = 0;      TH0 = TL0 = 0;      goto read_error;     }        i++;        while(!p_U2270B_OutPut);//上升                   TR0 = 0;     a.B.H = TH0;     a.B.L = TL0;     TH0 = TL0 = 0;     TR0 = 1;                      if(t2_min < a.W/*)&&(a.W < t2_max)*/)//1P          {         b.W >>= 2;         i++;        }        else if(t1_min < a.B.L/*a.W)&&(a.B.L < t1_max)*/)//0.5P         //else if(!(a.W==0))         {         b.W >>= 1;         //temp+=0x00;          //led_light1=0;led_light=1;delay_2(40000);         }        else      {      TR0 = 0;      TH0 = TL0 = 0;      goto read_error;     }        i++;       }       //取出奇位        DATA = b.B.L;       BIT13 = BIT7;    BIT12 = BIT5;    BIT11 = BIT3;    BIT10 = BIT1;       DATA = b.B.H;       BIT17 = BIT7;    BIT16 = BIT5;    BIT15 = BIT3;    BIT14 = BIT1;       bankdata[j] = DATA1;      }              read_ok = 1;//讀卡完成了     read_error:    _nop_();    }       }    /***************************************************/    void f_writecard(uchar x)//寫卡     {    p_U2270B_CFE = 1;    delay_2(232);  //>2.5ms            //psw=0 standard write     if (x == write_command0)//寫密碼:初始化密碼     {      uchar i;      uchar data *data p;      p = cominceptbuff;      p_U2270B_CFE = 0;   delay_2(31);//start gap>330us       write_bit(1);//寫操作碼1:10       write_bit(0);//寫操作碼0       write_bit(0);//寫鎖定位0       for(i = 0;i < 35;i++)      {       write_bit(1);//寫數據位1       }      p_U2270B_CFE = 1;      led_light1 = 0;   led_light = 1;   delay_2(40000);//測試使用       //write_block(cominceptbuff[4],p);       p_U2270B_CFE = 1;      bankdata[20] = cominceptbuff[0];//密碼存入       bankdata[21] = cominceptbuff[1];      bankdata[22] = cominceptbuff[2];      bankdata[23] = cominceptbuff[3];    }    else if (x == write_command1)//配置卡參數:初始化     {      uchar data *data p;      p = cominceptbuff;      write_bit(1);//寫操作碼1:10       write_bit(0);//寫操作碼0       write_bit(0);//寫鎖定位0               write_block(cominceptbuff[4],p);      p_U2270B_CFE=  1;    }    //psw=1  pssword mode     else if(x == write_command2)  //密碼寫數據    {      uchar data*data p;      p = &bankdata[24];      write_bit(1);//寫操作碼1:10       write_bit(0);//寫操作碼0       write_password(p);//發口令       write_bit(0);//寫鎖定位0       p = cominceptbuff;      write_block(cominceptbuff[4],p);//寫數據            }    else if(x == write_command3)//aor    //喚醒 {      //cominceptbuff[1]操作碼10 X xxxxxB       uchar data *data p;      p = cominceptbuff;      write_bit(1);//10       write_bit(0);             write_password(p);//密碼       p_U2270B_CFE = 1;//此時數據不停的循環傳出     }    else //停止操作碼     {      write_bit(1);//11       write_bit(1);             p_U2270B_CFE = 1;         }    p_U2270B_CFE = 1;    delay_2(560);//5.6ms     }    /************************************/    void f_clearpassword()//清除密碼     {    uchar data *data p;    uchar i,x;          p = &bankdata[24];//原密碼     p_U2270B_CFE = 0; delay_2(18);//start gap>150us     //操作碼10:10xxxxxxB     write_bit(1);    write_bit(0);              for(x = 0;x < 4;x++)//發原密碼     {             DATA = *(p++);      for(i = 0;i < 8;i++)      {       write_bit(BIT0);       DATA >>= 1;      }    }    write_bit(0);//鎖定位0:0     p = &cominceptbuff[0];    write_block(0x00,p);//寫新配置參數:pwd=0             //密碼無效:即清除密碼     DATA = 0x00;//停止操作碼00000000B     for(i = 0;i < 2;i++)    {    write_bit(BIT7);    DATA <<= 1;    }    p_U2270B_CFE = 1;       delay_2(560);//5.6ms     }    /*********************************/    void f_changepassword()//修改密碼            {       uchar data *data p;    uchar i,x,addr;    addr = 0x07;//block7     p = &Nkey_a[0];//原密碼     DATA = 0x80;//操作碼10:10xxxxxxB     for(i = 0;i < 2;i++)    {      write_bit(BIT7);      DATA <<= 1;    }    for(x = 0;x < 4;x++)//發原密碼     {             DATA = *(p++);      for(i = 0;i < 8;i++)      {       write_bit(BIT7);       DATA >>= 1;      }    }    write_bit(0);//鎖定位0:0     p = &cominceptbuff[0];    write_block(0x07,p);//寫新密碼     p_U2270B_CFE = 1;    bankdata[24] = cominceptbuff[0];//密碼存入     bankdata[25] = cominceptbuff[1];    bankdata[26] = cominceptbuff[2];    bankdata[27] = cominceptbuff[3];    DATA = 0x00;//停止操作碼00000000B     for(i = 0;i < 2;i++)    {      write_bit(BIT7);      DATA <<= 1;    }    p_U2270B_CFE = 1;       delay_2(560);//5.6ms     }    /***************************子函數***********************************/    void write_bit(bit x)//寫一位     {    if(x)    {      p_U2270B_CFE = 1;   delay_2(32);//448*11.0592/120=42延時448us       p_U2270B_CFE = 0;   delay_2(28);//280*11.0592/120=26寫1     }    else    {      p_U2270B_CFE = 1;   delay_2(92);//192*11.0592/120=18       p_U2270B_CFE = 0;   delay_2(28);//280*11.0592/120=26寫0     }    }    /*******************寫一個block*******************/    void write_block(uchar addr,uchar data *data p)    {    uchar i,j;        for(i = 0;i < 4;i++)//block0數據     {             DATA = *(p++);      for(j = 0;j < 8;j++)      {       write_bit(BIT0);       DATA >>= 1;      }    }    DATA = addr <<= 5;//0地址     for(i = 0;i < 3;i++)    {      write_bit(BIT7);      DATA <<= 1;    }                   }    /*************************************************/    void write_password(uchar data *data p)    {    uchar i,j;        for(i = 0;i < 4;i++)//     {             DATA = *(p++);      for(j = 0;j < 8;j++)      {       write_bit(BIT0);       DATA >>= 1;      }    }        }   /*************************************************/   void main()    {    initial();    TI = RI = 0;    ES = 1;    EA = 1;  delay_2(28);   //f_readcard();     while(1) {   f_readcard();      //讀卡   f_writecard(command1);  //寫卡    f_clearpassword();   //清除密碼     f_changepassword();    //修改密碼 } }

    標簽: 12345

    上傳時間: 2017-10-20

    上傳用戶:my_lcs

  • (網盤)朱老師物聯網大講堂-全部視頻

    |- 我的虛擬機和ubuntu下載 - 0 B|- 騰訊課堂公開課 - 0 B|- 工具軟件 - 0 B|- X210光盤資料 - 0 B|- 4.C語言專題精講篇 - 0 B|- 2.uboot和linux內核移植 - 0 B|- 1.ARM裸機全集 - 0 B|- 0.基礎預科 - 0 B|- 專用播放器第一代-已不用,請下載第二代.rar - 18.10 MB|- 專用播放器-《朱老師物聯網大講堂》收費視頻.rar - 18.10 MB|- 朱老師物聯網大講堂高級課程專用播放器-第二代.rar - 28.10 MB

    標簽: 物聯網

    上傳時間: 2022-06-06

    上傳用戶:

亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
狠狠88综合久久久久综合网| 在线亚洲观看| 国产精品自拍网站| 亚洲日韩欧美视频| 国产精品蜜臀在线观看| 欧美va亚洲va香蕉在线| 久久久无码精品亚洲日韩按摩| 欧美成人免费播放| 国产日韩欧美一区在线 | 欧美国产日韩精品免费观看| 欧美日韩精品免费观看视频完整 | 免费日韩一区二区| 韩国三级电影久久久久久| 久久精品夜色噜噜亚洲aⅴ| 久久成人在线| 国产午夜精品一区二区三区欧美| 亚洲国产毛片完整版 | 亚洲国产精品一区制服丝袜| 欧美日韩国产综合网| 欧美中文字幕在线视频| 国产亚洲一级| 欧美一级视频| 亚洲成色www8888| 欧美午夜精品久久久久久人妖| 欧美在线一区二区三区| 亚洲免费不卡| 亚洲欧洲日本国产| 国产色视频一区| 欧美日韩在线播放三区四区| 在线看日韩av| 国产一区二区三区av电影| 欧美日韩国产成人精品| 午夜一区在线| 亚洲午夜羞羞片| 亚洲久久视频| 亚洲欧洲精品一区二区三区波多野1战4| 亚洲第一免费播放区| 国产精品最新自拍| 欧美日韩免费在线观看| 欧美韩日一区二区三区| 欧美日韩色一区| 欧美激情一区二区久久久| 欧美激情一区二区三区不卡| 亚洲主播在线观看| 亚洲欧美国产精品va在线观看| 最新日韩精品| 一本久道久久综合中文字幕| 伊人久久亚洲美女图片| 久久本道综合色狠狠五月| 亚洲一区二区三区免费视频| 先锋亚洲精品| 国产日产欧产精品推荐色| 国产模特精品视频久久久久| 日韩一二三在线视频播| 狠狠色狠狠色综合日日五| 国产精品综合视频| 亚洲精品极品| 久久精品99国产精品日本 | 国产一区二区三区四区三区四| 韩国女主播一区| 在线亚洲精品| 欧美理论大片| 国产欧美视频在线观看| 亚洲精品一区在线观看香蕉| 一本大道久久a久久综合婷婷| 99视频精品全国免费| 久久av最新网址| 欧美日韩精品| 亚洲电影av在线| 久久婷婷久久一区二区三区| 欧美视频手机在线| 日韩网站在线| 欧美乱大交xxxxx| 亚洲风情在线资源站| 久久精品免视看| 欧美色区777第一页| 日韩亚洲在线观看| 欧美精品日韩综合在线| 亚洲人成亚洲人成在线观看图片| 国产日韩高清一区二区三区在线| 亚洲欧洲日本一区二区三区| 看欧美日韩国产| 精品福利免费观看| 免播放器亚洲一区| 最新热久久免费视频| 欧美成人免费在线视频| 99精品视频一区| 国产欧美二区| a91a精品视频在线观看| 欧美午夜大胆人体| 夜夜嗨av色综合久久久综合网| 欧美婷婷久久| 久久网站热最新地址| 亚洲激情在线播放| 国产精品自在线| 久久久久国内| 香蕉久久国产| 99精品欧美一区二区三区| 欧美午夜女人视频在线| 久久一区二区三区av| 亚洲欧美中文日韩v在线观看| 精品电影一区| 国产亚洲欧美色| 国产精品国码视频| 欧美—级在线免费片| 欧美精品网站| 久久精品一区| 欧美亚洲视频| 亚洲在线观看| 亚洲性感美女99在线| 伊大人香蕉综合8在线视| 国产欧美精品一区二区色综合| 欧美精品色网| 欧美激情视频免费观看| 久久综合影视| 久久精品男女| 免费亚洲电影在线观看| 久久久噜噜噜久久久| 午夜在线精品| 艳女tv在线观看国产一区| 国产精品亚洲综合天堂夜夜| 亚洲一区三区电影在线观看| 中日韩视频在线观看| 樱桃国产成人精品视频| 伊人影院久久| 99视频日韩| 国产精品日本| 久久久蜜桃精品| 午夜久久黄色| 亚洲一区二区少妇| 欧美日韩一区成人| 欧美日韩国产美| 欧美午夜精品久久久久久久| 午夜精品一区二区三区四区| 亚洲国产精品99久久久久久久久| 国产欧美综合一区二区三区| 欧美成人国产| 鲁大师成人一区二区三区| 久久这里只有| 久久国产精品久久久| 亚洲精品免费在线观看| 一区二区日韩伦理片| 欧美一区二区三区久久精品| 国模一区二区三区| 欧美日韩亚洲一区二| 国产婷婷色一区二区三区在线| 蜜桃久久av| 欧美在线免费观看| 欧美精品成人一区二区在线观看| 欧美精选午夜久久久乱码6080| 亚洲综合色自拍一区| 国产伦精品一区二区三区高清版 | 国产一区二区日韩精品| 99热精品在线观看| 久久久精品视频成人| 韩国自拍一区| 香蕉视频成人在线观看| 男女av一区三区二区色多| 国产精品视频xxxx| 一区二区在线免费观看| 亚洲天堂成人在线观看| 久久久久久久成人| 国产精品国产馆在线真实露脸| 亚洲国产精品久久久| av成人免费在线观看| 欧美一乱一性一交一视频| 欧美丰满高潮xxxx喷水动漫| 国产一区二区三区av电影| 午夜老司机精品| 国产亚洲综合在线| 亚洲电影自拍| 99精品欧美| 欧美国产日韩精品| 亚洲精品美女久久久久| 国产亚洲一区在线| 中文欧美日韩| 国产欧美69| 欧美成人一区二区| av成人国产| 国内揄拍国内精品久久| 亚洲视频中文| 在线一区亚洲| 国产主播一区| 欧美日韩亚洲一区二区三区四区| 国产精品日韩久久久| 久久国产欧美日韩精品| 亚洲日本成人| 国产精品美女久久久久aⅴ国产馆| 久久精品视频网| 国产主播在线一区| 欧美特黄a级高清免费大片a级| 亚洲视频精选| 国产专区一区| 欧美大片在线影院| 极品av少妇一区二区| 国产精品mm| 欧美黄色成人网| 亚洲精品美女久久久久| 久久久久久久激情视频| 亚洲美女视频在线观看|