设MCS-51单片机时钟为12MHz,利用定时器T0编辑令P1.0引脚输出2ms得矩形波程序,要求 单片机时钟为12MHz 利用定时器T1 使P1.0引脚输出2...

MCS-51\u5355\u7247\u673a\u65f6\u949f\u4e3a12MHz\uff0c\u5229\u7528\u5b9a\u65f6\u5668T0\u7f16\u7a0b\u4ee4P1.0\u5f15\u811a\u8f93\u51fa2ms\u7684\u77e9\u5f62\u6ce2\u7a0b\u5e8f\uff0c\u8981\u6c42\u5360\u7a7a\u6bd4\u7cfb\u6570\u4e3a1:2\u3002

2ms\u5468\u671f\u65b9\u6ce2\uff0c1:2\u5360\u7a7a\u6bd4\u7684\u8bdd\u5f97\u4e0d\u5230\u7cbe\u786e\u503c\u3002
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#02H

MOV TH0,#246

MOV TL0,#246

SETB TR0

SETB ET0

SETB EA

SETB P1.0

CLR A

SJMP $

T0ISR:
INC A

CJNE A,#67,T01

T01:
JC T02

CLR P1.0

CJNE A,#200,T03

T03:
JC T0E

CLR A

T0E:
RETI

T02:
SETB P1.0

RETI

END

#include //12MHZ
sbit pause = P1^0;

void main(void)
{
EA = 1;
TMOD = 0x10;
TH1 = (65536-1000)/256; //1ms\u5b9a\u65f6
TL1 = (65536-1000)%256;
ET1 = 1;
TR1 = 1;
pause = 0;
while(1);
}
void timeint(void) interrupt 3 //\u5360\u7a7a\u6bd4\u4f8b1:2
{
static unsigned char i;
TH1 = (65536-1000)/256;
TL1 = (65536-1000)%256;
if(i++ == 1)
{
P10= 1; //2ms\u9ad8\u7535\u5e73
}
else if(i == 3)
{
P10=0; //1ms\u4f4e\u7535\u5e73
i = 0;
}
}
\u4e0d\u61c2\u5f97\u8fd8\u53ef\u4ee5\u95ee\u6211\u2026\u2026
\u5728\u4e2d\u65ad\u4e2d\u7684\u53d8\u91cfi\u9700\u662f\u9759\u6001\u53d8\u91cfstatic\uff0c\u5728\u4e2d\u65ad\u7ed3\u675f\u65f6\u4e0d\u91ca\u653e\uff0c\u6240\u4ee5\u697c\u4e0a\u7684\u7a0b\u5e8f\u662f\u4e0d\u53ef\u4ee5\u7684\uff01

#include<at89x51.h>

#define OUT P1_0

void InitT0(void)
{
TMOD = 1;
TH0=(65536-1000)/256; //机器周期1us 1000us=1ms
TL0=(65536-1000)%256;
ET0=1;
TR0=1;
EA=1;
}
void main(void)
{
InitT0();//初始化定时器
while(1);
}
void Timer0Interrupt(void) interrupt 1 //每1ms中断一次
{
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
OUT=~OUT; //2ms周期方波50%占空比
}

#include<reg51.h>
sbit P10=P1^0;
void main()
{
TMOD=0x01;
EA=1;
ET0=1;
TH0=-1000>>8;
TL0=-1000;
TR0=1;
while(1);
}

