资源描述:
《单片机试题库程序及答案.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、1、程序功能:通过用DAC0832产生三角波。(DAC0832的数字信号输入端接P0口,/CS接P2.7,/XFER接地,/WR1、/WR2接单片机的/WR,ILE接电源+5V。)①DA0832=i;②for(i=255;i>=0;i--)③for(i=0;i<=255;i++)④while(1)⑤uchari;⑥TF1=0;⑦while(!TF1);⑧TR1=1;⑨voiddelay_1ms()⑩#include#include//存放绝对地址宏定义的函数原型#incl
2、ude﹍﹍﹍﹍﹍#defineucharunsignedchar#defineuintunsignedint#defineDA0832XBYTE[0X7FFF]﹍voiddelay_1ms()﹍﹍﹍﹍﹍{TH1=0XFC;TL1=0X18;TR1=1;﹍﹍while(!TF1);﹍﹍﹍﹍//等待1ms定时时间到﹍﹍﹍TF1=0;﹍﹍﹍}voidmain(){﹍uchari;﹍﹍﹍﹍﹍TMOD=0X10;﹍﹍﹍while(1)﹍﹍﹍{﹍﹍for(i=0;i<=255;i++)﹍﹍﹍﹍//形成三
3、角波输出值,逐渐增大,最大为255{DA0832=i;//D/A转换输出delay_1ms();}﹍﹍for(i=255;i>=0;i--)﹍﹍﹍﹍{﹍DA0832=i;﹍﹍﹍﹍﹍;//D/A转换输出delay_1ms();}}}2、程序功能:通过DAC0832产生锯齿波。(DAC0832的数字信号输入端接P0口,/CS接P2.7,/XFER接地,/WR1、/WR2接单片机的/WR,ILE接电源+5V。)选择项:①delay_1ms();②DA0832=i;③for(i=0;i<=255;i++)④TMOD=
4、0X10;⑤voidmain()⑥TF1=0;⑦while(!TF1);⑧TL1=0X18;⑨#defineDA0832XBYTE[0X7FFF]⑩#include源程序:﹍#include﹍﹍﹍﹍﹍//存放绝对地址宏定义的函数原型#include#defineucharunsignedchar#defineuintunsignedint#defineDA0832XBYTE[0X7FFF]﹍﹍﹍﹍﹍﹍voiddelay_1ms(){TH1=0XFC;T
5、L1=0X18;﹍﹍﹍﹍TR1=1;﹍while(!TF1);﹍﹍﹍﹍﹍﹍TF1=0;﹍﹍﹍﹍﹍}voidmain()﹍﹍﹍﹍﹍﹍{uchari;﹍TMOD=0X10;﹍﹍﹍﹍﹍while(1){for(i=0;i<=255;i++)﹍﹍﹍﹍﹍﹍{﹍﹍DA0832=i;﹍﹍﹍﹍//D/A转换输出﹍delay_1ms();﹍﹍﹍﹍﹍}}}3、程序功能:用单片机实现简易数字钟,显示小时、分和秒。(单片机P2口输出取反后控制8个共阴极数码管的位码,P0口控制每个数码管的段码)选择项:①calc();②display
6、();③if(time[2]>23)④if(time[1]>59)⑤if(time[0]>59)⑥P0=dispcode[time[i]/10];⑦P0=dispcode[time[i]%10];⑧for(i=0;i<4;i++)⑨voiddelay(void)⑩uchartime[4]={23,59,58,0};源程序:#include"reg51.h"//头文件#defineucharunsignedchar//宏定义uchardispcode[10]={0x3f,0x06,0x5b,0x4f,0x66,
7、0x6d,0x7d,0x07,0x7f,0x6f,0x40};//定义共阴数码管0~9显示码数组﹍uchartime[4]={23,59,58,0};﹍﹍﹍﹍﹍//设置时间初值voiddelay(void)//延时函数{uchark;for(k=250;k>0;k--);}voiddisplay(void)//显示函数{uchari,k;k=0x01;//设置位选线初值﹍for(i=0;i<4;i++)﹍﹍﹍﹍﹍//循环4次{P2=0;//关闭显示﹍P0=dispcode[time[i]%10];﹍﹍﹍﹍﹍/
8、/输出个位数的段码P2=k;//送位码k=k<<1;//位码左移一位delay();//调用延时函数P2=0;//关闭显示﹍P0=dispcode[time[i]/10];﹍﹍﹍﹍﹍//输出十位数的段码P2=k;//送位码k=k<<1;//位码左移一位delay();//调用延时函数}P2=0;//关闭显示}voidcalc(void)//时间值计算函数{time[0]++;//秒加1﹍if(tim