欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    单片机基本程序.doc

    • 资源ID:17504501       资源大小:1.55MB        全文页数:43页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机基本程序.doc

    【精品文档】如有侵权,请联系网站删除,仅供学习与交流单片机基本程序.精品文档.目录实验一 流水灯实验3实验二 键盘处理程序的设计5实验三 数码管显示程序设计8实验四 脉冲计数实验11实验五 单片机串口通信程序设计14实验六 模拟交通灯实验19实验七 A/D转换实验23实验八 D/A转换实验26实验九 矩阵式键盘接口技术实验29实验十 开关量输出接口实验35实验十一 步进电机控制实验37实验十二 单片机与PC机的通信实验40实验十三 8255A并行I/O端口扩充键盘实验43实验十四 温度传感器DS18B20实验45实验十五 LCD12864液晶显示实验(KS0108)51实验十六 单片机播放音乐实验60实验一 流水灯实验一、 实验目的与要求1 认识AT89系列单片机的硬件电路;2 学习延时子程序的编写和使用;3 学习循环左移或右移指令的使用;4 学习单片机程序烧录的基本过程和操作;5 了解单片机的开发过程;二、 实验设备计算机编程器目标板单片机AT89S51三、 实验原理电路由于P1口内部已有上拉电阻,在使用时不需要外接上拉电阻。如果用P1口控制发光二极管的阴极,则可以不需要驱动电路,直接由限流电阻控制发光二极管的亮度。实验电路如下:四、 实验内容与步骤1 编写程序,使LED1LED8顺序点亮;2 编写源程序并下装到AT89S51单片机,观察发光二极管的点亮效果;3 改变延时时间常数,重复上述步骤。五、 实验报告要求1 计算上图中单片机的振荡周期及机器周期;2 列出程序清单;实验板连接将P10到P17分别与白色LED对应的8个排针相连接,JP8短接。流程图开始temp=0xfeP1=temp延时temp=_crol_(temp,1)参考程序:#include<reg51.h>#include<intrins.h>void delay(unsigned int time);/延时子程序void main()unsigned char i,temp;while(1)/*左移*/temp=0xfe;P1=temp;delay(100);for(i=7;i>0;i-)temp=_crol_(temp,1);P1=temp;delay(100);/*右移*/temp=0x7f;P1=temp;delay(100);for(i=7;i>0;i-)temp=_cror_(temp,1);P1=temp;delay(100);void delay(unsigned int time)unsigned int m,n;for(m=time;time>0;time-)for(n=100;n>0;n-); 实验二 键盘处理程序的设计一、 实验目的与要求1. 了解矩阵式键盘的结构及驱动程序的编写方法;2. 学习应用查询法和中断法实现键盘的处理;二、 实验设备计算机编程器目标板单片机AT89S51三、 实验原理电路实验电路如下图所示。目标板上仅有两个按键S1和S2,分别接到P3.6和P3.7引脚。在处理按键时,采用查询方式判断是否有键按下,并进行按键消抖处理。(若将S1、S2接在外部中断0和外部中断1引脚上,则可以采用中断方式)四、 实验内容与步骤1. 按下S1键时,按LED1LED8的顺序逐一点亮发光二极管;2. 按下S2键时,按LED8LED1的顺序逐一点亮发光二极管;五、 实验报告要求1. 画出程序流程图;2. 列出程序清单;实验板连接将我宏定义中P3.6和P3.7连接流水灯模块的按钮旁边排针,按钮是接地的。流程图开始temp=0xfeYP36=0?Nkey=1YP37=0?Nkey=2 key=0Ykey=1?NP1=tempNkey=2?Ytemp=_crol_(temp,1)P1=temptemp=_cror_(temp,1)延时参考程序: #include<reg51.h>#include<intrins.h>sbit D0=P36;sbit D1=P37;unsigned char key,i,temp=0xfe;void delay(unsigned int time)unsigned int m,n;for(m=time;m>0;m-)for(n=10;n>0;n-);void main()while(1)if(D0=0)delay(1);if(D0=0)key=1;else if(D1=0)delay(1);if(D1=0)key=2;elsekey=0;switch(key)case 1:P1=temp;delay(1000);break;case 2:P1=temp;delay(1000);break;实验三 数码管显示程序设计一、 实验目的与要求1. 认识单片机的数字显示电路结构原理及工作过程;2. 了解静态、动态显示的驱动方法;3. 学习静态、动态显示数字程序的编写及调用方法;二、 实验设备计算机编程器目标板单片机AT89S51三、 实验原理电路实验电路如下图所示。图中,P0.0P0.7分别送出LED的adp显示段码,即字形码;P2口的P2.7P2.2则输出字位码,用来控制在第几位显示。LED为共阳极。四、 实验内容与步骤1. 编写一位数码显示程序(静态);2. 编写多位数码管动态扫描显示;3. 调整显示参数和模式,改变显示效果。五、 实验报告要求1. 列出程序清单。2. 简单说明静态显示与动态显示的特点。实验板连接 将P2口的第四位连接到LED模块中的J15口,将P0口连接到J16上,有时LED会显示乱码,不是程序问题,可能是你的P0接的方向反了。我们做实验时是,P0从低位开始依次在J16口从右向左连接。注意,要将LED显示模块中的JP3短连接上才有效。流程图(静态)开始定义共阳极字码数组tablei=0P1=tableii<8?i+静态显示参考程序:#include<reg51.h>Unsigned char code table016 = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/共阴unsigned char code table116 = 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;/共阳unsigned char i;void delay(unsigned int time);void main()P0=0x00;while(1)for(i=0;i<16;i+)P1=table1i;delay(1500);void delay(unsigned int time)unsigned int m,n;for(m=time;m>0;m-)for(n=100;n>0;n-);流程图(动态)开始定义共阳极字码数组table定义段选字码数组table0i=0P1=0x00P0=table0iP1=tableii<8?i+动态显示参考程序:#include<reg51.h>unsigned char i;unsigned char code table116 = 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;/共阳unsigned char code table04 = 0xfe,0xfd,0xfb,0xf7;void delay(unsigned int time);void main()while(1)for(i=0;i<4;i+)P1=0x00;P0=table0i;P1=table1i;delay(20);void delay(unsigned int time)unsigned int m,n;for(m=time;m>0;m-)for(n=10;n>0;n-);实验四 脉冲计数实验一、 实验目的与要求1. 熟悉51单片机定时/计数功能;2. 掌握定时/计数器初始化编程方法。二、 实验设备计算机编程器目标板单片机AT89S51三、 实验原理电路实验电路如下图所示。四、 实验内容与步骤1. 计算定时/计数器定时1s的计数初值;2. 编程实现定时功能:定时1s改变一次led的状态,顺序点亮led1led8;3. 编程实现计数功能:计数器初值为0,并显示在其中一位显示器上,当led1led8循环点亮1遍后,计数器加1,并显示,依次计数到9后,清零,进行下次计数。五、 实验报告要求1. 写出计算初值的过程;2. 列出程序清单;实验板连接将流水灯和动态显示的电路都连接上.参考程序:#include<reg51.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charuchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,/数码管显示编码(1-F) 0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;uint a,a1,a2,num;void display(uchar a)P0=tablea;P2=0xfe;void main()a=0;EA=1;ET1=1;TMOD=0x10;TH1=(65536-45872)/256;TL1=(65536-45872)%256;TR1=1;num=0;a1=0xfe;a2=1;while(1)display(a);if(num=10)P1=a1;a1=_crol_(a1,1);a2+;num=0; if(a2=9)a2=1;a=a+1;if(a=10)a=0;void time1() interrupt 3TH1=(65536-45872)/256; /50ms定时TL1=(65536-45872)%256;num+;实验五 单片机串口通信程序设计一、 实验目的与要求1. 学习串口工作方式初始化编程;2. 学习单片机与单片机点对点的通信编程方法。二、 实验设备计算机编程器目标板(两块)单片机AT89S51三、 实验原理电路实验电路如下图所示。甲机的串口发送端TXD接到乙机的接收端RXD,而乙机的发送端又接到了甲机的接收端,两机的地线连在一起。四、 实验内容与步骤1. 首先按照图示连线;2. 甲机作为发送端,编写发送程序;3. 乙机作为接收端,编写接收程序;4. 要求用甲机控制乙机,顺序点亮乙机的LED1LED8:乙机LED初始状态为全灭,甲机按键S1按下时,点亮LED1,再按一下点亮LED2,依次类推。五、 实验报告要求1. 分别列出发送、接收程序清单;实验板连接将主机的P3.1连接到从机的P3.0就可以,如果是双机通信,再将从机的P3.1连接到主机的P3.0。流程图(发送)开始串口配置P3.6=0?发送LP3.7=0?发送R发送参考程序:#include<reg51.h>sbit S1=P20;sbit S2=P21;void init();void send(unsigned char temp);void delay(unsigned int time);void main()init();S1=1;S2=1;while(1)if(S1=0)delay(1);if(S1=0)send('L');while(S1=0);if(S2=0)delay(1);if(S2=0)send('R');while(S2=0);void init()TMOD=0x20;TH1=0xfd;TL1=0xfd;SCON=0x40;TR1=1;void send(unsigned char temp)SBUF=temp;while(!TI);TI=0;void delay(unsigned int time)unsigned int m,n;for(m=time;m>0;m-)for(n=50;n>0;n-);流程图(接收)开始串口配置accept0接收数据accept0=Rled右移一位accept0=LLed左移一位接收参考程序:#include<reg51.h>void init();unsigned char accept0,i=8;unsigned char temp=0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff;sbit D0=P20;sbit D1=P21;void main()init();P1=tempi;D0=1;while(1)while(!RI);accept0=SBUF;RI=0;switch(accept0)case 'R':if(i>0)i-;P1=tempi;break;case 'L':if(i<8)i+;P1=tempi;break;void init()TMOD=0x20;SCON=0x50;TH1=0xfd;TL1=0xfd;TR1=1;实验六 模拟交通灯实验一、 实验目的与要求1. 了解中断矢量地址在中断程序中的作用;2. 学习外部中断技术的基本使用方法;3. 学习中断处理程序的编程方法;二、 实验设备计算机、编程器、目标板、单片机AT89S51三、 实验原理电路实验电路如下图所示。本实验是交通灯控制实验,所以需要了解交通灯的变化规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1南北绿灯通车,东西红灯。过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。再转状态3,东西绿灯通车,南北红灯。过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。最后循环至状态1。所设计的交通灯管理系统还要求满足急救车优先通过的要求。若有急救车到达时,两向交通信号为全红,以便让急救车通过。假定急救车通过路口时间为10S,急救车通过后,交通灯恢复中断前状态。该实验中以S1为中断请求,表示有急救车通过。LED资源分配可参考下表,也可以自己定义(报告中程序要与定义的一致)。 灯LED 东西红灯LED1 东西黄灯LED2 东西绿灯LED3 南北红灯LED6 南北黄灯LED7 南北绿灯LED8P1.5P1.4P1.3P1.2P1.1P1.0 P1 端口 数据状态说明东西 红 灯东西黄 灯 东 西 绿 灯南 北红 灯南 北黄 灯南 北 绿 灯110011 F3H状态1:A禁行,B禁行110、1交替011状态2:A绿灯闪,B禁行101011 EBH状态3:A警告,B禁行011110 DEH状态4:A禁行,B通行011110、1交替状态5:A禁行,B绿灯闪011101 DDH状态6:A禁行,B禁行四、 实验内容与步骤1. 了解交通灯的变化规律;2. 将目标板上的按键S1接在INT0引脚上;3. 按照交通灯规律编写程序,调试。五、 实验报告要求1. 画出程序流程图;2. 列出程序清单;参考程序:#include <REG51.H>unsigned char t0,t1;/定义全局变量,用来保存延时时间循环次数/函数名:delay0_5s1/函数功能:用T1的方式1编制0.5秒延时程序,假定系统采用12MHz晶振,定/ 时器1、工作方式1定时50ms,再循环10次即可定时到0.5秒/形式参数:无 /返回值:无void delay0_5s1() for(t0=0;t0<0x0a;t0+)/ 采用全局变量t0作为循环控制变量 TH1=0x3c;/ 设置定时器初值 TL1=0xb0; TR1=1; / 启动T1 while(!TF1);/ 查询计数是否溢出,即定时50ms时间到,TF1=1 TF1=0;/ 50ms定时时间到,将定时器溢出标志位TF1清零/函数名:delay_t1/函数功能:实现0.5秒128秒延时/形式参数:unsigned char t;/ 延时时间为0.5秒×t/返回值:无void delay_t1(unsigned char t) for(t1=0;t1<t;t1+)/ 采用全局变量t0作为循环控制变量 delay0_5s1();/函数:int_0/函数功能:外部中断0中断函数,紧急情况处理,当CPU响应外部中断0的中断请求时,/ 自动执行该函数,实现两个方向红灯同时亮10秒/形式参数:无/返回值:无void int_0() interrupt 0/ 紧急情况中断 unsigned char i,j,k,l,m; i=P1;/ 保护现场,暂存P1口、t0、t1、TH1、TH0 j=t0; k=t1; l=TH1; m=TH0; P1=0xdb;/ 两个方向都是红灯 delay_t1(20);/ 延时10秒 P1=i;/ 恢复现场,恢复进入中断前P1口、t0、t1、TH1、TH0 t0=j; t1=k; TH1=l; TH0=m;/函数:int_1/函数功能:外部中断1中断函数,特殊情况处理,当CPU响应外部中断1的中断请求时,/ 自动执行该函数,实现A道放行5秒/形式参数:无/返回值:无void int_1() interrupt 2/ 特殊情况中断 unsigned char i,j,k,l,m; EA=0;/关中断 i=P1;/ 保护现场,暂存P1口、t0、t1、TH1、TH0 j=t0; k=t1; l=TH1; m=TH0; EA=1; / 开中断 P1=0xf3;/ A道放行 delay_t1(10);/ 延时5秒 EA=0;/ 关中断 P1=i;/ 恢复现场,恢复进入中断前P1口、t0、t1、TH1、TH0 t0=j; t1=k; TH1=l; TH0=m; EA=1;/开中断void main()/主函数 unsigned char k; TMOD=0x10;/ T1工作在方式1 EA=1;/ 开放总中断允许位 EX0=1;/ 开外部中断0中断允许位 IT0=1;/ 设置外部中断0为下降沿触发 EX1=1;/ 开外部中断1中断允许位 IT1=1;/ 设置外部中断1为下降沿触发 while(1) P1=0xf3;/ A绿灯,B红灯,延时5秒 delay_t1(10); for(k=0;k<3;k+)/ A绿灯闪烁3次 P1=0xf3; delay0_5s1();/ 延时0.5秒 P1=0xfb; delay0_5s1();/ 延时0.5秒 P1=0xeb;/ A黄灯,B红灯,延时2秒 delay_t1(4); P1=0xde;/ A红灯,B绿灯,延时5秒 delay_t1(10); for(k=0;k<3;k+)/ B绿灯闪烁3次 P1=0xde; delay0_5s1();/ 延时0.5秒 P1=0xdf; delay0_5s1();/ 延时0.5秒 P1=0xdd;/ A红灯,B黄灯,延时2秒 delay_t1(4);实验七 A/D转换实验一、实验目的1、 进一步理解A/D转换的概念;2、 掌握A/D转换器ADC0809与单片机的连接方式;3、 熟悉ADC0809的转换性能;4、 掌握A/D转换的编程和测试方法。二、实验设备及器材单片机AT89S51、A/D转换器ADC0809、计算机、编程器、万用表、电阻、电容、晶振等三、实验原理及内容通过电位器提供模拟电压输入,启动A/D转换,连续采样4次取平均值,将转换结果存入内部RAM单元30H,然后经P1口送发光二极管显示8位数字量。下图所示为A/D转换参考电路。图1 A/D转换实验参考电路图 引脚 功能D7-D08位数字量输出引脚IN0 -IN78位模拟量输入引脚VCC+5V工作电压GND地REF(+)参考电压正端REF(-)参考电压负端STARTA/D转换启动信号输入端ALE地址锁存允许信号输入端EOC转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平OE输出允许控制端,用以打开三态数据输出锁存器CLK时钟信号输入端(一般为500KHz)A、B、C地址输入线 图2 ADC0809引脚结构图四、实验步骤5、 按电路连好线路,将调试好的程序烧入单片机;6、 调节电位器,使输入电压Vi=0,运行程序,启动A/D转换,观察发光二极管状态,记录A/D转换结果;7、 使Vi=2.5V,记录A/D转换结果;8、 使Vi=4.98V,记录A/D转换结果;9、 改动Vi的输入端,使其从0809的IN7端输入,修改程序,重复以上测试。五、思考1、当采用查询方式等待A/D转换结束时,能否在启动A/D转换后立即查询EOC信号,为什么?2、若采用中断方式,电路和程序应作何改动?参考程序:#include <reg51.h>unsigned char code dispbitcode=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;unsigned char code dispcode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00;unsigned char dispbuf8=10,10,10,10,10,0,0,0;unsigned char dispcount;sbit ST=P30;sbit OE=P31;sbit EOC=P32;unsigned char channel=0xbc;/IN3unsigned char getdata;void main(void)TMOD=0x01;TH0=(65536-4000)/256;TL0=(65536-4000)%256;TR0=1;ET0=1;EA=1;P3=channel;while(1)ST=0;ST=1;ST=0;while(EOC=0);OE=1;getdata=P0;OE=0;dispbuf2=getdata/100;getdata=getdata%10;dispbuf1=getdata/10;dispbuf0=getdata%10;void t0(void) interrupt 1 using 0TH0=(65536-4000)/256;TL0=(65536-4000)%256;P1=dispcodedispbufdispcount;P2=dispbitcodedispcount;dispcount+;if(dispcount=8) dispcount=0;实验八 D/A转换实验一、实验目的1、进一步理解D/A转换的概念;2、掌握D/A转换器DAC0832与单片机的连接方法;3、熟悉DAC0832的转换性能;4、掌握D/A转换的编程和调试方法。二、实验设备及器材单片机AT89S51、D/A转换器DAC0832、计算机、编程器、万用表、电阻、电容、晶振等三、实验原理及内容1、 进行D/A转换,调节零点和满量程,校对D/A数值关系;2、 产生幅度为5V,频率为100Hz的三角波。下图所示为D/A转换实验的参考电路。图2 D/A转换实验参考电路图四、实验步骤1、 按电路连好线路,将调试好的程序烧入单片机;2、 调节零点和满量程:Ø 单片机输出#00H时,调节运算放大器的调零电位器RP1,使Vout=0;Ø 单片机输出#0FFH时,调节运算放大器的调零电位器RP2,使Vout=4.98V,然后再校对一下零点;3、 分别对#00H、#40H、#80H、#0C0H、#0FFH进行D/A转换,记录相应的转换结果Vout;4、 输出一定幅度和周期的三角波:Ø 烧入所编写的三角波程序;Ø 执行程序,用示波器观察Vout波形是否为三角波,画下波形图,记录并核对幅值和周期值;五、思考5、 如何控制三角波的幅度、周期?6、 若要使输出电压Vout为正值,应如何改变电路?参考程序:7、 这是三角波的C语言程序:#include<reg52.h>#include<stdio.h>#define DAC0832Addr 0x7ffff /0832地址#define uchar unsigned char#define uint unsogned intUart_Init(); /申明输出口初始化子函数sbit P26=0XA6;sbit P27=0XA7;void TransformData(ucahr c0832data); /转换函数void delay()(); /延时main()bit upFlag=1;xdata cdigital=1;Uart_Init();P0=P1=P2=P3=0xff;delay()();while(1)transformData(cDigital); /进行数模转换if(cdigital=255)|(cDigital=0)upFlag=upFlag;/标志位取反if(upFlag=1)cDigital+;else(cDigital-;)delay()();printf("digital is %d n",cDigital);void TransformData(ucahr c0832data)*(uchar xdata *)DAC0832Addr)=c0832data;Uart_Init()SCON=0X52;TMOD=0X21;TCON=0X69;TH1=0XF3;void delay()uint i;for(i=0;i<200;i+);实验九 矩阵式键盘接口技术实验一、实验目的1、了解矩阵式键盘的结构及驱动程序的编写方法;2、学习键盘程序的使用方法;二、实验设备及器材单片机AT89S51、计算机、编程器、万用表、电阻、电容、晶振、矩阵键盘等三、实验原理及内容矩阵式键盘的结构与工作原理:在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,下图为4*4矩阵式键盘的原理图。当无按键闭合时,P1.0P1.3与相应的P1.4P1.7之间开路;当有键闭合时,与闭合键相连的两条I/O端线之间短路。判断有无按键按下的方法是:第一步,置列线P1.4P1.7为输入态,行线P1.0P1.3输出低电平,读入列线数据,若某一列线为低电平,则该列线上有按键闭合。第二步,置行线P1.0P1.3为输入态,列线P1.4P1.7输出低电平,读入行线数据,若某一行线为低电平,则该行线上有键闭合。综合一、二两步的结果,可确定按键键号。图3 矩阵式键盘实验参考电路图四、实验步骤1、按上图连接好电路;2、编写4*4键盘的驱动子程序,其中行列信号与按键及键值的对应关系如下表所示:表3-1 行列信号与按键及键值的对应关系按键行线信号列线信号键值P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7K00111111000HK10111110101HK20111101102HK30111011103HK41011111004HK51011110105HK61011101106HK71011011107HK81101111008HK91101110109HK10110110110AHK11110101110BHK12111011100CHK13111011010DHK14111010110EHK15111001110FH3、编写主程序,当按键按下时,能够在数码管显示器上显示与按键键值对应的数字。五、思考1、若想采用中断方式,电路图应作何改动?实验板接线首先应将J30的接VCC就是上面两个短接掉!J28接P1口的高四位,J29接P1口的低四位。其他和上面的接法相同参考程序:/按下16个矩阵键盘依次在数码管上显示1-16的平方。如按下/第一个显示1,第二个显示4.#include<reg52.h>#define uc unsigned char#define ui unsigned intsbit dus=P26;sbit wes=P27;ui num,temp,a2,a1,a0;uc code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;ui kscan();delay(uc x) ui i,j; for(i=100;i>0;i-) for(j=x;j>0;j-);display(ui bi,ui si,ui ge)P0=0xff; wes=1; wes=0;P0=tablebi;dus=1;dus=0;P0=0xf7;

    注意事项

    本文(单片机基本程序.doc)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开