




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一:相信很多人碰到uVision编辑中文字体错位的问题。下面给出一个解决方案Edit = Configuration = Colors & Fonts(有些是在view=options里面,自己找一下)选择需要修改字体的项目, 点击Font选择框,在Font对话框里面选择Font: FixedsysSize: 10 (此处很重要)EDIT-Configuration-Colors&Fonts在左边windows窗口中选 8051:Editor C Files,然后在中间Element窗口中选Text,接着在右边Font窗口点Courier New.,最后选一个字体和大小,一路OK就行了。确定后回到源代码,输入汉字,OK,汉字显示问题解决了BTW: 汉字在注释,或者字符串中才能正确显示,这是uVision的一个限制。一般如果Keil不修改配置文件的话,应该要默认装在C盘根目录下,当然也可以装在其他任何路径下,只需要修改Keil安装根目录下的tool.ini文件中的路径参数:PATH=C:KeilC51如果你要装在其他路径的话,把其他路径的完整路径写到双引号之间。修改Keil路径并不是不能安装keil的原因,而是解决在编译的时候,A51、BL51、CX51等都找不到而无法编译的问题。至于修改字体,非常方便,打开任何一个工程文件:(我这里直接说中文)(主菜单)“编辑” - “配置” - “颜色和字体”标签页,选择你要修改字体相应的“窗口”和“元素”后,点击右边的“字体”,就能设置字体了,我用到现在,个人感觉字体“Fixedsys”10号比较不错,当然别人可能有别的感觉,呵呵。二:为什么在Keil uVision4中找不到AT89C51芯片?你装的是keil MDK,MDK是征对于ARM芯片的,你没装C51的安装包C51V905,装了之后就可以找到了。另外它们两个可以装在同一路径下的。我是因为安装了个叫MDK的软件,建立工程时发现没有AT89C51芯片。后来把它卸了,从新下载了个Keil C51的软件,装起来之后就可以找到AT89C51了。三Keil uVision2里面怎么调节字体?点击工具栏上的Configuration按钮,找到Colors & Fonts标签,在左侧的windows框中选择是C文件还是Asm文件,以C为例,选择中间的Element框中的/*Comment*/(或是别的都行),然后在右侧即可进行字体属性设置。四:keil uvision4中如何使用查找功能 比如在main.c中定义了一个函数delay并多次使用,可能第一查找到的delay快捷键:F3五:在Keil uvision4中使用C语言进行编程,在进行debug调试时,反汇编窗口都是nop,无法单步执行? 你先确认一下项目编译是否正常,是否生成了目标文件六:keil uVision4一些使用总结(汉字注释,C关键字等)问题一:keil中没有STC的东西解决: 方案一:使用Atmel 89C52。若使用STC的特有功能,单独指定头文件 方案二:从STC官方主页下载UV3.CDB文件(2012-08-21为UV3.CDB),放到安装目录下。虽然是3的,不过我放到4下也可以。 添加方法A 直接将UV3.CDB改成UV4.CDB覆盖安装目录下文件。这样下次启动keil只有STC的。(未自己测试,仅记录) 添加方法B 将UV3.CDB重命名为STC.CDB放到安装目录下的UV4。并修改UV4的上级目录下的TOOLS.INI文件,在 BOOK0=UV4RELEASE_NOTES.HTM(uVisionReleaseNotes)下面加入CDB0=UV4STC.CDB(STCCPUDataBase) 即可。 这样下次启动keil的时候,会提示选择数据库选项。需要STC选择STC,或者选择原来的。问题二:keil中无法输入中文注释解决:方案一:英文状态下输入/。在英文状态下的引号内输入中文注释 方案二:菜单工具栏中。Edit-configuration 去掉Use Color in Comments方框中的勾。正常显示:在大量使用中文注释的情况下,感觉第二个方案比较好,可以省去很多的问题三:keil中C的关键字没有颜色显示解决:类似问题二修改foreground为自己喜欢的颜色即可七,STC89C52RC单片机是否可以包含reg51.h这个头文件,为什么?可以包含,原因如下: Reg51.h,看名字相信你也明白,是关于51寄存器的,说白了一点,Reg51.h是关于最基本的51单片机的SFR定义的,比如IO口,定时器,串口等等相关的特殊寄存器的定义,所以,REG51.H相对来说应用广泛,因为他是最基础的单片机的定义,差不多所有的51单片机都可以包含他。 STC89C52也是51单片机中的一种,自然也可以包含这个文件。用KEIL编译STC单片机的程序时,如果没有用到STC单片机在51的基础上添加的一些寄存器和中断,头文件可以直接用51的reg51.h或reg52.h,如果用了添加的功能就必须在头文件中增加定义,我根据STC单片机网站提供的资料整理成头文件,大家可以从下面的链接下载:八,STC89C52定时器使用方法STC89C52定时器使用方法定时器/计数器0 和定时器/计数器1 都可以在方式0、方式1、方式2 工作,而方式3 只有前者才能工作。1. 方式 0当TMOD 中M1、M0 都为0 时,T/C 工作在方式0。方式0 为13 位的T/C,由TH 提供高8 位,TL 提供低5 位,注意TL 的高3 位是无效的,计数溢出值为2 的13 次方=8192,启动该计数器需要设置好计数初值。当C/- T该位为0 时,T/C 为定时器,振荡源12 分频的信号作为计数脉冲;当C/- T该位为1 时,T/C为计数器,对外部脉冲输入端的T0 或T1 引脚进行脉冲计数。计数脉冲能否加到计数器上,受启动信号的控制。当GATE=0 时,只要TR=1,则T/C 启动;当GATE=1时,启动信号受到TR 与INT 的双重控制。T/C 启动后立即加1 计数,当13 位计数满时,TH 向高位进位。此进位将中断溢出标志TF 置位即TF=1,产生中断请求,表示定时时间或计数次数到达。若T/C 开中断(ET=1)且CPU 开中断(EA=1),则当CPU 自动转向中断服务函数时,TF 自动清零,不需要人工软件清零。2. 方式 1当TMOD 中M1、M0 为0、1 时,T/C 工作在方式1。方式1 与方式0 基本相同,唯一不同的是方式0 是13 位计数方式,方式1 是16 位计数方式,TH 和TL 都同时提供8 位(方式0 时TL 只提供低5 位,高3 位无效),计数溢出值为2 的16 次方=65536。3. 方式 2当TMOD 中M1、M0 为1、0 时,T/C 工作在方式2。方式2 是8 位的可自动重装载的T/C,满计数值为2 的8 次方=256。在方式0 和方式1 中,当计数满后,若要进行下一次定时/计数,必须通过软件向TH 和TL 重新装载预置计数值。方式2 中TH 和TL 被当作两个8 位计数器。技术过程中,TH 寄存8 位初值并保持不变,由TL 进行8 位计数。计数溢出时,除产生溢出中断请求外,还自动将TH 中初值重装到TL,即重装载。除此之外,方式2 也同方式0。4. 方式 3方式3 只适合于T/C0。当T/C0 工作在方式3 时,TH0 和TL0 成为两个独立的计数器。这时,TL0可作定时器/计数器,占用T/C0 在TCON 和TMOD 寄存器中的控制位和标志位;而TH0 只能作定时器使用,占用T/C1 的资源TR1 和TF1。在这种情况下,T/C1 仍可用于方式0/1/2,当不能够使用中断方式。只有将T/C1 用作串行口的波特率方式器时,T/C0 才工作在方式3,以便增加一个定时器。5. T/C2的工作方式定时器/计数器2 包含一个16 位重载方式,T/C2 在计数溢出后,自动在瞬间重装载(像8 位自动重载方式2)。自动重载可由外部引脚T2EX 的负跳变开始,这样外部引脚用于产生和其他硬件计数器的同步信号。T/C2 可以看作看门狗或定时溢出的定时器。T/C2 还有捕获方式。把瞬时计数值传到另外的CPU 可读取的寄存器对(RCAP2H、RCAP2L)。这样,在读的过程中,两个字节的计数值无波动的危险。对于快速变化的计数,比如计数值在读取高字节时是16FF时,到读取低字节时已变到1700,结果却得到1600。若16FF 瞬间捕获到另外的寄存器,则可以在CPU空闲的时候取到16 和FF。#include stc.h /加载stc.h 头文件unsigned char i=0; /声明变量ivoid main(void) /主函数,程序是在这里运行的TH0=(65536-50000)/256; /计数寄存器高8 位TL0=(65536-50000)%6; /计数寄存器低8 位TMOD=0x01; /工作方式为16 位定时器ET0=0x01; /允许T/C0 中断EA=1; / 全部中断允许TR0=1; / 启动T/C0 运行while(1) / 进入死循环if(i7)i=0; /若i7,则i=0void Timer0IRQ(void) interrupt 1 /中断服务函数TH0=(65536-50000)/256; /计数寄存器高8 位重新载入TL0=(65536-50000)%6; /计数寄存器低8 位重新载入84P2=1i; /进入位移操作,熄灭相对应位的LEDi+; /i 自加1分析:T/C0 的初始化在main 函数中进行,在while(1)死循环当中,只有对i 变量检测,对LED 灯进行操作主要放置在T/C0 的中断服务函数Timer0IRQ,即P2=1i 就是对LED 灯进行操作。很奇怪,main()函数里面基本对单片机的操作什么都没有,只有对变量i 的检测操作,几乎是空载运作,但是为什么流水灯还是能够运行呢?那么答案只能有一个,Timer0IRQ()中断服务函数能够脱离主函数独立运行。大家很自然地想到为什么Timer0IRQ(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 岩土基础课课件
- 小龙虾水彩课件
- 输液泵应急预案脚本课件
- 小鸭子学游泳课件
- 商铺租赁合同终止及租赁物使用消防安全协议书范本
- 水稻-养殖一体化土地承包种植合同
- 小鸡家着火了课件
- 小食品调味培训课件模板
- 设备制造行业细分领域高端装备制造业发展策略分析报告
- 贪吃的变色龙课件
- T/CCOA 52-2023富硒小麦粉
- 2025年护士执业资格考试题库(社区护理学专项)护理法律法规知识试题卷
- 老人就餐免责协议书
- 应聘家教兼职简历
- 慢阻肺的健康教育讲座
- 光伏电站安全风险辨识及风险库管理制度
- 铁路机车防火安全教育
- 企业内训师培养与培训课程设计
- 网架防腐刷漆施工方案
- 《采矿方法的选择案例综述》1700字
- 新冀教版二年级数学上册教学计划与课程标准对接
评论
0/150
提交评论