(1)最常用的PAGE和BANKEMC的IC是分幾個(gè)page和幾個(gè)bank的,低端的EM78P156等只有一個(gè)bank和一個(gè)page,所以不用切換,新一點(diǎn)的IC基本都要切換的了,這個(gè)經(jīng)常用的冬冬,做成宏就最合適,代碼如下:/****
Start(void);voidStop(void);u8CurrentRead(void);u8RandomRead(u8addr);voidByteWrite(u8addr,u8data);voidSendByte(u8data);voidI2c_Ack(void);voidI2c_NoAck(void);u8I2c_CheckAck(void);u8ReadByte
;*****************************************;78p153寄存器定義;*****************************************R0==0X0;間接尋址IAR;****CONTREGISTE*************;76543210;-INTTSTEPABPSR2PSR1PSR2;PSRT
mcu:EM78P153port5==0x05dly1==10hdly2==11hdly3==12htime==13hmode1==15hmode2==16h;**************主程序*****************org0X00main: MOV a,@00hiowport5 MOV a,@64;2s MOV time,a MOV a,@3 MOV m
EM78系列單片機(jī)--D/A變換程序的設(shè)計(jì)PORT6的輸出接有一個(gè)數(shù)模轉(zhuǎn)換器(D/A convert)。寫一程序產(chǎn)生一個(gè)鋸此波。本例的D/A Convert所采用的方式為R – 2R的方式,所使用的電阻為20K的同一品牌的排阻。因POR
PORT6輸出動(dòng)作的控制,而且外部接有一推動(dòng)8個(gè)七段顯示器的電路。編寫一程序在8個(gè)七段顯示器上輪流顯示1,2,3,4,5,6,7,8。下圖為控制電路的方塊圖。由PORT6單獨(dú)控制8個(gè)七段顯示器,利用時(shí)間分割(time slI
在許多程序設(shè)計(jì)的場(chǎng)合,我們時(shí)常會(huì)利用到時(shí)間延遲子程序,接下來(lái)就介紹一個(gè)可以控制延遲時(shí)間的延遲子程序。開(kāi)下面是利用發(fā)工具E8-ICE來(lái)演示的一個(gè)精確的控制延遲時(shí)間的程序,選擇使用石英振蕩器,可以精
在EM78X56系列的IC中有三種中斷信號(hào),分別是:TCC溢位中斷。PORT6Change中斷。外部信號(hào)中斷。在說(shuō)明中斷使用方式之前,用戶要了解中斷寄存器,及與中斷息息相關(guān)的控制寄存器(ControlRegister),另外在芯
在一個(gè)沒(méi)有規(guī)則性的內(nèi)容轉(zhuǎn)換中,查表程序是相當(dāng)有用的,用戶可以使用查表程序很快速的得到相關(guān)內(nèi)容的轉(zhuǎn)換。例:設(shè)計(jì)一個(gè)程序,將如下圖所示中的PORT5讀到的一個(gè)數(shù)值,將輸入內(nèi)容做轉(zhuǎn)換,然后輸出到PORT
本例為單字節(jié)二進(jìn)制數(shù)(0X20)轉(zhuǎn)換為非壓縮BCD 碼,存在0X25,0X24,0X23 中,0X25 為百位,0X23 為個(gè)位。main: MOV a,@0xa4 ;賦值MOV 0x20,aMOV 0x21,aMOV 0x22,aMOV a,@0x0 ;0x23,0x24,0x25 單元清0MOV 0x23
兩字節(jié)壓縮BCD 碼轉(zhuǎn)換為兩字節(jié)二進(jìn)制數(shù)。算法如下:BCD 碼abcd=1000a+100b+10c+d=10{10[10a+b]+c}+d,將各位BCD 碼分離出之后,即可根據(jù)此式轉(zhuǎn)換為二進(jìn)制數(shù)。涉及到乘法運(yùn)算和多字節(jié)加法運(yùn)算。0X20,0X
多字節(jié)二進(jìn)制除法被除數(shù)為3 個(gè)字節(jié),在0x20、0x21、0x22 單元中,0x22.7 為最高位,0x20.0 為最低位。除數(shù)為2 個(gè)字節(jié),在0x30、0x31 中。算法:EM78單片機(jī)沒(méi)有除法指令,而且本例中除法為多字節(jié)除法,可
EM78單片機(jī)沒(méi)有乘法指令,所以乘法運(yùn)算需要轉(zhuǎn)化為加法運(yùn)算。0X20 單元數(shù)據(jù)乘以0X21 單元數(shù)據(jù),結(jié)果放在0X22,0X23 中。main: MOV a,@0x0 ;0x22,0x23 單元清0MOV 0x22,aMOV 0x23,aMOV a,@0x3f ;賦值MOV 0
三 多字節(jié)二進(jìn)制減法0x20,0x21 中的二進(jìn)制無(wú)符號(hào)數(shù)減0x22,0x23 中的二進(jìn)制無(wú)符號(hào)數(shù), 低地址中放低字節(jié)數(shù)據(jù)。假設(shè)被減數(shù)大于減數(shù)。注意:(1)sub 指令減出結(jié)果為正時(shí),c 標(biāo)志置1。(2)sub 指令減出結(jié)果
二 多字節(jié)二進(jìn)制加法0X20,0X21 中的二進(jìn)制無(wú)符號(hào)數(shù)與0X22,0X23 中的二進(jìn)制無(wú)符號(hào)數(shù)相加,結(jié)果放在0X24,0X25,0X26 中,低地址中放低字節(jié)數(shù)據(jù)。Main: MOV a,@0x78 ;賦值MOV 0x20,aMOV a,@0xc6MOV 0x21,aM