郭天祥老师51单片机的实验版proteus仿真电路图

合集下载

郭天祥新概念51单片机C语言教程例题Word版

郭天祥新概念51单片机C语言教程例题Word版

目录例2.2.1 编写程序,点亮第一个发光二极管(part2_1.c P27 ) .................. - 4 -例2.5.1利用for语句延时特性,编写第一个发光二极管以间隔1S亮灭闪动的程序(part2_3.c P42) ............................................................................................. - 5 -例2.6.1编写程序使第一个发光二极管以间隔500ms亮灭闪动。

(part2_4.c P48) .................................................................................................................................. - 5 -例2.7.1编写程序使第一个二极管以亮200ms、灭800ms的方式闪动。

(part2_5.c P49) ........................................................................................................................... - 6 -例2.8.3利用C51自带库_crol_(),以间隔500ms,实现流水灯程序(part2_6.c P53) .................................................................................................................................. - 6 -例3.2.1编写程序使第一个数码管显示8(part2.1_.1c P59) ......................... - 7 -例3.2.2让实验板上6个数码管同时点亮,依次显示0到F,时间间隔为0.5ms,循环下去。

51单片机,郭天祥,第三章,PDF,Word

51单片机,郭天祥,第三章,PDF,Word

3.4中断概念中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的,中断功能的存在,很大程度上提高了单片机处理外部或内部事件的能力。

它也是单片机最重要的功能之一, 是我们学习单片机必须要掌握的。

很多初学者被困在中断中,学了很久仍然不知道中断究竟是个什么东西,大家千万不要认为它有多难,其实只要掌握正确的学习方法,没有哪个知识点是学不会的。

51单片机内部一共有5个中断源,也就是说,有5种情况发生时,会使单片机去处理中断程序。

在本章我们只讲解其中的一种中断情况——定时器中断,只要大家从理论和实践中真正明白了中断的概念,其他几种情况便能轻松掌握。

为了能让大家更容易理解中断概念,我们先来举一个生活事例:你打开火,烧上一壶水, 然后去洗衣服,在洗衣服的过程中,突然听到水壶发出水开的报警声,这时,你停止洗衣服动作,立即去关掉火,然后将开水灌入暖水瓶中,灌完开水后,你又回去继续洗衣服。

这个过程中实际上就发生了一次中断,其流程图如图3.4.1所示。

对于单片机来讲,中断是指CPU在处理某一事件A时,发生了另一事件B,请求CPU 迅速去处理(中断发生);CPU暂时停止当前的工作(中断响应),转去处理事件B (中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A (中断返回),这一过程称为中断,其流程图如图3.4.2所示。

再回来看前面讲的生活事例,与单片机中断结合分析,你的主任务是洗衣服,水开报警这是一个中断请求,这一时刻相当于断点处,你响应中断去关火,然后将开水灌入暖水瓶中,这一动作实际上就是处理中断程序,灌完开水后再回去继续洗衣服,相当于处理完中断程序后再返回主程序继续执行主程序。

这里需要注意的是,水开是随时都有可能的,但是无论什么时候开,只要一开你将立即去处理它,处理完后再回来继续接着洗刚才那件衣服。

单片机在执行程序时,中断也随时有可能发生,但无论何时发生,只要一旦发生,单片机将立即暂停当前程序,赶去处理中断程序,处理完中断程序后再返回刚才暂停处接着执行原来的程序。

Proteus仿真51单片机

Proteus仿真51单片机
51单片机 Proteus仿真
一 概述
Proteus软件是英国Labcenter electronics公司出版的 EDA工具软件。它不仅具有其它EDA工具软件的仿真功
能,还能仿真单片机及外围器件。它是目前最好的仿真单
片机及外围器件的工具。
第一个实验
用proteus实 现这个实验
用 开关K0 控制 灯L0 的亮/灭。 取一根连接线连接P10和L0,另取一根连接线连接P11和K0,打 开实验箱电源。
4. 仿真并查看结果

单击
开始仿真,单击
19
停止仿真。
U1
XTAL1 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17
(3)放置电源和地

切换到“终端模式”下,选择电源和接地,POWER、 GROUND,放置到原理图编辑窗口中了,并右键编辑属性,
标号栏选择为VCC、GND。
(4)元器件之间的连线

单击鼠标左键,移动鼠标,靠近连接点时,可以完成自动连
线。ESC键或者单击鼠标的右键来放弃画线。
U1
19 XTAL1 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17

8051单片机Proteus仿真实例3(原理图+C程序)

8051单片机Proteus仿真实例3(原理图+C程序)
while(key==0);
}
}
}
void timer_0() interrupt 1
{
doorbell=~doorbell;
p++;
if(p<400)
{
TH0=(8192-700)/32;
case 1: transmit('B');break;
case 2: transmit('C');break;
}
delay(10);
}
}
void serial() interrupt 4
{
if(RI==1)
{
RI=0;
if(SBUF>=0&&SBUF<=9)
P0=led_code[SBUF];
else P0=0x00;
ET0 = 1;
TR0 = 1;
P2=0x01;
while(1);
}
void timer_0() interrupt 1
{
TH0 = 0x3C;
TL0 = 0xB0;
count++;
if(count==10)
{
P2=_crol_(P2,1);
count=0;
}
}
6.继电器
原理图:
程序:
#include <reg51.h>
1.单片机之间通过串口进行通信
原理图:
程序:
#include <reg51.h>
sbit key=P1^0;
unsigned char code led_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};

