[工学]基于ar多通道电压监测系统开发综合实训-学生学习手册[1]内容摘要:
10000/1000。 shuju[2]=num%1000/100。 shuju[3]=num%100/10。 shuju[4]=num%10。 } service_in0()。 display()。 } } 2.调试如下数码管原理图与定时器 T0 中断参考程序,注释关键程序。 南京工业职业技术学院 综合实训教学学生学习手册 24 include define uchar unsigned char uchar Table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}。 uchar Data[4]={0,0,0,0}。 uchar Time[2]={0,0}。 uchar CNT=0。 void DelayMs(uchar i) { uchar j。 for(。 i0。 i) for(j=0。 jj++)。 } void Display(uchar *p) { uchar i,sel=0x01。 for(i=0。 i4。 i++) 南京工业职业技术学院 综合实训教学学生学习手册 25 { PORTC=sel。 PORTA=Table[p[i]]。 DelayMs(2)。 sel=sel1。 } } void Process(uchar *p1,uchar *p2) { p2[0]=p1[0]/10。 p2[1]=p1[0]%10。 p2[2]=p1[1]/10。 p2[3]=p1[1]%10。 } void Init_IO(void) { DDRA=0xff。 PORTA=0xff。 DDRC=0xff。 PORTC=0xff。 } void main(void) { Init_IO()。 DelayMs(10)。 TCCR0=0x04。 TCNT0=0x06。 TIMSK=0x01。 SREG=SREG|0x80。 while(1) { Process(Time,Data)。 Display(Data)。 } } pragma interrupt_handler Timer0:10 void Timer0(void) { CNT++。 if(CNT==125) 南京工业职业技术学院 综合实训教学学生学习手册 26 { CNT=0。 Time[1]++。 if(Time[1]==60) { Time[1]=0。 Time[0]++。 } if(Time[0]==60) Time[0]=0。 } } 画出以上程序流程图。 教师评阅 : 南京工业职业技术学院 综合实训教学学生学习手册 27 学习工作单 4 记录编号№ 学习领域 电子产品设计 与制作实训 学习情境 : 多通道电压监测系统 任务单元 AD 与比较器编程 , EEprom 编程, 24C02 IIC 编程, DS1302 时钟 编程 姓名 班级 学号 日期 组员姓名 1. 调试如下 AD 原理图与参考程序,注释关键程序。 include define uchar unsigned char define uint unsigned int uchar Table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}。 uchar Data[4]={0,0,0,0}。 void DelayMs(uint i) {uchar j。 for(。 i!=0。 i) for(j=j!=0。 j)。 } } void Display(uchar *p) {uchar i,sel=0x01。 for(i=0。 i4。 i++) {PORTD=sel。 PORTB=0xffTable[p[i]]。 DelayMs(10)。 sel=sel1。 南京工业职业技术学院 综合实训教学学生学习手册 28 } } uint ADC_Convert(void) {uint temp1,temp2。 temp1=(uint)ADCL。 temp2=(uint)ADCH。 temp2=(temp28)+temp1。 return(temp2)。 } void Process(uint i,uchar *p) {p[0]=i/1000。 i=i%1000。 p[1]=i/100。 i=i%100。 p[2]=i/10。 i=i%10。 p[3]=i。 } void main(void) {uint i。 DDRA=0x00。 PORTA=0x00。 DDRB=0xff。 PORTB=0xff。 DDRD=0xff。 PORTD=0xff。 PORTB=0x00。 PORTD=0xff。 ADMUX=0x01。 ADCSR=0xe6。 DelayMs(3000)。 while(1) {i=ADC_Convert()。 Process(i,Data)。 Display(Data)。 } } 2. 调试如下 AD 比较器原理图与参考程序,注释关键程序。 修改图与程序实现声光报警功能。 南京工业职业技术学院 综合实训教学学生学习手册 29 include define uchar unsigned char define uint unsigned int void main(void) { uchar i。 DDRB=0xf0。 PORTB=0x00。 ACSR=0x00。 while(1) { if((ACSRamp。 0x20)==0x20) PORTB=PORTB|0xf0。 else PORTB=PORTBamp。 0x0f。 } } 3. 调试如下 EEPROM 原理图与参考程序,注释关键程序。 完成学号的写入与读出。 南京工业职业技术学院 综合实训教学学生学习手册 30 include define uchar unsigned char define uint unsigned int uchar Table[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}。 uchar Read_Data[4]。 uchar *p1。 void DelayMs(uint i) {uint j。 for(。 i!=0。 i) {for(j=j!=0。 j) {。 }} } void Display(uchar *p) {uchar i,sel=0x01。 for(i=0。 i4。 i++) {PORTC=sel。 PORTA=0xffTable[p[i]]。 DelayMs(2)。 sel=sel1。 } 南京工业职业技术学院 综合实训教学学生学习手册 31 } void Init_IO(void) { DDRA=0xff。 PORTA=0xff。 DDRC=0xff。 PORTC=0xff。 } void Write_EEPROM(uchar Data,uint Address) {if(EECRamp。 0x20) DelayMs(4)。 EEARH=Address8。 EEARL=Addressamp。 0x00ff。 EEDR=Data。 EECR=EECR|0x04。 EECR=EECR|0x02。 DelayMs(4)。 } uchar Read_EEPROM(uint Address) {uchar i。 if(EECRamp。 0x01) DelayMs(4)。 EEARH=Address8。 EEARL=Addressamp。 0x00ff。 EECR=EECR|0x01。 DelayMs(5)。 i=EEDR。 return(i)。 } void main(void) {uchar i。 Init_IO()。 PORTA=0xff。 PORTC=0x00。 DelayMs(30)。 PORTC=0xff。 for(i=0。 i4。 i++) Write_EEPROM(5*i,i)。 for(i=0。 i4。 i++) Read_Data[i]=Read_EEPROM(i)。 } while(1) { p1[0]=Read_Data[0]。 Display(p1)。 DelayMs(2)。 } } 4. 调试如下 EEPROM(24C02)原理图与参考程序,注释关键程序。 南京工业职业技术学院 综合实训教学学生学习手册 32 include include define uchar unsigned char define uint unsigned int define rd_device_add 0xa1 define wr_device_add 0xa0 define start() (TWCR=(1TWINT)|(1TWSTA)|(1TWEN)) define stop() (TWCR=(1TWINT)|(1TWSTO)|(1TWEN)) define wait() {while(!(TWCRamp。 (1TWINT)))。 } define testack() (TWSRamp。 0xf8) define setack() (TWCR|=(1TWEA)) define setnoack() (TWCRamp。 =~(1TWEA)) define twi() (TWCR=(1TWINT)|(1TWEN)) define write8bit(x) {TWDR=(x)。 TWCR=(1TWINT)|(1TWEN)。 } unsigned char key_val,wr_val=0,rd_val=0。 unsigned char temp。 void port_init(void) {DDRB=0xff。 PORTB=0x00。 DDRC=0xff。 PORTC=0x00。 DDRD=0x00。 PORTD=0xff。 DDRA=0xff。 PORTA=0x00。 } uchar I2C_Read(uchar romaddress) { 南京工业职业技术学院。[工学]基于ar多通道电压监测系统开发综合实训-学生学习手册[1]
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。