推荐阅读最新更新时间:2024-03-16 16:19
Keil_C51里面lib文件生成和调用方法
一、工程说明: .xh工程是生成C51lib文件的工程项目。 2.BLINKY工程是调用生成的lib文件的工程。 3.此工程是根据keil下的samples的BLINKY工程改编而来。 4.生成lib的方法是要在.c和.h文件中都要把函数声明为extern开头的函数。 5.文件中的函数要声明在 #ifndef ... ....... #define ... .......... #endif 中。 6. 在引用工程中要将lib文件添加到工程文件中,并在程序中添加生成lib文件的.h文件。 7、xh.h和xh.c是产生的xh.lib的源代码;BLINKY.C是调用xh.lib的源代码。 二、工程源代码: 1、xh.h
[单片机]
简析STM32的启动过程
当前的嵌入式应用程序开发过程里,C语言已成为了绝大部分场合的最佳选择。如此一来main函数似乎成为了理所当然的起点——因为C程序往往从main函数开始执行。但一个经常会被忽略的问题是:微控制器(单片机)上电后,是如何寻找到并执行main函数的呢?很显然微控制器无法从硬件上定位main函数的入口地址,因为使用C语言作为开发语言后,变量/函数的地址便由编译器在编译时自行分配,这样一来main函数的入口地址在微控制器的内部存储空间中不再是绝对不变的。相信读者都可以回答这个问题,答案也许大同小异,但肯定都有个关键词,叫“启动文件”,用英文单词来描述是“Bootloader”。 无论性能高下,结构简繁,价格贵贱,每一种微控制器(
[单片机]
程序结构理解(2) 以stm32为例
stm32启动流程分析 这个是一个汇编与c语言结合的流程 stm32入口为 startup_stm32f10x_hd.s (即第一个执行的文件) 在这个文件中首先定义定义CSTACK数据段和.intvec代码段还有全局函数和全局变量 然后就是向量表 在然后就是向量表中的定义了各个函数。 同时复位函数作为程序运行的第一个函数 里面设置了时钟和main入口等 就这样进入了main 然后就调用了各个外设资源 流程大致总结如下 大概意思就这样吧
[单片机]
C51单片机学习笔记(一)——搭建开发环境及烧写工具
1.搭建软件开发环境及使用(Keil uVision) 目前常用的有Keil uVision2、Keil uVision3、Keil uVision4,这些软件可以很方便的在网络上下载,我这里使用的是Keil uVision4. ** 1. 创建一个工程:(以点亮一个发光二极管为例) 菜单点击Project - New uVision Project ,给工程命名、选择储存位置然后保存 选芯片,根据自己的单片机型号选择对应的芯片,我使用的是AT89C52 之后弹出 是否将系统自带的初始化文件添加到工程?一般选择是,这是主界面左边Project面板会显示新建的工程。 新建源程序文件 点击File - New ,在软件
[单片机]
C51单片机0~60计数器
源码 #includeunsigned char code table ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char second=0; bit a=0; char t=0; int0_srv() interrupt 1{ t++; if(t==20){t=0;a=1;} TH0=0x3c; TL0=0xb0; } main(){ P0=P2=table ; TMOD=0x01; TH0=0x3c; TL0=0xb0; ET0=1; EA=1; TR0=1; while(1){ if(a){
[单片机]
用C语言写一个LCD1602驱动显示程序
#define MAIN_Fosc 22118400L #include STC15Fxxxx.H sbit P_HC595_SER = P4^0; sbit P_HC595_RCLK = P5^4; sbit P_HC595_SRCLK = P4^3; u8 hour,minute,second; void DisplayRTC(void); void RTC(void); void delay_ms(u8 ms); void DisableHC595(void); void Initialize_LCD(void); void Write_AC(u8 hang,u8 lie); void Write_DIS_Data(u8
[单片机]
51单片机C语言学习1
51单片机C语言学习 学习单片机实在不是件易事,一来要购买高价格的编程器,仿真器,二来要学习编程语言,还有众多种类的单片机选择真是件让人头脑的事。在众多单片机中51架构的芯片风行很久,学习资料也相对很多,是初学的较好的选择之一。51的编程语言常用的有二种,一种是汇编语言,一种是C语言。汇编语言的机器代码生成效率很高但可读性却并不强,复杂一点的程序就更是难读懂,而C语言在大多数情况下其机器代码生成效率和汇编语言相当,但可读性和可移植性却远远超过汇编语言,而且C语言还可以嵌入汇编来解决高时效性的代码编写问题。对于开发周期来说,中大型的软件编写用C语言
[单片机]
Tensilica 授权Epson公司Xtensa可配置处理器内核和XPRES编译器
美国加州 SANTA CLARA 2006 年 6 月 7 日讯 – 可配置处理器供应商 Tensilica 公司 日前宣布授权其 Xtensa 可配置处理器内核和 XPRES 编译器给 Seiko Epson 公司。 Seiko Epson 公司图像产品业务部 IJP 设计处总经理 Katsuhiko Nishizawa 表示,“ Xtensa 可配置处理器实现了更加快捷、方便地设计复杂 SoC ,尤其 XPRES 编译器的使用相比传统的 RTL 手工编码方式设计复杂 SoC 更加快捷、简易。加上 Xtensa 处理器内核是可编程的,因此对未来的产品和应用颇具价值。” Epson 的工程师们
[焦点新闻]