用Proteus软件进行51系列单片机仿真的制作和演示教程

用Proteus软件进行51系列单片机仿真的制作和演示教程

用Proteus软件进行51系列单片机仿真的制作和演示过程教程一、ISIS界面简介假如读者的电脑上已成功安装了Proteus,则可以从电脑桌面的“开始”-“程序”-Proteus 6 Professional-ISIS 6 Professional,启动ISIS。

ISIS是仿真模拟设计SCH设计程序。

ISIS成功启动后的界面如图1所示,分为菜单栏、工具栏,工具箱、编辑窗口(显示正在编辑的电路原理图)、预览窗口(显示整个电路图的缩略图)、对象选择器,对象旋转工具和模拟调试时用的快捷调试按钮。

二、绘制仿真电路的原理图笔者以图2所示的电路为例,介绍电路原理图的绘制过程。

操作过程为,用鼠标左键点击工具箱的元器件“”按钮,使其选中,再选中ISIS对象选择器左边中间的“”按钮,出现“Pick Devices”对话框,如图3所示,在这个对话框里读者可以选择元器件和一些虚拟仪器。

在“Libraries”下面找到“MICRO”选项,找到单片机A T89C51,双击“A T89C51”,这样在左边的对象选择器就有了A T89C51这个元件了,点击一下这个元件,然后把鼠标指针移到右边的原理图编辑区的适当位置,点击鼠标的左键,就把A T89C51放到原理图区。

按照同样方法把所需的其它元器件都放到原理图编辑区。

元器件放置完后,若位置不合适,需要调整元器件的位置,可先通过鼠标右键选中对象,此时被选中的对象变成红色显示,再用鼠标左键点击被选中的对象不放并拖到合适的位置后再释放鼠标左键。

若要旋转对象,可在选中对象时按旋转按钮进行旋转。

若要编辑对象的属性,在对象被选中时,用鼠标左键点击对象,此时出现属性对话框,比如要改变电阻的属性,可右键选中电阻,再用左键点击被选中的电阻,出现如图4所示的对话框。

在这里我们可以改变电阻的标号,电阻值,PCB封装以及是否把这些东西隐藏等,修改后,点击“OK“按钮即可。

在Proteus,许多器件没有Vcc和GND引脚,其实它们被隐藏了,在使用时可以不加电源。

郭天祥十天学会单片机PPT课件

