proteus单片机.ppt
《proteus单片机.ppt》由会员分享,可在线阅读,更多相关《proteus单片机.ppt(322页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第 7 章基于PROTEUS ISIS的单片机电路仿真7.7 模拟交通灯控制实训模拟交通灯控制实训7.8 液晶显示控制实训液晶显示控制实训7.9 A/D转换接口技术实训转换接口技术实训7.10 D/A转换接口技术实训转换接口技术实训7.11 双机通信技术实训双机通信技术实训7.12 单片机课程设计单片机课程设计 第 7 章基于PROTEUS ISIS的单片机电路仿真7.1 单片机最小系统实训单片机最小系统实训本实训通过51单片机控制一个简单的LED灯,实现闪烁功能,并将程序编译下载到单片机中,从而使单片机工作起来。单片机最小系统实训图如图7.1.1所示,所用元件清单如表7.1.1所示。第 7
2、章基于PROTEUS ISIS的单片机电路仿真图7.1.1 单片机最小系统实训图第 7 章基于PROTEUS ISIS的单片机电路仿真第 7 章基于PROTEUS ISIS的单片机电路仿真程序代码为:#include sbit P1_0=P10;void delay(unsigned char i);void main( ) while(1) P1_0=0; delay(255); P1_0=1;第 7 章基于PROTEUS ISIS的单片机电路仿真 delay(255); void delay(unsigned char i) unsigned char j,k; for(k=0;ki;k+
3、) for(j=0;j255;j+);第 7 章基于PROTEUS ISIS的单片机电路仿真在KEIL软件中输入上述代码,编译后产生十六进制文件7-1-1.hex,双击AT89C51,将弹出如图7.1.2所示的对话框。在图7.1.2中添加十六进制文件7-1-1.hex,点击“OK”即可。最后进行仿真,可发现LED灯按要求实现了闪烁功能。第 7 章基于PROTEUS ISIS的单片机电路仿真图7.1.2 添加十六进制文件第 7 章基于PROTEUS ISIS的单片机电路仿真 7.2 模拟汽车转向灯控制实训模拟汽车转向灯控制实训安装在汽车不同位置的信号灯是汽车驾驶员之间及驾驶员向行人传递汽车行驶状
4、况的工具,一般包括转向灯、刹车灯、倒车灯等。其中转向灯包括左转灯和右转灯,其状态表示的意义如表7.2.1所示。第 7 章基于PROTEUS ISIS的单片机电路仿真第 7 章基于PROTEUS ISIS的单片机电路仿真本实训利用PROTEUS模拟汽车转向灯控制,其中开关S0、S1模拟驾驶员发出命令,若开关状态为0,则表示开关断开,反之闭合。其实训图如图7.2.1所示,所用元件清单如表7.2.2所示。第 7 章基于PROTEUS ISIS的单片机电路仿真图7.2.1 模拟汽车转向灯控制实训图第 7 章基于PROTEUS ISIS的单片机电路仿真第 7 章基于PROTEUS ISIS的单片机电路仿
5、真在上述电路图中,开关S0、S1模拟驾驶员命令,发光二极管D1、D2模拟左转灯和右转灯,两者之间的关系如表7.2.1所示。利用开关S0、S1的状态即可控制D1和D2的状态。程序代码为:第 7 章基于PROTEUS ISIS的单片机电路仿真#include sbit P1_0=P10;sbit P1_1=P11;sbit P3_0=P30;sbit P3_1=P31;void delay(unsigned char i);void main( )第 7 章基于PROTEUS ISIS的单片机电路仿真 bit left,right; while(1) P3_0=1; P3_1=1; left=P3
6、_0; right=P3_1; switch(P3)第 7 章基于PROTEUS ISIS的单片机电路仿真 case 0 xfc: P1_0=1,P1_1=1;break; case 0 xfd: P1_0=0,P1_1=1;break; case 0 xfe: P1_0=1,P1_1=0;break; case 0 xff: P1_0=0,P1_1=0;break; delay(255); P1_0=1; P1_1=1; delay(255);第 7 章基于PROTEUS ISIS的单片机电路仿真 void delay(unsigned char i) unsigned char j,k;
7、for(k=0;ki;k+) for(j=0;j255;j+);第 7 章基于PROTEUS ISIS的单片机电路仿真在KEIL软件中输入上述代码,编译后产生十六进制文件7-2-1.hex,双击AT89C51,将弹出如图7.2.2所示的对话框。在图7.2.2中添加十六进制文件7-2-1.hex,点击“OK”即可。最后进行仿真,可实现表7.2.1的所有功能。第 7 章基于PROTEUS ISIS的单片机电路仿真图7.2.2 添加十六进制文件第 7 章基于PROTEUS ISIS的单片机电路仿真 7.3 基于基于LED数码管的简易秒表设计实训数码管的简易秒表设计实训利用51单片机控制1个LED数码
8、管,依次循环显示09,显示间隔时间为1 s,即可实现一位数的简易秒表。基于LED数码管的简易秒表设计实训图如图7.3.1所示,所用元件清单如表7.3.1所示。第 7 章基于PROTEUS ISIS的单片机电路仿真图7.3.1 基于LED数码管的简易秒表设计实训第 7 章基于PROTEUS ISIS的单片机电路仿真第 7 章基于PROTEUS ISIS的单片机电路仿真在上述电路图中,利用单片机的P2口控制一个共阳极LED数码管,向P2口输出相应字型码即可显示数字09。对于共阳极数码管,当连接段控制端的I/O引脚输出低电平时,相应段的发光管点亮。程序代码为:第 7 章基于PROTEUS ISIS的
9、单片机电路仿真#includeunsigned char led=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90;/定义数组led存放数字09的字型码void delay1s() /采用定时器1实现1s的延时 unsigned char i; for(i=0;i20;i+) /设置循环次数为20第 7 章基于PROTEUS ISIS的单片机电路仿真 TH1=0 x3c; /设置定时器初值为3CBOH TL1=0 xb0; TR1=1; /启动定时器T1 while(!TF1); /查询计数是否溢出,即50 ms时间到 则T
10、F1=1 TF1=0; /将溢出标志位TF1清零 第 7 章基于PROTEUS ISIS的单片机电路仿真void main() /主函数 unsigned char i; TMOD=0 x10; /设置定时器1在工作方式1 while(1)第 7 章基于PROTEUS ISIS的单片机电路仿真 for(i=0;i10;i+) P2=ledi; /字型码送段控制口P1 delay1s(); /延时1 s 第 7 章基于PROTEUS ISIS的单片机电路仿真在KEIL软件中输入上述代码,编译后产生十六进制文件7-3-1.hex,双击AT89C51,将弹出如图7.3.2所示的对话框。在图7.3.2
11、中添加十六进制文件7-3-1.hex,点击“OK”即可。最后进行仿真,可实现每隔1s依次循环显示数字09。第 7 章基于PROTEUS ISIS的单片机电路仿真图7.3.2 添加十六进制文件第 7 章基于PROTEUS ISIS的单片机电路仿真 7.4 电子广告牌实训电子广告牌实训利用51单片机控制1个88 LED点阵显示模块,依次循环显示09,显示间隔时间为1 s,实现一位数的简易秒表。电子广告牌实训图如图7.4.1所示,所用元件清单如表7.4.1所示。第 7 章基于PROTEUS ISIS的单片机电路仿真图7.4.1 电子广告牌实训图第 7 章基于PROTEUS ISIS的单片机电路仿真第
12、 7 章基于PROTEUS ISIS的单片机电路仿真LED点阵显示是把很多LED按矩阵方式排列在一起,通过对各LED发光与不发光的控制来完成各种字符或图形的显示。88 LED点阵分别由8行和8列来控制。在图7.3.1中,用单片机的P1口控制点阵屏的8行,用P0口控制点阵屏的8列。 第 7 章基于PROTEUS ISIS的单片机电路仿真实际应用中,P0口用于控制列线,需串联一个300 左右的限流电阻。同时,为了提高单片机端口带负载的能力,通常在端口和外接负载之间增加一个缓冲驱动器。图7.4.1中P1口通过74LS245与点阵连接,既保证了点阵的亮度,又能保护单片机的引脚。其程序代码为:第 7 章
13、基于PROTEUS ISIS的单片机电路仿真#includevoid delay(unsigned char i) unsigned char k,j; for(k=0;ki;k+) for(j=0;j255;j+);第 7 章基于PROTEUS ISIS的单片机电路仿真void delay1ms() /软件实现延时1ms unsigned char i; for(i=0;i0 x10;i+);void main()第 7 章基于PROTEUS ISIS的单片机电路仿真 unsigned char code led=0 x00,0 x18,0 x24,0 x24,0 x24,0 x24,0 x
14、18,0 x00, /0 0 x08,0 x18,0 x28,0 x08,0 x08,0 x08,0 x3e,0 x00, /1 0 x00,0 x18,0 x24,0 x24,0 x08,0 x10,0 x3c,0 x00, /2 0 x00,0 x18,0 x24,0 x04,0 x18,0 x04,0 x24,0 x18, /3 0 x00,0 x08,0 x10,0 x28,0 x48,0 x3e,0 x08,0 x00, /4 0 x00,0 x2c,0 x20,0 x28,0 x04,0 x24,0 x18,0 x00, /5 0 x08,0 x10,0 x20,0 x38,0 x
15、24,0 x24,0 x18,0 x00, /6第 7 章基于PROTEUS ISIS的单片机电路仿真 0 x00,0 x3c,0 x04,0 x08,0 x10,0 x10,0 x10,0 x00, /7 0 x00,0 x18,0 x24,0 x24,0 x18,0 x24,0 x24,0 x18, /8 0 x00,0 x18,0 x24,0 x24,0 x1c,0 x04,0 x24,0 x18;/9 unsigned char w; unsigned int j,k,l,m; while(1)第 7 章基于PROTEUS ISIS的单片机电路仿真 for(j=0;j10;j+)/字符
16、个数控制变量 for(k=0;k1000;k+)/每个字符扫描1000次,控制每 个字符的显示时间 w=0 x01;/行变量指向第一行 l=j*8; for(m=0;m8;m+)第 7 章基于PROTEUS ISIS的单片机电路仿真 P1=0 x00; /关闭行,防止出现显示残留 P0=ledl;/列数据取反后值送至P0口 P1=w;/打开行 delay1ms(); w=1; /逐行扫描第 7 章基于PROTEUS ISIS的单片机电路仿真 l+;/指向数组中下一个显示码 第 7 章基于PROTEUS ISIS的单片机电路仿真在KEIL软件中输入上述代码,编译后产生十六进制文件7-4-1.he
17、x,双击AT89C51,将弹出如图7.4.2所示的对话框。在图7.4.2中添加十六进制文件7-4-1.hex,点击“OK”即可。最后进行仿真,可实现每隔1 s依次循环显示09。第 7 章基于PROTEUS ISIS的单片机电路仿真图7.4.2 添加十六进制文件第 7 章基于PROTEUS ISIS的单片机电路仿真如果要在88点阵上显示的图形如图7.4.3所示,程序该如何修改?请读者自行实现此功能。图7.4.3 显示汉字字符第 7 章基于PROTEUS ISIS的单片机电路仿真 7.5 数码管动态显示实训数码管动态显示实训本节利用数码管动态显示自己的生日(修定生日为1980年7月8日),实训图如
18、图7.5.1所示,所用元件清单如表7.5.1所示。第 7 章基于PROTEUS ISIS的单片机电路仿真第 7 章基于PROTEUS ISIS的单片机电路仿真图7.5.1 数码管动态显示实训第 7 章基于PROTEUS ISIS的单片机电路仿真 在上述电路图中,六位数码管的位选端由P2.0P2.5控制,段选端由P1口控制,P1口通过74LS245与数码管的段选端连接,既能保证数码管的亮度,又能保护单片机引脚。其程序代码为:第 7 章基于PROTEUS ISIS的单片机电路仿真#includevoiddelay1ms() unsigned char i; TMOD=0 x20; TH1=6; T
19、L1=6; TR1=1; for(i=0;i4;i+)第 7 章基于PROTEUS ISIS的单片机电路仿真 while(!TF1); TF1=0; void disp() unsigned char led =0 x80,0 xc0,0 xc0,0 xf8,0 xc0,0 x80; unsigned char i,w;第 7 章基于PROTEUS ISIS的单片机电路仿真 w=0 x01; for(i=0;i6;i+) P2=w; w=1; P1=ledi; delay1ms(); 第 7 章基于PROTEUS ISIS的单片机电路仿真voidmain() while(1) disp();
20、第 7 章基于PROTEUS ISIS的单片机电路仿真在KEIL软件中输入上述代码,编译后产生十六进制文件7-5-1.hex,双击AT89C51,将弹出如图7.5.2所示的对话框。在图7.5.2中添加十六进制文件7-5-1.hex,点击“OK”即可。最后进行仿真,可显示如图7.5.3所示的生日。第 7 章基于PROTEUS ISIS的单片机电路仿真图7.5.2 添加十六进制文件第 7 章基于PROTEUS ISIS的单片机电路仿真图7.5.3 显示生日图第 7 章基于PROTEUS ISIS的单片机电路仿真7.6 中断扫描方式的矩阵式键盘设计实训中断扫描方式的矩阵式键盘设计实训采用中断扫描方式
21、设计44矩阵键盘,当某个键被按下时,LED数码管显示相应按键的键值。中断扫描方式的矩阵式键盘实训图如图7.6.1所示,所用元件清单如表7.6.1所示。第 7 章基于PROTEUS ISIS的单片机电路仿真图7.6.1 中断扫描方式的矩阵式键盘实训图第 7 章基于PROTEUS ISIS的单片机电路仿真第 7 章基于PROTEUS ISIS的单片机电路仿真44矩阵式键盘的4根行线连接到P0口的低四位,4根列线连接到P0口的高四位。按照矩阵式键盘的扫描方法可知,P0.0P0.3为扫描输入线,P0.4P0.7为键输出线。图7.6.1中的与门用于产生按键中断,其输入端与各行线相连,再通过上拉电阻接至+
22、5V电源,输出端接至外部中断0的输入端P3.2。LED数码管由单片机的P1口控制。第 7 章基于PROTEUS ISIS的单片机电路仿真具体工作过程如下:当键盘没有键按下时,与门各输入端均为高电平,与门输出端也保持高电平;当有键被按下时,与门输入端有低电平,相应地与门输出端变为低电平,从而控制P3.2向CPU申请中断,若CPU开放外部中断,则会响应中断请求,转去执行键盘扫描程序并获得对应键值,最终通过LED数码管显示。 第 7 章基于PROTEUS ISIS的单片机电路仿真其程序代码为:#include#define uchar unsigned char void display(uchar
23、 num);void delay10ms();uchar code led=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8, 0 x80,0 x90,0 x88,0 x83,0 xc6,0 xa1,0 x86,0 x8e; 第 7 章基于PROTEUS ISIS的单片机电路仿真void main() P1=0 xff;TMOD=0 x10; /T1在工作方式1IE=0 x87;/开中断总允许位和外部中断0允许位IT0=1;/设置外部0中断下降沿触发while(1)第 7 章基于PROTEUS ISIS的单片机电路仿真P0=0 xef;P0=0 x
24、df;P0=0 xbf;P0=0 x7f;void display(uchar num)P1=lednum;第 7 章基于PROTEUS ISIS的单片机电路仿真voiddelay10ms()TH1=0 xd8;TL1=0 xf0;TR1=1;while(!TF1);TF1=0;第 7 章基于PROTEUS ISIS的单片机电路仿真voidinth() interrupt 0/外部中断0uchar temp,key;P0=0 xef;/扫描第一行temp=P0;/P0状态送给变量temptemp=temp&0 x0f;/与操作屏蔽低四位if(temp!=0 x0f)/P0高四位有低电位进入第
25、7 章基于PROTEUS ISIS的单片机电路仿真delay10ms(); /延时10 mstemp=P0; /P0状态送给变量temptemp=temp&0 x0f; /与操作屏蔽低四位if(temp!=0 x0f) temp=P0; /判断后的P0状态送给变量temp switch(temp)第 7 章基于PROTEUS ISIS的单片机电路仿真case 0 xee:key=0;break; /键值为0的按键按下case 0 xed:key=4;break;/键值为1的按键按下 case 0 xeb:key=8;break;/键值为2的按键按下case 0 xe7:key=12;break
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- proteus 单片机
限制150内