文章分类 -  51

LM3S1138入门1 LED
摘要:有一部分是自己写得注释,看明白怎么回事了,这个芯片得控制设置感觉也不是很简洁,有点罗嗦了,不过一看就明白,入门很简单了。// 基于《Stellaris外设驱动库》的例程:LED闪烁发光// 包含必要的头文件#include <hw_types.h>#include <hw_memmap.h>#include <hw_sysctl.h>#include <hw_gpio.h>#include <sysctl.h>#include <gpio.h>// 将较长的标识符定义成较短的形式#define SysCtlPeriEnab 阅读全文

posted @ 2013-03-16 18:06 AI_JJ 阅读(196) 评论(0) 推荐(0)

LM3S编程起步---点亮LED
摘要:LM3S用C语言编写驱动有两种方式一,直接操作寄存器二,使用官方提供的API函数一般编程时需要考虑的东西1,引入哪些头文件,存储空间选择是否正确,时钟设置,2,是不是需要中断,中断配置3,模块是否需要使能4,具体的相关配置5,正确的使用以下就两种方式进行详述一,直接操作寄存器引入头文件1,阅读数据手册,查看涉及到的片上资源如何使用--比如使能GPIO2,配置相关的寄存器--模拟数字,输入输出,是否上拉等3,IO数据写入 读取//*****************************************************************************#inclu. 阅读全文

posted @ 2013-03-16 17:53 AI_JJ 阅读(272) 评论(0) 推荐(0)

uClinux驱动实例 LED
摘要:uClinux驱动编写心得(uClinux2.4+S3C44B0X) 下面的内容绝大部分不是我写的,我是根据网上前辈高手的教程一步一步来做的。但是,在编译的过程中发现资料还是有点错误和关键点的遗漏。昨晚加上今天一整天,回忆编译的过程,稍微有点理解编译的方法了。晚上改了半个小时,搞定,驱动能用了,虽然仅仅是点个led灯,但是修正编译时的错误就像侦探破案一样,成功后心情真爽啊!我把我修正后的文章重新发出来,让更多人能看到。ps今天又搜索了一整天,还是没找到更多驱动相关的资料,希望大家能够提供下。 前期准备: 既然要编写uClinux驱动,就要在操作系统和硬件之间打交道,我用的板子是经典的S3... 阅读全文

posted @ 2013-03-16 17:20 AI_JJ 阅读(134) 评论(0) 推荐(0)