郭天祥十天学会单片机PPT课件
2利用定时计数器t1产生定时时钟由p1口控制8个发光二极管使8个指示灯依次一个一个闪动闪动频率为10次秒8个灯依次亮一遍为一个周期循3同时用两个定时器控制蜂鸣器发声定时器0控制频率定时器1控制同个频率持续的时间间隔300ms依次输出110501002004008001khz的方波
十天学会单片机 完整版
五个中断源的中断控制系统; 一个全双工UART(通用异步接收发送器) 的串行I/O口,用于实现单片机之间或单片机 与微机之间的串行通信; 片内振荡器和时钟产生电路,石英晶体和微 调电容需要外接。最高振荡频率取决于单片 机型号及性能。
C51知识
C语言是一种编译型程序设计语言,它兼顾 了多种高级语言的特点,并具备汇编语言的 功能。目前,使用C语言进行程序设计已经 成为软件开发的一个主流。用C语言开发系 统可以大大缩短开发周期,明显增强程序的 可读性,便于改进、扩充和移植。而针对 8051的C语言日趋成熟,成为了专业化的实 用高级语言。
非总线型
RST P3.0/RXD P3.1/TXD XTAL2 XTAL1 P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 GND 1 2 3 4 5 6 7 8 9 10 20 19 18 17 16 15 14 13 12 11 VCC P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1/AIN1 P1.0/AIN0 P3.7
C-51数据的存储类型
例:
数据类型 变量名
char var1; bit flags; unsigned char vextor[10]; int wwww; 注意:变量名不能用C语言中的关 键字表示。
◆单板机 将CPU芯片、存储器芯片、I/O接口芯片和 简单的I/O设备(小键盘、LED显示器)等装 配在一块印刷电路板上,再配上监控程序(固 化在ROM中),就构成了一台单板微型计算 机(简称单板机)。

郭天祥_十天学通单片机_实验板所有课后作业+答案_特别整理

郭天祥_十天学通单片机_实验板所有课后作业+答案_特别整理

郭天祥_十天学通单片机_实验板所有课后作业+答案_特别整理郭天祥《十天学通单片机》———“ TX-1C单片机实验板”所有课后作业+答案,特别整理,供单片机爱好与学习者使用第一讲学单片机预备知识、如何点亮一个发光管单片机能做什么,基本电子知识,如何用TX-1C单片机学习板学习单片机,C51知识简介,如何申请免费芯片样品。

点亮一个发光管,第二讲流水灯设计、蜂鸣器发声、继电器控制简单延时程序、子程序调用、带参数子程序设计、流水灯同时蜂鸣器响、如何驱动蜂鸣器,及如何驱动继电器,集电极开路的概念及应用。

第三讲数码管显示的原理、数码管的静态显示共阳、共阴数码管显示原理、定时器工作方式介绍、重点讲述工作方式2、中断概念及中断函数写法、外部中断试验、定时器中断应用第四讲数码管的动态显示原理及应用实现动态扫描概念、定时器、中断加深用单片机的定时器及中断设计一个60秒定时器第五讲独立键盘、矩阵键盘的检测原理及实现键盘用来做什么、如何键盘检测、消抖、键盘编码、带返回值函数写法及应用第六讲AD、DA的工作原理及实现、运放电路模拟电压与数字电压的关系、为什么要使用AD 及DA、ADC0804的操作方法、DAC0832的操作方法第七讲串口通讯原理及操作流程串口通讯工作方式、10位数据通讯、波特率概念、如何根据波特率计算定时器初值、串口打印在调试程序中的应用。

第八讲1602液晶、12864液晶显示原理及实现最简单液晶工作原理、如何开始对一个没有任何概念的芯片开始单片机的操作第九讲IIC总线AT24C02芯片工作原理IIC总线工作原理、目前非常通用的一种通信机制第十讲利用51单片机的定时器设计一个时钟综合运用51单片机知识设计一个可以随意调节时间、带整点闹铃的时钟。

(其中用到定时器、中断、按键、蜂鸣器、数码管或串口通信)第十一讲用DS12C887时钟芯片设计一个高精度时钟DS12C887内部带有锂电池,系统掉电情况下可自行精确走10年,并带有闹钟功能、年、月、日、时、分、秒等。

郭天祥51单片机教程

郭天祥51单片机教程

16
-32768~32767
16
-32768~32767
32
-2147483648~2147483647
16
0~65535
16
0~65535
32
0~4294967295
32
3.4e-38~3.4e38
64
1.7e-308~1.7e308
8
-128~127
8
0~255
C-51的数据类型扩充定义
sfr:特殊功能寄存器声明 sfr16:sfr的16位数据声明 sbit:特殊功能位声明 bit:位变量声明 例:sfr SCON = 0X98;
C-51的数据类型
基本数据类型
类型 符号
关键字

整 型

实有 型有
字有
符 型

