51单片机
文章平均质量分 86
gocpplua
这个作者很懒,什么都没留下…
展开
-
51单片机之时钟(C语言和汇编两种方式实现)
1.C语言实现 #include typedef unsigned char uint8;typedef unsigned int uint16;typedef unsigned long uint32; //共阳数码管0-9uint8 number[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80原创 2012-07-08 15:00:32 · 12054 阅读 · 3 评论 -
模拟IIC通信(没有用应答)
#include#include typedef unsigned char uint8;typedef unsigned int uint16;sbit SCL = P3^7;sbit SDA = P3^6;void delay(){ _nop_(); _nop_(); _nop_(); _nop_();//用_nop_()需要用INTRINS.H}void II原创 2012-08-06 15:03:43 · 5343 阅读 · 2 评论 -
用I2C通信实现点亮一盏小灯(包含应答)---c语言
//详细报告请下载:http://download.csdn.net/detail/chenqiai0/4482112 /*用I2C通信实现点亮一盏小灯*/#include#define uchar unsigned charsbit scl = P3^7;sbit sda = P3^6;sbit ADDR0=P1^0;sbit ADDR1=P1^1;sbit ADDR2=P1^2原创 2012-08-06 21:05:19 · 3521 阅读 · 0 评论 -
用I2C通信实现点亮一盏小灯(包含应答)---汇编语言
下载请于:http://download.csdn.net/detail/chenqiai0/4483389(完全代码以及详解)-------有疑问可以留言,希望多多交流org 0x00ljmp startorg 30Hstart: lcall init_I2C lcall init_led main: mov R3,#0x23 mov R5,#0x05原创 2012-08-07 23:06:36 · 2854 阅读 · 1 评论 -
1602静态显示一个数字--C语言版本
/* * 1602更加详细的内容请下载资源:http://download.csdn.net/detail/chenqiai0/4484389*/#include typedef unsigned char uint8;sbit RS = P1^0 ;sbit RW = P1^1 ;sbit EN = P1^5 ;sbit BUSY = P0^7;/** * 等待繁忙标原创 2012-08-08 12:11:18 · 4418 阅读 · 1 评论 -
1602静态显示一个数字--汇编语言版本
详细内容下载网址:http://download.csdn.net/detail/chenqiai0/4484389 C语言版本 http://download.csdn.net/detail/chenqiai0/4485053汇编语言版本#includetypedef unsigned char uint8;sbit RS=P1^0;sbit RW=P1^1;sbit E=P1原创 2012-08-08 16:31:06 · 2241 阅读 · 0 评论 -
1602动态显示字符--C语言版本
1602动态显示字符--C语言版本详细内容请下载地址:http://download.csdn.net/detail/chenqiai0/4486048#includetypedef unsigned char uint8;sbit RS=P1^0;sbit RW=P1^1;sbit E=P1^5;sbit BUSY = P0^7;uint8 code arr1[]="hello原创 2012-08-09 00:21:31 · 2274 阅读 · 0 评论 -
ds1302显示时间(通过串口调试助手)---C语言版本
ds1302显示时间(通过串口调试助手--C语言版本详细内容请下载地址:http://download.csdn.net/detail/chenqiai0/4488523/*ds1302显示时间(通过串口调试助手)*/#include#include typedef unsigned char uint8;typedef unsigned int uint16; sbit SD原创 2012-08-09 20:46:34 · 9811 阅读 · 6 评论 -
温度传感器18B20(串口显示)
如果有问题或是更好的方法希望大家提出来,谢谢/*温度传感器18B20--串口显示温度*/#include#include typedef unsigned char uint8;typedef unsigned int uint16;typedef char int8;typedef int int16;sbit DQ=P3^2; //原创 2012-08-11 00:19:01 · 7155 阅读 · 4 评论 -
呼吸灯
这个原理主要是控制亮和灭的百分比,亮/灭百分比越大那么就看上去亮,反之暗些。当然,我们需要将亮灭时间控制在20ms以内。org 00Hajmp startorg 30Hstart:;step 1:let 74HC138 enable clr P1.4setb P1.3;step 2:selet LEDS6;setb P1.2;setb P1.1原创 2013-03-28 18:59:57 · 1886 阅读 · 0 评论 -
键盘输入的数字在串口调试助手显示,然后再到数码管(汇编语言版本)
//实验目的:按下按键就在数码管上显示相应数字,并且传送到串口调试助手上org 00Hljmp startorg 30Hstart: mov P0,#0xff//设置初始值 mov dptr,#numb lcall en lcall UART_init here: lcall keyin原创 2012-08-03 21:52:44 · 4247 阅读 · 0 评论 -
键盘输入的数字在串口调试助手显示,然后再到数码管(C语音版本)
//按下哪一个键就在数码管上显示数字,并且传送到串口调试助手上#include #include "uart.h"typedef unsigned char uint8;typedef unsigned int uint16;uint8 number[]={0x0c0,0x0F9,0x0A4,0x0B0, 0x99,0x92,0x82,0xF8, 0x80原创 2012-08-02 12:17:20 · 2626 阅读 · 3 评论 -
点亮所有点阵(用到动态扫描)
#includetypedef unsigned char uint8;typedef unsigned int uint16;sbit ADDR0=P1^0;sbit ADDR1=P1^1;sbit ADDR2=P1^2;sbit ENLED1=P1^4;sbit ENLED2=P1^3;void display();void int_init();main()原创 2012-08-04 08:44:06 · 4770 阅读 · 4 评论 -
51单片机之计时器
最后我附上了问题,如果有同学知道希望可以解答,谢谢 一、实验目的:让六个数码管动态显示数字,计算秒数二、实验分析:a.因为要显示秒数,所以我们首先应该定义一个数组,用来存放0-9数字在数码管上对应的 十六进制数b.3/8译码器的使能设置c.定时器的理解。首先应该知道定时器与TMOD和和TCON有关。对于TMOD值得我们特别注意的是TMOD的Gate位(门原创 2012-07-08 14:53:39 · 12851 阅读 · 0 评论 -
数码管数字漂移问题
下面是我的计数器实验遇到的问题以及解答。代码如下所示: #include typedef unsigned char uint8;typedef unsigned long int uint32;sbit ADDR0=P1^0;sbit ADDR1=P1^1;sbit ADDR2=P1^2;sbit ENLED2=P1^3;sbit ENLED1=P1^4原创 2012-07-11 08:36:29 · 1297 阅读 · 0 评论 -
51下载时端口占用问题(接esata没有显示端口号问题)
今天是我开始学单片机第一天,不过一开始就遇到了问题,我的电脑联想的G460,当我把USB接在esata口上时,发现在设备管理器中没有显示端口,不知道大家有没有遇到这个问题,网上搜索发现esata和usb可以相互转化,但是为什么我的不可以,当我把usb插入其他端口,就出现端口号,接着下载就可以了。对于第一个问题,希望知道的朋友可以留个言,谢谢,我知道了也会告诉大家。原创 2012-06-30 22:17:20 · 1498 阅读 · 1 评论 -
51汇编程序之点亮全部led
ORG 00H ;程序的开始地址 LJMP START ;跳到程序的起始位置ORG 30H ;主要是为了跳过堆栈段 START: ;只是一个标号MOV A,#00H ;数据的传送 mov 90H,#0Bmov 91H,#1Bmov 92H,#1Bmov 93H,#1Bmov 94H,#0Bmov 95H,#0mov 96H,#原创 2012-07-01 13:53:13 · 6213 阅读 · 3 评论 -
unprintable character xxxx skipped
很多人会出现下面错误:当我们双击后就就会跳到错误处,仔细观察但是还是没有找到错误,于是郁闷了。这个时候你把错误的地方注释起来,如下图所示: 我们看到红色圈圈处,奇怪了,没有注释的时候不是没有的,怎么注释以后就有了,原来是影藏了!OK问题解决了原创 2012-07-03 15:43:45 · 12072 阅读 · 11 评论 -
串口调试助手上输入数据0-9,然后再数码管显示(汇编语言版本)
//实验目的:串口调试助手上输入数据0-9,然后再数码管显示org 00Hljmp startorg 23H //中断入口地址ljmp uart_interrupt org 30Hstart: mov P0,#0xff//设置初始值 mov dptr,#numb lcall en lcall UART_in原创 2012-08-03 11:39:59 · 5960 阅读 · 0 评论 -
*** error 65: access violation at C:0x001B : no 'execute/read' permission
很多人在进行串口调试的时候会遇到这个问题,请大家略看我的代码,解决方法在其中 //实验目的:串口调试助手上输入数据0-9,然后再数码管显示org 00Hljmp startorg 23H //中断入口地址ljmp uart_interrupt org 30Hstart: mov P0,#0xff//设置初始值 mov原创 2012-08-03 14:35:29 · 19681 阅读 · 0 评论 -
串口调试助手上输入数据,然后再数码管显示(C语言版本)
//串口调试助手上输入数据,然后再数码管显示#include #include "uart.h" //数码管从0-Fuint8 number[]={0x0c0,0x0F9,0x0A4,0x0B0, 0x99,0x92,0x82,0xF8, 0x80,0x90,0x88,0x83, 0xC6,0xA1,0x86,0x8E};uint16 n,m,原创 2012-08-02 13:51:08 · 7576 阅读 · 0 评论 -
用点阵显示一个爱心
#includetypedef unsigned char uint8;typedef unsigned int uint16;uint8 led[]={0xFF,0x99,0x00,0x00,0x00,0x81,0xC3,0xE7};sbit ADDR0=P1^0;sbit ADDR1=P1^1;sbit ADDR2=P1^2;sbit ENLED1=P1^4;sb原创 2012-08-04 09:17:39 · 9156 阅读 · 2 评论 -
51单片机之流水灯(C语言和汇编两个版本)
c语言#includetypedef unsigned char uint8; sbit ADDR0=P1^0;sbit ADDR1=P1^1;sbit ADDR2=P1^2;sbit ENLED0=P1^4;sbit ENLED1=P1^3;uint8 i;uint8 j;void delay(){ for(i=0;i { for(原创 2012-07-02 21:05:32 · 6972 阅读 · 1 评论