uClinux设备驱动程序的设计与编写
摘要:uClinux设备驱动程序的设计与编写1设备驱动程序的一般编写步骤(1) 确定设备的主设备号(2) 填充static struct file_operation这样的结构(3) 定义一个类似__init mydriver_init(void)这样的注册函数,大体如下:int __init mydriver_init(void){int rc;rc = register_chrdev(mydevice_Major, "mydev", &mydriver_fops);if (rc < 0) {printk(KERN_WARNING "mydevice: 阅读全文

posted @ 2013-03-16 17:18 AI_JJ 阅读(192) 评论(0) 推荐(0)

C51液晶显示(LM016L)实验1
摘要:程序如下://适合LM016L液晶显示器#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intvoid delay_nms(int);bit LCD_busy();void LCD_write_cmdata(uchar);void LCD_write_wodata(uchar);void LCD_Init();//端口设置sbit LCD_RS=P1^2;sbit LCD_RW=P1^1;sbit LCD_EA=P1^0;sbit LCD_BF=P0 阅读全文

posted @ 2013-03-16 16:55 AI_JJ 阅读(682) 评论(0) 推荐(0)

C51入门5,动态数码管显示实验
摘要:实验一:要求:利用动态扫描和定时器1在数码管上显示出从7432开始以1/10秒的速度往下递减直至7398并保持显示此数,与此同时利用定时器0以500MS速度进行流水灯从上至下移动,当数码管上数减到停止时,实验板上流水灯也停止然后全部开始闪烁,3秒后(用T0定时)流水灯全部关闭、数码管上显示出“ABCD”。到此保持住。程序: //数码动态显示#include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intuchar code table[]={0x28,0x 阅读全文

posted @ 2013-03-16 16:54 AI_JJ 阅读(486) 评论(0) 推荐(0)

C51入门6,串口通信实验
摘要:从上位机(PC)发送数据给单片机,并显示到单片机的LED上。实验一:查询法程序:/如果串口右数据发送就点亮LED#include<reg52.h>//主函数void main(){ TMOD=0x20; //设置定时器1为工作方式2 TH1=0xfd; //波特率设置 TL1=0xfd;// TR1=1; //启动定时器1 REN=1; //允许串口接收 SM0=0; //串行工作方式1 SM1=1;// EA=1; //开定时器中断// ES=1; //开总中断 while(1) { if(RI==1) //接收中断标志位,如果有中断到来执行下面语句 { ... 阅读全文

posted @ 2013-03-16 16:53 AI_JJ 阅读(336) 评论(0) 推荐(0)

C51入门3,IIC通信实验
摘要:实验一:写入按键次数在24C04上,并读出显示在4个LED上。程序://写入按键次数在24C04上,并读出显示在4个LED上#define uchar unsigned char#define uint unsigned int#define ulong unsigned long#include <reg52.h>//定义器件在IIC总线的地址和端口设置#define WriteDeviceAddress 0xa0#define ReadDeviceAddress 0xa1sbit SCL=P2^1;sbit SDA=P2^0;sbit P10=P1^0;sbit K1=P3^2 阅读全文

posted @ 2013-03-16 16:51 AI_JJ 阅读(272) 评论(0) 推荐(0)

C51入门2,定时器和中断应用
摘要:实验一:定时器中断闪灯程序:#define uchar unsigned char#define uint unsigned int#define ulong unsigned long#include <reg52.h>//端口设置sbit P10=P1^0;sbit K1=P3^2;char code dx516[3] _at_ 0x003b;//主函数void main(void){ TMOD=0x01; //设置定时器0工作再方式1 TR0=1;//启动定时器0,TR0必须置1 ET0=1;//开定时器中断 EA=1; //开总中断 while(1)//死循环 { ; }} 阅读全文

posted @ 2013-03-16 16:50 AI_JJ 阅读(588) 评论(0) 推荐(0)

C51入门1,跑马灯和LED实验
摘要:刚开始接触的是C51,自己以前写的程序,在自己的实验板上实现的,现在整理一下留做纪念哈!!!实验一:一个LED灯闪烁//一个LED灯闪烁实验#define uchar unsigned char#define uint unsigned int#define ulong unsigned long//头文件#include <reg52.h>//端口设置sbit P10=P1^0;char code dx516[3] _at_ 0x003b;//主函数void main(void){ uint i; P10=0; while(1) { P10=~P10; //取反 ... 阅读全文

posted @ 2013-03-16 16:48 AI_JJ 阅读(549) 评论(0) 推荐(0)

精神分裂症
摘要:精 神分裂症(schizophrenia)是一种常见的精神病,据世界卫生组织估计,全球精神分裂症的终身患病率大概为3.8‰-8.4‰,美国的研究,终 身患病率高达13‰;我国1994年调查数据,城市地区患病率7.11‰,农村4.26‰。精神分裂症病因复杂,尚末完全阐明。多起病于青壮年,表现为感 知、思维、情感、意志行为等多方面障碍,精神活动与周围环境和内心体验不协调,脱离现实。一般无意识障碍和明显的智能障碍,可有注意、工作记忆、抽象思维 和信息整合等方面认知功能损害。病程多迁延,反复发作,部分患者发生精神活动衰退和不同程度社会功能缺损。西医学名:精神分裂症英文名称:schizophrenia主 阅读全文

posted @ 2013-03-16 09:21 AI_JJ 阅读(547) 评论(0) 推荐(0)

把每一天都当作生命中最后一天[作者:史蒂夫·乔布斯]
摘要:[作者:史蒂夫·乔布斯] [来源:史蒂夫·乔布斯在斯坦福大学的演讲] 当我十七岁的时候,我读到了一句话:“如果你把每一天都当作生命中最后一天去生活的话,那么有一天你会发现你是正确的。”这句话给我留下了一个印象。从那时开始,过了33年,我在每天早晨都会对着镜子问自己:“如果今天是我生命中的最后一天,你会不会完成你今天想做的事情呢?”当答案连续多天是“No”的时候,我知道自己需要改变某些事情了。 “记住你即将死去”是我一生中遇到的最重要箴言。它帮我指明了生命中重要的选择。因为几乎所有的事情,包括所有的荣誉、所有的骄傲、所有对难堪和失败的恐惧,这些在死亡面前都会消失。我看到的是留 阅读全文

posted @ 2013-03-16 09:16 AI_JJ 阅读(1091) 评论(0) 推荐(0)

51单片机SPI总线的实现
摘要://-----------------------函数声明,变量定义------------------------------------------------------ #include <reg51.h>#include <intrins.h>sbit SCK=P1^0; // 将p1.0口模拟时钟输出sbit MOSI=P1^1; // 将p1.1口模拟主机输出sbit MISO=P1^2; // 将p1.1口模拟主机输入sbit SS1=P1^3; // 将p1.1口模拟片选#define delayNOP(); {_nop_();_nop_();_nop 阅读全文

posted @ 2013-03-15 21:59 AI_JJ 阅读(262) 评论(0) 推荐(0)

基于51单片机的乐曲播放
摘要:我们可以利用单片机产生乐曲的音符,并通过蜂鸣器或喇叭播放出音乐。Ⅰ单片机的发音⑴ 音调音调是表示一个音符唱多高的频率,和平时说的“音高”十分类似。音乐的产生主要是通过单片机的I/O口输出高低不同的脉冲信号来控制蜂鸣器发音。要想产生音频脉冲信号,需要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。利用单片机定时器计时这个半个周期时间,每当计时到后就将输出脉冲的I/O口反相,然后重复计时此半周期时间再对I/O口反相,这样就能在此I/O口上得到此频率的脉冲。通常,利用AT89C5X单片机的内部定时器O,工作在方式1下,改变计数初值TH0和TL0来产生不同的频率(当然也可以利用延 阅读全文

posted @ 2013-03-15 21:55 AI_JJ 阅读(1961) 评论(0) 推荐(0)

基于51单片机的外部中断
摘要:51单片机一般有两个外部中断输入端,并允许外部中断源以低电平或负边沿两种触发方式输入中断请求信号。本例就是利用一只按钮,在按下时产生的负边沿触发外部中断。1 硬件设计将一只按钮接在外部中断输入0(12脚),八支发光二极管分别接在P0.0~P0.7,其电路如下图所示。在桌面上双击图标,打开ISIS 7 Professional窗口(本人使用的是v7.4 SP3中文版)。单击菜单命令“文件”→“新建设计”,选择DEFAULT模板,保存文件名为“INT.DSN”。在器件选择按钮中单击“P”按钮,或执行菜单命令“库”→“拾取元件/符号”,添加如下表所示的元件。51单片机AT89C51 一片晶体CRYS 阅读全文

posted @ 2013-03-15 21:54 AI_JJ 阅读(2044) 评论(0) 推荐(0)

基于51单片机的1602LCD显示
摘要:LCD(liquid crystal display)为液晶显示器,它一般不会单独使用,而是将LCD面板、驱动与控制电路组合成LCD模块(1iquid crystal display moulde,简称为LCM)来使用。LCM是一种很省电的显示设备,常被应用在数字或微处理器控制的系统,做为简易的人机接口,但人们一般还是习惯称之为LCD显示器。1 硬件设计采用51单片机控制1602LCD显示器的电路如下所示。在桌面上双击图标,打开ISIS 7 Professional窗口(本人使用的是v7.4 SP3中文版)。单击菜单命令“文件”→“新建设计”,选择DEFAULT模板,保存文件名为“LCD.D. 阅读全文

posted @ 2013-03-15 21:53 AI_JJ 阅读(1768) 评论(0) 推荐(0)

基于51单片机的I2C总线
摘要:I2C(Inter Intergrated Circuit)总线是Philips公司推出的一种用于IC器件之间连接的二线制串行扩展总线,它通过两根信号线(SDA-串行数据线;SCL-串行时钟线)在连接到总线上的器件之间传送数据,并根据地址来识别每个器件。51单片机一般并没有在硬件中集成这种新的接口,所以要用软件来进行模拟。1 硬件设计24CXX系列串行E2PROM是常用的I2C串行E2PROM,正被广泛地用在各种智能仪器仪表当中。本例就是将一组数据写入24C02C中,然后读出并在LCD上显示,其电路如下图所示。在桌面上双击图标,打开ISIS 7 Professional窗口(本人使用的是v7. 阅读全文

posted @ 2013-03-15 21:52 AI_JJ 阅读(897) 评论(0) 推荐(0)

51单片机-12.I2C
摘要:此程序是I2C操作平台(主方式的软件平台)的底层的C子程序,如发送数据及接收数据,应答位发送,并提供了几个直接面对器件的操作函数,它很方便的与用户程序连接并扩展..... 经过本人验,绝对好用!********************************************************************/bit ack; /*应答标志位*/ /******************************************************************* 起动总线函数 函数原型: void Start_I2c(); 功能: 启动I2C总线,即发送 阅读全文

posted @ 2013-03-15 21:44 AI_JJ 阅读(153) 评论(0) 推荐(0)

51单片机系列之LCD1602
摘要:名称:LCD1602液晶屏显示(并口) 编写:付新 日期:2012/5/9 平台:Keil 4, Ly-51S学习板 引脚定义如下:1-VSS 2-VDD 3-V0 4-RS 5-R/W 6-E 7-14 DB0-DB7 15-BLA 16-BLK 与51连接:RS-P2.4 RW-P2.5 EN-P2.6 DB-P0 -----------------------------------------------------*/ #include<reg52.h> #define DB P0 sbit RS =P2^4; sbit RW =P2^5; sbit EN =P2^... 阅读全文

posted @ 2013-03-15 21:41 AI_JJ 阅读(214) 评论(0) 推荐(0)

51单片机系列之驱动蜂鸣器发声
摘要:名称:51单片机驱动蜂鸣器发声编写:付新日期:2012/5/9平台:Keil4,Ly-51S学习板内容:模拟报警声,如闹钟滴滴滴滴-----------------------------------------------------*/#include<reg52.h>sbitSPK=P1^2;voiddelay_2us(unsignedchart){while(--t);}voidmain(){while(1){delay_2us(25);SPK=!SPK;}} 阅读全文

posted @ 2013-03-15 21:40 AI_JJ 阅读(205) 评论(0) 推荐(0)

导航