(signed) int (signed) short (signed) long
unsigned int unsigned short int unsigned long int
float double char unsigned char
C-51的特点
C语言作为一种非常方便的语言而得到广泛 的支持,很多硬件开发都用C语言编程,如: 各种单片机、DSP、ARM等.
C语言程序本身不依赖于机器硬件系统,基 本上不作修改就可将程序从不同的单片机中 移植过来。
C提供了很多数学函数并支持浮点运算,开 发效率高,故可缩短开发时间,增加程序可 读性和可维护性。
2 10
8
1000
3 11
9
1001
4 100
10
1010
5 101
11
1011

跟郭天祥学单片机

跟郭天祥学单片机

教学争鸣新课程NEW CURRICULUM跟郭天祥学单片机刘玉秀(山东诸城市潍坊工商职业学院)单片机技术是电子信息类学生必须掌握的一门技术,也是现代工科学生就业的一个基本条件,成为理工科院校,同时也是高职院校电子类专业的主要专业课程,它可以充分体现学生利用自己所掌握的知识解决实际工程问题的能力。

在单片机教学过程中,学生不仅要掌握单片机的原理和应用,还应具有“开发”能力,由于其教学内容纷繁复杂,与各种学科相互渗透,如何提高教学的效率是单片机教学过程中的一个研究课题。

传统的单片机教学,就是教师在上面枯燥地讲解理论、程序,下面的学生听得一头雾水,阻碍了学生的学习的兴趣,学生跟教师缺少交流与讨论。

下面介绍单片机的领军人物郭天祥是如何利用他的单片机系统学习单片机的。

郭天祥,老家新疆伊宁,原哈尔滨工程大学学生,后接触单片机,已经成为单片机领域的一个企业家,名下有天祥电子网站,其最大成就之一是开设了十天学会单片机系列课程并录制出来,网络上广泛流传,他建立了个人网站(天祥电子),公司的网站是,主要是产品宣传与销售。

他的单片机研发基地位于哈尔滨工程大学国家大学科技园创业中心4楼,1000多平方米,设备包括多功能贴片机、无铅回流焊机、无铅波峰焊机、BGA返修工作站、流水线组装线等。

拥有完整的小型产品生产线,能够完全满足公司产品焊接需求,此外还可对外承接焊接订单。

他的火爆视频教程介绍:单片机外围电路设计及C语言编程视频教程介绍:这是一部学单片机革命性的视频教程,教程全部十二讲,每讲3小时左右,看视频的同时可以用TX-1C单片机实验板一个实验一个的演示,给学员解释每条指令的意思及原理,通过10天的时间让学生完全掌握单片机的C语言编程及单片机外围电路设计的思想。

全程的屏幕,声音,用屏幕录像,实验板现象用摄像头拍摄,这部教程算是国内首个如此创新的以教师亲自实践为主,学员现场写程序,直接下载到实验板看现象,讲单片机的视频教程,只要你认真看,认真听,保证10天让你学会单片机应用和C语言编程。

8051单片机Proteus仿真实例2(原理图+C程序)

8051单片机Proteus仿真实例2(原理图+C程序)

