《单片机Proteus仿真C51参考程序实验》
- 格式:pdf
- 大小:194.79 KB
- 文档页数:7
51单片机C语言实例(350例)Proteus仿真和代码都有51单片机C语言实例(400例)所有实例程序均经测试过,适合新手学习。
1-IO输出-点亮1个LED灯方法1 10-LED循环左移100-24c02记忆开机次数101-24c02存储上次使用中状态102-DS1302 时钟原理103-DS1302可调时钟104-DS1302时钟串口自动更新时间105-1602液晶显示DS1302时钟106-字库ST7920 12864液晶基础显示107-按键 12864显示108-PCF8591 1路AD数码管显示109-PCF8591 4路AD数码管显示11-LED循环右移110-PCF8591 DA输出模拟111-PCF8591 输出锯齿波112-PCF8591 1602液晶显示113-串口通讯114-串口通讯中断应用115-RS485基本通讯原理116-红外接收原理117-红外解码数码管显示118-红外解码1602液晶显示119-红外发射原理12-查表显示LED灯120-红外收发测试121-双红外发射避障原理测试122-1个18B20 温度传感器数码管显示123-1个18b20温度传感器1602液晶显示124-多个18b20温度传感器1602液晶显示125-超温报警测试126-温度可调上下限1602126-温度可调上下限1602显示127-PS2键盘输入1602液晶显示128-双色点阵1种颜色显示测试129-双色点阵2种颜色显示测试13-双灯左移右移闪烁130-双色点阵显示特定图形131-双色点阵交替图形显示132-双色点阵双色交替动态显示133-热敏电阻测试数码管显示134-光敏电阻测试数码管显示135-自动调光测试136-串转并数字芯片测试137-非门数字芯片测试138-电子琴139-实用99分钟倒计时器14-花样灯140-外部频率测试141-定时做普通时钟可调142-1602液晶显示的密码锁143-实用密码锁144-1602液晶显示的计算器145-秒表146-串口测温电脑显示147-交通灯测试148-点阵模拟电梯上行下行149-点阵流动广告模拟15-PWM调光150-综合测试程序151-12位AD_DS1621与12864液晶152-闪烁灯一153-闪烁灯二154-流水灯A155-51单片机12864大液晶屏proteus仿真156-流水灯B157-数码管显示158-12864LCD显示计算器键盘按键实验159-数码管显示(锁存器)16-共阳数码管静态显示160-数码管动态显示161-数码管滚动显示162-数码管字符显示163-独立按键164-矩阵键盘165-矩阵键盘(LCD)166-用DS1302与12864LCD设计的可调式中文电子日历167-定时器的使用(方式1)168-12864LCD图形滚动演示169-用PG12864LCD设计的指针式电子钟17-1个共阳数码管显示变化数字170-定时器的使用(方式2)171-外部中断的使用172-定时器和外部中断173-开关控制12864LCD串行模式显示174-点阵显示175-液晶1602显示176-12864带字库测试程序177-串行12864显示178-遥控键值解码-12864LCD显示179-液晶12864并行18-单个数码管模拟水流180-液晶12864并行2181-串口发送试验182-串口接收试验183-串口接收(1602)184-蜂鸣器发声185-直流电机调速186-蜂鸣器间断发声187-lcd-12864应用188-继电器控制189-直流电机调速19-按键控制单个数码管显示190-步进电机191-存储AT24C02192-PCF8591T AD实验193-PCF8591T芯片DA实验194-温度采集DS18B20195-EEPROM_24C02196-12864LCD显示24C08保存的开机画面197-红外解码198-12864LCD显示EPROM2764保存的开机画面199-时钟DS1302(LCD)2-IO输出-点亮1个LED灯方法220-单个数码管指示逻辑电平200-宏晶看门狗201-SD卡202-秒表203-普通定时器时钟204-彩屏控制205-彩屏图片显示206-12864+DS1302时钟+18B20温度计207-12864测试程序208-12864串行驱动演示209-12864生产厂程序21-8位数码管显示其中之一210-12864中文显示测试211-LCD12864212-12864M液晶显示(有字库)程序(汇编)213-超声波测距LCD12864显示214-红外遥控键值解码12864液晶显示(汇编语言)215-用DS1302与12864LCD设计的可调式中文电子日历216-中文12864217-中文12864LCD显示红外遥控解码实验218-IO端口输出219-IO端口输入22-8位数码管静态显示其中之二220-流水灯221-数码管显示223-独立按键224-独立按键去抖动225-定时器0226-定时器1227-定时器2228-外部中断0电平触发229-外部中断0边沿触发23-8位数码管动态扫描显示230-外部中断1231-矩阵键盘232-液晶LCM1602233-LCD1602动态显示234-EEPROM24c02235-开机次数记忆236-红外解码LCD1602液晶显示237-红外解码数码管显示238-喇叭239-液晶背光控制24-8位数码管动态扫描原理演示240-与电脑串口通信241-步进电机242-字库LCD12864液晶测试243-液晶数码综合显示244-99秒计时245-99倒计时246-抢答器247-PWM调光248-LED点阵249-直流电机调速250-按键计数器251-秒表252-数码管移动253-花样灯254-红绿灯255-音乐播放256-红外收发演示257-普通定时器时钟258-继电器控制259-ps2键盘LCD1602液晶显示26-9累加260-RTC实时时钟DS1302液晶显示261-单线温度传感器18b20262-串口测温263-带停机步进电机正反转264-步进电机正反转265-AD_DA_PCF8591266-液晶AD_DA_PCF8591267-秒手动记数268-功能感受269-流水登27-99累加270-点亮一个二极管271-用单片机控制一个灯闪烁272-将P1口状态送入P0、P2、P3273-P3口流水灯274-通过对P3口地址的操作流水点亮8位LED 275-用不同数据类型控制灯闪烁时间276-用P0口、P1 口分别显示加法和减法运算结果277-用P0、P1口显示乘法运算结果278-用P1、P0口显示除法运算结果279-用自增运算控制P0口8位LED流水花样28-999累加280-用P0口显示逻辑与运算结果281-用P0口显示条件运算结果282-用P0口显示按位异或运算结果283-用P0显示左移运算结果284-万能逻辑电路实验285-用右移运算流水点亮P1口8位LED286-用if语句控制P0口8位LED的流水方向287-用swtich语句的控制P0口8位LED的点亮状态288-用for语句控制蜂鸣器鸣笛次数289-包含单片机寄存器的头文件29-9999累加290-用do-while语句控制P0口8位LED流水点亮291-用字符型数组控制P0口8位LED流水点亮292-用P0口显示字符串常量293-用P0 口显示指针运算结果294-用指针数组控制P0口8位LED流水点亮295-用数组的指针控制P0 口8 位LED流水点亮296-用P0 、P1口显示整型函数返回值297-用有参函数控制P0口8位LED流水速度298-用数组作函数参数控制流水花样299-用数组作函数参数控制流水花样3-IO输出-点亮多个LED灯方法130-9累减300-用函数型指针控制P1口灯花样301-用指针数组作为函数的参数显示多个字符串302-字符函数ctype.h应用举例303-内部函数intrins.h应用举例304-标准函数stdlib.h应用举例305-字符串函数string.h应用举例306-宏定义应用举例307-文件包应用举例308-条件编译应用举例309-用定时器T0查询方式P2口8位控制LED闪烁31-99累减310-用定时器T1查询方式控制单片机发出1KHz音频311-将计数器T0计数的结果送P1口8位LED显示311-用定时器T0的中断控制1位LED闪烁312-用定时器T0的中断实现长时间定时313-用定时器T1中断控制两个LED以不同周期闪烁314-用计数器T1的中断控制蜂鸣器发出1KHz音频315-用定时器T0的中断实现渴望主题曲的播放316-输出50个矩形脉冲317-输出正脉宽为250微秒的方波318-用定时器T0控制输出高低宽度不同的矩形波319-用外中断0的中断方式进行数据采集32-999累减320-输出负脉宽为200微秒的方波321-方式0控制流水灯循环点亮322-数据发送程序323-数据接收程序324-单片机向PC发送数据325-单片机接收PC发出的数据326-用LED数码显示数字5327-用LED数码显示器循环显示数字0~9328-用数码管慢速动态扫描显示数字1234329-用LED数码显示器伪静态显示数字123433-9999累减330-用数码管显示动态检测结果331-数码秒表设计332-数码时钟设计333-用LED数码管显示计数器T0的计数值334-静态显示数字“59”335-无软件消抖的独立式键盘输入实验336-软件消抖的独立式键盘输入实验337-CPU控制的独立式键盘扫描实验338-定时器中断控制的独立式键盘扫描实验339-独立式键盘控制的4级变速流水灯34-显示小数点340-独立式键盘的按键功能扩展:以一当四341-独立式键盘调时的数码时钟实验342-独立式键盘控制步进电机实验343-矩阵式键盘按键值的数码管显示实验344-矩阵式键盘按键音345-简易电子琴346-矩阵式键盘实现的电子密码锁347-用LCD显示字符'A'348-用LCD循环右移显示Welcome to China 349-将数据0x0f写入AT24C02再读出送P1口显示35-数码管消隐350-液晶时钟设计36-数码管递加递减带消隐37-数码管左移38-数码管右移38-数码管右移139-数码管右移24-IO输出-点亮多个LED灯方法240-数码管循环左移41-数码管循环右移41-数码管循环右移142-数码管循环右移243-数码管闪烁44-数码管局部闪烁45-定时器046-定时器147-定时器248-产生1mS方波49-产生200mS方波5-闪烁1个LED50-产生多路不同频率方波51-1个独立按键控制LED52-1个独立按键控制LED状态转换53-2按键加减操作53-2按键加减操作数码管显示54-多位数按键加减(闪烁)54-多位数按键加减(闪烁)数码管显示55-多位数按键加减(不闪烁)55-多位数按键加减(不闪烁)数码管显示56-定时器扫描数码管(不闪烁)57-按键长按短按效果58-抢答器59-独立按键依次输入数据6-不同频率闪烁1个LED灯60-按键从右至左输入61-8位端口检测8独立按键62-矩阵键盘行列扫描63-矩阵键盘反转扫描64-矩阵键盘中断扫描65-矩阵键盘密码锁66-矩阵键盘简易计算器67-外部中断0电平触发68-外部中断1电平触发69-外部中断0下降沿触发7-不同频率闪烁多个LED灯70-外部中断1下降沿触发71-T0外部计数输入72-T1外部计数输入73-看门狗溢出测试74-按键喂狗75-喇叭发声原理76-警车声音77-救护车声音78-喇叭滴答声79-报警发声8-8位LED左移80-消防车警报81-音乐播放82-步进电机转动原理83-步进电机正反转84-步进电机按键控制85-步进电机转速数码管显示86-双步进电机综合控制86-步进电机调速原理87-双步进电机综合控制87-步进电机综合控制87-步进电机调速原理88-直流电机按键控制89-直流电机调速控制9-8位LED右移90-继电器控制原理91-双继电器模拟洗衣机电机控制92-1602液晶静态显示93-1602液晶动态显示94-1602液晶滚动显示95-1602液晶移动显示96-1602液晶按键输入显示97-2402存储1个数据98-24c02存储多个数据99-24c02存储花样流水灯。
51单片机数字时钟-proteus仿真原理图及keil C51编译的C51程序该实验采用proteus 7.4 sp3进行的仿真,仿真原理图如下图所示,该实验采用定时器0的工作方式1定时500ms,等待20次定时1s进行时钟计数。
通过定时器1的工作方式1定时500ms,用来调整数码管闪烁的时间。
K1是用来选中时分秒,按一下选中时,再按一下选中分,再按一下选中秒,再按一下退出选中状态。
K2按一下数加一,K3按一下数减一。
在调整时间时,时钟停走。
/******************************************************************* **** 程序名; 时钟实验* 功能: 数码管通过动态扫描显示时间,时间可设定,调整时间时时钟不走.* 编程者: ZPZ* 编程时间:2009/8/9******************************************************************** **/#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit _led=P2^7;sbit key1=P2^0;sbit key2=P2^1;sbit key3=P2^2;uchar num=0,temp=0,count=0; uchar aa;uchar hour,min,sec;uchar codetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};void delay(uint z);void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f,uchar aa);void read_key();void led();void time_change();/****************** 主函数 *******************/void main(){P2=0xff;hour=12;min=0;sec=0;TMOD=0x11;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TH1=(65536-50000)/256;TL1=(65536-50000)%256;EA=1;ET0=1;ET1=1;TR0=1;TR1=1;aa=0xff;while(1){time_change();display(table[hour/10],table[hour%10],table[min/10], table[min%10],table[sec/10],table[sec%10],0xff);}}。
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、系统总体设计方案与实现框图采用六个独立式的键盘作为按键输入,当在开始后有按键按下时,就会有对应于这个按键的灯亮并且蜂鸣器响一声,其它按键再按也无效。
《单片机原理与应用》KeilC51软件使用实验
一、实验目的和要求
熟悉51单片机的基本输入输出应用,掌握Proteus ISIS模块原理图绘图方法及单片机系统仿真运行方法。
二、实验内容和原理
(1)观察Proteus模块的软件结构,熟悉菜单栏、工具栏、对话框等基本单元功能。
(2)学会选择元件、画导线、画总线、修改属性等操作。
(3)学会可执行文件加载及程序仿真运行。
(4)验证计数显示器的功能。
三、主要仪器设备
电脑、keil c51、Proteus
四、操作方法与实验步骤
(1)提前阅读与实验1相关的阅读材料;
(2)参考实验1电路原理图和元件清单,在ISIS中完成电路原理图的绘制;(3)加载可执行文件,观察仿真结果,检验电路图绘制的正确性。
五、实验数据记录和处理
代码:
电路图:
六、实验结果与分析运行结果:
实验分析:
由实验结果可知,这是通过开关控制计数器显示,按一次开关计数器计一次数,即加一。
七、讨论和心得
通过本次数码管进行51计数器显示实验,让我知道了对教材应该熟悉,因为教材是基础的,只有把基础的搞好了才能够进行其它层次的学习。
其次,此次实验我还懂得了有时候可以通过软件的仿真来验证书上的一些理论性的东西。
通过C语言的编程,对数码管及51的应用让我对单片机理解更加明了。
实验:KEIL51和proteus仿真软件的使用一、实验目的1、掌握KEIL51软件的使用方法2、掌握proteus仿真软件的使用方法二、实验设备及软件1、单片机实验板2、PC机3、KEIL514、proteus三、实验任务KEILC和proteus仿真软件的使用方法四、实验步骤1、Proteus ISIS 设计单片机电路的基本步骤:(1) 新建设计文件夹或打开一个现有的设计文件。
(2) 选择元器件(通过关键字或分类检索)。
(3) 将元器件放入设计窗口。
(4) 添加其他模型(电源、地线、信号源等)和相关的虚拟仪器。
(5) 编辑和连接电路。
(6) 编写单片机所需的源程序。
(7) 加入源程序,并通过构造,得到仿真程序或目标程序。
(8) 根据需要,设置对象的属性,如将单片机的”Program File”属性设置为上述仿真调试程序或目标程序。
(9) 启动仿真功能,对电路进行仿真操作,验证其功能。
2、Keil 51基本步骤(1)单击Project菜单项,选择New Project项。
此时弹出Create New Project对话框,选择合适的路径口,在文件名一栏中填入新工程的名字。
单击保存。
(2)根据所用的器件,选择CPU的型号,单击确定。
(3)Keil51询问是否生成默认的配置文件,这个可选可不选。
单击NO,观察项目文件管理窗口的变化。
(4)在File菜单下单击New选项,新建文件。
此时在代码窗口出现一“Text1”空白文档。
(5)在“Text1”中编辑完代码后,单击File菜单中的保存项,弹出保存对话框。
注意在对文件命名时必须加扩展名.asm。
(6) 在项目导航栏中Source Group 上单击右键,选Add File to Group ‘Source Group 1’。
弹出Add File 对话框。
选中刚才保存的xxxx.asm.文件,单击Add,然后关闭对话框。
此时在项目文件管理窗口中就会出现刚才所添加的文件xxxt.asm。
proteus的C51仿真
Proteus的C51仿真
1、实验原理
Proteus是对C51仿真效果⽐较好的软件了,可以利⽤丰富的数字资源的外设实现⽐较接近实际的设计。
仿真⽅法也⽐较简单,不需要下载,只需要将仿真⽂件导出到器件的属性中就可以实现仿真。
2、实验操作
(1)硬件设计
前⾯已经接触过proteus基本的组合逻辑以及数字逻辑设计的⽅法,可以有效的构建C51外围的数字电路。
就是找元件,然后搭电路。
(2)软件设计
这部分采⽤keil软件,这个软件好久没见过了,基本上不⼤清楚操作了。
这⾥主要记录这个软件的操作界⾯,⽅便以后快速查询。
先看⼀下什么都没有的初始界⾯图。
还是熟悉的布局。
只不过project单独列出来,⽽不是放在file⼯具栏中。
然后⼤体的步骤就是新建project》新建main》设置hex输出⽂件》编译
这个流程还是⽐较熟悉的⼯程设置的套路。
设置HEX⽂件输出在如下所⽰位置:
这个对话框是右击target(默认⽬标)的Option中调出来的。
图中create HEX file 就是⽣成仿真⽂件。
主函数添加到Source Group即可。
如果是移植他⼈的⼯程,h⽂件放在同⼀个⽬录下即可⾃动调⽤,添加时只需加⼊c⽂件。
剩下的就是C51的编程了,这⾥不多说明。
3、实验结果
简单回忆⼀下C51的使⽤的基本流程。
⼤致记录⼀下相应的界⾯。
仿真还是⽐较简单的,只需要⽣成⽂件就没有问题。
好像还可以C51和proteus联合,这个没试过,⽤的也不多,就不记录了。
单片机原理及应用C51编程+Proteus仿真课程设计引言单片机作为一种广泛应用于各种电子设备中的CPU,其原理及应用已经越来越引起人们的重视。
而随着单片机市场的逐渐扩大,相应地,其应用的各个方面也有不断的发展。
C51编程和Proteus仿真则成为了单片机应用的重要部分。
在本文中,将会介绍单片机原理及应用C51编程+Proteus仿真的课程设计。
单片机原理概述单片机是一种基于微处理器的计算机,只不过在一个芯片上将所需要的各个部分集成在一起。
因为这种芯片还要集成内存、输入/输出接口以及带有复杂定时器/计数器的时钟电路,所以单片机相比微处理器要更容易应用。
单片机广泛应用于计算机外围设备、电子玩具、家用电器、汽车电子和移动通讯产品等。
C51编程C51是一种基于C语言的嵌入式系统开发的编程语言,也是一种使用最广泛的单片机编程语言。
C51编程可以对单片机内部的各种功能模块进行编程控制,包括输入输出、定时器、串口、中断等。
C51编程采用的是线性方式,程序由主函数和其他功能模块的函数调用组合而成。
C51编程语法C51编程语法和C语言基本类似,但也有一些不同之处。
以下是C51编程语言的部分语法:#include<reg52.h>// 引用单片机头文件void mn()// 主函数{...}void timer0() interrupt 1// 定时器0中断{...}C51编程常用命令以下是C51编程中常用的一些命令:•sbit: 用于定义单个I/O口•sfr: 用于定义特殊功能寄存器•xdata: 用于定义外部数据空间•idata: 用于定义内部数据空间•code: 用于定义程序空间Proteus仿真Proteus是一款电子设计自动化(EDA)软件,可以模拟电路、编程等各个方面。
Proteus可以在虚拟环境中对电路进行仿真,让设计者能够在软件中对电路进行分析、测试和验证。
在单片机原理及应用C51编程+Proteus仿真的课程设计中,Proteus可以很好地完成电路仿真的任务。
一、填空 1 .程序状态字寄存器PSW 的CY 位代表 进位标志位,AC 位代表 辅助进位标志位, 0V 位代表溢出标志位,P 位代表奇偶校验位。
2 .执行3CH 和F6H 两个有符号数相加的指令后,累加器(A) = 32H , CY=J, AC =L , OV =0, P=J o3.程序计数器PC 的位数是」6位,因此它可对64KB 的程序存储器进行寻址。
4.堆栈操作遵循的原那么是先入后出。
5 .如果堆栈指针SP 指向30H 单元,那么在执行一次入栈指令和两次出栈指令后,(SP)= 2FHo6. 8051的机器周期等于12个时钟振荡周期。
7. 8051的晶振频率为24MHz,那么一个机器周期为2”。
8 . 8051的晶振频率为12MHz,那么ALE 引脚的输出频率为2MHz 。
9 .复位后,堆栈指针SP 的内容为07H ,程序计数器PC 指向程序存储器的地址为 0000H , P0〜P3 口的状态为FFH 。
10 .在RST 引脚持续加上2个机器周期以上的高电平,系统才能可靠复位。
11 .微型计算机的存储器有两种基本结构:一种是将程序和数据合用为一个存储器空间, 称为普利斯顿结构;另一种是将程序存储器和数据存储器截然分开,称为哈佛结构。
12 .当STC89C52RC 的函引脚接高电平时,优先寻址片内ROM 的0000H 〜1FFFH 单 元;而当地址范围超出低8K B 之外时,自动转向访问片外ROM 从2000H 开始编址的存 储单元,且最多可以扩展的片外存储容量为56KB 。
13 .复位后,自动选择第 Q 组工作寄存器组,堆栈指针SP 指向该组的工作寄存器上2。
14 .如果选择第」一组工作寄存器组,那么需要设置状态位RS1RS0为“01”,当前工作寄 存器R0〜R7的地址为08H 〜0FH 。
15.片内RAM 的20H 〜2FH 单元为位寻址区,这一区域包含」2幺个可寻址位。
16.位寻址区中20H 单元D7位的位地址表示为 17 . 8051有4个8位双向并行I/O 口,其中唯一的单功能□为P1 口。
目录实验一单片机仿真开发系统的使用 (2)1.1 Keil C51 集成开发环境介绍 (2)1.2 用Proteus仿真软件 (6)1.3 实现单片机最小系统的简单应用。
(8)实验二显示及驱动电路设计用 (10)实验三简单输入/输出实验 (12)实验四外部中断的运用 (14)实验五单片机内部定时/计数器实验 (15)实验六串行口通信设计 (17)实验七直流电机控制 (18)实验八步进马达控制 (19)实验一单片机仿真开发系统的使用1.1 Keil C51 集成开发环境介绍①、运行keil C51编辑软件,软件界面如图1-1所示②、建立一个新的工程项目单击Project菜单,在弹出的下拉菜单中选中New Project选项③、保存工程项目a、选择要保存的文件路径,输入工程项目文件的名称,如保存的路径为C51文件夹,工程项目的名称为C51,如图所示,单击保存b、为工程项目选择单片机型号在弹出的对话框中选择需要的单片机型号,如图所示,这里选择51核单片机中使用较多的89S51,选定型号后,单击确定,出现如图所示的开发平台界面④、新建源程序文件在下图中单击“File”菜单,选择下拉菜单中的New选项,新建文件后得到如图的界面:⑤、保存源程序文件单击“File”菜单,选择下拉菜单中的Save选项,在弹出的对话框中选择保存的路径及源程序的名称,如图所示。
此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了,建议首先保存该空白的文件,单击菜单上的“File”,在下拉菜单中选中“Save As”选项单击,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入欲使用的文件名,同时必须键程序录入区域入正确的.扩展名。
注意,如果用C语言编写程序,则扩展名为(.c);如果用汇编语言编写程序,则扩展名必须为(.asm)。
然后,单击“保存”按钮⑥、为工程项目添加源程序文件在编辑界面中,单击“Target”前面的“+”,再在“Source Group”上单击右键,得到如图所示的对话框,选择“Add File to Group’Source Group 1’”,弹出如图所示的对话框,选中要添加的源程序文件,单击“Add”,得到如图所示的界面,同时,在“Source Group 1”文件夹中多了一个添加的“Text1.c”文件。
实验一并行输入输出口的使用一、实验目的:学会设计proteus 7仿真电路,学习P1口的使用方法和延时子程序的编写用Keil uVision 3编程实现发光二极管的流水点亮。
二、实验原理:P1口为8位准双向I/O口,它的每一位都可以分别定义为输入线或输出线(作为输入时,口锁存器必须置1)。
P1口作为输出,接8个发光二极管D1~D8三、实验代码:#include<reg51.h>#include<intrins.h> //移位库函数包含于此头文件中void delay(unsigned int d) //定义延时子函数{ while(--d>0);}void main(){ unsigned char i,sel;while(1){ sel=0xfe;for(i=0;i<=8;i++){ P1=sel; //显示变量赋给P1口delay(50000); //延时sel=_crol_(sel,1); //改变显示变量}}}四、实验结论:用while语句实现发光二极管循环流水点亮,从上到下一次点亮。
实验二C51分支程序设计一、实验目的:学习多分支选择结构和switch语句,了解循环的嵌套。
二、实验原理:do while 循环先执行后判断是否循环,switch括号中的表达式的值与某case后的常量表达式的值相同时,就执行它后面的语句,遇到break语句则退出switch语句。
本实验仿真电路图、流程图如下:(仿真电路图)(流程图)三、实验代码:#include <reg51.h>void main(){ char a;do{ P1=0xff;a=P1;a=a&0x03;switch(a){ case 0:P2=0x0e;break;case 1:P2=0x0d;break;case 2:P2=0x0b;break;case 3:P2=0x07;break;}}while(1);}四、实验结论:多分支选择的switch/case语句,可直接处理并行多分支选择问题,从匹配表达式的括号开始执行,不再进行判断。
单片机原理与应用基于C51及Proteus仿真课程设计一、课程设计综述1.1 课程设计目的本课程旨在学习单片机的基本原理和应用,并采用C51单片机和Proteus仿真软件进行课程设计,从而使学生能够掌握单片机的应用和仿真技术。
1.2 课程设计内容本课程包括以下几个部分:1.单片机基本原理2.Keil C51单片机编译器的使用3.单片机电路设计基础4.基于C51的单片机应用程序编写5.Proteus仿真技术1.3 课程设计学时本课程为64学时。
二、课程设计教学方法2.1 教学形式本课程采用面授和实验相结合的教学形式。
面授部分主要讲解单片机基本原理和基于C51的单片机应用程序编写;实验部分主要通过Proteus仿真软件进行实现。
2.2 实验设计实验设计具体包括以下几个方面:1.使用Keil C51编译器编写简单的单片机程序2.加入单片机外设并编写相应的程序3.制作简单的电路并进行仿真4.接口编程实现多个模块之间的通信2.3 学生自主设计本课程不仅要求学生完成老师布置的实验,而且要求学生自主设计单片机程序,并完成相应的仿真。
三、课程设计教学难点与重点3.1 难点本课程设计的教学难点主要有以下几个方面:1.单片机原理的学习2.Keil C51编译器的使用3.Proteus仿真技术的应用3.2 重点本课程设计的教学重点主要有以下几个方面:1.单片机应用程序的编写2.仿真实验设计和仿真数据分析四、课程设计实验器材实验器材主要由以下内容组成:•单片机主板•串口调试助手•USB数据线•LED灯•按键开关•电阻、电容等元器件•电路板•PC机五、课程设计评分标准5.1 总分总分100分,其中实验分占60分,课程论文占40分。
5.2 实验分实验分包括设计+仿真+实验操作三个方面,其中设计分占30分,仿真分占15分,实验分占15分。
5.3 课程论文课程论文满分为40分,主要分为以下几个方面:1.论文格式,4分2.论文要求,6分3.技术要求满足程度,10分4.技术难度和创新,10分5.实用性及可行性,10分六、课程设计参考书目1.《Keil C51单片机编程与实例分析》2.《Proteus仿真技术详解》3.《单片机原理及应用》七、结语以上为本课程设计的整体方案和教学内容。
单片机原理及应用C51编程+Proteus仿真第二版教学设计前言单片机作为一个流行的嵌入式系统开发工具,被广泛应用于各个领域。
同时,C语言作为一种广泛应用于嵌入式系统编程的高级语言,也成为了单片机开发的主要方式。
本文将介绍单片机原理及应用C51编程+Proteus仿真第二版教学设计。
教学目标本教学设计的目标是使学生掌握以下内容:1.学习单片机基本运行原理及其应用;2.掌握C51编程方法;3.熟悉Proteus仿真工具;4.实现单片机项目开发、调试及运行。
教学内容第一章单片机基本原理本章将介绍单片机的基本概念、基本构成及其工作原理。
包括:1.单片机的发展历程;2.单片机基本概念及体系结构;3.单片机存储器及其使用;4.单片机输入输出及中断机制。
第二章 C51编程及编译本章将介绍C语言在单片机编程中的应用,包括:1.C51编程环境搭建及程序框架;2.C语言基础知识及语法;3.单片机中断编程;4.C51编译及烧录操作。
第三章 Proteus仿真工具本章将介绍Proteus仿真工具的基本概念及使用方法,包括:1.Proteus软件环境搭建;2.Proteus元器件选用及电路连接;3.Proteus仿真参数设置及仿真操作;4.故障排除及仿真结果分析。
第四章单片机应用实例本章将介绍单片机在实际开发中的应用实例,包括:1.键盘输入及显示控制;2.温度传感器数据采集及处理;3.LED灯控制及存储器应用;4.其他应用扩展实例。
教学方法本教学设计将使用多种教学手段,包括:1.理论授课:通过PPT及黑板讲解单片机原理、C语言编程及Proteus仿真工具使用方法等;2.实验操作:通过实验操作,让学生掌握单片机开发流程,熟悉各种开发工具的使用方法;3.课后作业:布置课后作业,以巩固学生学习成果。
教学资源本教学设计除了PPT外,还将提供以下资源:1.单片机芯片及相应开发板;2.C51编程及烧录软件;3.Proteus仿真软件;4.相应开发板的电路连接图、程序框架及注意事项。