❶ 電路中安裝什麼是為了測量和記錄消耗的電能
電路中安裝電能表是為了測量和記錄消耗的電能。
電能表是測量用戶在一定時間內消耗的電能,並且根據電能的多少來收取電費。
使用電能表時要注意,在低電壓(不超過500伏)和小電流(幾十安)的情況下,電能表可直接接入電路進行測量。在高電壓或大電流的情況下,電能表不能直接接入線路,需配合電壓互感器或電流互感器使用。
工作原理
當把電能表接入被測電路時,電流線圈和電壓線圈中就有交變電流流過,這兩個交變電流分別在它們的鐵芯中產生交變的磁通;交變磁通穿過鋁盤,在鋁盤中感應出渦流;渦流又在磁場中受到力的作用,從而使鋁盤得到轉矩(主動力矩)而轉動。
負載消耗的功率越大,通過電流線圈的電流越大,鋁盤中感應出的渦流也越大,使鋁盤轉動的力矩就越大。即轉矩的大小跟負載消耗的功率成正比。功率越大,轉矩也越大,鋁盤轉動也就越快。鋁盤轉動時,又受到永久磁鐵產生的制動力矩的作用,制動力矩與主動力矩方向相反;制動力矩的大小與鋁盤的轉速成正比,鋁盤轉動得越快,制動力矩也越大。
當主動力矩與制動力矩達到暫時平衡時,鋁盤將勻速轉動。負載所消耗的電能與鋁盤的轉數成正比。鋁盤轉動時,帶動計數器,把所消耗的電能指示出來。這就是電能表工作的簡單過程。
❷ 分析和記錄電路時,使用參考方向要注意些什麼
需要注意各參考方向一旦確定,不得變換。在不知道電流真實方向的時候,需要通過一個參考方向來分析問題,就是說假設一個電流的方向,根據這個假設來計算,比如應用kcl來計算,最後得到的結果是正的,就說明電流的真實方向和假設的一樣,否則則相反。
(2)電路記錄擴展閱讀:
電路規模的大小,可以相差很大,小到矽片上的集成電路,大到高低壓輸電網。根據所處理信號的不同,電子電路可以分為模擬電路和數字電路。
將連續性物理自然變數轉換為連續的電信號,並通過運算連續性電信號的電路即稱為模擬電路。模擬電路對電信號的連續性電壓、電流進行處理。
最典型的模擬電路應用包括:放大電路、振盪電路、線性運算電路(加法、減法、乘法、除法、微分和積分電路)。運算連續性電信號。
❸ 瑙傚療騫惰板綍瀹跺涵鐢佃礬鐨勭粨鏋勫強浠ヤ笅涓鍏冧歡鐨勯摥鐗屽弬鏁幫紙鐗╃悊閲忔暟鍊礆級錛屽姛鑳斤紝緇撴瀯錛屼嬌鐢ㄦ柟娉
浣滀笟鍚?涓昏佺洰鐨勬槸璁╀綘鐔熸倝榪欎簺鐢靛櫒璁懼,瀵逛綘浠婂悗鐨勭敓媧昏繕鏄鏈夊緢澶х泭澶勭殑.榪欐牱瀛愭垜甯浣犲厛鍐欏嚑涓,寮曞間竴涓嬩綘,甯屾湜鑳芥縺鍙戜綘瀵硅繖鏂歸潰鐭ヨ瘑鐨勫叴瓚.
1:鐢佃兘琛
鍙傛暟: 鍗曞悜鐢佃兘琛 鐢靛帇220V 鐢墊祦:5A 棰戠巼:50HZ
鍔熻兘:鐢佃¢噺鏄劇ず璁懼
緇撴瀯:鐢遍搮鐩,鍥炵佹澘,閾佽姱絳夋瀯鎴
2.絀烘墍寮鍏
鍙傛暟:棰濆畾鐢墊祦5In
鐢墊皵瀵垮懡錛>4000嬈
鐢靛帇:220V
鐬鏃惰劚鎵g數嫻:5In
鍔熻兘:褰撹繃絀哄紑鐨勭數鍣ㄥ彂鐢熺煭璺,絀哄紑鏂寮鐢佃礬璧蜂繚鎶や綔鐢.
緇撴瀯:鐢辯數紓佺嚎鍥,涓昏Е澶,鑴辨墸鍣,琛旈搧絳夋瀯鎴
❹ 鐢89s51璁捐1涓璁板綍鏃墮棿闂撮殧騫舵樉紺虹殑鐢佃礬鍥
鍗曠墖鏈哄︿範搴斾腑鐨勫叚澶ч噸瑕侀儴鍒
涓銆佹葷嚎錛氭垜浠鐭ラ亾錛屼竴涓鐢佃礬鎬繪槸鐢卞厓鍣ㄤ歡閫氳繃鐢電嚎榪炴帴鑰屾垚鐨勶紝鍦ㄦā鎷熺數璺涓錛岃繛綰垮苟涓嶆垚涓轟竴涓闂棰橈紝鍥犱負鍚勫櫒浠墮棿涓鑸鏄涓茶屽叧緋伙紝鍚勫櫒浠朵箣闂寸殑榪炵嚎騫朵笉寰堝氾紝浣嗚$畻鏈虹數璺鍗翠笉涓鏍鳳紝瀹冩槸浠ュ井澶勭悊鍣ㄤ負鏍稿績錛屽悇鍣ㄤ歡閮借佷笌寰澶勭悊鍣ㄧ浉榪烇紝鍚勫櫒浠朵箣闂寸殑宸ヤ綔蹇呴』鐩鎬簰鍗忚皟錛屾墍浠ュ氨闇瑕佺殑榪炵嚎灝卞緢澶氫簡錛屽傛灉浠嶅傚悓妯℃嫙鐢佃礬涓鏍鳳紝鍦ㄥ悇寰澶勭悊鍣ㄥ拰鍚勫櫒浠墮棿鍗曠嫭榪炵嚎錛屽垯綰跨殑鏁伴噺灝嗗氬緱鎯婁漢錛屾墍浠ュ湪寰澶勭悊鏈轟腑寮曞叆浜嗘葷嚎鐨勬傚康錛屽悇涓鍣ㄤ歡鍏卞悓浜鐢ㄨ繛綰匡紝鎵鏈夊櫒浠剁殑8鏍規暟鎹綰垮叏閮ㄦ帴鍒8鏍瑰叕鐢ㄧ殑綰誇笂錛屽嵆鐩稿綋浜庡悇涓鍣ㄤ歡騫惰仈璧鋒潵錛屼絾浠呰繖鏍瘋繕涓嶈岋紝濡傛灉鏈変袱涓鍣ㄤ歡鍚屾椂閫佸嚭鏁版嵁錛屼竴涓涓0錛屼竴涓涓1錛岄偅涔堬紝鎺ユ敹鏂規帴鏀跺埌鐨勭┒絝熸槸浠涔堝憿錛熻繖縐嶆儏鍐墊槸涓嶅厑璁哥殑錛屾墍浠ヨ侀氳繃鎺у埗綰胯繘琛屾帶鍒訛紝浣垮櫒浠跺垎鏃跺伐浣滐紝浠諱綍鏃跺欏彧鑳芥湁涓涓鍣ㄤ歡鍙戦佹暟鎹錛堝彲浠ユ湁澶氫釜鍣ㄤ歡鍚屾椂鎺ユ敹錛夈傚櫒浠剁殑鏁版嵁綰誇篃灝辮縐頒負鏁版嵁鎬葷嚎錛屽櫒浠舵墍鏈夌殑鎺у埗綰胯縐頒負鎺у埗鎬葷嚎銆傚湪鍗曠墖鏈哄唴閮ㄦ垨鑰呭栭儴瀛樺偍鍣ㄥ強鍏跺畠鍣ㄤ歡涓鏈夊瓨鍌ㄥ崟鍏冿紝榪欎簺瀛樺偍鍗曞厓瑕佽鍒嗛厤鍦板潃錛屾墠鑳戒嬌鐢錛屽垎閰嶅湴鍧褰撶劧涔熸槸浠ョ數淇″彿鐨勫艦寮忕粰鍑虹殑錛岀敱浜庡瓨鍌ㄥ崟鍏冩瘮杈冨氾紝鎵浠ワ紝鐢ㄤ簬鍦板潃鍒嗛厤鐨勭嚎涔熻緝澶氾紝榪欎簺綰胯縐頒負鍦板潃鎬葷嚎銆
浜屻佹暟鎹銆佸湴鍧銆佹寚浠わ細涔嬫墍浠ュ皢榪欎笁鑰呮斁鍦ㄤ竴璧鳳紝鏄鍥犱負榪欎笁鑰呯殑鏈璐ㄩ兘鏄涓鏍風殑鈥斺旀暟瀛楋紝鎴栬呰撮兘鏄涓涓測0鈥欏拰鈥1鈥欑粍鎴愮殑搴忓垪銆傛崲璦涔嬶紝鍦板潃銆佹寚浠や篃閮芥槸鏁版嵁銆傛寚浠わ細鐢卞崟鐗囨満鑺鐗囩殑璁捐¤呰勫畾鐨勪竴縐嶆暟瀛楋紝瀹冧笌鎴戜滑甯哥敤鐨勬寚浠ゅ姪璁扮︽湁鐫涓ユ牸鐨勪竴涓瀵瑰簲鍏崇郴錛屼笉鍙浠ョ敱鍗曠墖鏈虹殑寮鍙戣呮洿鏀廣傚湴鍧錛氭槸瀵繪壘鍗曠墖鏈哄唴閮ㄣ佸栭儴鐨勫瓨鍌ㄥ崟鍏冦佽緭鍏ヨ緭鍑哄彛鐨勪緷鎹錛屽唴閮ㄥ崟鍏冪殑鍦板潃鍊煎凡鐢辮姱鐗囪捐¤呰勫畾濂斤紝涓嶅彲鏇存敼錛屽栭儴鐨勫崟鍏冨彲浠ョ敱鍗曠墖鏈哄紑鍙戣呰嚜琛屽喅瀹氾紝浣嗘湁涓浜涘湴鍧鍗曞厓鏄涓瀹氳佹湁鐨勶紙璇﹁佺▼搴忕殑鎵ц岃繃紼嬶級銆傛暟鎹錛氳繖鏄鐢卞井澶勭悊鏈哄勭悊鐨勫硅薄錛屽湪鍚勭嶄笉鍚岀殑搴旂敤鐢佃礬涓鍚勪笉鐩稿悓錛屼竴鑸鑰岃█錛岃澶勭悊鐨勬暟鎹鍙鑳芥湁榪欎箞鍑犵嶆儏鍐碉細
1•鍦板潃錛堝侻OV DPTR錛#1000H錛夛紝鍗沖湴鍧1000H閫佸叆DPTR銆
2•鏂瑰紡瀛楁垨鎺у埗瀛楋紙濡侻OV TMOD錛#3錛夛紝3鍗蟲槸鎺у埗瀛椼
3•甯告暟錛堝侻OV TH0錛#10H錛10H鍗沖畾鏃跺父鏁般
4•瀹為檯杈撳嚭鍊礆紙濡侾1鍙f帴褰╃伅錛岃佺伅鍏ㄤ寒錛屽垯鎵ц屾寚浠わ細MOV P1錛#0FFH錛岃佺伅鍏ㄦ殫錛屽垯鎵ц屾寚浠わ細MOV P1錛#00H錛夎繖閲0FFH鍜00H閮芥槸瀹為檯杈撳嚭鍊箋傚張濡傜敤浜嶭ED鐨勫瓧褰㈢爜錛屼篃鏄瀹為檯杈撳嚭鐨勫箋
鐞嗚В浜嗗湴鍧銆佹寚浠ょ殑鏈璐錛屽氨涓嶉毦鐞嗚В紼嬪簭榪愯岃繃紼嬩腑涓轟粈涔堜細璺戦烇紝浼氭妸鏁版嵁褰撴垚鎸囦護鏉ユ墽琛屼簡銆
涓夈丳0鍙c丳2鍙e拰P3鐨勭浜屽姛鑳界敤娉曪細鍒濆︽椂寰寰瀵筆0鍙c丳2鍙e拰P3鍙g殑絎浜屽姛鑳界敤娉曡糠鎯戜笉瑙o紝璁や負絎浜屽姛鑳藉拰鍘熷姛鑳戒箣闂磋佹湁涓涓鍒囨崲鐨勮繃紼嬶紝鎴栬呰磋佹湁涓鏉℃寚浠わ紝浜嬪疄涓婏紝鍚勭鍙g殑絎浜屽姛鑳藉畬鍏ㄦ槸鑷鍔ㄧ殑錛屼笉闇瑕佺敤鎸囦護鏉ヨ漿鎹銆傚侾3.6銆丳3.7鍒嗗埆鏄疻R銆丷D淇″彿錛屽綋寰鐗囩悊鏈哄栨帴RAM鎴栨湁澶栭儴I/O鍙f椂錛屽畠浠琚鐢ㄤ綔絎浜屽姛鑳斤紝涓嶈兘浣滀負閫氱敤I/O鍙d嬌鐢錛屽彧瑕佷竴寰澶勭悊鏈轟竴鎵ц屽埌MOVX鎸囦護錛屽氨浼氭湁鐩稿簲鐨勪俊鍙蜂粠P3.6鎴朠3.7閫佸嚭錛屼笉闇瑕佷簨鍏堢敤鎸囦護璇存槑銆備簨瀹炰笂鈥樹笉鑳戒綔涓洪氱敤I/O鍙d嬌鐢ㄢ欎篃騫朵笉鏄鈥樹笉鑳解欒屾槸錛堜嬌鐢ㄨ咃級鈥樹笉浼氣欏皢鍏朵綔涓洪氱敤I/O鍙d嬌鐢ㄣ備綘瀹屽叏鍙浠ュ湪鎸囦護涓鎸夋帓涓鏉SETB P3.7鐨勬寚浠わ紝騫朵笖褰撳崟鐗囨満鎵ц屽埌榪欐潯鎸囦護鏃訛紝涔熶細浣縋3.7鍙樹負楂樼數騫籌紝浣嗕嬌鐢ㄨ呬笉浼氳繖涔堝幓鍋氾紝鍥犱負榪欓氬父榪欎細瀵艱嚧緋葷粺鐨勫穿婧冦
鍥涖佺▼搴忕殑鎵ц岃繃紼嬶細 鍗曠墖鏈哄湪閫氱數澶嶄綅鍚8051鍐呯殑紼嬪簭璁℃暟鍣錛圥C錛変腑鐨勫間負鈥0000鈥欙紝鎵浠ョ▼搴忔繪槸浠庘0000鈥欏崟鍏冨紑濮嬫墽琛岋紝涔熷氨鏄璇達細鍦ㄧ郴緇熺殑ROM涓涓瀹氳佸瓨鍦ㄢ0000鈥欒繖涓鍗曞厓錛屽苟涓斿湪鈥0000鈥欏崟鍏冧腑瀛樻斁鐨勪竴瀹氭槸涓鏉℃寚浠ゃ
浜斻佸爢鏍堬細 鍫嗘爤鏄涓涓鍖哄煙錛屾槸鐢ㄦ潵瀛樻斁鏁版嵁鐨勶紝榪欎釜鍖哄煙鏈韜娌℃湁浠諱綍鐗規畩涔嬪勶紝灝辨槸鍐呴儴RAM鐨勪竴閮ㄤ喚錛岀壒孌婄殑鏄瀹冨瓨鏀懼拰鍙栫敤鏁版嵁鐨勬柟寮忥紝鍗蟲墍璋撶殑鈥樺厛榪涘悗鍑猴紝鍚庤繘鍏堝嚭鈥欙紝騫朵笖鍫嗘爤鏈夌壒孌婄殑鏁版嵁浼犺緭鎸囦護錛屽嵆鈥楶USH鈥欏拰鈥楶OP鈥欙紝鏈変竴涓鐗規畩鐨勪笓涓哄叾鏈嶅姟鐨勫崟鍏冿紝鍗沖爢鏍堟寚閽圫P錛屾瘡褰撴墽涓嬈PUSH鎸囦護鏃訛紝SP灝憋紙鍦ㄥ師鏉ュ肩殑鍩虹涓婏級鑷鍔ㄥ姞1錛屾瘡褰撴墽琛屼竴嬈POP鎸囦護錛孲P灝憋紙鍦ㄥ師鏉ュ肩殑鍩虹涓婏級鑷鍔ㄥ噺1銆傜敱浜嶴P涓鐨勫煎彲浠ョ敤鎸囦護鍔犱互鏀瑰彉錛屾墍浠ュ彧瑕佸湪紼嬪簭寮濮嬮樁孌墊洿鏀逛簡SP鐨勫礆紝灝卞彲浠ユ妸鍫嗘爤璁劇疆鍦ㄨ勫畾鐨勫唴瀛樺崟鍏冧腑錛屽傚湪紼嬪簭寮濮嬫椂錛岀敤涓鏉MOV SP錛#5FH鎸囦護錛屽氨鏃舵妸鍫嗘爤璁劇疆鍦ㄤ粠鍐呭瓨鍗曞厓60H寮濮嬬殑鍗曞厓涓銆備竴鑸紼嬪簭鐨勫紑澶存繪湁榪欎箞涓鏉¤劇疆鍫嗘爤鎸囬拡鐨勬寚浠わ紝鍥犱負寮鏈烘椂錛孲P鐨勫垵濮嬪間負07H錛岃繖鏍峰氨浣垮爢鏍堜粠08H鍗曞厓寮濮嬪線鍚庯紝鑰08H鍒1FH榪欎釜鍖哄煙姝f槸8031鐨勭浜屻佷笁銆佸洓宸ヤ綔瀵勫瓨鍣ㄥ尯錛岀粡甯歌佽浣跨敤錛岃繖浼氶犳垚鏁版嵁鐨勬祽涔便備笉鍚屼綔鑰呯紪鍐欑▼搴忔椂錛屽垵濮嬪寲鍫嗘爤鎸囦護涔熶笉瀹屽叏鐩稿悓錛岃繖鏄浣滆呯殑涔犳儻闂棰樸傚綋璁劇疆濂藉爢鏍堝尯鍚庯紝騫朵笉鎰忓懗鐫璇ュ尯鍩熸垚涓轟竴縐嶄笓鐢ㄥ唴瀛橈紝瀹冭繕鏄鍙浠ヨ薄鏅閫氬唴瀛樺尯鍩熶竴鏍蜂嬌鐢錛屽彧鏄涓鑸鎯呭喌涓嬬紪紼嬭呬笉浼氭妸瀹冨綋鎴愭櫘閫氬唴瀛樼敤浜嗐
鍏銆佸崟鐗囨満鐨勫紑鍙戣繃紼嬶細 榪欓噷鎵璇寸殑寮鍙戣繃紼嬪苟涓嶆槸涓鑸涔︿腑鎵璇寸殑浠庝換鍔″垎鏋愬紑濮嬶紝鎴戜滑鍋囪懼凡璁捐″苟鍒朵綔濂界‖浠訛紝涓嬮潰灝辨槸緙栧啓杞浠剁殑宸ヤ綔銆傚湪緙栧啓杞浠朵箣鍓嶏紝棣栧厛瑕佺『瀹氫竴浜涘父鏁般佸湴鍧錛屼簨瀹炰笂榪欎簺甯告暟銆佸湴鍧鍦ㄨ捐¢樁孌靛凡琚鐩存帴鎴栭棿鎺ュ湴紜瀹氫笅鏉ヤ簡銆傚傚綋鏌愬櫒浠剁殑榪炵嚎璁捐″ソ鍚庯紝鍏跺湴鍧涔熷氨琚紜瀹氫簡錛屽綋鍣ㄤ歡鐨勫姛鑳借紜瀹氫笅鏉ュ悗錛屽叾鎺у埗瀛椾篃灝辮紜瀹氫簡銆傜劧鍚庣敤鏂囨湰緙栬緫鍣錛堝侲DIT銆丆CED絳夛級緙栧啓杞浠訛紝緙栧啓濂藉悗錛岀敤緙栬瘧鍣ㄥ規簮紼嬪簭鏂囦歡緙栬瘧錛屾煡閿欙紝鐩村埌娌℃湁璇娉曢敊璇錛岄櫎浜嗘瀬綆鍗曠殑紼嬪簭澶栵紝涓鑸搴旂敤浠跨湡鏈哄硅蔣浠惰繘琛岃皟璇曪紝鐩村埌紼嬪簭榪愯屾g『涓烘銆傝繍琛屾g『鍚庯紝灝卞彲浠ュ啓鐗囷紙灝嗙▼搴忓滻鍖栧湪EPROM涓錛夈傚湪婧愮▼搴忚緙栬瘧鍚庯紝鐢熸垚浜嗘墿灞曞悕涓篐EX鐨勭洰鏍囨枃浠訛紝涓鑸緙栫▼鍣ㄨ兘澶熻瘑鍒榪欑嶆牸寮忕殑鏂囦歡錛屽彧瑕佸皢姝ゆ枃浠惰皟鍏ュ嵆鍙鍐欑墖銆傚湪姝わ紝涓轟嬌澶у跺規暣涓榪囩▼鏈変釜璁よ瘑錛屼婦涓渚嬭存槑錛
ORG 0000H
LJMP START
ORG 040H
START錛
MOV SP錛#5FH ;璁懼爢鏍
LOOP錛
NOP
LJMP LOOP 錛涘驚鐜
END 錛涚粨鏉
緙栬緫鏈孌靛崟鐗囨満瀛︿範
鐩鍓嶏紝寰堝氫漢瀵規眹緙栬璦騫朵笉璁ゅ彲銆傚彲浠ヨ達紝鎺屾彙鐢–璇璦鍗曠墖鏈虹紪紼嬪緢閲嶈侊紝鍙浠ュぇ澶ф彁楂樺紑鍙戠殑鏁堢巼銆備笉榪囧垵瀛﹁呭彲浠ヤ笉浜嗚В鍗曠墖鏈虹殑奼囩紪璇璦錛屼絾涓瀹氳佷簡瑙e崟鐗囨満鍏蜂綋鎬ц兘鍜岀壒鐐癸紝涓嶇劧鍦ㄥ崟鐗囨満棰嗗煙鏄姣旇緝鑷村懡鐨勩傚傛灉涓嶈冭檻鍗曠墖鏈虹‖浠惰祫婧愶紝鍦↘EIL涓鐢–鑳′貢緙栫▼錛岀粨鏋滃彧鑳芥槸鍑轟簡闂棰樻棤娉曡В鍐籌紒鍙浠ヨ偗瀹氱殑璇達紝鏈濂界殑C璇璦鍗曠墖鏈哄伐紼嬪笀閮芥槸浠庢眹緙栬蛋鍑烘潵鐨勭紪紼嬭呭洜涓哄崟鐗囨満鐨凜璇璦鉶界劧鏄楂樼駭璇璦錛屼絾鏄瀹冧笉鍚屼簬鍙板紡鏈轟釜浜虹數鑴戜笂鐨刅C++浠涔堢殑鍗曠墖鏈虹殑紜浠惰祫婧愪笉鏄闈炲父寮哄ぇ錛屼笉鍚屼簬鎴戜滑鐢╒C銆乂B絳夐珮綰ц璦鍦ㄥ彴寮廝C涓婂啓紼嬪簭姣曠珶鍙板紡鐢佃剳鐨勭‖浠墮潪甯稿己澶э紝鎵浠ユ墠鍙浠ヤ笉鑰冭檻紜浠惰祫婧愮殑闂棰樸
浠8051鍗曠墖鏈轟負渚嬭茶В鍗曠墖鏈虹殑寮曡剼鍙婄浉鍏沖姛鑳;
銆婂崟鐗囨満寮曡剼鍥俱
40涓寮曡剼鎸夊紩鑴氬姛鑳藉ぇ鑷村彲鍒嗕負4涓縐嶇被錛氱數婧愩佹椂閽熴佹帶鍒跺拰I/O寮曡剼銆
鈷 鐢墊簮:
鈶 VCC - 鑺鐗囩數婧愶紝鎺+5V錛
鈶 VSS - 鎺ュ湴絝錛
娉錛氱敤涓囩敤琛ㄦ祴璇曞崟鐗囨満寮曡剼鐢靛帇涓鑸涓0v鎴栬5v錛岃繖鏄鏍囧噯鐨凾TL鐢靛鉤銆備絾鏈夋椂鍊欏湪鍗曠墖鏈虹▼搴忔e湪宸ヤ綔鏃跺欐祴璇曠粨鏋滃苟涓嶆槸榪欎釜鍊艱屾槸浠嬩簬0v-5v涔嬮棿錛屽叾瀹炶繖鏄涓囩敤琛ㄧ殑鍝嶅簲閫熷害娌¤繖涔堝揩鑰屽凡錛屽湪鏌愪竴涓鐬闂村崟鐗囨満寮曡剼鐢靛帇浠嶄繚鎸佸湪0v鎴栬5v銆
鈷 鏃墮挓:XTAL1銆乆TAL2 - 鏅朵綋鎸鑽$數璺鍙嶇浉杈撳叆絝鍜岃緭鍑虹銆
鈷 鎺у埗綰:鎺у埗綰垮叡鏈4鏍癸紝
鈶 ALE/PROG:鍦板潃閿佸瓨鍏佽/鐗囧唴EPROM緙栫▼鑴夊啿
鈶 ALE鍔熻兘錛氱敤鏉ラ攣瀛楶0鍙i佸嚭鐨勪綆8浣嶅湴鍧
鈶 PROG鍔熻兘錛氱墖鍐呮湁EPROM鐨勮姱鐗囷紝鍦‥PROM緙栫▼鏈熼棿錛屾ゅ紩鑴氳緭鍏ョ紪紼嬭剦鍐層
鈶 PSEN:澶朢OM璇婚夐氫俊鍙楓
鈶 RST/VPD:澶嶄綅/澶囩敤鐢墊簮銆
鈶 RST錛圧eset錛夊姛鑳斤細澶嶄綅淇″彿杈撳叆絝銆
鈶 VPD鍔熻兘錛氬湪Vcc鎺夌數鎯呭喌涓嬶紝鎺ュ囩敤鐢墊簮銆
鈶 EA/Vpp:鍐呭朢OM閫夋嫨/鐗囧唴EPROM緙栫▼鐢墊簮銆
鈶 EA鍔熻兘錛氬唴澶朢OM閫夋嫨絝銆
鈶 Vpp鍔熻兘錛氱墖鍐呮湁EPROM鐨勮姱鐗囷紝鍦‥PROM緙栫▼鏈熼棿錛屾柦鍔犵紪紼嬬數婧怴pp銆
鈷 I/O綰
80C51鍏辨湁4涓8浣嶅苟琛孖/O絝鍙o細P0銆丳1銆丳2銆丳3鍙o紝鍏32涓寮曡剼銆
P3鍙h繕鍏鋒湁絎浜屽姛鑳斤紝鐢ㄤ簬鐗規畩淇″彿杈撳叆杈撳嚭鍜屾帶鍒朵俊鍙鳳紙灞炴帶鍒舵葷嚎錛
鍗曠墖鏈烘ā鎷烮2C鎬葷嚎鍙24C02璇誨啓瀹炰緥
鍙戝竷鏃ユ湡錛2008-5-14 13:38:16 鏂囩珷鏉ユ簮錛氶潪鏈絝欏師鍒 嫻忚堟℃暟錛 18
* 51緋誨垪鍗曠墖鏈哄湪浣跨敤鏃訛紝鏈夋椂闇瑕佹ā鎷烮2C鎬葷嚎錛 */
/* 榪欓噷涓懼嚭涓涓瀹炰緥錛堣誨啓涓茶孍EPROM鑺鐗嘺t2402錛 */
/************************************************************************/
/* Name:AT24C02瀛樺偍鍣ㄧ殑璇誨啓紼嬪簭,鐢ㄥ埌I2C鎬葷嚎,鍚鐩稿圭嫭絝嬬殑I2C鎬葷嚎璇誨啓鍑芥暟 */
/* Language: C51鍗曠墖鏈虹紪紼嬭璦 */
/* Platform: Win98,Intel Celeron 433 Processor,浼熺忎豢鐪熷櫒錛屼豢鐪8751 */
/* Date: 2003騫5鏈21鏃,5鏈22鏃,5鏈29鏃 */
/* Version: 1.1.1 */
/* Others: None */
/************************************************************************/
#include<string.h>
#include<reg52.h>
#include<intrins.h>
#define DELAY_TIME 60 /*緇忓疄楠岋紝涓嶈佸皬浜50錛佸惁鍒欏彲鑳介犳垚鏃跺簭娣蜂貢*/
#define TRUE 1
#define FALSE 0
sbit SCL=P1^7;/*鍋囪劇敱P1.7鍜孭1.6鎺у埗*/
sbit SDA=P1^6;
/********** Function Definition 鍑芥暟瀹氫箟 ************/
void DELAY(unsigned int t) /*寤舵椂鍑芥暟*/
{
while(t!=0)
t--;
}
void I2C_Start(void)
{
/*鍚鍔↖2C鎬葷嚎鐨勫嚱鏁幫紝褰揝CL涓洪珮鐢靛鉤鏃朵嬌SDA浜х敓涓涓璐熻煩鍙*/
SDA=1;
SCL=1;
DELAY(DELAY_TIME);
SDA=0;
DELAY(DELAY_TIME);
SCL=0;
DELAY(DELAY_TIME);
}
void I2C_Stop(void)
{
/*緇堟I2C鎬葷嚎錛屽綋SCL涓洪珮鐢靛鉤鏃朵嬌SDA浜х敓涓涓姝h煩鍙*/
SDA=0;
SCL=1;
DELAY(DELAY_TIME);
SDA=1;
DELAY(DELAY_TIME);
SCL=0;
DELAY(DELAY_TIME);
}
void SEND_0(void) /* SEND ACK */
{
/*鍙戦0錛屽湪SCL涓洪珮鐢靛鉤鏃朵嬌SDA淇″彿涓轟綆*/
SDA=0;
SCL=1;
DELAY(DELAY_TIME);
SCL=0;
DELAY(DELAY_TIME);
}
void SEND_1(void)
{
/*鍙戦1錛屽湪SCL涓洪珮鐢靛鉤鏃朵嬌SDA淇″彿涓洪珮*/
SDA=1;
SCL=1;
DELAY(DELAY_TIME);
SCL=0;
DELAY(DELAY_TIME);
}
bit Check_Acknowledge(void)
{
/*鍙戦佸畬涓涓瀛楄妭鍚庢楠岃懼囩殑搴旂瓟淇″彿*/
SDA=1;
SCL=1;
DELAY(DELAY_TIME/2);
F0=SDA;
DELAY(DELAY_TIME/2);
SCL=0;
DELAY(DELAY_TIME);
if(F0==1)
return FALSE;
return TRUE;
}
void WriteI2CByte(char b)reentrant
{
/*鍚慖2C鎬葷嚎鍐欎竴涓瀛楄妭*/
char i;
for(i=0;i<8;i++)
if((b<<i)&0x80)
SEND_1();
else
SEND_0();
}
char ReadI2CByte(void)reentrant
{
/*浠嶪2C鎬葷嚎璇諱竴涓瀛楄妭*/
char b=0,i;
for(i=0;i<8;i++)
{
SDA=1; /*閲婃斁鎬葷嚎*/
SCL=1; /*鎺ュ彈鏁版嵁*/
DELAY(10);
F0=SDA;
DELAY(10);
SCL=0;
if(F0==1)
{
b=b<<1;
b=b|0x01;
}
else
b=b<<1;
}
return b;
}
/**********浠ヤ笅涓鴻誨啓24c02鐨勫嚱鏁**********/
void Write_One_Byte(char addr,char thedata)
{
bit acktemp=1;
/*write a byte to mem*/
I2C_Start();
WriteI2CByte(0xa0);
acktemp=Check_Acknowledge();
WriteI2CByte(addr);/*address*/
acktemp=Check_Acknowledge();
WriteI2CByte(thedata);/*thedata*/
acktemp=Check_Acknowledge();
I2C_Stop();
}
void Write_A_Page(char *buffer,char addr)
{
bit acktemp=1;
bit wrtmp;
int i;
/*write a page to at24c02*/
I2C_Start();
WriteI2CByte(0xa0);
acktemp=Check_Acknowledge();
WriteI2CByte(addr);/*address*/
acktemp=Check_Acknowledge();
for(i=0;i<7;i++)
{
WriteI2CByte(buffer);
if(!Check_Acknowledge())
{
I2C_Stop();
}
}
I2C_Stop();
}
char Read_One_Byte(char addr)
{ bit acktemp=1;
char mydata;
/*read a byte from mem*/
I2C_Start();
WriteI2CByte(0xa0);
acktemp=Check_Acknowledge();
WriteI2CByte(addr);/*address*/
acktemp=Check_Acknowledge();
I2C_Start();
WriteI2CByte(0xa1);
acktemp=Check_Acknowledge();
mydata=ReadI2CByte();
acktemp=Check_Acknowledge();
return mydata;
I2C_Stop();
}
void Read_N_Bytes(char *buffer,char n,char addr)
{
bit acktemp=1;
int i=0;
/*read 8 bytes from mem*/
I2C_Start();
WriteI2CByte(0xa0);
acktemp=Check_Acknowledge();
WriteI2CByte(addr);/*address*/
acktemp=Check_Acknowledge();
I2C_Start();
WriteI2CByte(0xa1);
acktemp=Check_Acknowledge();
for(i=0;i<n;i++)
{
buffer=ReadI2CByte();
if(i!=n-1)
SEND_0(); /*鍙戦佸簲絳*/
else
SEND_1(); /*鍙戦侀潪搴旂瓟*/
}
I2C_Stop();
}
void main()
{
int i;
char mybyte;
char myarray[8];
char myarray2[8];
char rdarray[16];
for(i=0;i<8;i++)
{
myarray=i;
myarray2=i+0x08;
}
Write_One_Byte(0x20,0x28);
Write_A_Page(myarray,0x10);
Write_A_Page(myarray2,0x18);
mybyte=Read_One_Byte(0x20);
Read_N_Bytes(rdarray,16,0x10);
}
❺ 下表是小明在探究串聯電路中電壓特點的實驗記錄表格
表格是這樣的嗎?
第一次測量
第二次測量
AB間的電壓/伏
1.2
1.4
BC間的電壓/伏
1.8
8
AC間的電壓/伏
3
3
第二次測量的、BC間的電壓值記錄錯誤或讀數錯誤所致!
僅供參考!