1. INT0,INT1中断计数原理图:程序:#include <reg51.h>sbit k3=P3^4;sbit k4=P3^5;unsigned char code led_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; unsigned char code seg_code[]={0x20,0x10,0x08,0x04,0x02,0x01};unsigned char led_buffer[]={0,0,0,0,0,0};unsigned int count_a=0,count_b=0;void delay(unsigned int x){unsigned char t;while(x--)for(t=0;t<120;t++);}void display(){unsigned char i;led_buffer[2]=count_a/100;led_buffer[1]=count_a%100/10;led_buffer[0]=count_a%10;if(led_buffer[2]==0){led_buffer[2]=10;if(led_buffer[1]==0)led_buffer[1]=10;}led_buffer[5]=count_b/100;led_buffer[4]=count_b%100/10; led_buffer[3]=count_b%10;if(led_buffer[5]==0){led_buffer[5]=10;if(led_buffer[4]==0)led_buffer[4]=10;}for(i=0;i<6;i++){P2=seg_code[i];P1=led_code[led_buffer[i]];delay(1);}}void main(){IT0=1;IT1=1;PX0=1;IE=0x85;while(1){k3=1;k4=1;if(k3==0) count_a=0;if(k4==0) count_b=0;display();}}void int0() interrupt 0{count_a++;}void int1() interrupt 2{count_b++;}2. INT0中断计数原理图:程序:#include <reg51.h>unsigned char code led_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00}; unsigned char led_buffer[]={0,0,0};unsigned count=0;sbit key=P3^6;void display(){led_buffer[2]=count/100;led_buffer[1]=count%100/10;led_buffer[0]=count%10;if(led_buffer[2]==0){led_buffer[2]=10;if(led_buffer[1]==0)led_buffer[1]=10;}P0=led_code[led_buffer[0]];P1=led_code[led_buffer[1]];P2=led_code[led_buffer[2]];}void main(){IE=0x81;IT0=1;while(1){key=1;if(key==0)count=0;display();}}void int0() interrupt 0 {count++;}3.LED点阵原理图:程序:#include <reg51.h>sbit led1=P0^0;sbit led2=P0^1;void delay(long dly){while(dly--);}void main(){SCON=0x50;TMOD=0x20;TH1=0xfd;TL1=0xfd;PCON=0x00;TR1=1;RI=0;while(1){if(RI==1){RI=0;switch(SBUF){case 'A':led1=~led1;led2=1;break;case 'B':led1=1;led2=~led2;break;case 'C':led1=~led1;led2=~led2;break;}}else led1=led2=1;delay(1000);}}4.串行通信(MAX232芯片)原理图:程序:#include <reg51.h> sbit led1=P0^0;sbit led2=P0^1;void delay(long dly) {while(dly--);}void main(){SCON=0x50;TMOD=0x20;TH1=0xfd;TL1=0xfd;PCON=0x00;TR1=1;RI=0;while(1){if(RI==1){RI=0;switch(SBUF){case 'A':led1=~led1;led2=1;break;case 'B':led1=1;led2=~led2;break;case 'C':led1=~led1;led2=~led2;break;}}else led1=led2=1;delay(1000);}}5.MAX7221芯片原理图:程序:#include <reg51.h>#include <intrins.h>sbit DIN=P2^0;sbit CSB=P2^1;sbit CLK=P2^2;unsigned char code buffer[]={2,0,1,5,10,5,10,9};void delay(long dly){while(dly--);}void write(unsigned char addr,unsigned char dat){unsigned char i;CSB=0;for(i=0;i<8;i++){CLK=0;addr<<=1;DIN=CY;CLK=1;_nop_();_nop_();CLK=0;}for(i=0;i<8;i++) {CLK=0;dat<<=1;DIN=CY;CLK=1;_nop_();_nop_();CLK=0;}CSB=1;}void initialise(){write(0x09,0xff); write(0x0a,0x07); write(0x0b,0x07); write(0x0c,0x01);}void main(){unsigned char i; initialise();delay(10);for(i=0;i<8;i++)write(i+1,buffer[i]); while(1);}6. T0控制LED实现二进制计数原理图:程序:#include <reg51.h>void main(){TMOD=0x05;TR0=1;TH0=0x00;TL0=0x00;while(1){P1=TH0;P2=TL0;}}8. 按键控制LED循环原理图:程序:#include <reg51.h>#include <intrins.h>void delay(unsigned int x){while(x--);}void move_led(){if((P1&0x10)==0) P0=_cror_(P0,1);else if((P1&0x20)==0) P0=_crol_(P0,1);else if((P1&0x40)==0) P2=_cror_(P2,1);else if((P1&0x80)==0) P2=_crol_(P2,1);}void main(){unsigned char key;P0=0xfe;P2=0xfe;P1=0xff;key=0xff;while(1){if(key!=P1){key=P1;move_led();delay(15000); }}}9.按键控制数码管显示原理图:程序:#include <reg51.h>unsigned char code led_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; unsigned char code led_seg[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};unsigned char led_buffer[]={0,10,10,10,10,10,10,10};void delay(unsigned int x){unsigned char t;while(x--) for(t=0;t<120;t++);}void led_display(){unsigned char i;for(i=0;i<8;i++){P2=led_seg[i];P0=led_code[led_buffer[i]];delay(2);}}void main(){unsigned char i,key_val,key_count=0;P0=0xff;P1=0xff;P2=0x00;while(1){led_display();key_val=P1;switch(key_val){case 0xfe:key_count++;if(key_count>8) key_count=8;led_buffer[key_count-1]=key_count;break;case 0xfd:if(key_count>0) led_buffer[--key_count]=10;if(key_count==0) led_buffer[0]=0;break;case 0xfb:led_buffer[0]=0;for(i=1;i<8;i++)led_buffer[i]=10;key_count=0;}while(P1!=0xff)led_display();}}10.报警器原理图:程序:#include <reg51.h>sbit SOUNDER=P1^0;sbit BUTTON=P1^7;void delay(unsigned int x){while(x--);}void alarm(unsigned char t){unsigned char i,j;for(i=0;i<200;i++){SOUNDER=!SOUNDER;for(j=0;j<t;j++);delay(15);}}void main(){SOUNDER=0;while(1){BUTTON=1;if(BUTTON==1){alarm(90);alarm(120);}}}。