void intr_time0() interrupt 1
{
P10=~P10;
TH0=-1000>>8;
TL0=-1000;
}

  • 璁綧CS-51鍗曠墖鏈鐨勬櫠鎸鐜囦负12MHz,缂栫▼浣縋1.0绔緭鍑洪鐜囦负20kHz鏂规尝,鏄...
    绛旓細T=1/f=50US void Timer0Init(void)//100寰@12MHz { AUXR &= 0x7F;//瀹氭椂鍣鏃堕挓12T妯″紡 TMOD &= 0xF0;//璁剧疆瀹氭椂鍣ㄦā寮 TL0 = 0x9C;//璁剧疆瀹氭椂鍒濆 TH0 = 0xFF;//璁剧疆瀹氭椂鍒濆 TF0 = 0;//娓呴櫎TF0鏍囧織 TR0 = 1;//瀹氭椂鍣0寮濮嬭鏃 } 涔嬪悗鍦ㄤ腑鏂噷鍐欏叆P01=~P01; 灏卞ソ浜 ...
  • 璁綧CS-51鍗曠墖鏈浣跨敤鐨勬櫠鎸槸12MHz,娆蹭娇鐢ㄥ畾鏃跺櫒/璁℃暟鍣1瀹炵幇50ms瀹氭椂涓...
    绛旓細涓嶇浣跨敤浠涔堝伐浣滄柟寮忛兘鏄彲浠ュ畬鎴愮殑锛岃繖涓彇鍐充簬浣犺缃殑瀹氭椂/璁℃暟鍣ㄧ殑鍒濆笺備笅闈娇鐢ㄦ柟寮忎竴鍜屾柟寮忎簩鏉ュ垎鍒鏄庛備竴銆佷娇鐢ㄦ柟寮忎竴锛氭櫠鎸鐜囦负12MHz锛屾満鍣ㄥ懆鏈熶负1us锛50ms鏃堕棿闇瑕佽鏁50000娆★紝鏁呰鏁板櫒鍒濆间负锛65536-50000锛夛紝65536鏄洜涓烘柟寮忎竴涓紝瀹氭椂/璁℃暟鍣ㄧ殑鏈澶у间负65536锛2^16锛夛紝褰撶劧鍐欑▼搴忔椂涓...
  • 璁綧CS-51鍗曠墖鏈鏅舵尟棰戠巼涓12MHz,瀹氭椂鍣ㄤ綔瀹氭椂浣跨敤鏃,鍏舵渶楂樼殑瀹氭椂鏃堕棿...
    绛旓細璁綧CS-51鍗曠墖鏈鏅舵尟棰戠巼涓12MHz,瀹氭椂鍣ㄤ綔瀹氭椂浣跨敤鏃,鍏舵渶楂樼殑瀹氭椂鏃堕棿搴斾负锛65.536姣銆
  • 璁綧CS-51鍗曠墖鏈鐨勬櫠鎸鐜囦负12MHZ,浣跨敤瀹氭椂鍣1宸ヤ綔鏂瑰紡1涓柇鏂瑰紡鍦≒1...
    绛旓細;ORG 0000H SJMP START ORG 0001BH MOV TH1, #(65536 - 50000) / 256 MOV TL1, #LOW(65536 - 50000)CPL P1.0 RETI START:MOV TMOD, #10H MOV TH1, #(65536 - 50000) / 256 MOV TL1, #LOW(65536 - 50000)SETB TR1 MOV IE, #88H SJMP END ...
  • 璁緈cs-51鍗曠墖鏈涓,鏅舵尟棰戠巼涓12mhz,缂栫▼瀹炵幇浣縫1.0鍜宲1.1鍒嗗埆杈撳嚭鍛ㄦ湡涓...
    绛旓細ORG 0000H LJMP MAIN ORG 000BH LJMP T0ISR ORG 0030H MAIN:MOV TMOD,#01H MOV TH0,#HIGH(65536-250)MOV TL0,#LOW(65536-250)SETB TR0 SETB ET0 SETB EA MOV R2,#0 SJMP T0ISR:CLR TR0 MOV TH0,#HIGH(65536-250)MOV TL0,#LOW(65536-250)SETB TR0 CPL P1.1 INC R2 CJNE R2...
  • 璁綧CS-51鍗曠墖鏈浣跨敤鐨勬櫠鎸槸12MHz,娆蹭娇鐢ㄥ畾鏃跺櫒/璁℃暟鍣0瀹炵幇鍗犵┖姣斿彲鍙2...
    绛旓細.鏂瑰紡1涓16浣嶉暱搴﹁鏁扮粨鏋,璁惧垵鍊间负z,鍒(65536-z)脳1us=200us寰梲=65334D锛岃浆鎹负16杩涘埗鍚,TH=FF,TL=38.鏈夋帶鍒跺瘎瀛樺櫒TCON涓殑TR0浣嶆潵鎺у埗瀹氭椂鐨勫惎鍔ㄥ拰鍋滄,TR0=1鍚姩,TR0=0鍋滄 include<REG51.H> define uchar unsigned char define uint unsigned int uchar data cnt;sbit pwm=P1^...
  • MCS-51閲囩敤12MHz鐨勬櫠鎸,瀹氭椂1ms,濡傜敤瀹氭椂鍣ㄦ柟寮1鏃剁殑鍒濆(16杩涘埗鏁)搴...
    绛旓細瀵逛簬12MHz鐨鏃堕挓锛51鍗曠墖鏈鐨勬満鍣ㄥ懆鏈熷氨涓 1/(12000000/12)=1us 閭d箞瀵逛簬瀹氭椂1ms锛岄渶瑕佸畾鏃跺櫒璁℃暟鐨勪釜鏁板氨涓 1ms/1us=1000 閭d箞锛屽浜庢柟寮1锛岄渶瑕佽鍏ョ殑鏃堕棿甯告暟灏变负 2^16-1000=64536鈥斺0xfc18 寤鸿闅忎究鍙傝冧竴鏈51鍗曠墖鏈虹殑鏁欐潗锛岄兘浼氭湁鐩稿叧浠嬬粛銆
  • MCS-51鍗曠墖鏈鐨勭紪绋嬮:宸茬煡绯荤粺鏅舵尟棰戠巼涓12MHZ,閲囩敤瀹氭椂鍣═0鐨勬柟寮1...
    绛旓細涓柇鏈嶅姟鍑芥暟灏变笉鐢ㄥ啓浜嗗惂锛屽氨鍐欎釜鍒濆鍖栧嚱鏁帮細void inition(){ TOMD=0x01;//閫夋嫨瀹氭椂鍣0骞堕夋嫨宸ヤ綔鏂瑰紡1 TH0=(65536-50000)/256;TL0=(65536-500000)%6;EA=1;ET0=1;TR0=1;} 杩欐牱鍒濆鍖栧氨娌¢棶棰樹簡锛屽彟澶栬瀹炵幇1S寤舵椂锛岄渶瑕佸湪涓柇鍑芥暟閲屽姞涓彉閲忚嚜澧烇紝鍥犱负鎴戝畾涔夌殑鏄50ms涓柇涓娆★紝閭d箞...
  • MCS-51鍗曠墖鏈鐨勭紪绋嬮:宸茬煡绯荤粺鏅舵尟棰戠巼涓12MHZ,閲囩敤瀹氭椂鍣═0鐨勬柟寮1...
    绛旓細DELAY1S: MOV TMOD,#01H MOV TH0,#HIGH(65536-50000) MOV TL0,#LOW(65536-50000) SETB TR0 MOV R2,#20LOOP: JNB TF0,$ CLR TF0 CLR TR0 MOV TH0,#HIGH(65536-50000) MOV TL0,#LOW(65536-50000) SETB TR0 DJNZ R2,LOOP RET ...
  • 鑻mcs51鍗曠墖鏈鐨勬櫠鎸鐜囦负12mhz 鏈楂樿緭鍏ヨ鏁伴鐜
    绛旓細涓娆¤鏁帮紝闇瑕2涓満鍣ㄥ懆鏈燂紝鍗24涓鏃堕挓鍛ㄦ湡鎴栭渿鑽″懆鏈燂紝鍒欐渶楂樿鏁伴鐜囦负12M/24=500khz銆
  • 扩展阅读:51单片机可调时钟 ... mcs51单片机时钟电路图 ... mcs-51的时钟最高频率是 ... at89s51相当于mcs-51 ... mcs-51有几个引脚 ... 51单片机电子钟原理图 ... mcs-51 ... mcs-51单片机各引脚功能 ... 画出mcs51单片机时钟电路 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网