1. 在Keil
编写好程序以后,在左侧项目栏中单击鼠标右键,如下图
2.点击上图中Options for Target’Target1’
选项,弹出下列窗口
3.在Target标签中将Xtal(MHz)中的晶振频率改为12.0;再在Output标签中勾选Create HEX Fi复选框。
完成上面两项设置后点击确定。
4.再点击编译,生成Hex
文件。
5 再在Proteus中双击的51芯片,弹出下列窗口,按下图修改晶振频率,添加需要运行的C语言生成的hex文件即可运行。[page]
#include
#define uchar unsigned char
#define uint unsigned int
#define DB P1
sbit RS=P2^0;
sbit rw=P2^1;
sbit en=P2^2;
uchar code ttt[]="Tel:123456789";
uchar code ggg[]="address:Xi'an dianziyuan";
/******************************************************
1602液晶显示必须的几个函数:
1.初始化函数,清屏,设置从头显示,字符状态,光标状态等
2.写命令函数,显示的位置,方式
3.写数据函数,要显示的内容
4.延迟函数
5主函数
****************************************************/
void LCDinit(void);
void delay(uchar x);
void writecom(uchar com);
void writedat(uchar dat);
void LCDinit(void)
{
writecom(0x38);
writecom(0x0c);
writecom(0x06);
writecom(0x01);
delay(100);
}
void writecom(uchar com)
{
DB=com;
RS=0;
rw=0;
en=1;
delay(5);
en=0;
}
void writedata(uchar dat)
{
RS=1;
rw=0;
en=0;
DB=dat;
en=1;
delay(5);
en=0;
}
void delay(uchar x)
{
uint i=0;
while(x--)
{
for (i=0;i<100;i++);
};
}
void main(void)
{
LCDinit();
while(1)
{
uint i=0;
writecom(0x80+10);
for (i=0;i<9;i++)
{
writedata(ttt[i]);
delay(1000);
}
writecom(0xC0+5);
for(i=0;i<24;i++)
{
writedata(ggg[i]);
delay(1000);
}
}
关键字:Proteus Keil 51单片机 C语言
引用地址:
Proteus运行Keil编写的51单片机C语言步骤
推荐阅读最新更新时间:2024-03-16 14:04
Keil MDK使用第5篇---解决st-link 不能用状态
一直用的好好的 ,突然st-link不能用了,出现下边这个情况,上网一查很多人都有这个问题,就研究了下。 注意:因为是一直可以使用,所以这里不再赘述是否没有驱动的问题,这其实应是第一步检查的。 首先应排除硬件问题,若使用为台式机,可以试试使用背部面板USB口。 然后就是降低传输速率,确认使用下载方式正确。 还是不可以,可以按照以下步骤检查。 1.首先先检查连线,然后检查keil下载配置(这里不再赘述,参见另一篇博文《keil下载配置》) 2.还是不行的话,就试试下边的方法 首先,翻译下错误:internal command error 内部命令错误 找了几种方法都是可以的。原理其实差不多,根据自己情
[单片机]
51单片机与PC上位机串口通信之LED控制
PC机通过上层软件控制单片机LED的亮灭或者控制LED的闪烁及闪烁时间,上层软件用户名密码均为admin 注意PROTEUS串口仿真需要配合虚拟串口软件才能工作 上位机(包含源码)软件说明: 发送数据解析 字节1、2:0x55 0xaa 数据是否正确判断标志 字节3: 0x01 ------单个LED控制手动控制 0x02 ------单个LED控制自动闪烁 字节4 此字节从低位到高位依次控制LED0-LED7,例如0x01表示手动点亮LED0或者LED0自动闪烁;0x28表示手动点 亮LED3、LED5或者LED3、LED5自动闪烁 字节5、6:表示闪烁时间(6高8位 5低8位)
[单片机]
C语言一百例第十例
代码: /* C语言第十例 题目:打印楼梯,同时在楼梯上方打印两个笑脸。 程序分析:用 ASCII 1 来输出笑脸;用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。 */ #include stdio.h void main(void) { int a,b; printf( 11n ); //效果是一样的 for(a=0;a 10;a++) //不再赘述 { for(b=0;b =a;b++) //每一行有a个字符 { printf( %c%c ,3,3); } printf( n ); } } 运行结果:
[单片机]
中值滤波示例51单片机汇编语言子程序
;;入口:第1、2、3次采集数据位次存于R1、R2、R3, ;;出口:比较所得中值数据存于R0, Filter_C: PUSH PSW MOV A, R1 CLR C SUBB A, R2 ;;R1与R2作相减 JNC LP1 ;;若R1≧R2,不交换 MOV A, R1 ;;若R1 R2, 交换 XCH A, R2 MOV R1, A LP1: MOV A, R3 CLR C SUBB A, R1 JNC LP3 MOV A,
[单片机]
51单片机带闹钟可调时间的电子时钟程序设计
硬件部分 基于51单片机、 ds1302时钟芯片、 ds18b20温度芯片、 以及1602液晶显示的 实时时间 和 实时温度显示 。同时可通过按键 设置 年、月、日、时、分、星期。 并且可以设置闹钟 当闹钟时间到时 蜂鸣器持续发出 滴..声 同时led灯不停闪烁 且在一分钟内没有按指定停止按键 闹钟将自动停止 。。。 软件部分 如果网页上复制的代码不能编译可以从这里下载keil工程: http://www.51hei.com/f/dszdec.rar #include reg52.h #define uchar unsigne
[单片机]
点阵式LED滚动汉字显示屏的Proteus仿真设计
1.引言 点阵式LED组成的汉字显示屏在公共场所应用非常广泛。例如,车站发车时间提示、股票大厅中的股票价格显示板、商场的活动广告栏、候机厅的起飞时间表。点阵显示器的特点是可以按照需要的大小、形状和颜色进行组合,用单片机控制实行各种文字或图型的变化,达到广告宣传和提示的目的。 Proteus是一款新颖的嵌入式系统软硬件设计仿真平台,特别适用于单片机仿真,能够在线、实时仿真多种类型的单片机,诸如MCS-51系列单片机、PIC单片机、AVR单片机等,能够像硬件仿真器一样进行软硬件调试,而没必要花钱去购买和维护价格不菲的仿真器,对于初学单片机的人来说,既减少了学习成本,又达到了良好的学习效果。 2.硬件电路设计
[电源管理]
ads+jlink和keil+jlink调试环境配置
/***********************************************************************************************************************************************************************/ ads1.2 and jlinkv8 1.安装ads1.2和jlink驱动Setup_JLinkARM_V408i.exe 安装ads1.2时,最后在100%时如果持续时间长,耐心等一下吧。 没有等待而点了cancel,则之后就不好重装了。解决办法见 http://blog.ednchina.co
[单片机]
一种基于51单片机控制的数字视频混合器
近几年,数字电视技术发展很快,数字视频混合器可以将两路或多数数字视频信号按照一定的算法混合成一路或多路数字视频信号。作为数字视频信号的基本处理单元,该混合器在数字电视节目的编辑制作和播控传输系统中具有举足轻重的作用。 本文介绍的基于单片机控制的数字视频键控混合器具有以下特点:内含两级串联的键控混合器,可以在主信号中键两入两路附加数字信号,如时钟台标或各种字幕标识;可以远程遥控,也可现场按键控制;可以随时更新和保存系统配置,改变系统功能和技术参数;该系统稳定可靠,对掉电、死机等异常现象有自复位能力。 整个系统包括硬件和软件两部分,硬件包括数字混合部分和单片机控制部分。 1 数字混合部分 输入的数字信号有背景信号、键控信号和填
[单片机]