郭天祥单片机教学课件LESSON3_数码管静态显示及定时器和中断应用共45页

郭天祥单片机教学课件LESSON3_数码管静态显示及定时器和中断应用共45页
郭天祥单片机教学课件LESSON3_数 码管静态显示及定时器和中断应用
21、没有人陪你走一辈子,所以你要 适应孤 独,没 有人会 帮你一 辈子, 所以你 要奋斗 一生。 22、当眼泪流尽的时候,留下的应该 是坚强 。 23、要改变命运,首先改变自己。
24、勇气很有理由被当作人类德性之 。--温 斯顿. 丘吉尔 。 25、梯子的梯阶从来不是用来搁脚的 ,它只 是让人 们的脚 放上一 段时间 ,以便 让别一 只脚能 够再往 上登。
谢谢
11、越是没有本领的就越加自命不凡。——邓拓 12、越是无能的人,越喜欢挑剔别人的错儿。——爱尔兰 13、知人者智,自知者明。胜人者有力,自胜者强。——老子 14、意志坚强的人能把世界放在手中像泥块一样任意揉捏。——歌德 15、最具挑战性的挑战莫过于提升自我。——迈克尔·F·斯特利

使用软件Proteus仿真51单片机的基本方法

使用软件Proteus仿真51单片机的基本方法

使用软件Proteus仿真51单片机的基本方法初学者学习单片机的一个比较好的方法是进行实践。

可以采用单片机芯片,也可以采用软件仿真。

Proteus是比较常用的仿真软件,下面介绍如何使用Proteus 软件仿真51系列单片机。

添加最主要的仿真元件——单片机。

点击左侧工具栏中的Component Mode(元件模式)按钮,再单击Pick form Libraries(从库中选择)按钮,如下图红框所示位置。

该按钮仅显示一个字母“P”。

会弹出如下图所示对话框,在Keywords文本框(下图红框区域)输入“89C”,就可以在右侧看见大量的单片机型号。

Proteus7.8中可以仿真89C51/89C52以及89C55等多种型号的单片机。

可以根据自己仿真的单片机型号进行选择。

对于初学者,选择89C51就可以。

点击89C51后,点击上图中的OK按钮。

此时鼠标会变成一支笔的形状,在绘图区域的蓝色框内直接点击鼠标左键,鼠标会变为一个单片机的预览,此时将鼠标移动到合适的位置点击鼠标左键,就可以将单片机放置在该位置。

至此我们就已经将AT89C51单片机放置到仿真软件中了。

搭建单片机最小系统读者注意,单片机最小系统可以说是单片机可以正常运行所需要最少的元件组成的系统。

在仿真软件Proteus中,即使没有搭建单片机最小系统,单片机也可以正常仿真运行。

为了让仿真图更加规范合理,建议大家把单片机最小系统搭建出来。

添加电容、电阻以及晶振等电子元件方法类似于单片机,这里不再赘述。

绘制电路图如下图所示。

其中X1为晶振,关键词为“crystal”;C1和C2为瓷片电容,关键词为“cap”,C3为有极性电容,一般为电解质电容,关键词为“cap-elec”;R1为电阻,关键词为“res”。

在上图所示的单片机最小系统中,搭建的自动复位电路需要连接VCC以及GND。

点击左侧工具栏中Terminal Mode按钮,选择按钮右侧的POWER或GND就可以添加了,如下图所示,添加方法与添加元件方法类似。

51单片机四路抢答器PROTEUS仿真报告(含C语言程序)

