1 / 11
文档名称:

第6章思考与练习单片机原理及应用-源程序与思考题参考答案.docx

格式:docx   大小:62KB   页数:11页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第6章思考与练习单片机原理及应用-源程序与思考题参考答案.docx

上传人:小博士 2019/7/22 文件大小:62 KB

下载得到文件列表

第6章思考与练习单片机原理及应用-源程序与思考题参考答案.docx

文档介绍

文档介绍:思考与练****一、 填空题多位数码管是采用扫描原理,实现数字的显示。单片机的D0-D7对应与共阳数码管的a、b、c、d、e、f、g、dp相连,显示“2”的编码是5BH,显示“5”的编码是6DHo点阵显示原理:利用人的视觉具有停滞性,采用扫描的办法。字符型LCD模块1602初始化后的地址为80H,如果要将A显示在第一行的03H内,其写入地址应为80H+03H。12864液晶屏横向有128个点,纵向有陆个点,显示屏分为左半屏和右半屏。列地址(Y)由0至63,页地址由0至7,每页由8行组成。每个汉字占绥个字节。二、 应用题在在Proteus中,在共阳数码管上显示0-Fo参考答案():#include<>Unsignedcharcodea[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0X88,0X83,0XC6,0XA1,0X86,0X8E};voiddelay(unsignedinttemp);main(){while(1){inti;for(i=0;i<16;i++){P0=a[i];P2=0XFE;delay(1000);voiddelay(unsignedinttemp)fIintk,j;for(k二0;k<temp;k++)for(j=124;j>0;j—);在Proteus屮,设计四位一体的数码显示,显示内容为“5678”。参考答案():#include<>voiddelay(unsignedinttemp);unsignedcharcodetable[]={0x92,0x82,0xF8,0x80};unsignedcharcodetablel[]={0xFE,OxFD,OxFB,0xF7};main()!unsignedchari;while(1){for(i=0;i<4;i++){P2=tablel[i];Portable[i];delay(10);P0=0xFF;voiddelay(unsignedinttemp)!intk,j;for(k=0;k<temp;k++)for(j=124;j>0;j—);}在Proteus中,设计字符显示电路和程序,显示内容为“good-bye”。参考答案():^include<>#include<>#defineuintunsignedint //预定义无符号整数为uint#defineucharunsignedchar//预定义无符号字符数为ucharsbitrs=P37; //定义端口sbitrw=P36;sbitep二P3"5;ucharcodedisl[]="good-bye";//显示内容,字符数组voiddelay(ucharms){uchari;while(ms--){for(i=0;i<250;i++){_nop.();_nop_();_nop.();_nop_();//延时子程序bitledbz(){bitresult;rs=0;nv=l;ep二1;_nop_();_nop_();_nop_();_nop_();result二(bit)(P3&0x80);ep二0;returnresult;}voidlcd_wcmd(ucharemd)//测试LED忙碌状态//写入指令数据到LEDwhile(lcdbz());rs=O;rw二0;ep二0;_nop_();_nop_();Pl=cmd;_nop_();_nop_();_nop_();_nop_();ep二1;_nop_();_nop_();_nop_();_nop_();ep二0;}//设置显示位置//写入字符显示数据到LEDvoidledpos(ucharpos){ledwemd(pos0x80);voidledwdat(uchardat){while(ledbz());rs=l;rw=0;ep二0;Pl二dat;_nop_();_nop_();_nop_();_nop_();ep=l;_nop_();_nop_()_nop_()_nop_()ep二0;voidlcd_init(){ledwemd(0x38);delay(1);ledwemd(0x0c);delay(1);ledwemd(0x06);delay(1);lcd_wcmd(0x01);delay(1);}main(){uchari;lcd_init();delay(500);ledpos(4);i二0;while(disl[i]!二'\0'){lcd_wdat(disl[i]);//LCD初始化设定////////清除LCD的显示内容//初始化LED//设置显示位置为第一行的第5个字符//显示字