单片机定时器,如果让定时器T1工作在方式2,那么TMOD是啥?有没有学霸帮我解答 单片机定时器/计数器程序,如果想让定时器T0工作在方式1 那...
\u5355\u7247\u673a\u5b9a\u65f6\u5668/\u8ba1\u6570\u5668\u7a0b\u5e8f\uff0c\u5982\u679c\u60f3\u8ba9\u5b9a\u65f6\u5668T1\u5de5\u4f5c\u5728\u65b9\u5f0f2\u90a3\u4e48\u5e94\u8be5\u662fTMOD=\uff1f;\u5982\u679c\u8ba9T1\u5de5\u4f5c\u5728\u65b9\u5f0f3\uff0c\u90a3\uff1f\u5b9a\u65f6\u5668T1\u5de5\u4f5c\u5728\u65b9\u5f0f2\u90a3\u4e48\u5e94\u8be5\u662fTMOD = 0x20;
T1\u6ca1\u6709\u65b9\u5f0f3
TO\u65b9\u5f0f3==TMOD = 0x03;
\u5355\u7247\u673a\u5b9a\u65f6\u5668/\u8ba1\u6570\u5668\u7a0b\u5e8f\uff0c\u5982\u679c\u60f3\u8ba9\u5b9a\u65f6\u5668T0\u5de5\u4f5c\u5728\u65b9\u5f0f1 \u90a3\u4e48\u5e94\u8be5\u662fTMOD=0x01;\u5982\u679c\u8ba9T0\u5de5\u4f5c\u5728\u65b9\u5f0f2\uff0c\u90a3\u4e48TMOD=0x01;\uff0c\u539f\u56e0\u5982\u4e0b\uff1a
方式0是13位工作模式 方式1是16位工作模式 方式2是8位自动重装模式 方式3是双8位定时器模式
TMOD=0x20;
绛旓細51鍗曠墖鏈哄畾鏃跺櫒T1鐨宸ヤ綔鏂瑰紡1鏄16浣嶅畾鏃跺櫒妯″紡锛屽叾璁℃暟鍒濆间负TH1鍜孴L1涓や釜瀵勫瓨鍣ㄧ粍鎴愩傚湪璇ユā寮忎笅锛屾瘡涓鏁板懆鏈熶负12涓椂閽熷懆鏈燂紝鍥犳闇瑕佽缃鏁板垵鍊间负65536-12000/OSC锛屽叾涓璒SC涓烘櫠鎸鐜囥傚鏋滆瀹炵幇涓娆50ms鐨勫畾鏃讹紝鍙互鎸夌収浠ヤ笅姝ラ杩涜璁$畻锛1. 璁$畻姣忎釜璁℃暟鍛ㄦ湡鐨勬椂闂达細12/OSC 绉2. 璁$畻闇瑕佸灏...
绛旓細涓柇涓鑸槸鍦╬3.2鍙f湁涓嬮檷娌垮氨杩涘叆锛燂紞锛嶆槸銆傞偅瀹氭椂鍣ㄤ腑鏂槸鎬庝箞杩涘叆鐨勶紵锛嶏紞瀹氭椂鍣紝鏃犺鏄畾鏃舵垨璁℃暟锛屽姞涓锛屽嚭鐜版孩鍑烘椂銆t1鐨宸ヤ綔鏂瑰紡鏄00鐨勬椂鍊橳H0鍜孴L0鐨勫兼庝箞鏀瑰畾鏃舵椂闂撮兘鏄8姣锛侊紞锛嶅姙涓嶅埌銆傦紞锛嶅彧鑳介氳繃璁剧疆 TH1 鍜 TL1 鐨勫垵鍊硷紝鎵嶈兘鏀瑰彉 T1 鐨勫畾鏃鏃堕棿銆
绛旓細MOV TMOD,#11H;T0,T1鍧囧伐浣滄柟寮1 MOV TH0,#0FFH;瀹氭椂100us MOV TL0,#9CH MOV TH1,#3CH;瀹氭椂50ms MOV TL1,#0B0H SETB EA;CPU涓柇寮鏀 SETB ET0 ;T0涓柇鍏佽 SETB ET1;T1涓柇鍏佽 SETB TR0;鍚姩T0 SETB TR1;鍚姩T1
绛旓細銆1銆戝惊鐜幏鍙栨槸鍚︽寚浠庡綋鍓嶆椂鍒荤畻璧凤紝鍓嶄竴绉掑唴T1璁″緱鐨勬柟娉㈡暟銆傘2銆戣繖閲岀己灏戜竴涓弬鏁帮紝灏辨槸寰幆鑾峰彇鐨勯噰鏍峰懆鏈焧锛圫锛夛紝濡0.1S銆傘3銆戞牴鎹畉锛岃瀹歍0涓柇銆傛诲叡搴旇鏈1/t涓噰鏍风墖娈礟ulseNum[1/t]锛屾瘡娆0涓柇锛屽~鍏匬ulseNum[i++%(1/t)]銆傚苟娓呴櫎T1鍒濆笺傘4銆戜富绋嬪簭姹傚拰PulseNum[1/t]鍗冲彲...
绛旓細鎶鍒濆鍖栫▼搴 Timer1Init(); 鏀惧湪while(1) 鐨勪笂闈紝浣犵幇鍦ㄨ繖鏍凤紝姣忔寰幆閮藉垵濮嬪寲浜嗭紝灏辨案杩滀篃涓嶈鏁颁簡 銆傚彟澶栵紝寮鏈烘槸鏄剧ず8锛屾槸鍥犱负锛屽紑鏈篜0鍙e叏涓1锛岃杩1绉掑悗寮濮嬩粠0寮濮嬫樉绀猴紝鍙互鍦╳hile(1)涓婇潰鍔犱竴琛 P0=0x3f; 杩欐牱锛屽紑鏈哄氨鏄剧ず0浜嗐傚彟澶栵紝杩欑瀹氭椂1绉锛屽畾鏃跺櫒鏈濂藉畾鏃堕暱鐐癸紝濡50ms 锛...
绛旓細涓や釜瀹氭椂鍣鐨勪腑鏂▼搴忓垎寮鍐锛屽鏋鍐欐垚涓変釜瀹氭椂鍣ㄥ師鐞嗘槸涓鏍风殑锛屼笅闈㈡垜缁欎綘涓涓垜鑷繁鍐欑殑璋冮氳繃鐨勭▼搴忥紝鍏跺姛鑳芥槸瀹炵幇瀹氭椂鍣0鐢ㄤ綔璁℃暟鍣ㄥ姛鑳借澶栭儴鑴夊啿锛屽畾鏃跺櫒1鐢ㄤ綔鏅氬畾鏃跺櫒鍔熻兘 void Time1_Init(){ TH1=(65536-500)/256;TL1=(65536-500)%256;ET1=1;TR1=1;} void Time0_Init(){ //...
绛旓細include<reg51.h> main(){ TMOD=0x10;TH1=(65536-10000)/256;TL1=(65536-10000)%256;TR1=1;ET1=1;EA=1;while(1);} void t1isr() interrupt 3 { TH1=(65536-10000)/256;TL1=(65536-10000)%256;}
绛旓細鍙傝冧笅闈㈢殑绋嬪簭锛
绛旓細鍙兘浣犺姹囩紪璇█锛屼絾浣犵湅C璇█鏇寸畝娲佹槑浜 TMOD=0X10;TL1=(65535-5000)%256;//5ms鐨瀹氭椂锛浣8浣嶅256姹備綑 TH1=(65535-5000)/256;//楂8浣嶅256姹傛ā 10ms鏃跺噺10000 100ms銆1s鐨瀹氭椂,娌℃硶涓娆″畬鎴愶紝鍥犳渶澶у畾鏃跺兼槸65.535mS 鍙氳繃瀹氭椂50MS銆绱2娆″拰20娆″疄鐜 ...
绛旓細缁欎綘涓彁绾诧紝鑷繁鍐欏惂锛屽涓嬶細sbit LED=Px^x void main锛堬級{ 1.瀹氭椂鍣璁剧疆銆佷腑鏂缃,while(1){ 2.LED=1; //鍋囪楂樼數骞充寒 3.瀹氭椂涓柇娆℃暟璁剧疆X=m //2绉掔瓑浜巑娆′腑鏂 4.寮瀹氭椂鍣ㄤ腑鏂 5.While锛坸锛; //鏈埌鏃堕棿鍋滃湪杩欎竴姝 6.鍏冲畾鏃跺櫒涓柇 7.LED=0;8.瀹氭椂涓柇娆℃暟璁剧疆X=n ...