51单片机四路抢答器PROTEUS仿真报告(含C语言程序)

HEFEI UNIVERSITY四路抢答器仿真设计题目四路抢答器仿真设计班级自动化(1)班成员 YCT 11050310**PT 11050310**WW 11050310**时间 2014.5.19四路抢答器仿真设计目录一、前言 (1)二、方案设计 (1)三、理论分析 (2)四、电路设计 (2)1、晶体振荡器电路 (2)2、复位电路 (3)3、按键扫描部分 (3)4、显示部分 (4)五、软件模块 (6)六、系统组装调试 (8)七、总结 (8)参考文献 (9)附录 (10)四路抢答器仿真设计一、前言本设计要求能够在主持人按下开始键后,四个参赛者开始抢按自己的按键,谁的按键先按下,谁面前的灯就会亮并且有相应的提示,当参赛者耗时太多时又会有相应的提示。

根据设计的要求,本系统采用独立式按键,通过单片机不停的扫描按键来控制LED灯和蜂鸣器,并用定时器T0来定超时的时间,当超时的时候让蜂鸣器响。

二、方案设计(1)、总体设计方案一:采用可编程I/O口扩展芯片82558255作为单片机的扩展接口能实现很多功能,但是这个系统并不复杂,用8155会浪费很多的资源,而且8255要用P0和P2端口作为地址线对它进行读写,这样不仅浪费端口还使得编程变的复杂。

从节省资源和简化编程的角度考虑,放弃了此方案。

方案二:直接采用AT89C52单片机直接用单片机不仅编程被简化,还有效的利用了各个端口。

8051单片机的资源完全够这个系统的要求。

所以最终选择了此方案。

(2)、模块方案一:采用4*4矩阵键盘此种键盘是常用的按键扫描方法,但是本系统只需要六个按键,这样就会浪费十个,而且矩阵按键扫描要送数读数,对于编程很复杂,最终放弃了此方案。

方案二:采用独立式键盘本系统只要六个按键就可以,用独立式键盘不仅节省端口还使编程变得简单。

程序只要不停的读数检查就行。

所以,最终选择此方案。

2、系统总体设计方案与实现框图采用六个独立式的键盘作为按键输入,当在开始后有按键按下时,就会有对应于这个按键的灯亮并且蜂鸣器响一声,其它按键再按也无效。

郭天祥单片机教学LESSON4数码管动态显示优秀课件.ppt

郭天祥单片机教学LESSON4数码管动态显示优秀课件.ppt
MCS-51单片机的中断系统结构
主程序
中断响应
中断请求
执行主 程序
断点
继续执行 主程序
执行 中断 处理 程序
中断返回
4.1 80C51中断的控制
一、中断允许控制
CPU对中断系统所有中断以及某个中断源的开放和屏 蔽是由中断允许寄存器IE控制的。
▪EX0(IE.0),外部中断0允许位; ▪ET0(IE.1),定时/计数器T0中断允许位; ▪EX1(IE.2),外部中断0允许位; ▪ET1(IE.3),定时/计数器T1中断允许位; ▪ES(IE.4),串行口中断允许位; ▪EA (IE.7), CPU中断允许(总允许)位。
▪TF1(TCON.7):T1溢出中断请求标志位。T1计数溢出时由硬件自 动置TF1为1。CPU响应中断后TF1由硬件自动清0。T1工作时,CPU 可随时查询TF1的状态。所以,TF1可用作查询测试的标志。TF1也可 以用软件置1或清0,同硬件置1或清0的效果一样。 ▪TR1(TCON.6):T1运行控制位。TR1置1时,T1开始工作;TR1置 0时,T1停止工作。TR1由软件置1或清0。所以,用软件可控制定时/ 计数器的启动与停止。 ▪TF0(TCON.5):T0溢出中断请求标志位,其功能与TF1类同。 ▪TR0(TCON.4):T0运行控制位,其功能与TR1类同。
TL0
TCON
TF1 TR1 TF0 TR0 GATE C/T M1 M0 GATE C/T M1 M0
外部中断相关位
T1方式
内部总线 TMOD T0方式
4.2.2 定时/计数器的控制
80C51单片机定时/计数器的工作由两个特殊功 能寄存器控制。TMOD用于设置其工作方式; TCON用于控制其启动和中断申请。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档