久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
HT1621燃氣抄表程序
[打印本頁]
作者:
YYZZ052
時間:
2020-1-18 22:30
標題:
HT1621燃氣抄表程序
本人自寫的燃氣炒表程序,,用到HT1621驅動顯示屏,希望能幫到大家
單片機源程序如下:
//ICC-AVR application builder : 2005-3-3 17:58:11
// Target : M8
// Crystal: 4.0000Mhz
//1621引線:CS:PB4 WR:PB5 Data:PB3
#include <iom8v.h>
#include <macros.h>
#include <eeprom.h>
#define WR 0B00100000//時鐘線
#define DATA 0B00001000//數據線
#define CS 0b00010000//片選線
#define P 0x80
#define data_length 8
const char seg_tab[]={0x5f,0x06,0x6b,0x2f,0x36,0x3d,0x7d,0x07,0x7f,0x3f,
0x77,0x7c,0x59,0x6e,0x79,0x71,0x58,0x76,0x00};
unsigned char disbuff[6] ={0,0,0,0,0,0};//對應LCD的6位
unsigned char p1 =0;
unsigned char p2 =0;
unsigned long int time =0;//每一毫秒加1
//1621的顯存是4位*32的,故用16*8位的寄存器就能滿足要求奇數顯存放高4位,偶數放低4位
/*****************************************************************/
//1621初始化命令
const char init_tab[]={
0b00000001,//打開系統振蕩器命令
0b00000011,//打開LCD偏壓發生器命令
0b00000101,//WDT 溢出標志輸出失效命令
0b00000110,//時基輸出使能命令
0b00011000,//系統時鐘源片內RC振蕩器命令
0b00101001,//LCD1/3偏壓選項4個公共口命令
//0b01000000,//聲音頻率4KHz命令
//0b00001001,//打開聲音輸出命令
0b10100000,//時基/WDT 時鐘輸出1Hz命令
0b10001000 //使/IRQ 輸出有效命令
};
void send_data(unsigned char data_bus,unsigned char loop);
void delayns(void);
void display(void);
void display_init(void);
void votlageget(void);
void delay(int temp);
void port_init(void)
{
PORTB = 0xFF;
DDRB = 0B11111000;
PORTC = 0x00; //m103 output only
DDRC = 0x00;
PORTD = 0xFF;
DDRD = 0XFF;
}
void timer1_init(void)
{
TCCR1B = 0x00; //stop
TCNT1H = 0xFE; //setup
TCNT1L = 0x0C;
OCR1AH = 0x01;
OCR1AL = 0xF4;
OCR1BH = 0x01;
OCR1BL = 0xF4;
ICR1H = 0x01;
ICR1L = 0xF4;
TCCR1A = 0x00;
TCCR1B = 0x02; //start Timer
}
#pragma interrupt_handler timer1_ovf_isr:9
void timer1_ovf_isr(void) //每毫秒中斷一次
{
//TIMER1 has overflowed
TCNT1H = 0xFE; //reload counter high value
TCNT1L = 0x0C; //reload counter low value
time ++;
disbuff[5] =time&0x0f;
disbuff[4] =(time>>4)&0x0f;
disbuff[3] =(time>>8)&0x0f;
disbuff[2] =(time>>12)&0x0f;
disbuff[1] =(time>>16)&0x0f;
disbuff[0] =(time>>20)&0x0f;
display(); //刷新1621的緩存
}
//***********************************************************************/
void display_init(void)
{
unsigned char t;
PORTB &=~CS;
send_data(0b10000000,3);//送3位命令模式代碼100
for(t=0;t<=7;t++)
{
send_data(init_tab[t],9);//送9位命令代碼
}
PORTB |=CS;
PORTB |=WR;
}
//***********************************************************************/
void display(void)
{
unsigned char t;
unsigned char seg_temp;
PORTB &=~CS;
PORTB &=~WR;
send_data(0b10100000,3);//送3位“寫 ”模式命令代碼101
send_data(0,6);//送6位首地址00h
for(t=0;t<=5;t++)
{
seg_temp =seg_tab[disbuff[t]];
send_data(seg_temp,data_length);//向顯存送數據
}
PORTB |=CS;
PORTB |=WR;
}
//***********************************************************************/
void send_data(unsigned char data_temp,unsigned char loop)
{
for(;loop!=0;loop--)
{
delayns();
PORTB &=~WR;
delayns();
if((data_temp&0b10000000)==0)
{
PORTB &=~DATA;
}
else
{
PORTB |=DATA;
}
data_temp=(data_temp<<1);
PORTB |=WR;
}
}
//~~~~~~~~~~~~~~~~~~~~~`
void delayns(void)
{
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
}
//call this routine to initialize all peripherals
void init_devices(void)
{
//stop errant interrupts until set up
CLI(); //disable all interrupts
port_init();
timer1_init();
TIMSK = 0x04; //timer interrupt sources
SEI(); //re-enable interrupts
}
void main(void)
{
init_devices(); //單片機初始化
display_init(); //1621初始化
while(1)
{
;
}
}
復制代碼
所有資料51hei提供下載:
ht1621.rar
(768.63 KB, 下載次數: 24)
2020-1-18 22:30 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
成人啊啊啊
|
日韩中文字幕一区二区
|
黄色一级电影免费观看
|
久久毛片
|
国产精品一区一区三区
|
国产美女视频一区
|
国产综合精品一区二区三区
|
日韩三级一区
|
欧美一级二级三级视频
|
欧美在线一区二区三区
|
国产区免费视频
|
日本精品视频一区二区
|
黄色毛片网站在线观看
|
h视频在线观看免费
|
成人av免费网站
|
免费视频一区二区三区在线观看
|
国产成人99久久亚洲综合精品
|
91精品国产综合久久久动漫日韩
|
在线视频国产一区
|
国产精品久久久久久久久久久久午夜片
|
亚洲欧美日韩电影
|
亚洲欧美激情网
|
视频一区中文字幕
|
国产精品久久久久久久久久
|
中文字幕 在线观看
|
国产精品视频一二三区
|
一区二区三区亚洲
|
99精品视频在线
|
2019天天操
|
免费成人高清在线视频
|
国产精品国产a级
|
欧美激情五月
|
欧美日本韩国一区二区
|
www.黄色在线观看
|
欧美成人一区二区三区
|
一区二区三区四区在线视频
|
91在线视频观看
|
久久国内精品
|
日韩国产一区二区
|
黄色在线免费观看
|
99一区二区
|