手机版

单片机复习材料(5)

发布时间:2021-06-05   来源:未知    
字号:

[例4—5]例3-1曾用汇编语言完成了外部RAM的00EH单元和000FH单元的内容交换,现改用C语言编程。 #include<absacc.h> c=XBYTE[14]; main(){ XBYTE[14]=XBYTE[15]; char c; XBYTE[15]=c; for(; ;) { }} [例4-6]完成19805×24503的编程。 main() p=0; { unsigned long xdata *p ; c=a*b; unsigned long a=19805; *p=c; unsigned long b=24503,c; }

【例4-7】片内RAM 20H单元存放着一个0~50H的数,用查表法求出该数的平方值,并放入内部RAM 21H单元。 main()

{ char x ,*p p++; char coode tab[6]={0,1,4,9,16,25}; *p=x; p=0x20;; }x=tab[*p];

X 0 X

【例4-11】片内RAM的20H单元存放一个有效符号数X,函数Y与X有如下关系式;Y= 20H X 0

X 5X 0

设Y存放于21H单元,程序如下: main(){ for(;;){ if(x= =0)*y=0x20; char x,*p,*y; x=*p; }} p=0x20; if(x>0)*y=x; y=0x21; if(x<0)*y=x+5;

[4-12] 有两个数a和b,根据R3的内容转向不同的处理了程序:

r3=0,执行子程序 pr0(完成两数相加) r3=1, 执行子程序pr1(完成两数相减) r3=2,行子程序pr2(完成两数相乘) r3=3,行子程序pr3(完成两数相除) #include<absacc.h> pr3(){c=a/b;} case 1:pr1();break; #define r3 DBYTE[0x03] main(){ case 2:pr2();break; int c,c1,a,b; a=90; b=30; case 3:pr3();break; pr0() {c=a+b;} for(;;){ } pr1(){c=a-b;} switch(r3){ c1=56; pr2(){c=a*b;} case 0:pr0();break; }}

【例4-13】用P1.0产生周期为4ms的方波,同时用P1.1产生周期为8ms的方波。说明 用C语言编写主程序,使P1.1产生周期为8ms的方波为模块1;P1.0产生周期4ms的方波为模块2;用汇编语言编写的延时1ms程序为模块3。

模块1调用模块2获得8ms方波,模块2调用模块3时,向汇编程序传递了字符型参数(x=2),延时2ms,程序如下: C语言程序

单片机复习材料(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)