1樓:匿名使用者
已經修改了,50us的定時,定時處理取反p3.6,得到100us的方波。
org 0000h
sjmp main
org 000bh ;定時器0中斷入口sjmp int0_pro
main:
mov tmod,#01h ;以下5條是初始化定時器0,使得50us中斷一次
mov th0,#0ffh
mov tl0,#0ceh
mov ie,#82h
setb tr0
sjmp $ ;在這裡等待中斷
int0_pro:
mov th0,#0ffh ;重新賦初值
mov tl0,#0ceh
cpl p3.6 ;p3.6取反,生成方波reti
2樓:無鹽
#include
#include
unsigned int i=0,j=0,k=0,p,q;
interrupt [tim1_ovf] void timer1_ovf_isr(void)
q=j*2;
pinb.0 = q;
break;
case 3:
/***************
鋸齒波***************/
j+=i;
if(j>399) j=0;
pinb.0=j;
break;}}
void main(void)
if(pind.3==0)
i++;
while(pind.3==0);
if(pind.4==0)
i--;
while(pind.4==0); }}
3樓:
org 0000h
ljmp main
org 000bh ;
ljmp lp1
main:
mov tmod,#01h ;定時器初始化,t0 方式1mov th0,#0ffh ;65536-50微秒 直接換成16進位制
mov tl0,#0ceh
setb ea ;開中斷setb eto
setb tr0
sjmp $ ;中斷等待lp1:
cpl p3.6 ;p3.6取反,生成100微秒方波mov th0,#0ffh ;重新賦初值
mov tl0,#0ceh
reti
end其實這個程式很簡單 你給10分就會有人做的
4樓:匿名使用者
微控制器中斷問題,51微控制器外部中斷問題
不太明白你問的問題。t0還有空間呢?如果想在t0中斷內增加程式,也是可以的,長度和t0沒有關係,只要微控制器的儲存空間夠就可以了。儘量不要在中斷中執行程式,會影響整個流程的合理性。所以一般只在中斷中設定標誌。微控制器的中斷入口都是排列在地址的最低端的,分別為0003,000b,0013,001b,0...
組裝微控制器的問題,微控制器的問題有哪些?
但是你什麼工具都沒,所以要花錢買這些工具 像焊錫絲,電烙鐵,工具鉗,起子,這些工具也要錢的。把所有器件和工具都買齊的話,大概就50 塊錢了。我同學去買的時候花了20多,沒包括那些工具的,只是元器件。我買工具 元器件花了70塊錢,你自己看著辦 去電子 吧 買個電烙鐵,架子,松香,焊錫,50塊以內搞定了...
微控制器與PC機的序列通訊問題,微控制器與微控制器之間如何進行序列通訊?
define com1 0 define data ready 0x0100 define true 1 define false 0 define settings 0xe0 0x00 0x00 0x03 void main a bioscom 2,0,com1 0x00ff printf a x...