/***********74HC165并入串出例子程序************/
// 单片机 ATmega8读取165串入的拨码开关地址 //
// 晶振:内部1M //
// Author:wanghu //
// AVRGCC @2008.6.1 //
/**********************************************/
#include
#include
/**********定义位操作的位移宏 by wanghu********/
#define setbit(val, bitn) (val |=(1<<(bitn))) //
#define clrbit(val, bitn) (val&=~(1<<(bitn))) //
#define getbit(val, bitn) (val & (1<<(bitn))) //
//使用方法:if (getbit(PINB,7)) //
// setbit(PORTB,0); //
// else clrbit(PORTB,0); //
/**********************************************/
unsigned char readaddress(void)
{
unsigned char add=0;
unsigned char i=0;
clrbit(PORTC,1);
setbit(PORTC,1);
for (i=0;i<7;i++)
{
add|=getbit(PINC,0); //上电后QH的值即是165的第8位值,可以直接赋值完后,给165上升沿读取下个数据
add<<=1;
clrbit(PORTC,2);
setbit(PORTC,2);
}
add|=getbit(PINC,0);
return add;
}
int main(void)
{
unsigned char i,j,k; //定义变量
unsigned char add=0;
DDRB=0xFF;
PORTB=0;
PORTC=0x01;
DDRC=0xFE;
DDRD=0xFF;
i=1;
for (j=0;j<8;j++) //循环8次,即PA0~~PA7轮流闪亮,流水一遍自检
{
PORTB=i; //按位取反,反相输出,低电平有效
for (k=0;k<10;k++) _delay_ms(30); //延时 30*10=300毫秒,可自行调节
i=i<<1; //左移一位
}
while(1)
{
add=readaddress();
PORTB=add;
PORTD=add;
}
}
关键字:单片机 ATmega8 拨码开关
引用地址:
单片机ATmega8读取165串入的拨码开关程序
推荐阅读最新更新时间:2024-03-16 15:49
80C51单片机的指令系统(一)程序设计语言和指令
学习指令系统重点要掌握以下几点: 指令功能 寻址方式 操作数的位数和存储结构 对PSW的影响 指令与存储区的对应关系 各类指针及其指向的地址范围 转移指令的转移范围 指令字节数和机器周期数 & 本章主要介绍单片机的寻址方式及指令系统,是必须掌握的内容。 & 一台计算机所有指令的集合, 称为该计算机的指令系统。 & 各种计算机都有专用的指令系统。 4.1.1 程序设计语言和指令: 程序设计语言是实现人机交换信息的重要工具。机器语言指令是单片机能直接识别、分祈和执行的二进制码,用机器语言写的程序称为目标程序。 例如, 要做 10+20 的加法, 在51中可用机器码指令编程: 01110100
[单片机]
51单片机实现的485通讯程序
#ifndef __485_C__ #define __485_C__ #include reg51.h #include string.h #define unsigned char uchar #define unsigned int uint /* 通信命令 */ #define __ACTIVE_ 0x01 // 主机询问从机是否存在 #define __GETDATA_ 0x02 // 主机发送读设备请求 #define __OK_ 0x03 // 从机应答 #define __STATUS_ 0x04 // 从机发送设备状态信息 #define __MAXSIZE 0x08 // 缓冲
[单片机]
51单片机(入门保姆级教程)——点亮一个LED灯
一、为什么要学习单片机? 作为一名工科学生,进入大学参加各种活动,例如:电子设计大赛、寻迹车比赛、LED电子灯比赛以及各种各样的微控、弱控强电路等,都离不开单片机的身影。电路、c语言、数电、模电、计算机控制等知识的学习,给单片机的学习增添了软辅助,但我认为,学习单片机更多的是自己的兴趣、爱好,正如“程序虐我千百遍,我视程序为初恋”。 此外,学习单片机知识,从最基础的51单片机入门学习,可以为我们后面学习STM32、ARM微控器等其微控制器的学习奠定知识基础和积攒一定的经验,给自己的大学及以后的职业道路增加一丝色彩。 二、首先了解什么是单片机? 单片机又称单片微控制器,把一整个计算机系统集成到一个芯片上,当于一个微型的计算机,和计算
[单片机]
基于BU65170与单片机系统的RT设计与实现
1 引言: 1553B总线是一种时分制指令响应型串行多路数据传输总线,它最早应用于70年代末美国军用飞机的航电系统中并取得了成功,因其具有一般数据总线所无法比拟的高可靠性和实时性,在很多重要的科技领域都得到了广泛应用。在我国,近年来1553B总线也广泛应用于航空航天电子设备、地面车辆系统、舰艇系统等不同的军事平台上以及一些民用设备中。本文在所研制的某人造卫星有效载荷测控系统中,基于星上数据管理系统所采用的1553B总线,选用了专门用于 RT模式的总线协议芯片BU65170,设计了BU65170与单片机控制器的硬件接口,编制了BU65170的初始化和控制软件,最终实现了有效载荷对星上数据管理系统所发的内部指令、数据注入以及广播时间
[单片机]
从AT89C51了解单片机
AT89C51是美国ATMEL公司生产的AT89系列单片机中的一种,它与MCS-51系列的许多机种都具有兼容性,并具有广泛的代表性。为了便于读者对“单片机速通教程”以后的系列实例文章的理解,下面,我们先来了解一下AT89C51的硬件结构和CPU的工作原理。 一、 硬件结构 1?内部结构 AT89C51单片机的内部结构与MCS-51系列中的MCS-8051的内部结构基本相同。由图1可知,AT89C51单片机主要由CPU、片内RAM、片内ROM及4个标准输入输出I/O口等组成。片内4KB ROM为程序存储器,这里面主要存放指挥CPU进行操作的指令代码。4KB ROM共有4096个存储单元,每个单元可存放一个字节共8位二进制数字。
[单片机]
基于AT89S52单片机的温度控制系统
0 引 言 在激光倍频晶体温度匹配中,有时需要很高的工作温度。晶体升温过程中,温度过快变化会导致晶体出现破裂,因此在开机过程中需要操作人员不断手动控制激光器晶体的温度。为了避免这样繁锁的工作,我们以单片机AT89S52为核心制作了一套自动控制升降温系统,有效的保证了晶体温度在安全的速率下变化。由于热敏电阻的非线性关系,一般的控温仪正常控温范围有限。在对热敏电阻和恒流源的特性进行分析后,将恒流源做了适当的改进,扩展了控温仪的控制范围,使其在较宽的温度范围内也具有较高的精度。 1 硬件系统设计 控制系统电路的核心器件是Atmel公司生产的AT89S52单片机。它是一种低功耗、低电压、高性能的8位单片机,片内带有一个8KB的fl
[单片机]
45-基于51单片机的甲醛浓度检测报警系统
具体实现功能 系统由STC89C52单片机+ZE08-CH2O甲醛传感器+LCD1602液晶显示屏+按键+蜂鸣器+指示灯+电源构成。 具体功能: 1、甲醛传感器测得甲醛数据后经过单片机处理,由LCD1602实时显示; 2、可通过按键设置甲醛报警阈值; 3、测得的甲醛浓度超过报警阈值时,开始声光报警。 设计背景 如今自动化、信息化程度越来越高,随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便于生活的自动控制系统开始进入了人们的生活,同时也标志了自动控制领域成为了数字化时代的一员。以单片机为核心的自动门系统就是其中之一。它实用性强,功能齐全,技术先进,使人们相信这是科技进步的成果。它更让人类懂得,数字
[单片机]
PHILIPS公司32位FLASH MCU的优势
国际半导体贸易统计显示,8位芯片仍然占据着微处理器市场56%的销量和40%的销售额。最流行的8位INTEL架构的8051芯片平均每年销售33亿片-大约是32位PC微处理器销量的30倍。甚至最早于1971年面世的低端4位芯片的销量也只比它们的最高销量低15%。嵌入式系统开发者仍然在使用这些芯片,因为它们具有极低的价格、微功耗以及小的体积,可以为几乎任何应用增加智能化。 为了用功能更强大的器件取代8位和16位微控制器,PHILIPS半导体发布了基于ARM7的32位MCU的新产品线。PHILIPS知道以其自身的条件无法击败最小的MCU,但PHILIPS相信这样一个以较小尺寸制造的、具有额外性能的32位MCU可以使一些开发者抛弃他们节俭的
[嵌入式]