单片机C语言应用程序设计针对目前最通用的单片机8051和最流行的程序设计语言——C语言,以KEII。公司8051单片机开发套件讲解单片机的C语言应用程序设计。该套件的编译器有支持经典8051及8051派生产品的版本,统称为Cx51。Windows集成开发环境μVision2把μVisionl用的模拟调试器dScope与集成环境无缝结合起来,使用更方便,支持的单片机品种更多。 本书的特点是取材于原文资料,总结实际教学和应用经验,实例较多,实用性强。本书中C语言是针对8051特有结构描述的,这样,即使无编程基础的人,也可通过本书学习单片机的c编程。单片机C语言应用程序设计目录第1章 单片机基础知识 1.1 8051单片机的特点 1.2 8051的内部知识 1.3 8051的系统扩展 习题一第2章 C与8051 2.1 8051的编程语言 2.2 Cx51编译器 2.3 KEIL 8051开发工具 2.4 KEIL Cx51编程实例 2.5 Cx51程序结构 习题二第3章 Cx51 数据与运算 3.1 数据与数据类型 3.2 常量与变量 3.3 Cx51数据存储类型与8051存储器结构 3.4 8051特殊功能寄存器(SFR)及其Cx51定义 3.5 8051并行接口及其Cx51定义 3.6 位变量(BIT)及其Cx51定义 3.7 Cx51运算符、表达式及其规则 习题三第4章 Cx51 流程控制语句 4.1 C语言程序的基本结构及其流程图 4.2 选择语句 4.3 循环语句 习题四第5章 Cx51 构造数据类型 5.1 数组 5.2 指针 5.3 结构 5.4 共用体 5.5 枚举 习题五第6章 Cx51 函数第7章 模块化程序设计第8章 8051内部资源的C编辑第9章 8051扩展资源的C编辑第10章 8051输出控制的C编程第11章 8051数据采集的C编程第12章 8051机间通信的C编程第13章 8051人机交互的C编程附录A μVision2集成开发环境使用附录B KEIL Cx51 上机制南
上传时间: 2013-10-21
上传用户:行者Xin
汉字字库的点阵提取程序可以从汉字字库中提取汉字的点阵,是一个编写液晶显示汉字的软件工具。
上传时间: 2013-12-31
上传用户:秦莞尔w
51单片机播放音乐编码程序,music encode,51mcu播放音乐编码程序
上传时间: 2013-11-09
上传用户:lalalal
单片机电子表原理图和C语言程序代码: select 成绩表.学号,学生信息.姓名,学生信息.学院专业 ,sum(成绩表.分数) 总分 ,avg(成绩表.分数) 平均分 from 成绩表,学生信息 where 学生信息.学号=成绩表.学号 group by 成绩表.学号,学生信息.姓名 ,成绩表.分数,学生信息.学院专业select 学生信息.学院专业 ,sum(成绩表.分数) 总分,avg(成绩表.分数) 平均分 from 成绩表,学生信息 where 学生信息.学号=成绩表.学号 group by 学生信息.学院专业 select 学生信息.学院专业,count(成绩表.分数) 不及格人数 from 成绩表,学生信息 where 学生信息.学号=成绩表.学号 and 成绩表.分数>60 group by 学生信息.学院专业,成绩表.分数
上传时间: 2014-04-03
上传用户:kaixinxin196
单片机汇编语言程序库内容有运算子程序,通讯子程序,扩展接口程序,中断服务子程序,代码转换,逻辑操作,数据结构,其他。
上传时间: 2013-10-09
上传用户:libinxny
§4-1 程序设计语言计算机程序设计语言是指计算机能够理解和执行的语言。 程序设计语言的种类很多,归纳起来有三种: 机器语言、汇编语言和高级语言。 编程时采用哪种语言由程序设计语言的特点和适用场合决定。 机器语言、汇编语言和高级语言比较一览表§4-2 汇编语言源程序格式汇编语言源程序格式如下:1、汇编语言源程序由一条一条汇编语句组成。2、每条汇编语句独占一行,以CR—LF结束。3、典型的汇编语句由四部分组成: 标号:操作码 操作数;注释§4-3 伪指令一、伪指令与指令的区别: 伪指令由汇编程序识别,用来对汇编过程进行某种控制,或者对符号、标号赋值。在汇编过程中, 伪指令不产生可执行的目标代码;而指令由CPU执行,在汇编过程中,产生可执行的目标代码,完成对数据的运算与处理。二、常用的伪指令:ORG END EQU DATA DB DW DS §4-4 汇编语言程序设计基础一、汇编语言程序设计的一般步骤 分析课题 确定算法 画流程图 编写程序 上机调试二、程序结构 按程序的走向可以将程序分成4种结构: 简单程序 分支程序 循环程序 子程序
上传时间: 2013-10-15
上传用户:daoxiang126
微机原理与汇编语言程序设计课件为PPT文件,内容有:第1章 基础知识 4第2章 微型计算机系统结构 6第3章 程序加载并执行 4第4章 微处理器一般指令 6第5章 汇编语言程序设计基础 4第6章 算术运算与逻辑运算 8第7章 基本输入与输出 4第8章 程序流程控制 10第9章 字符串处理 6第10章 宏 4第11章 过程 4第12章 文件处理 4第13章 模块化程序设计 4
上传时间: 2013-10-28
上传用户:yanming8525826
16 16点阵显示汉字原理及显示程序 #include "config.h" #define DOTLED_LINE_PORT PORTB #define DOTLED_LINE_DDR DDRB #define DOTLED_LINE_PIN PINB #define DOTLED_LINE_SCKT PB1 #define DOTLED_LINE_SCKH PB5 #define DOTLED_LINE_SDA PB3 #define DOTLED_ROW_PORT PORTC #define DOTLED_ROW_DDR DDRC #define DOTLED_ROW_PIN PINC #define DOTLED_ROW_A0 PC0 #define DOTLED_ROW_A1 PC1 #define DOTLED_ROW_A2 PC2 #define DOTLED_ROW_A3 PC3 #define DOTLED_ROW_E PC4 uint8 font[] = { /*-- 调入了一幅图像:这是您新建的图像 --*/ /*-- 宽度x高度=16x16 --*/ 0x00,0x00,0x00,0x00,0x08,0x38,0x18,0x44,0x08,0x44,0x08,0x04,0x08,0x08,0x08,0x10, 0x08,0x20,0x08,0x40,0x08,0x40,0x08,0x40,0x3E,0x7C,0x00,0x00,0x00,0x00,0x00,0x00 }; static void TransmitByte(uint8 byte); static void SelectRow(uint8 row); static void FlipLatchLine(void); static void TransmitByte(uint8 byte) { uint8 i; for(i = 0 ; i < 8 ; i ++) { if(byte & (1 << i)) { DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SDA); } else { DOTLED_LINE_PORT &= ~_BV(DOTLED_LINE_SDA); } //__delay_cycles(100); DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SCKH); //__delay_cycles(100); DOTLED_LINE_PORT &= ~_BV(DOTLED_LINE_SCKH); //__delay_cycles(100); } } static void SelectRow(uint8 row) { //row -= 1; row |= DOTLED_ROW_PIN & 0xe0; DOTLED_ROW_PORT = row; } static void FlipLatchLine(void) { DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SCKT); DOTLED_LINE_PORT &= ~_BV(DOTLED_LINE_SCKT); } void InitDotLedPort(void) { DOTLED_LINE_PORT &= ~(_BV(DOTLED_LINE_SCKT) | _BV(DOTLED_LINE_SCKH)); DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SDA); DOTLED_LINE_DDR |= _BV(DOTLED_LINE_SCKT) | _BV(DOTLED_LINE_SCKH) | _BV(DOTLED_LINE_SDA); DOTLED_ROW_PORT |= 0x1f; DOTLED_ROW_PORT &= 0xf0; DOTLED_ROW_DDR |= 0x1f; } void EnableRow(boolean IsEnable) { if(IsEnable) { DOTLED_ROW_PORT &= ~_BV(DOTLED_ROW_E); } else { DOTLED_ROW_PORT |= _BV(DOTLED_ROW_E); } } void PrintDotLed(uint8 * buffer) { uint8 i , tmp; for(i = 0 ; i < 16 ; i ++) { tmp = *buffer ++; TransmitByte(~tmp); tmp = *buffer ++; TransmitByte(~tmp); SelectRow(i); FlipLatchLine(); } } void main(void) { InitDotLedPort(); EnableRow(TRUE); while(1) { PrintDotLed(font); __delay_cycles(5000); } } //---------------------------------------------------- config.h文件 #ifndef _CONFIG_H #define _CONFIG_H //#define GCCAVR #define CPU_CYCLES 7372800L #ifndef GCCAVR #define _BV(bit) (1 << (bit)) #endif #define MSB 0x80 #define LSB 0x01 #define FALSE 0 #define TRUE 1 typedef unsigned char uint8; typedef unsigned int uint16; typedef unsigned long uint32; typedef unsigned char boolean; #include <ioavr.h> #include <inavr.h> #include "dotled.h" #endif //-----
上传时间: 2013-11-18
上传用户:mnacyf
一共有9个51单片机实验程序,实际上还有相关的汇编程序N例,单片机嵌入式程序和I2C源程序等等。
上传时间: 2014-03-18
上传用户:13517191407
近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。 十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MSC-51系列单片机ATSC51和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8051芯片的P1口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示(交通灯信号通过PA口输出,显示时间直接通过8255的PC口输出至双位数码管);车辆闯红灯报警;绿灯时间可检测车流量并可通过双位数码管显示。本系统实用性强、操作简单、扩展功能强。 程序源代码 ORG 0000H ;主程序的入口地址 LJMP MAIN ;跳转到主程序的开始处 ORG 0003H ;外部中断0的中断程序入口地址 ORG 000BH ;定时器0的中断程序入口地址
上传时间: 2013-12-21
上传用户:1234321@q