freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

最新keilμvision4集成開發(fā)環(huán)境與c語(yǔ)言程序設(shè)計(jì)-資料下載頁(yè)

2025-07-07 15:00本頁(yè)面
  

【正文】 UNC?BIT: v_bflag?041: DBIT 1。 //。 define uchar unsigned char。 define uint unsigned int。 。 uint AFUNC(uchar v_achr , bit v_bflag) RSEG ?PR?_AFUNC?CFUNC_AFUNC: USING 0 。 SOURCE LINE 6。 Variable 39。v_achr?04039。 assigned to Register 39。R739。 。 { 。 SOURCE LINE 7。 uchar tmp_vchr。 uint tp_vint。 。 tmp_vchr = v_achr。 。 SOURCE LINE 11。 Variable 39。tmp_vchr?04239。 assigned to Register 39。R539。 MOV R5,AR7。 tp_vint = (uint)v_bflag。 。 SOURCE LINE 12 MOV C,v_bflag?041 CLR A RLC A。 Variable 39。tp_vint?04339。 assigned to Register 39。R6/R739。 。 return tmp_vchr + (tp_vint 8)。 。 SOURCE LINE 13 MOV R6,A MOV R4,00H CLR A ADD A,R5 MOV R7,A MOV A,R4 ADDC A,R6 MOV R6,A。 } 。 SOURCE LINE 14?C0001: RET。 END OF _AFUNC END再次編譯這個(gè)項(xiàng)目,到此已經(jīng)得到匯編函數(shù)的主體,修改函數(shù)里面的匯編代碼就得到所需的匯編函數(shù)了。 在Keil C51中直接嵌入?yún)R編語(yǔ)言要在 C51 文件中嵌入?yún)R編語(yǔ)言程序,需要按照如下格式加入:pragma ASM匯編語(yǔ)言程序pragma ENDASM在上例中,://include define uchar unsigned chardefine uint unsigned intextern uint AFUNC(uchar v_achr,bit v_bflag)。void main(){ bit BFLAG。 uchar mav_chr。 uint mvintrslt。 mav_chr = 0xd4。 BFLAG = 1。 mvintrslt = AFUNC(mav_chr , BFLAG)。 pragma asm MOV P1,mvintrslt?042 MOV P2,mvintrslt?042+01H pragma endasm} 即將調(diào)用函數(shù)AFUNC()得到的返回值通過(guò)P1口、P2口輸出。在項(xiàng)目管理器窗口中,在將要得到匯編代碼的C文件“”上單擊右鍵,彈出菜單,選擇“Options for File ‘’”,點(diǎn)擊右邊的“Generate Assembler SRC File”和“Assemble SRC File”,使復(fù)選框由灰色變成黑色(有效)狀態(tài)。根據(jù)選擇的編譯模式,把相應(yīng)的庫(kù)文件(如 Small 模式時(shí),是 Keil\C51\Lib\)加入工程中,該文件必須作為項(xiàng)目的最后文件。編譯并生成目標(biāo)代碼編譯整個(gè)項(xiàng)目,即可得到用戶需要的目標(biāo)代碼。使用此方法可以在C51源代碼的任意位置嵌入?yún)R編語(yǔ)言程序。但是,需要注意的是,在直接使用形參時(shí),在不同的優(yōu)化級(jí)別下產(chǎn)生的匯編代碼可能有所不同。 C語(yǔ)言程序舉例()include include sbit key = P1^7。sbit led = P1^0。void delay(unsigned int time)。void main(void){ P1 = 0x80。 //“1”,作為輸入口線 while(1) { while(key)。 //,是,則按鍵按下 delay(12500)。 //延時(shí),去除按鍵抖動(dòng) while(key)。 //,是,則確認(rèn)按鍵按下 while(!key)。 //檢測(cè)按鍵是否抬起 led = !led。 //LED點(diǎn)亮或熄滅 } }void delay(unsigned int time){ while(time) { _nop_()。 }}()includesbit square = P1^0。void main(){ TMOD = 0x10。 //T1為方式1 TH1 = 0xFE。 //設(shè)置計(jì)數(shù)初值 TL1 = 0X0C。 EA = 1。 //允許中斷 ET1 = 1。 //允許T1中斷 TR1 = 1。 //啟動(dòng)T1 while(1)。 //等待中斷}void timer1(void) interrupt 3{ TH1 = 0xFE。 //重新設(shè)置初值 TL1 = 0x0C。 square = !square。 //定時(shí)1ms時(shí)間到,輸出取反}()includesbit square = P1^0。void main(){ TMOD = 0x02。 //T0為方式2 TH0 = 0x9C。 //設(shè)置計(jì)數(shù)初值 TL0 = 0x9C。 EA = 1。 //允許中斷 ET0 = 1。 //允許T0中斷 TR0 = 1。 //啟動(dòng)T0 while(1)。 //等待中斷}void timer0(void) interrupt 1{ square = !square。 //定時(shí)200μs時(shí)間到,輸出取反}()includesbit ex_int1 = P3^3。 //外部中斷1void display(int value)。void main(){ int clock_num。 //機(jī)器周期個(gè)數(shù) TMOD = 0x90。 //T0為方式1,GATE=1 TH1 = 0x00。 //設(shè)置計(jì)數(shù)初值 TL1 = 0x00。 while(ex_int1)。 //等待外部中斷1降低 TR1 = 1。 //如果外部中斷1為低,啟動(dòng)T1,計(jì)數(shù)器開始計(jì)數(shù) while(!ex_int1)。 //等待外部中斷1升高 while(ex_int1)。 //外部中斷1為高,等待外部中斷1降低 TR1 = 0。 //T1停止計(jì)數(shù) clock_num = TL1。 //T1 計(jì)數(shù)值賦給變量clock_num display(clock_num)。 //將計(jì)數(shù)值送到顯示器顯示 while(1)。}void display(int value){ //以機(jī)器周期個(gè)數(shù)的形式顯示正脈沖寬度}()includeunsigned long distance _at_ 0x30。void main(void){ IT0 = 0。 //設(shè)置下降沿觸發(fā)方式 PX0 = 1。 //置外部中斷0高優(yōu)先級(jí) EX0 = 1。 //允許外部中斷0 EA = 1。 //開CPU中斷 distance = 0。 //初始化里程計(jì)數(shù)器 while(1)。 //等待中斷}void ex_int0() interrupt 0{ distance += 2。 //里程計(jì)數(shù)器+2}()include define uchar unsigned charuchar code table[]={0x03,0x9F,0x25,0x0D,0x99,0x49,0x41,0x1F,0x01,0x09}。void delay(uchar time)。void main(){ uchar X,Y。 //定義要顯示的變量X,Y取值為0~9的整數(shù) SCON = 0X00。 //串行口工作在方式0 X = 9。 //給X賦值 Y = 0。 //給Y賦值 SBUF = table[X]。 //通過(guò)串口顯示X delay(20)。 //延時(shí) SBUF = table[Y]。 //通過(guò)串口顯示Y while(1)。 }void delay(uchar time){ while(time)。}()甲機(jī):include include define NUM 16 //定義發(fā)送字節(jié)數(shù)bit finish。 //定義發(fā)送一個(gè)字節(jié)成功標(biāo)志,finishi = 0表示發(fā)送成功 unsigned char data trans[NUM] _at_ 0x40。 //定義發(fā)送數(shù)組及數(shù)組首地址unsigned char i。void init(void)。void main(void){ init()。 for(i = 0。i NUM。i ++) { finish = 1。 //表示處于發(fā)送狀態(tài) ACC = trans[i]。 //發(fā)送字節(jié)送入累加器A TB8 = P。 //校驗(yàn)位送入TB8 SBUF = ACC。 //發(fā)送字節(jié)進(jìn)入發(fā)送緩沖器,開始發(fā)送 while(finish)。 //等待發(fā)送成功 } ES = 0。 while(1)。}void init(void){ SCON = 0xd0。 //置工作方式2并允許接收 TMOD = 0x20。 //置定時(shí)器方式2,自動(dòng)重裝載 TH1 = 0xfd。 //波特率設(shè)置 TL1 = 0xfd。 //9600@ TR1 = 1。 //啟動(dòng)定時(shí)器 EA = 1。 //CPU開中斷 ES = 1。 //允許串行口中斷}void serial(void) interrupt 4{ while(TI) { TI = 0。 //發(fā)送完成,清發(fā)送中斷 } while(RI) { RI = 0。 //清接收中斷 ACC = SBUF。 //接收到的數(shù)據(jù)送入累加器A if(ACC == 0x00) //接收正確,清發(fā)送標(biāo)志 { finish = 0。 } else //接收不正確,重新發(fā)送 { ACC = trans[i]。 TB8 = P。 SBUF = ACC。 } }}乙機(jī):include include define NUM 16 //定義接收字節(jié)數(shù)bit finish。 //定義接收一個(gè)字節(jié)成功標(biāo)志,finishi = 0表示接收成功 unsigned char data recei[NUM] _at_ 0x40。 //定義接收數(shù)組及數(shù)組首地址unsigned char i。void init(void)。void main(void){ init()。 for(i = 0。i NUM。i ++) { finish = 1。 //表示處于接收狀態(tài) while(finish)。 //等待接收成功 } ES = 0。 while(1)。}void init(void){ SCON = 0xd0。 //置工作方式2并允許接收 TMOD = 0x20。 //置定時(shí)器方式2,自動(dòng)重裝載 TH1 = 0xfd。 //波特率設(shè)置 TL1 = 0xfd。 //9600@ TR1 = 1。 //啟動(dòng)定時(shí)器 EA = 1。 //CPU開中斷 ES = 1。 //允許串行口中斷}void serial(void) interrupt 4{ while(TI) { TI = 0。 //發(fā)送完成,清發(fā)送中斷 } while(RI) { RI = 0。 //清接收中斷 ACC = SBUF。 //接收到的數(shù)據(jù)送入累加器A if(RB8 == P) //接收正確 { recei[i] = SBUF。 //保存接收到的數(shù)據(jù) SBUF = 0x00。 //發(fā)送接收成功標(biāo)志 finish = 0。 //清接收標(biāo)志 } else //接收到的數(shù)據(jù)不正確 { SBUF = 0xaa。 //發(fā)送接收不正確標(biāo)志 } }}39
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1