第1步:打开Keil uVision2/3
第2步:新建工程
project-new project
将弹出 creat new project框,写入工程名称,例如 test。为了便于集中管理建议新建一个文件夹(上面第二个图标)。
点击确定后 弹出一个芯片选择项,你可以选一个。例如选atmel AT89C51。很多单片机,上面可能没有列举,我们任意选一个即可,51单片机选AT89C51代表即可。
然后 弹出一个框,选择“否”
第3步:新建文件。
file--new
将弹出一个文本框,你可以写入程序。例如
#include reg51.h
main()
{
P1=0XAA;
}
然后保存这个文件
file--save
弹出框save as 填写你要保存的文件名。例如main.c。注意一定要带上后缀.c。切记
第4步:加载程序。把我们编写的c文件加载进入
看到左边 source group1,点击右键,选择倒数第四项 “add files....”进入add框,选择你刚才保存的main.c文件,然后add
看到 左边source group1下面是不是加载上main.c了
第5步:编译。
编译前要进行一个重要的操作。生成HEX文件。
右边 target 1 右键弹出框,找到output,再找到creat hex fi:前面复选框选中 OK
开始编译了,
project--build target或者按F7或者看到上面图标(一个图标有两个方向向下的箭头)
编译的时候,你会发现最先面编译结果,0 Errors
恭喜你,你已经成功编译了程序。
打开你先前建立的test文件夹,你会发现有个test.hex文件
记住步骤,慢慢就很熟练了,用快捷方式或图标更方便
你说你用89c51单片机是stc还是ATmel的。给你一重STC89C系列的吧(你可参照宏晶科技网址)
下载程序上面有一步一步教你,至于MCU和PC怎么相连,这系列单片机用串口下程序,看看就明白了,相信你是聪明人
祝好
补充说明:
1、对于atmel公司的AT89C51需要用专门的编程器才能下载,AT89S51/2可以自己做个下载线,只用一个74LS373锁存器既可,若需要,在给你说,相对麻烦些。再说AT89单片机几乎停产了吧
2、宏晶科技的STC单片机现在用的比较多,价格便宜,你可以到它官方网站看下,有些地方或许我说的不是很完整。
STC89c单片机用串口就可以下载,就是电脑后面九芯座(笔记本没有的,需要USB转串口)、单片机电路上有一个max232电平转换芯片即可,电路连接非常简单。宏晶科技说明书上都有,(我说了也是从它那上面抄的,你自己找下吧),这个电路网上或书上都有,非常 成熟的电路。
PC机下载软件,宏晶科技网站上也有,下一个就OK了,
如果你需用AT89C51或AT89S51也要PC软件,不是很好找
STC下载软件怎么用呢,很简单,
1、选择芯片(下拉框里面选择)-----打开程序文件(找到你要写的HEX文件)---点击下载按钮
注意!!!点击下载按钮后,再给单片机上电,如果单片机带电点击下载按钮,将不能写入。
OK
希望对你能有帮助
按总线分有:8位机、16位机、32位机、64位机。
单片机的发展先后经历了4位、8位、16位和32位等阶段。8位单片机由于功能强,被广泛用于工业控制、智能接口、仪器仪表等各个领域,8位单片机在中、小规模应用场合仍占主流地位,代表了单片机的发展方向,在单片机应用领域发挥着越来越大的作用。
80年代初,Intel公司推出了8位的MCS-51系列的单片机。MCS-51单片机的逻辑部件,包括一个8位CPU及片内振荡器、 80514B掩膜ROM、87514KBEPROM、8031无ROM。
特殊功能寄存 器SFR128BRAM、定时器/计数器T0及T1、并行I/O接口:P0、P1、P2、P3;串行接口:TXD、RXD;中断系统:INT0,INT1。
扩展资料
硬件特征
1、单片机的体积比较小, 内部芯片作为计算机系统,其结构简单,但是功能完善,使用起来十分方便,可以模块化应用。
2、单片机有着较高的集成度,可靠性比较强,即使单片机处于长时间的工作也不会存在故障问题。
3、单片机在应用时低电压、低能耗,是人们在日常生活中的首要选择, 为生产与研发提供便利。
4、单片机对数据的处理能力和运算能力较强,可以在各种环境中应用,且有着较强的控制能力。
参考资料来源:百度百科-单片机
段码就是0-9,位码就是每个数字的公共端点。开关位码就可以显示或关闭对应的数字。 动态显示的原理就是用单片机把段码送给数码管,然后点亮相应的位码。比如你可以考虑建立一个数组放090601,然后由程序先送出0,然后点亮第一位关闭其他位延时,然后送9点亮第二位关闭其他位延时...交替循环,延时不要太久,差不多就这样啦。
uchar
code
display_P0[]={
0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,//P0口由低位向高位依次亮灯(前一位的灯灭)
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,//P0口灯全灭
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,,//P0口灯全灭
0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF,//P0口由高位向低位依次亮灯(前一位的灯灭),最后全灭
0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00,//P0口由低位向高位依次亮灯(前一位的灯b不灭)
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//P0口灯全亮
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//P0口灯全亮
0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,
//P0口灯由高位向低位依次灭(前一位不亮),最后仅剩最低位亮灯。
0xFC,0xF9,0xF3,0xE7,0xCF,0x9F,0x3F,0x7F,//P0口以两个亮灯为单位,由低位向高位逐位移动,最后移至最高位,仅剩最高位亮灯。
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
//P0口全灭
0xE7,0xDB,0xBD,0x7E,0xBD,0xDB,0xE7,0xFF,//P0口中间两位亮灯,然后两个亮灯分别向两端移动,当分别移至最高位和最低位时,再按原方法返回,返回至起始状态后全灭。
0xE7,0xC3,0x81,0x00,0x81,0xC3,0xE7,0xFF,//P0口中间两位亮灯,然后两个亮灯分别向两端扩散,当分别扩散至次高位和次低位时,再按原方法恢复,返回至起始状态后全灭。
0xAA,0x55,0x18,0xFF,0xF0,0x0F,0x00,0xFF,//差位两灭,先是最高位亮,然后最高位灭;再变成中间两位灭,其余的全亮;全灭→低四位亮→高四位亮→全灭。
0xFF,0x00,0x00,0xFF,0xFF
};//全灭→全亮→全亮→全灭→全灭
uchar
code
display_P2[]={
//P2口可参照P0口流水灯情况。基本相同。
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,
0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00,
//
0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
//
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,
0xFC,0xF9,0xF3,0xE7,0xCF,0x9F,0x3F,0xFF,
//
0xE7,0xDB,0xBD,0x7E,0xBD,0xDB,0xE7,0xFF,
0xE7,0xC3,0x81,0x00,0x81,0xC3,0xE7,0xFF,
0xAA,0x55,0x18,0xFF,0xF0,0x0F,0x00,0xFF,
0xFF,0x00,0x00,0xFF,0xFF
};
#include"89c51/io,h" 是不是写错了?应该是#include"89c51/io.h" 吧
两个写法当然不一样,区别在于""和,表示头文件在编译器的安装目录底下,一般都是编译器自带的头文件;""表示头文件在当前工程的目录底下,一般都是自己写的头文件
89c51单片机程序后缀的介绍就聊到这里吧,感谢您花时间阅读,谢谢。
本文标签:89c51单片机程序后缀