❶ 《单片机C语言程序设计实训100例——基于8051+Proteus仿真》 【综合设计部分】的源代码
单片机c语言编程100个实例目录1 函数的使用和熟悉例26:用P0 口显示指针运算结果 实例27:用指针数组控制P0口8位LED流水点亮 实例28:用数组的指针控制P0 口8 位LED流水点亮 实例29:用P0 、P1口显示整型函数返回值 实例30:用有参函数控制P0口8位LED流水速度 实例31:用数组作函数参数控制流水花样 实例32:用指针作函数参数控制P0口8位LED流水点亮 实例33:用函数型指针控制P1口灯花样 实例34:用指针数组作为函数的参数显示多个字符串 单片机c语言编程100个实例目录2 实例35:字符函数ctype.h应用举例 实例36:内部函数intrins.h应用举例 实例37:标准函数stdlib.h应用举例 实例38:字符串函数string.h应用举例 实例39:宏定义应用举例2 实例40:宏定义应用举例2 实例41:宏定义应用举例3 * 中断、定时器中断、定时器 *中断、定时器*中断、定时器 / 实例42:用定时器T0查询方式P2口8位控制LED闪烁 实例43:用定时器T1查询方式控制单片机发出1KHz音频 实例44:将计数器T0计数的结果送P1口8位LED显示 实例45:用定时器T0的中断控制1位LED闪烁 实例46:用定时器T0的中断实现长时间定时 实例47:用定时器T1中断控制两个LED以不同周期闪烁 实例48:用计数器T1的中断控制蜂鸣器发出1KHz音频 实例49:用定时器T0的中断实现"渴望"主题曲的播放 实例50-1:输出50个矩形脉冲 实例50-2:计数器T0统计外部脉冲数 实例51-2:定时器T0的模式2测量正脉冲宽度 实例52:用定时器T0控制输出高低宽度不同的矩形波 实例53:用外中断0的中断方式进行数据采集 实例54-1:输出负脉宽为200微秒的方波 实例54-2:测量负脉冲宽度 实例55:方式0控制流水灯循环点亮 实例56-1:数据发送程序 实例56-2:数据接收程序 实例57-1:数据发送程序 实例57-2:数据接收程序 实例58:单片机向PC发送数据 实例59:单片机接收PC发出的数据 *数码管显示*数码管显示 数码管显示数码管显示*/ 实例60:用LED数码显示数字5 实例61:用LED数码显示器循环显示数字0~9 实例62:用数码管慢速动态扫描显示数字"1234" 实例63:用LED数码显示器伪静态显示数字1234 实例64:用数码管显示动态检测结果 实例65:数码秒表设计 实例66:数码时钟设计 实例67:用LED数码管显示计数器T0的计数值 实例68:静态显示数字“59” 单片机c语言编程100个实例目录3 键盘控制*键盘控制* *键盘控制 *键盘控制 */ 实例69:无软件消抖的独立式键盘输入实验 实例70:软件消抖的独立式键盘输入实验 实例71:CPU控制的独立式键盘扫描实验 实例72:定时器中断控制的独立式键盘扫描实验 实例73:独立式键盘控制的4级变速流水灯 实例74:独立式键盘的按键功能扩展:"以一当四" 实例75:独立式键盘调时的数码时钟实验 实例76:独立式键盘控制步进电机实验 实例77:矩阵式键盘按键值的数码管显示实验 //实例78:矩阵式键盘按键音 实例79:简易电子琴 实例80:矩阵式键盘实现的电子密码锁 液晶显示LCD*液晶显示LCD *液晶显示LCD * *液晶显示LCD*液晶显示LCD *液晶显示LCD */ 实例81:用LCD显示字符'A' 实例82:用LCD循环右移显示"Welcome to China" 实例83:用LCD显示适时检测结果 实例84:液晶时钟设计 *一些芯片的使用*24c02 DS18B20 X5045 ADC0832 DAC0832 DS1302 红外遥控/ 实例85:将数据"0x0f"写入AT24C02再读出送P1口显示 实例86:将按键次数写入AT24C02,再读出并用1602LCD显示 实例87:对I2C总线上挂接多个AT24C02的读写操作 实例88:基于AT24C02的多机通信 读取程序 实例89:基于AT24C02的多机通信 写入程序 实例90:DS18B20温度检测及其液晶显示 实例91:将数据"0xaa"写入X5045再读出送P1口显示 实例92:将流水灯控制码写入X5045并读出送P1口显示 实例93:对SPI总线上挂接多个X5045的读写操作 实例94:基于ADC0832的数字电压表 实例95:用DAC0832产生锯齿波电压 实例96:用P1口显示红外遥控器的按键值 实例97:用红外遥控器控制继电器 实例98:基于DS1302的日历时钟 实例99:单片机数据发送程序 实例100:电机转速表设计 模拟霍尔脉冲 实例3:用单片机控制第一个灯亮 实例4:用单片机控制一个灯闪烁:认识单片机的工作频率 实例5:将 P1口状态分别送入P0、P2、P3口:认识I/O口的引脚功能 实例6:使用P3口流水点亮8位LED 实例7:通过对P3口地址的操作流水点亮8位LED 实例8:用不同数据类型控制灯闪烁时间 实例9:用P0口、P1 口分别显示加法和减法运算结果 实例10:用P0、P1口显示乘法运算结果 实例11:用P1、P0口显示除法运算结果 实例12:用自增运算控制P0口8位LED流水花样 实例13:用P0口显示逻辑"与"运算结果 实例14:用P0口显示条件运算结果 实例15:用P0口显示按位"异或"运算结果 实例16:用P0显示左移运算结果 实例17:"万能逻辑电路"实验 实例18:用右移运算流水点亮P1口8位LED 实例19:用if语句控制P0口8位LED的流水方向 实例20:用swtich语句的控制P0口8位LED的点亮状态 实例21:用for语句控制蜂鸣器鸣笛次数 实例22:用while语句控制LED 实例23:用do-while语句控制P0口8位LED流水点亮 实例24:用字符型数组控制P0口8位LED流水点亮 实例25: 用P0口显示字符串常量 实例26:用P0 口显示指针运算结果
❷ 《单片机C语言程序设计实训100例——基于8051+Proteus仿真》 第03篇源代码
单片机c语言编程100个实例目录1
函数的使用和熟悉
实例3:用单片机控制第一个灯亮
实例4:用单片机控制一个灯闪烁:认识单片机的工作频率
实例5:将 P1口状态分别送入P0、P2、P3口:认识I/O口的引脚功能
实例6:使用P3口流水点亮8位LED
实例7:通过对P3口地址的操作流水点亮8位LED
实例8:用不同数据类型控制灯闪烁时间
实例9:用P0口、P1 口分别显示加法和减法运算结果
实例10:用P0、P1口显示乘法运算结果
实例11:用P1、P0口显示除法运算结果
实例12:用自增运算控制P0口8位LED流水花样
实例13:用P0口显示逻辑"与"运算结果
实例14:用P0口显示条件运算结果
实例15:用P0口显示按位"异或"运算结果
实例16:用P0显示左移运算结果
实例17:"万能逻辑电路"实验
实例18:用右移运算流水点亮P1口8位LED
实例19:用if语句控制P0口8位LED的流水方向
实例20:用swtich语句的控制P0口8位LED的点亮状态
实例21:用for语句控制蜂鸣器鸣笛次数
实例22:用while语句控制LED
实例23:用do-while语句控制P0口8位LED流水点亮
实例24:用字符型数组控制P0口8位LED流水点亮
实例25: 用P0口显示字符串常量
实例26:用P0 口显示指针运算结果
实例27:用指针数组控制P0口8位LED流水点亮
实例28:用数组的指针控制P0 口8 位LED流水点亮
实例29:用P0 、P1口显示整型函数返回值
实例30:用有参函数控制P0口8位LED流水速度
实例31:用数组作函数参数控制流水花样
实例32:用指针作函数参数控制P0口8位LED流水点亮
实例33:用函数型指针控制P1口灯花样
实例34:用指针数组作为函数的参数显示多个字符串
单片机c语言编程100个实例目录2
实例35:字符函数ctype.h应用举例
实例36:内部函数intrins.h应用举例
实例37:标准函数stdlib.h应用举例
实例38:字符串函数string.h应用举例
实例39:宏定义应用举例2
实例40:宏定义应用举例2
实例41:宏定义应用举例3
* 中断、定时器中断、定时器 *中断、定时器*中断、定时器 /
实例42:用定时器T0查询方式P2口8位控制LED闪烁
实例43:用定时器T1查询方式控制单片机发出1KHz音频
实例44:将计数器T0计数的结果送P1口8位LED显示
实例45:用定时器T0的中断控制1位LED闪烁
实例46:用定时器T0的中断实现长时间定时
实例47:用定时器T1中断控制两个LED以不同周期闪烁
实例48:用计数器T1的中断控制蜂鸣器发出1KHz音频
实例49:用定时器T0的中断实现"渴望"主题曲的播放
实例50-1:输出50个矩形脉冲
实例50-2:计数器T0统计外部脉冲数
实例51-2:定时器T0的模式2测量正脉冲宽度
实例52:用定时器T0控制输出高低宽度不同的矩形波
实例53:用外中断0的中断方式进行数据采集
实例54-1:输出负脉宽为200微秒的方波
实例54-2:测量负脉冲宽度
实例55:方式0控制流水灯循环点亮
实例56-1:数据发送程序
实例56-2:数据接收程序
实例57-1:数据发送程序
实例57-2:数据接收程序
实例58:单片机向PC发送数据
实例59:单片机接收PC发出的数据
*数码管显示*数码管显示 数码管显示数码管显示*/
实例60:用LED数码显示数字5
实例61:用LED数码显示器循环显示数字0~9
实例62:用数码管慢速动态扫描显示数字"1234"
实例63:用LED数码显示器伪静态显示数字1234
实例64:用数码管显示动态检测结果
实例65:数码秒表设计
实例66:数码时钟设计
实例67:用LED数码管显示计数器T0的计数值
实例68:静态显示数字“59”
单片机c语言编程100个实例目录3
键盘控制*键盘控制* *键盘控制 *键盘控制 */
实例69:无软件消抖的独立式键盘输入实验
实例70:软件消抖的独立式键盘输入实验
实例71:CPU控制的独立式键盘扫描实验
实例72:定时器中断控制的独立式键盘扫描实验
实例73:独立式键盘控制的4级变速流水灯
实例74:独立式键盘的按键功能扩展:"以一当四"
实例75:独立式键盘调时的数码时钟实验
实例76:独立式键盘控制步进电机实验
实例77:矩阵式键盘按键值的数码管显示实验
//实例78:矩阵式键盘按键音
实例79:简易电子琴
实例80:矩阵式键盘实现的电子密码锁
液晶显示LCD*液晶显示LCD *液晶显示LCD * *液晶显示LCD*液晶显示LCD *液晶显示LCD */
实例81:用LCD显示字符'A'
实例82:用LCD循环右移显示"Welcome to China"
实例83:用LCD显示适时检测结果
实例84:液晶时钟设计
*一些芯片的使用*24c02 DS18B20 X5045 ADC0832 DAC0832 DS1302 红外遥控/
实例85:将数据"0x0f"写入AT24C02再读出送P1口显示
实例86:将按键次数写入AT24C02,再读出并用1602LCD显示
实例87:对I2C总线上挂接多个AT24C02的读写操作
实例88:基于AT24C02的多机通信 读取程序
实例89:基于AT24C02的多机通信 写入程序
实例90:DS18B20温度检测及其液晶显示
实例91:将数据"0xaa"写入X5045再读出送P1口显示
实例92:将流水灯控制码写入X5045并读出送P1口显示
实例93:对SPI总线上挂接多个X5045的读写操作
实例94:基于ADC0832的数字电压表
实例95:用DAC0832产生锯齿波电压
实例96:用P1口显示红外遥控器的按键值
实例97:用红外遥控器控制继电器
实例98:基于DS1302的日历时钟
实例99:单片机数据发送程序
实例100:电机转速表设计
模拟霍尔脉冲
http://www.dzkfw.com.cn/myxin/51c_language.chm 单片机c语言一百例子
❸ proteus 怎么单片机仿真
打开 proteus 仿真软件后,按照 自己的 设计 思路,画出 单片机系统 线路图,加载单片机程序代码,仿真运行 就可以 观察仿真 结果了, 附件是一个仿真 实例,可以仿真试试。
❹ 求用proteus仿真51单片机控制LCD1602的实例
//实例81:用LCD显示字符'A'
#include<reg51.h> //包含单片机寄存器的头文件
#include<intrins.h> //包含_nop_()函数定义的头文件
sbit RS=P2^0; //寄存器选择位,将RS位定义为P2.0引脚
sbit RW=P2^1; //读写选择位,将RW位定义为P2.1引脚
sbit E=P2^2; //使能信号位,将E位定义为P2.2引脚
sbit BF=P0^7; //忙碌标志位,,将BF位定义为P0.7引脚
/*****************************************************
函数功能:延时1ms
(3j+2)*i=(3×33+2)×10=1010(微秒),可以认为是1毫秒
***************************************************/
void delay1ms()
{
unsigned char i,j;
for(i=0;i<10;i++)
for(j=0;j<33;j++);
}
/*****************************************************
函数功能:延时若干毫秒
入口参数:n
***************************************************/
void delay(unsigned char n)
{
unsigned char i;
for(i=0;i<n;i++)
delay1ms();
}
/*****************************************************
函数功能:判断液晶模块的忙碌状态
返回值:result。result=1,忙碌;result=0,不忙
***************************************************/
unsigned char BusyTest(void)
{
bit result;
RS=0; //根据规定,RS为低电平,RW为高电平时,可以读状态
RW=1;
E=1; //E=1,才允许读写
_nop_(); //空操作
_nop_();
_nop_();
_nop_(); //空操作四个机器周期,给硬件反应时间
result=BF; //将忙碌标志电平赋给result
E=0;
return result;
}
/*****************************************************
函数功能:将模式设置指令或显示地址写入液晶模块
入口参数:dictate
***************************************************/
void WriteInstruction (unsigned char dictate)
{
while(BusyTest()==1); //如果忙就等待
RS=0; //根据规定,RS和R/W同时为低电平时,可以写入指令
RW=0;
E=0; //E置低电平(根据表8-6,写指令时,E为高脉冲,
// 就是让E从0到1发生正跳变,所以应先置"0"
_nop_();
_nop_(); //空操作两个机器周期,给硬件反应时间
P0=dictate; //将数据送入P0口,即写入指令或地址
_nop_();
_nop_();
_nop_();
_nop_(); //空操作四个机器周期,给硬件反应时间
E=1; //E置高电平
_nop_();
_nop_();
_nop_();
_nop_(); //空操作四个机器周期,给硬件反应时间
E=0; //当E由高电平跳变成低电平时,液晶模块开始执行命令
}
/*****************************************************
函数功能:指定字符显示的实际地址
入口参数:x
***************************************************/
void WriteAddress(unsigned char x)
{
WriteInstruction(x|0x80); //显示位置的确定方法规定为"80H+地址码x"
}
/*****************************************************
函数功能:将数据(字符的标准ASCII码)写入液晶模块
入口参数:y(为字符常量)
***************************************************/
void WriteData(unsigned char y)
{
while(BusyTest()==1);
RS=1; //RS为高电平,RW为低电平时,可以写入数据
RW=0;
E=0; //E置低电平(根据表8-6,写指令时,E为高脉冲,
// 就是让E从0到1发生正跳变,所以应先置"0"
P0=y; //将数据送入P0口,即将数据写入液晶模块
_nop_();
_nop_();
_nop_();
_nop_(); //空操作四个机器周期,给硬件反应时间
E=1; //E置高电平
_nop_();
_nop_();
_nop_();
_nop_(); //空操作四个机器周期,给硬件反应时间
E=0; //当E由高电平跳变成低电平时,液晶模块开始执行命令
}
/*****************************************************
函数功能:对LCD的显示模式进行初始化设置
***************************************************/
void LcdInitiate(void)
{
delay(15); //延时15ms,首次写指令时应给LCD一段较长的反应时间
WriteInstruction(0x38); //显示模式设置:16×2显示,5×7点阵,8位数据接口
delay(5); //延时5ms
WriteInstruction(0x38);
delay(5);
WriteInstruction(0x38);
delay(5);
WriteInstruction(0x0f); //显示模式设置:显示开,有光标,光标闪烁
delay(5);
WriteInstruction(0x06); //显示模式设置:光标右移,字符不移
delay(5);
WriteInstruction(0x01); //清屏幕指令,将以前的显示内容清除
delay(5);
}
void main(void) //主函数
{
LcdInitiate(); //调用LCD初始化函数
WriteAddress(0x07); //将显示地址指定为第1行第8列
WriteData('A'); //将字符常量'A'写入液晶模块
//字符的字形点阵读出和显示由液晶模块自动完成
}
❺ 如何使用Proteus做单片机仿真
打开软件界面如图,选择P进行元器件的摆放。
如何使用Proteus做单片机仿真
在这里可以通过元器件的名字进行检索。电容电阻等元器件只需要其相应的英文缩写即可。
如何使用Proteus做单片机仿真
89C52是单片机初学者的不错选择,在检索行输入89C52,可以看到元件库里出现了我们需要的芯片。
如何使用Proteus做单片机仿真
选中后就可将其拖入工程界面,可以自己选择合适的位置。
如何使用Proteus做单片机仿真
根据需要可以添加不同的功能,此处采用一个历程介绍程序的下载。
如何使用Proteus做单片机仿真
选中单片机,之后选中编辑属性选项。
如何使用Proteus做单片机仿真
Program Files 就是程序的路径,注意是HEX文件,所以再用编译软件编译完成后通过该步骤去加载对应的HEX文件即可。
如何使用Proteus做单片机仿真
加载程序完毕后,点击执行,即可看到单片机开始工作,液晶屏显示一行字符。
如何使用Proteus做单片机仿真
❻ Proteus电子电路设计及仿真的目录
第1章 Proteus概述 1
1.1 Proteus历史 1
1.2 Proteus应用领域 1
1.3 Proteus VSM组件 2
1.4 Proteus的启动和退出 3
1.5 Proteus设计流程 5
1.5.1 自顶向下设计 5
1.5.2 自下而上设计 5
1.6 Proteus安装方法 6
第2章 Proteus ISIS基本操作 9
2.1 Proteus ISIS工作界面 9
2.1.1 编辑窗口 9
2.1.2 预览窗口 11
2.1.3 对象选择器 11
2.1.4 菜单栏与主工具栏 11
2.1.5 状态栏 13
2.1.6 工具箱 13
2.1.7 方向工具栏及仿真按钮 15
2.2 编辑环境设置 16
2.2.1 模板设置 16
2.2.2 图表设置 16
2.2.3 图形设置 17
2.2.4 文本设置 17
2.2.5 图形文本设置 17
2.2.6 交点设置 19
2.3 系统参数设置 20
2.3.1 元件清单设置 20
2.3.2 环境设置 22
2.3.3 路径设置 23
2.3.4 属性定义设置 24
2.3.5 图纸大小设置 25
2.3.6 文本编辑选项设置 25
2.3.7 快捷键设置 25
2.3.8 动画选项设置 27
2.3.9 仿真选项设置 28
实例2-1 原理图绘制实例 32
第3章 Proteus ISIS电路绘制 36
3.1 绘图模式及命令 36
3.1.1 Component(元件)模式 37
3.1.2 Junction dot(节点)模式 38
3.1.3 Wire label(连线标号)模式 38
3.1.4 Text scripts(文字脚本)模式 39
3.1.5 总线(Buses)模式 41
3.1.6 Subcircuit(子电路)模式 41
3.1.7 Terminals(终端)模式 42
3.1.8 Device Pins(器件引脚)模式 43
3.1.9 2D图形工具 44
3.2 导线的操作 45
3.2.1 两对象连线 45
3.2.2 连接点 45
3.2.3 重复布线 46
3.2.4 拖动连线 46
3.2.5 移走节点 47
3.3 对象的操作 47
3.3.1 选中对象 48
3.3.2 放置对象 48
3.3.3 删除对象 48
3.3.4 复制对象 48
3.3.5 拖动对象 48
3.3.6 调整对象 49
3.3.7 调整朝向 49
3.3.8 编辑对象 49
3.4 绘制电路图进阶 49
3.4.1 替换元件 49
3.4.2 隐藏引脚 49
3.4.3 设置头框 50
3.4.4 设置连线外观 51
3.5 典型实例 52
实例3-1 绘制共发射极放大电路 52
实例3-2 JK触发器组成的三位二进制同
步计数器的绘制与测试 54
实例3-3 KEYPAD的绘制及仿真 57
实例3-4 单片机控串行输入并行输出
移位寄存器绘制练习 65
第4章 ProteusISIS分析及仿真工具 69
4.1 虚拟仪器 69
4.2 探针 71
4.3 图表 72
4.4 激励源 74
4.4.1 直流信号发生器DC设置 75
4.4.2 幅度、频率、相位可控的正弦
波发生器SINE设置 75
4.4.3 模拟脉冲发生器PULSE设置 76
4.4.4 指数脉冲发生器EXP设置 77
4.4.5 单频率调频波信号发生器SFFM
设置 78
4.4.6 PWLIN分段线性脉冲信号发生
器设置 78
4.4.7 FILE信号发生器设置 79
4.4.8 音频信号发生器AUDIO设置 80
4.4.9 单周期数字脉冲发生器DPULSE
设置 81
4.4.10 数字单边沿信号发生器DEDGE
设置 81
4.4.11 数字单稳态逻辑电平发生器
DSTATE设置 82
4.4.12 数字时钟信号发生器DCLOCK
设置 82
4.4.13 数字模式信号发生器DPATTERN
设置 83
4.5 典型实例 83
实例4-1 共发射极放大电路分析 83
实例4-2 ADC0832电路时序分析 88
实例4-3 共发射极应用低通滤波电路
分析 91
第5章 模拟电路设计及仿真 95
5.1 运算放大器基本应用电路 95
5.1.1 反相放大电路 96
5.1.2 同相放大电路 97
5.1.3 差动放大电路 98
5.1.4 加法运算电路 100
5.1.5 减法运算电路 101
5.1.6 微分运算电路 102
5.1.7 积分运算电路 102
实例5-1 PID控制电路分析 104
5.2 测量放大电路与隔离电路 106
5.2.1 测量放大器 106
实例5-2 测量放大器测温电路分析 108
5.2.2 隔离放大器 109
实例5-3 模拟信号隔离放大电路
分析 110
5.3 信号转换电路 112
5.3.1 电压比较电路 112
5.3.2 电压/频率转换电路 117
5.3.3 频率/电压转换电路 118
5.3.4 电压—电流转换电路 119
5.3.5 电流—电压转换电路 120
5.4 移相电路与相敏检波电路 121
5.4.1 移相电路 121
5.4.2 相敏检波电路 123
实例5-4 相敏检波器鉴相特性分析 125
5.5 信号细分电路 126
实例5-5 电阻链二倍频细分电路
分析 128
5.6 有源滤波电路 129
5.6.1 低通滤波电路 129
5.6.2 高通滤波电路 131
5.6.3 带通滤波电路 134
5.6.4 带阻滤波电路 135
5.7 信号调制/解调 136
5.7.1 调幅电路 137
5.7.2 调频电路 139
5.7.3 调相电路 141
5.8 函数发生电路 142
5.8.1 正弦波信号发生电路 142
实例5-6 电容三点式振荡电路分析 145
5.8.2 矩形波信号发生电路 147
5.8.3 占空比可调的矩形波发生
电路 148
5.8.4 三角波信号发生电路 150
5.8.5 锯齿波信号发生电路 150
实例5-7 集成函数发生器ICL8038
电路分析 150
第6章 数字电路设计及仿真 155
6.1 基本应用电路 155
6.1.1 双稳态触发器 155
6.1.2 寄存器/移位寄存器 158
实例6-1 74LS194 8位双向移位寄存器
分析 158
6.1.3 编码电路 160
6.1.4 译码电路 162
实例6-2 CD4511译码显示电路
分析 163
6.1.5 算术逻辑电路 164
6.1.6 多路选择器 166
6.1.7 数据分配器 167
6.1.8 加/减计数器 168
6.2 脉冲电路 171
6.2.1 555定时器构成的多谐振荡器 171
实例6-3 占空比与频率均可调的多
谐振荡器分析 175
6.2.2 矩形脉冲的整形 177
6.3 电容测量仪 181
6.3.1 电容测量仪设计原理 181
6.3.2 电容测量仪电路设计 181
6.4 多路电子抢答器 185
6.4.1 简单8路电子抢答器 185
6.4.2 8路带数字显示电子抢答器 186
第7章 单片机仿真 190
7.1 Proteus与单片机仿真 190
7.1.1 创建源代码文件 190
7.1.2 编辑源代码程序 192
7.1.3 生成目标代码 192
7.1.4 代码生成工具 192
7.1.5 定义第三方源代码编辑器 193
7.1.6 使用第三方IDE 193
7.1.7 单步调试 194
7.1.8 断点调试 194
7.1.9 MULTI-CPU调试 195
7.1.10 弹出式窗口 195
7.2 WinAVR编译器 203
7.2.1 WinAVR编译器简介 203
7.2.2 安装WinAVR编译器 204
7.2.3 WinAVR的使用 206
7.3 ATMEGA16单片机概述 210
7.3.1 AVR系列单片机特点 210
7.3.2 ATmega16总体结构 212
7.4 I/O端口及其第二功能 221
7.4.1 端口A的第二功能 222
7.4.2 端口B的第二功能 222
7.4.3 端口C的第二功能 223
7.4.4 端口D的第二功能 224
实例7-1 使用Proteus仿真键盘控
LED 224
7.5 中断处理 228
7.5.1 ATmega16中断源 229
7.5.2 相关I/O寄存器 229
7.5.3 断处理 233
实例7-2 使用Proteus仿真中断唤醒的
键盘 234
7.6 ADC模拟输入接口 239
7.6.1 ADC特点 239
7.6.2 ADC的工作方式 240
7.6.3 ADC预分频器 240
7.6.4 ADC的噪声抑制 243
7.6.5 与ADC有关的I/O寄存器 243
7.6.6 ADC噪声消除技术 246
实例7-3 使用Proteus仿真简易电
量计 247
7.7 通用串行接口UART 252
7.7.1 数据传送 252
7.7.2 数据接收 253
7.7.3 与UART相关的寄存器 253
实例7-4 使用Proteus仿真以查询方式
与虚拟终端及单片机之间互相
通信 260
实例7-5 使用Proteus仿真利用标准I/O
流与虚拟终端通信调试 265
7.8 定时器/计数器 269
7.8.1 T/C0 269
7.8.2 T/C1 273
7.8.3 T/C2 279
7.8.4 定时器/计数器的预分频器 282
实例7-6 使用Proteus仿真T/C0定时
闪烁LED灯 282
实例7-7 使用Proteus仿真T/C2产生
信号T/C1进行捕获 286
实例7-8 使用Proteus仿真T/C1产生
PWM信号控电机 291
实例7-9 使用Proteus仿真看门狗
定时器 297
7.9 同步串行接口SPI 299
7.9.1 SPI特性 300
7.9.2 SPI工作模式 300
7.9.3 SPI数据模式 301
7.9.4 与SPI相关的寄存器 302
实例7-10 使用Proteus仿真端口
扩展 304
7.10 两线串行接口TWI 310
7.10.1 TWI特性 311
7.10.2 TWI的总线仲裁 311
7.10.3 TWI的使用 311
7.10.4 与TWI相关的寄存器 312
实例7-11 使用Proteus仿真双芯片
TWI通信 315
7.11 综合仿真 320
实例7-12 使用Proteus仿真DS18B20
测温计 321
实例7-13 使用Proteus仿真电子
万年历 333
实例7-14 使用Proteus仿真DS1302
实时时钟 346
第8章 PCB布板 353
8.1 PCB概述 353
8.2 Proteus ARES的工作界面 353
8.2.1 编辑窗口 354
8.2.2 预览窗口 355
8.2.3 对象选择器 355
8.2.4 菜单栏与主工具栏 355
8.2.5 状态栏 357
8.2.6 工具箱 357
8.3 ARES系统设置 358
8.3.1 颜色设置 358
8.3.2 默认规则设置 358
8.3.3 环境设置 360
8.3.4 选择过滤器设置 361
8.3.5 快捷键设置 361
8.3.6 网格设置 361
8.3.7 使用板层设置 362
8.3.8 板层对设置 362
8.3.9 路径设置 363
8.3.10 模板设置 364
8.3.11 工作区域设置 365
实例8-1 PCB布板流程 366
参考文献 378
原理图,顾名思义就是表示电路板上各器件之间连接原理的图表。在方案开发等正向研究中,原理图的作用是非常重要的,而对原理图的把关也关乎整个项目的质量甚至生命。由原理图延伸下去会涉及到PCB layout,也就是PCB布线,当然这种布线是基于原理图来做成的,通过对原理图的分析以及电路板其他条件的限制,设计者得以确定器件的位置以及电路板的层数等。
基尔霍夫定律Kirchhoff laws是电路中电压和电流所遵循的基本规律,是分析和计算较为复杂电路的基础,1845年由德国物理学家G.R.基尔霍夫(Gustav Robert Kirchhoff,1824~1887)提出。它既可以用于直流电路的分析,也可以用于交流电路的分析,还可以用于含有电子元件的非线性电路的分析。运用基尔霍夫定律进行电路分析时,仅与电路的连接方式有关,而与构成该电路的元器件具有什么样的性质无关。基尔霍夫定律包括电流定律(KCL)和电压定律(KVL),前者应用于电路中的节点而后者应用于电路中的回路。
多用表
multimeter
由磁电系电表的测量机构与整流器构成的多功能、多量程的机械式指示电表(见电流表)。可用以测量交、直流电压,交、直流电流,电阻。又称万用表或繁用表。有些多用表还具有测量电容、电感等功能。
多用表主要由磁电系电表的测量机构、测量电路和转换开关
组成。其中,转换开关是多用表选择不同测量功能和不同量程时的切换元件。
满偏转电流约为 40~200μA。多用表用一个测量机构来测量多种电学量,各具有几个量程。其工作原理是:通过测量电路的变换,将被测量变换成磁电系测量机构能够接受的直流电流。例如测量机构结合分流器(见电流表)及分压器,就形成测量直流电流和电压的多量程直流电表。磁电系测量机构与半波或全波整流器组成整流式电表的测量机构,再结合分流器及分压器,就形成测量交流电流和电压的多量程交流电表。多用表内还带有电池,当被测电阻值不同时,电池使测量机构内通过不同数值的电流,从而反映出不同的被测电阻值。转换开关是多用表选择不同测量功能和不同量程时的切换元件。
用多用表测量电阻的原理电路见图。当被测电阻Rx=0时,电路中的电流最大,调节R使测量机构指针的偏转角为满刻度值,此时电路中的电流值I0=E/R。当被测电阻Rx增大时,电流I=E/(R+Rx)逐渐减小,指针的偏转角也减小。因此多用表表盘上的电阻值标尺是反向的,而且刻度不均匀。若被测电阻Rx=R,则电流I=I0/2,指针偏转角为满偏转角的一半。因此刻度中点处所标的电阻值(称为中值电阻)即为该量程下多用表的内阻值。通常电阻值标尺的有效读数范围为0.1~10倍中值电阻值。
随着电子技术的不断进步,多用表正逐步向数字式方向发展。
❼ 单片机C语言程序设计实训100例:基于PIC+Proteus仿真的目录
第1章PIC单片机C语言程序设计概述
1.1 PIC单片机简介
1.2 MPLAB+C语言程序开发环境安装及应用
1.3 PICC/PICC18/MCC18程序设计基础
1.4 PIC单片机内存结构
1.5 PIC单片机配置位
1.6 基本的I/O端口编程
1.7 中断服务程序设计
1.8 PIC单片机外设相关寄存器
1.9 C语言程序设计在PIC单片机应用系统开发中的优势
第2章PROTEUS操作基础
2.1 PROTEUS操作界面简介
2.2 仿真电路原理图设计
2.3 元件选择
2.4 仿真运行
2.5 MPLAB IDE与PROTEUS的联合调试
2.6 PROTEUS在PIC单片机应用系统开发中的优势
第3章 基础程序设计
3.1 闪烁的LED
3.2 用双重循环控制LED左右来回滚动显示
3.3 多花样流水灯
3.4 LED模拟交通灯
3.5 单只数码管循环显示0~9
3.6 4只数码管滚动显示单个数字
3.7 8只数码管扫描显示多个不同字符
3.8 K1~K5控制两位数码管的开关、加减与清零操作
3.9 数码管显示4×4键盘矩阵按键
3.10 数码管显示拨码开关编码
3.11 继电器及双向可控硅控制照明设备
3.12 INT中断计数
3.13 RB端口电平变化中断控制两位数码管开关与加减显示
3.14 TIMER0控制单只LED闪烁
3.15 TIMER0控制流水灯
3.16 TIMER0控制数码管扫描显示
3.17 TIMER1控制交通指示灯
3.18 TIMER1与TIMER2控制十字路口秒计时显示屏
3.19 用工作于同步计数方式的TMR1实现按键或脉冲计数
3.20 用定时器设计的门铃
3.21 报警器与旋转灯
3.22 用工作于捕获方式的CCP1设计的频率计
3.23 用工作于比较模式的CCP1控制音阶播放
3.24 CCP1 PWM模式应用
3.25 模拟比较器测试
3.26 数码管显示两路A/D转换结果
3.27 EEPROM读写与数码管显示
3.28 睡眠模式及看门狗应用测试
3.29 单片机与PC双向串口通信仿真
3.30 PIC单片机并行从动端口PSP读写测试
第4章 硬件应用
4.1 74HC138与74HC154译码器应用
4.2 74HC595串入并出芯片应用
4.3 用74HC164驱动多只数码管显示
4.4 数码管BCD解码驱动器7447与4511应用
4.5 8×8LED点阵屏显示数字
4.6 8位数码管段位复用串行驱动芯片MAX6951应用
4.7 串行共阴显示驱动器MAX7219与7221应用
4.8 14段与16段数码管串行驱动显示
4.9 16键解码芯片74C922应用
4.10 1602LCD字符液晶测试程序
4.11 1602液晶显示DS1302实时时钟
4.12 1602液晶工作于4位模式实时显示当前时间
4.13 带RAM内存的实时时钟与日历芯片PCF8583应用
4.14 2×20串行字符液晶演示
4.15 LGM12864液晶显示程序
4.16 PG160128A液晶图文演示
4.17 TG126410液晶串行模式显示
4.18 HDG12864系列液晶演示
4.19 Nokia7110液晶菜单控制程序
4.20 8通道模拟开关74HC4051应用测试
4.21 用带I2C接口的MCP23016扩展16位通用I/O端口
4.22 用带SPI接口的MCP23S17扩展16位通用I/O端口
4.23 用I2C接口控制MAX6953驱动4片5×7点阵显示器
4.24 用I2C接口控制MAX6955驱动16段数码管显示
4.25 用带SPI接口的数/模转换器MCP4921生成正弦波形
4.26 用带SPI接口的数/模转换器MAX515控制LED亮度循环变化
4.27 正反转可控的直流电机
4.28 PWM控制MOSFET搭建的H桥电路驱动直流电机运行
4.29 正反转可控的步进电机
4.30 用L297+L298控制与驱动步进电机
4.31 PC通过RS-485器件MAX487远程控制单片机
4.32 I2C接口DS1621温度传感器测试
4.33 SPI接口温度传感器TC72应用测试
4.34 温度传感器LM35全量程应用测试
4.35 K型热电偶温度计
4.36 用铂电阻温度传感器PT100设计的测温系统
4.37 DS18B20温度传感器测试
4.38 SHT75温湿度传感器测试
4.39 1-Wire式可寻址开关DS2405应用测试
4.40 光敏电阻应用测试
4.41 MPX4250压力传感器测试
4.42 用I2C接口读写存储器AT24C04
4.43 用SPI接口读写AT25F1024
4.44 PIC18 I2C接口存储器及USART接口测试程序
4.45 PIC18 SPI接口存储器测试程序
4.46 PIC18定时器及A/D转换测试
4.47 用PIC18控制Microwire接口继电器驱动器MAX4820
4.48 MMC存储卡测试
4.49 ATA硬盘数据访问
4.50 微芯VLS5573液晶显示屏驱动器演示
第5章 综合设计
5.1 用DS1302/DS18B20+MAX6951设计的多功能电子日历牌
5.2 用PCF8583设计高仿真数码管电子钟
5.3 用4×20LCD与DS18B20设计的单总线多点温度监测系统
5.4 用内置EEPROM与1602液晶设计的加密电子密码锁
5.5 用PIC单片机与1601LCD设计的计算器
5.6 电子秤仿真设计
5.7 数码管显示的GP2D12仿真测距警报器
5.8 GPS全球定位系统仿真
5.9 能接收串口信息的带中英文硬字库的80×16点阵显示屏
5.10 用M145026与M145027设计的无线收发系统
5.11 红外遥控收发仿真
5.12 交流电压检测与数字显示仿真
5.13 带位置感应器的直流无刷电机PMW控制仿真
5.14 3端可调正稳压器LM317应用测试
5.15 模拟射击训练游戏
5.16 带触摸屏的国际象棋游戏仿真
5.17 温室监控系统仿真
5.18 PIC单片机MODBUS总线通信仿真
5.19 PIC单片机内置CAN总线通信仿真
5.20 基于PIC18+Microchip TCP/IP协议栈的HTTP服务器应用
参考文献
❽ 怎么用proteus来仿真51
用proteus来仿真51的步骤:
工具/原料:Proteus,keil c51
1、首先我们打开Proteus软件,点击左边菜单栏的P按钮,然后再搜索框里输入80c51,选择第一个就是80c51单片机;
❾ 如何使用Proteus做单片机仿真
1,找到需要的元件,芯片。
2,根据原理图,画出仿真图。
3,写程序,并编译出HEX代码文件。
4,把HEX代码文件加载到单片机中。
5,运行仿真,就看到结果了。
如下图,就是一个仿真的实例。
更详细的操作步骤,可上网下载有关的教程看一下。
❿ 基于Proteus的51系列单片机设计与仿真的内容简介
《基于Proteus的51系列单片机设计与仿真》以目前流行的软、硬件仿真软件Proteus为核心,从实验、实践、实用的角度,通过丰富的实例详细叙述了该软件在51单片机课程教学和单片机应用产品开发过程中的应用。全书共9章,主要介绍51单片机系统的设计及相关软件的使用,在Proteus中原理图的绘制与仿真及PCB的制作、Proteus在单片机软件程序设计中的应用,Proteus在单片机硬件系统设计中的应用。书中选择的实例都具有很强的实用性,通过阅读这些实例,读者可以在不花费硬件成本的前提下,学习和开发单片机软、硬件系统。
~第1章80C51单片机应用系统的设计及相关软件的使用
1.180C51单片机应用系统的设计
1.2KeilC51的使用
1.2.1创建项目
1.2.2调试程序
1.3仿真器
1.4编程器
1.5ISP下载
1.6串行调试软件
第2章Proteus7.1入门
2.1ProteusISIS的操作及电路原理图设计
2.1.1ProteusISIS简介
2.1.2ProteusISIS编辑环境及参数设置
2.1.3ProteusISIS原理图设计
2.1.4ProteusISIS元件制作
2.2ProteusVSM虚拟系统模型
2.2.1激励源
2.2.2ProteusVSM虚拟仪器的使用
2.3ProteusARES的PCB设计
2.3.1ProteusARES简介
2.3.2ProteusARES参数设置
2.3.3ProteusARES中的PCB制作实例
第3章51系列软件程序设计与仿真
3.1清零、置位程序的设计与仿真
3.1.1片内清零程序的设计
3.1.2片内清零程序的调试与仿真
3.1.3片外清零程序的设计
3.1.4片外清零程序的调试与仿真
3.1.5置位程序的设计
3.1.6置位程序的调试与仿真
3.2拼字程序的设计与仿真
3.2.1片内拼字程序的设计
3.2.2片内拼字程序的调试与仿真
3.5.1数据排序程序的设计
3.2.3片外拼字程序的设计
3.2.4片外拼字程序的调试与仿真
3.3拆字程序的设计与仿真
3.3.1片内拆字程序的设计
3.3.2片内拆字程序的调试与仿真
3.3.3片外拆字程序的设计
3.3.4片外拆字程序的调试与仿真
3.4数据块传送程序的设计与仿真
3.4.1数据块传送程序的设计
3.4.2数据块传送程序的调试与仿真
3.5数据排序程序的设计与仿真
3.5.2数据排序程序的调试与仿真
第4章51系列通用I/O控制
4.1P1口的应用(一)
4.1.1硬件设计
4.1.2程序设计
4.1.3调试与仿真
4.2P1口的应用(二)
4.2.1硬件设计
4.2.2程序设计
4.2.3调试与仿真
4.3闪烁灯
4.3.1硬件设计
4.3.2程序设计
4.3.3调试与仿真
4.4流水灯
4.4.1硬件设计
4.4.2程序设计
4.4.3调试与仿真
4.5花样灯(一)
4.5.1硬件设计
4.5.2程序设计
4.5.3调试与仿真
4.6花样灯(二)
4.6.1硬件设计
4.6.2程序设计
4.6.3调试与仿真
4.7模拟交通灯
4.7.1硬件设计
4.7.2程序设计
4.7.3调试与仿真
4.8定时/计数器的应用(一)
4.8.1硬件设计
4.8.2程序设计
4.8.3调试与仿真
4.9定时/计数器的应用(二)
4.9.1硬件设计
4.9.2程序设计
4.9.3调试与仿真
4.10中断系统的应用(一)
4.10.1硬件设计
4.10.2程序设计
4.10.3调试与仿真
4.11中断系统的应用(二)
4.11.1硬件设计
4.11.2程序设计
4.11.3调试与仿真
4.12两个单片机串行通信
4.12.1硬件设计
4.12.2程序设计
4.12.3调试与仿真
4.13串行口扩展应用
4.13.1硬件设计
4.13.2程序设计
4.13.3调试与仿真
第5章音乐的应用
5.1单片机唱歌
5.1.1单片机产生音调的基础知识
5.1.2音乐软件的设计
5.1.3歌曲的设计
5.1.4调试与仿真
5.2电子琴
5.2.1电子琴的基础知识
5.2.2电子琴软件的设计
5.2.3调试与仿真
第6章LED数码管与键盘的应用
6.1LED数码管的应用
6.1.1LED数码管的结构及分类
6.1.2LED数码管的显示方式
6.1.3串行口驱动1位LED数码管的设计
6.1.4共阴极LED和共阳极LED的应用
6.1.50~~99计数器的设计
6.1.659s计时器的设计
6.1.7电子钟的设计
6.1.8MAX7219串行驱动LED数码管
6.2键盘的应用
6.2.1键盘的工作原理
6.2.2查询式键盘的设计
6.2.3矩阵式键盘的识别(一)
6.2.4矩阵式键盘的识别(二)
6.2.58255A并行I/O端口扩充键盘
第7章数/模转换器和模/数转换器的应用
7.1数/模转换器的应用
7.1.1TLC5615的基础知识
7.1.2方波发生器
7.1.3锯齿波发生器
7.2模/数转换器的应用
7.2.1ADC0808的基础知识
7.2.2数字电压表的设计
第8章显示器的应用
8.1LED点阵显示器的应用
8.1.1LED点阵显示器的基础知识
8.1.2一个5×7点阵字符显示
8.1.3一个8×8点阵字符串显示
8.1.4两个8×8点阵字符串显示
8.1.5两个8×8点阵滚动显示
8.1.6一个16×16点阵汉字显示
8.1.7两个16×16点阵汉字显示
8.1.8两个16×16点阵汉字分批显示
8.2LCD(液晶显示器)的应用
8.2.1LCD的基础知识
8.2.2字符式LCD的应用
8.2.3汉字式LCD的应用
8.2.4汉字式LCD移位显示
8.2.5汉字式LCD滚动显示
第9章工业控制
9.1SPI总线DS1302实时时钟控制
9.1.1DS1302的基础知识
9.1.2DS1302采用1位LED显示时钟的设计
9.1.3DS1302采用MAX7219控制8位LED显示时钟的设计
9.2I2C总线24C04开启次数统计控制
9.2.124CXX的基础知识
9.2.224C04开启次数统计的设计
9.3RS-485在单片机多机通信中的应用
9.3.1RS-485接口标准简述
9.3.2RS-485在单片机多机通信中的应用设计
9.41-WireBusDS18B20温度测量的设计
9.4.1DS18B20的基础知识
9.4.2DS18B20测量温度的设计
9.5电动机转速控制
9.5.1步进电动机转速控制
9.5.2直流电动机转速控制
9.6电气模拟控制
9.6.1步进电动机的启动、停止控制
9.6.2直流电动机的启动、停止控制
9.6.3步进电动机的正、反转控制
9.6.4直流电动机的正、反转控制
9.6.5电动机的多地控制
附录A单片机指令速查表
附录BProteus的常用快捷键
参考文献~