
单片机学习笔记
文章平均质量分 66
Avotima_弦扬
毕业于三流高校的小运维
展开
-
51单片机计时器中断
单片机中,中断算是一个比较重要的部分,在51单片机中有八种中断方式 ,其中常用的的有五种,分别是外部中断0,计时器中断0,外部中断1,计时器中断1,和串口中断。今天主要介绍的是计时器中断。 51单片机给我们提供了2个计时器中断,分别是计时器0和计时器1,他们对应的优先级分别是1和3,开启计时器并允许其中断后,计时器会从给定的初始值开始,每个指令周期加1,直到加到65535,再加一时计时器原创 2016-08-13 09:24:15 · 15555 阅读 · 0 评论 -
GTM900C调试1
一直在找机会调试GTM900C但是由于这样那样的原因一直没有成行,今天所有硬件软件齐全了,便开始了GTM900C的调试。GTM900C是经由串口跟上位机通信的,一般的GTM900C的命令格式都是AT+" "。1.AT 说明书上说的是握手,但是由于使用命令后除了返回一个‘ok‘所以不能确定命令的功能。2.ATE简化显示3.AT+CLCC 来电显示3.ATD号码 拨原创 2016-09-19 23:09:08 · 607 阅读 · 0 评论 -
ds18b20单总线通信
dsresetvoid ds_reset(){ ds = 1; ds = 0; delay_us(200); delay_us(200); ds = 1; delay_us(30); if(0 == ds) { ack = 1; } else {原创 2016-09-22 22:59:06 · 1319 阅读 · 0 评论 -
ds1302通信
#define ds1302_sec_add 0x80 #define ds1302_min_add 0x82 #define ds1302_hr_add 0x84 #define ds1302_date_add 0x86 #define ds1302_month_add 0x88 #define ds1302_day_add 0x8a #原创 2016-09-23 23:30:25 · 418 阅读 · 0 评论 -
IIC总线协议
定义的全局变量sbit SDA = P?;sbit SCL = P?;bit ack;使用的延时函数void delay_us(unsigned char t){ while(--t);}IICstartvoid iic_start(){ SDA = 1; SCL = 1; delay_us(1); SDA =原创 2016-09-21 23:32:10 · 199 阅读 · 0 评论 -
4乘4矩阵键盘扫描物理键值
物理键值扫描unsigned char keyscan(){ static unsigned char keyvalue; KEYPORT = 0xf0; if(KEYPORT != 0xf0) { delay_ms(10); if(KEYPORT != 0xf0) {原创 2016-09-25 23:30:28 · 2192 阅读 · 0 评论 -
数码管动态显示
所谓的动态显示就是数码管不断变化,当变化速度超过人眼的识别范围时看起来就像数码管一直显示。数码管动态显示时需要用到两个锁存器,一个是段锁存,一个是位锁存。一般开发板上使用的数码管动态显示,一组为八个数码管,这里可以称之为八位,每个数码管为一位,位锁存器就是决定哪一位亮起来,而位锁存器决定亮的那一位显示什么。动态显示一般先传段码,决定下一次显示什么内容,再传位码,使下一位亮起,段码和位码的内容都原创 2016-09-27 00:05:31 · 12745 阅读 · 0 评论 -
51串口通信
串口初始化void uart_init(){ SCON = 0x50; TMOD |= 0x20; TH1 = 0xfd; TR1 = 1;}发送一个字节void uart_byte(unsigned char byte){ SBUF = byte; while(!TI); TI = 0;}原创 2016-09-27 23:13:26 · 375 阅读 · 0 评论 -
lcd1602驱动
写一个字节void lcd_write(unsigned char byte,unsigned char flag){ if(flag) { RS = 1; } else { RS = 0; } RW = 0; E = 1; LCDPORT = b原创 2016-09-29 22:39:40 · 453 阅读 · 0 评论