/**************************************************************** 外部晶振8M PA0~3:四位数码管的位选 PB0~7:数码管的8位段选 外部中断0用于计数 定时器0溢出中断的定时为1ms 说明 :检测到水流较小时,继电器延时1秒关闭 ******************************************************************/ #include<iom16v.h> #include<macros.h> #define uchar unsigned char #define uint unsigned int char led_7[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //数码管段选 char position[4]={0xfe,0xfd,0xfb,0xf7};//数码管位选 uint sumnum=0; //用于记录1000ms内进入中断的次数 uint time=0; //记录进入比较定时器0的次数 uint num=0; //记录1ms内进入中断的次数 uint count=0; //进入外部中断0的次数 uchar flag; uint sumnum1; //记录100ms内的数目 /***************************函数声明***************************/ void delay(); void display(uint m ); void init(); void init_0(); void init_2(); void _delay_us(uint l) { unsigned int i; for(i=0;i<l;i++) { asm("nop"); } } /**************************主函数***********************************/ void main() { init(); init_0(); init_2(); while(sumnum<5) { PORTD=0XBF; segdisplay(sumnum1); } while(1) { segdisplay(sumnum1); } } /*************************扫描数码管时的延时函数*********************/ void delay() { uchar i,j; for(i=6;i>0;i--) for(j=225;j>0;j--); } /************************数码管显示函数*****************************/ void segdisplay( int temp) { int seg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; int temp1,temp2,temp3,temp4; temp1=temp/1000; temp2=(temp/100)%10; temp3=(temp/10)%10; temp4=temp%10; DDRB=0xff; DDRA|=0x0f; PORTA=~BIT(3); PORTB=seg[temp1]; _delay_us(100); PORTA=~BIT(2); PORTB=seg[temp2]; _delay_us(100); PORTA=~BIT(1); PORTB=seg[temp3]; _delay_us(100); PORTA=~BIT(0); PORTB=seg[temp4]; _delay_us(100); } /***********************管脚初始化函数*********************/ void init() { DDRD|=0X40; //PD4 设置为输出 PORTD=0XBF; DDRA=0XFF; DDRB=0XFF; PORTA=0XFF; PORTB=0XFF; } /***********************外部中断0初始化*********************/ void init_0() { MCUCR=0X02; //INT0为下降沿触发 GICR=0X40; //使能INT0中断 SREG=0X80; //使能总中断 } /**********************定时器2初始化***********************/ void init_2() { TCCR0=0x03; // 内部时钟,64 分频(8M/64=125KHz) TCNT0=0x83; //装初值 TIMSK=0x01; // 允许 T/C0溢出中断中断 } /***********************外部中断0子函数********************/ #pragma interrupt_handler int0_isr:2 void int0_isr(void) { count++; } /*********************定时计数器0溢出中断子函数*****************/ #pragma interrupt_handler int0_over:10 void int0_over(void) { TCNT0=0x83; //重装初值 if((time%100) == 0) sumnum1 = num; if(time == 1000) { sumnum=num; if(sumnum<10) { if((flag==1)&&(sumnum<10)) { PORTD=0XFF; flag=0; } flag++; } else PORTD=0XBF; num=0; time=0; } num+=count; count=0; ++time; }
标签: C语言
上传时间: 2016-03-09
上传用户:彦 yan
1.首先用万用表判断所用数码管是共阴极还是共阳极数码管,并测出各引脚功能,画出引脚分布图。 2.实验采用4位一体的数码管,用P1口通过驱动芯片控制段码输出信号线,P0口通过驱动芯片控制位选线,自主选择驱动芯片,设计实现电路,并实现以下功能: (1)当开关K0接低电平时,第一位依次显示0~F,然后第二位、第三位、第四位,再循环回第一位。 (2)当开关K0接高电平时,四位动态显示“HELP”。
上传时间: 2018-09-11
上传用户:llzk
这是一个EWB的简易实验,用来熟悉EWB如何进行使用
上传时间: 2019-06-18
上传用户:zfx123456123
利用单片机AT89C51与ADC0809设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示,但要求使用的元器件数目最少
上传时间: 2019-06-29
上传用户:XYZ+
利用单片机AT89S51与ADC0809设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示,但要求使用的元器件数目最少
上传时间: 2019-06-29
上传用户:XYZ+
设计一个算法,实现两个任意长的证书加法运算,要求输入和输出每四位一组,组间用逗号隔开
上传时间: 2019-12-16
上传用户:windson405
本设计的原理是一个基于单片机AT89C52与湿度传感器HM1500等技术相结合主体,利用模拟湿度传感器HM1500对某一环境的湿度进行检测,实现对此环境湿度的测控,并将它的输出由单片机的软件对其进行校正处理,所得到的结果最终送给四位数码管显示,切带有湿度上下限的报警。
上传时间: 2020-06-10
上传用户:cao212aa
VHDL语言100例 VHDL学习资料VHDL 编程要点VHDL编程心得体会:100vhdl例子VHDL 编程要注意问题.docVHDL——按键消抖.docVHDL电路简化.docVHDL编程心得体会.pdfvhd开发的官方手册.pdf第1例 带控制端口的加法器第2例 无控制端口的加法器第3例 乘法器第4例 比较器第5例 二路选择器第6例 寄存器第7例 移位寄存器第8例 综合单元库第9例 七值逻辑与基本数据类型第10例 函数第11例 七值逻辑线或分辨函数第12例 转换函数第13例 左移函数第14例 七值逻辑程序包第15例 四输入多路器第16例 目标选择器第17例 奇偶校验器第18例 映射单元库及其使用举第19例 循环边界常数化测试第20例 保护保留字第21例 进程死锁 第22例 振荡与死锁第23例 振荡电路第24例 分辨信号与分辨函数第25例 信号驱动源第26例 属性TRANSACTION和分辨信号第27例 块保护及属性EVENT,第28例 形式参数属性的测试第29例 进程和并发语句第30例 信号发送与接收第31例 中断处理优先机制建模第32例 过程限定第33例 整数比较器及其测试第34例 数据总线的读写第35例 基于总线的数据通道第36例 基于多路器的数据通道第37例 四值逻辑函数第38例 四值逻辑向量按位或运算第39例 生成语句描述规则结构第40例 带类属的译码器描述第41例 带类属的测试平台第42例 行为与结构的混合描述第43例 四位移位寄存器第44例 寄存/计数器第45例 顺序过程调用第46例 VHDL中generic缺省值的使用第47例 无输入元件的模拟第48例 测试激励向量的编写第49例 delta延迟例释第50例 惯性延迟分析第51例 传输延迟驱动优先第52例 多倍(次)分频器第53例 三位计数器与测试平台第54例 分秒计数显示器的行为描述6第55例 地址计数器第56例 指令预读计数器第57例 加.c减.c乘指令的译码和操作第58例 2-4译码器结构描述第59例 2-4译码器行为描述第60例 转换函数在元件例示中的应用第61例 基于同一基类型的两分辨类型的赋值相容问题第62例 最大公约数的计算第63例 最大公约数七段显示器编码第64例 交通灯控制器第65例 空调系统有限状态自动机第66例 FIR滤波器第67例 五阶椭圆滤波器第68例 闹钟系统的控制第69例 闹钟系统的译码第70例 闹钟系统的移位寄存器第71例 闹钟系统的闹钟寄存器和时间计数器第72例 闹钟系统的显示驱动器第73例 闹钟系统的分频器第74例 闹钟系统的整体组装第75例 存储器第76例 电机转速控制器第77例 神经元计算机第78例ccAm2901四位微处理器的ALU输入第79例ccAm2901四位微处理器的ALU第80例ccAm2901四位微处理器的RAM第81例ccAm2901四位微处理器的寄存器第82例ccAm2901四位微处理器的输出与移位第83例ccAm2910四位微程序控制器中的多路选择器第84例ccAm2910四位微程序控制器中的计数器/寄存器第85例ccAm2910四位微程序控制器的指令计数器第86例ccAm2910四位微程序控制器的堆栈第87例 Am2910四位微程序控制器的指令译码器第88例 可控制计数器第89例 四位超前进位加法器第90例 实现窗口搜索算法的并行系统(1)——协同处理器第91例 实现窗口搜索算法的并行系统(2)——序列存储器第92例 实现窗口搜索算法的并行系统(3)——字符串存储器第93例 实现窗口搜索算法的并行系统(4)——顶层控制器第94例 MB86901流水线行为描述组成框架第95例 MB86901寄存器文件管理的描述第96例 MB86901内ALU的行为描述第97例 移位指令的行为描述第98例 单周期指令的描述第99例 多周期指令的描述第100例 MB86901流水线行为模型
标签: vhdl
上传时间: 2021-10-21
上传用户:ttalli
个人学习ATMEGA8单片机应用及其proteus仿真总结30例资料,001、闪烁灯设计002、位定义闪烁灯设计003、跑马灯设计004、流水灯设计005、四位数码管静态显示程序006、四位数码管动态显示程序007、数码管加减计数显示设计008、基于T_CO的计数器设计009、基于T_C0的时钟设计009、基于T_CO的时钟设计010、基于T_C1的频率计设计010、数码管频率计设计011、TCA230颜色识别011、基于TC1的波形发生器设计012、IO口基本输出012、基于TC1的脉宽调制器设计013、1~20HZ方波013、基于TC2的实时时钟电路设计014、Eeprom的c语言编程015、AD转换的c语言编程016、模拟比较器的设计应用017、异步串行接口UART的C语言编程018、同步串行接口SPI的C语言编程-无仿真018、看门狗的c语言编程019、4×4 矩阵式键盘识别019、看门狗的c语言编程020、4×4 矩阵式键盘识别021、128X64液晶显示应用022、IO口基本输出023、0~999999——百万计数器024、IO口基本输出025、数码管T0计数器设计026、数码管T1计数器设计027、数码管频率计设计028、数码管时钟设计029、数码管显示程序030、模拟采集串口发送程序相关芯片资料
上传时间: 2021-11-04
上传用户:d1997wayne
CD40系列CD45系列集成芯片DATASHEET数据手册170个芯片技术手册资料合集:4000 CMOS 3输入双或非门1反相器.pdf4001 CMOS 四2输入或非门.pdf4002 CMOS 双4输入或非门.pdf4006 CMOS 18级静态移位寄存器.pdf4007 CMOS 双互补对加反相器.pdf4008 CMOS 4位二进制并行进位全加器.pdf4009 CMOS 六缓冲器-转换器(反相).pdf4010 CMOS 六缓冲器-转换器(同相).pdf40100 CMOS 32位双向静态移位寄存器.pdf40101 CMOS 9位奇偶发生器-校验器.pdf40102 CMOS 8位BCD可预置同步减法计数器.pdf40103 CMOS 8位二进制可预置同步减法计数器.pdf40104 CMOS 4位三态输出双向通用移位寄存器.pdf40105 CMOS 先进先出寄存器.pdf40106 CMOS 六施密特触发器.pdf40107 CMOS 2输入双与非缓冲-驱动器.pdf40108 CMOS 4×4多端寄存.pdf40109 CMOS 四三态输出低到高电平移位器.pdf4011 CMOS 四2输入与非门.pdf40110 CMOS 十进制加减计数-译码-锁存-驱动.pdf40117 CMOS 10线—4线BCD优先编码器.pdf4012 CMOS 双4输入与非门.pdf4013 CMOS 带置位-复位的双D触发器.pdf4014 CMOS 8级同步并入串入-串出移位寄存器.pdf40147 CMOS 10线—4线BCD优先编码器.pdf4015 CMOS 双4位串入-并出移位寄存器.pdf4016 CMOS 四双向开关.pdf40160 CMOS 非同步复位可预置BCD计数器.pdf40161 CMOS 非同步复位可预置二进制计数器.pdf40162 CMOS 同步复位可预置BCD计数器.pdf40163 CMOS 同步复位可预置二进制计数器.pdf4017 CMOS 十进制计数器-分频器.pdf40174 CMOS 六D触发器.pdf40175 CMOS 四D触发器.pdf4018 CMOS 可预置 1分N 计数器.pdf40181 CMOS 4位算术逻辑单元.pdf40182 CMOS 超前进位发生器.pdf4019 CMOS 四与或选译门.pdf40192 CMOS 可预制四位BCD计数器.pdf40193 CMOS 可预制四位二进制计数器.pdf40194 CMOS 4位双向并行存取通用移位寄存器.pdf4020 CMOS 14级二进制串行计数-分频器.pdf40208 CMOS 4×4多端寄存器.pdf4021 CMOS 异步8位并入同步串入-串出寄存器.pdf4022 CMOS 八进制计数器-分频器.pdf4023 CMOS 三3输入与非门.pdf4024 CMOS 7级二进制计数器.pdf4025 CMOS 三3输入或非门.pdf40257 CMOS 四2线-1线数据选择器-多路传输.pdf4026 CMOS 7段显示十进制计数-分频器.pdf4027 CMOS 带置位复位双J-K主从触发器.pdf4028 CMOS BCD- 十进制译码器.pdf4029 CMOS 可预制加-减(十-二进制)计数器.pdf4030 CMOS 四异或门.pdf4031 CMOS 64级静态移位寄存器.pdf4032 CMOS 3位正逻辑串行加法器.pdf4033 CMOS 十进制计数器-消隐7段显示.pdf4034 CMOS 8位双向并、串入-并出寄存器.pdf4035 CMOS 4位并入-并出移位寄存器.pdf4038 CMOS 3位串行负逻辑加法器.pdf4040 CMOS 12级二进制计数-分频器.pdf4041 CMOS 四原码-补码缓冲器.pdf4042 CMOS 四时钟控制 D 锁存器.pdf4043 CMOS 四三态或非 R-S 锁存器.pdf4044 CMOS 四三态与非 R-S 锁存器.pdf4045 CMOS 21位计数器.pdf4046 CMOS PLL 锁相环电路.pdf4047 CMOS 单稳态、无稳态多谐振荡器.pdf4048 CMOS 8输入端多功能可扩展三态门.pdf4049 CMOS 六反相缓冲器-转换器.pdf4050 CMOS 六同相缓冲器-转换器.pdf4051 CMOS 8选1双向模拟开关.pdf4051,2,3.pdf4052 CMOS 双4选1双向模拟开关.pdf4053 CMOS 三2选1双向模拟开关.pdf4054 C
上传时间: 2021-11-09
上传用户:kent